GEL

GEL

GEometry and Linear algebra

GEL is a C++ based library for geometry processing.

GEL is available at github: https://github.com/janba/GEL
Recently, PyGEL - Python bindings for GEL - has been developed.

GEL contains a mesh representation, several spatial data structures including voxel grid, kD trees, and bounding box hierarchies. GEL also contains a library for matrix vector algebra for 2,3, and 4D vectors and matrices. Moreover GEL contains a number of utility classes for graphics and for mundane tasks like parsing command line arguments.

Perhaps, the pivotal feature of GEL can be said to be HMesh - the polygonal mesh representation. HMesh is halfedge based. Originally, the halfedge representation was chosen since it is more efficient than the older winged edge representation while also making connectivity information readily available. Furthermore, the halfedge representation makes it trivial to support polygons with arbitrary numbers of edges. From an implementation point of view, many operations are probably harder to implement than for simpler mesh representations, but at this point, the GEL code base seems fairly robust while offering a rich set of mesh manipulation operations.