Expand description
Topology of a triangle mesh, per connected component (#144).
genus answers one number for one closed orientable
surface and refuses everything else. This reports every component of a
two-manifold mesh, with or without boundary and whether or not it is
orientable: its counts, Euler characteristic, boundary loops,
orientability and the surface it is (genus g orientable, or k
crosscaps). For a closed orientable component it also gives a basis of
its first homology: 2g closed edge loops, by the tree-cotree
construction (Eppstein, “Dynamic generators of topologically embedded
graphs”, 2003).
Everything is combinatorial: positions are never read, so the answers are exact. A mesh that is not a two-manifold – an edge on three or more triangles, or a vertex whose triangles form more than one fan – is refused, since the classification of surfaces does not describe it.
Not provided: homology generators of surfaces with boundary or of non-orientable surfaces, and homotopy questions (whether a given closed path is contractible, or two paths homotopic).
Structs§
- Component
Topology - The topology of one connected component.
- Mesh
Topology - The topology of a two-manifold triangle mesh.
Enums§
- Surface
Kind - Which closed surface a component is, with its boundary loops filled in.
- Topology
Error - Why a mesh’s topology could not be classified.
Functions§
- topology
- Classify every connected component of
mesh.
Type Aliases§
- Edge
Loop - A closed loop of mesh edges, as its vertices in order: consecutive vertices, and the last and the first, are joined by an edge.