Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nmwsharp/geometry-central
Applied 3D geometry in C++, with a focus on surface meshes.
https://github.com/nmwsharp/geometry-central
Last synced: about 1 month ago
JSON representation
Applied 3D geometry in C++, with a focus on surface meshes.
- Host: GitHub
- URL: https://github.com/nmwsharp/geometry-central
- Owner: nmwsharp
- License: mit
- Created: 2017-11-20T15:40:25.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-04T15:10:33.000Z (2 months ago)
- Last Synced: 2024-09-27T02:01:32.015Z (about 1 month ago)
- Language: C++
- Homepage: https://geometry-central.net
- Size: 29 MB
- Stars: 1,066
- Watchers: 34
- Forks: 149
- Open Issues: 78
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-SLAM - Geometry Central
- awesome-computer-graphics-resources - geometry-central.net
README
# Documentation is hosted at [geometry-central.net](http://geometry-central.net)
---# Welcome to Geometry Central
[![actions status linux](https://github.com/nmwsharp/geometry-central/workflows/linux/badge.svg)](https://github.com/nmwsharp/geometry-central/actions)
[![actions status macOS](https://github.com/nmwsharp/geometry-central/workflows/macOS/badge.svg)](https://github.com/nmwsharp/geometry-central/actions)
[![actions status windows](https://github.com/nmwsharp/geometry-central/workflows/windows/badge.svg)](https://github.com/nmwsharp/geometry-central/actions)Geometry-central is a modern C++ library of data structures and algorithms for geometry processing, with a particular focus on surface meshes.
Features include:
- A polished **surface mesh** class, with efficient support for mesh modification, and a system of containers for associating data with mesh elements.
- Implementations of canonical **geometric quantities** on surfaces, ranging from normals and curvatures to tangent vector bases to operators from discrete differential geometry.
- A suite of **powerful algorithms**, including computing distances on surface, generating direction fields, and manipulating intrinsic Delaunay triangulations.
- A coherent set of sparse **linear algebra tools**, based on Eigen and augmented to automatically utilize better solvers if available on your system.**Sample:**
```cpp
// Load a mesh
std::unique_ptr mesh;
std::unique_ptr geometry;
std::tie(mesh, geometry) = readSurfaceMesh("spot.obj");// Compute vertex areas
VertexData vertexAreas(*mesh);geometry->requireFaceAreas();
for(Vertex v : mesh->vertices()) {
double A = 0.;
for(Face f : v.adjacentFaces()) {
A += geometry->faceAreas[f] / v.degree();
}
vertexAreas[v] = A;
}
```Check out the docs, tutorials, and build instructions at [geometry-central.net](http://geometry-central.net). Use the [sample project](https://github.com/nmwsharp/gc-polyscope-project-template/) to get started with a build system and a gui.
**Related alternatives:**
[CGAL](https://www.cgal.org/),
[libIGL](https://github.com/libigl/libigl),
[OpenMesh](http://www.openmesh.org/),
[Polygon Mesh Processing Library](https://www.pmp-library.org/),
[CinoLib](https://github.com/mlivesu/cinolib)---
**Credits**
Geometry-central is developed by [Nicholas Sharp](http://nmwsharp.com), with many contributions from
[Keenan Crane](http://keenan.is/here),
[Yousuf Soliman](http://www.its.caltech.edu/~ysoliman/),
[Mark Gillespie](http://markjgillespie.com/),
[Rohan Sawhney](http://rohansawhney.io/), and many others.If geometry-central contributes to an academic publication, cite it as:
```bib
@article{geometrycentral,
title={GeometryCentral: A modern C++ library of data structures and algorithms for geometry processing},
author={Nicholas Sharp and Keenan Crane and others},
howpublished="\url{https://geometry-central.net/}",
year={2019}
}
```Development of this software was funded in part by NSF Award 1717320, an NSF graduate research fellowship, and gifts from Adobe Research and Autodesk, Inc.