# Welcome to Geometry Central

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:

// Load a mesh
std::unique_ptr<SurfaceMesh> mesh;
std::unique_ptr<VertexPositionGeometry> geometry;

// Compute vertex areas
VertexData<double> vertexAreas(*mesh);

geometry->requireFaceAreas();
for(Vertex v : mesh->vertices()) {
double A = 0.;
A += geometry->faceAreas[f] / v.degree();
}
vertexAreas[v] = A;
}


For more, see the tutorials. To get started with the code, see building. Use the sample project to get started with a build system and a gui.

A introductory talk on geometry-central was given at SGP 2020, check it out to get started: www.youtube.com/watch?v=mw5Xz9CFZ7A

Bindings & Plugins:

If you’re interested in creating additional bindings/plugins, feel free to reach out!

Related alternatives: CGAL, libIGL, OpenMesh, Polygon Mesh Processing Library, CinoLib

Credits

Geometry-central is developed by Nicholas Sharp, with many contributions from Keenan Crane, Yousuf Soliman, Mark Gillespie, Rohan Sawhney, Chris Yu, and many others.

If geometry-central contributes to an academic publication, cite it as:

@misc{geometrycentral,
title = {geometry-central},
author = {Nicholas Sharp and Keenan Crane and others},
note = {www.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.