Module topology

Source
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§

ComponentTopology
The topology of one connected component.
MeshTopology
The topology of a two-manifold triangle mesh.

Enums§

SurfaceKind
Which closed surface a component is, with its boundary loops filled in.
TopologyError
Why a mesh’s topology could not be classified.

Functions§

topology
Classify every connected component of mesh.

Type Aliases§

EdgeLoop
A closed loop of mesh edges, as its vertices in order: consecutive vertices, and the last and the first, are joined by an edge.