(HalfEdgeMesh) Add safety check functions
The HalfEdgeMesh
face insertion methods currently assume that the mesh being constructed has a boundary, is manifold, and that all faces have the same winding order. Currently, we don't check that this is true, which could lead to unexpected results.
Where possible, these checks will be added into the construction functions. Where not possible (i.e. where the check can only be performed on a full constructed mesh), we will add free functions that the programmer should call before running any of the parameterization classes.
Edge cases to check:
-
Has a boundary: Use OpenABF::HasBoundary
-
Is manifold: Edge manifoldness implemented in insert_face
. For vertex manifoldness, useOpenABF::IsManifold
-
Same winding order -
Unreferenced vertices: Use OpenABF::HasUnreferencedVertices
orOpenABF::UnreferencedVertices
(!10 (merged))
Edited by Seth Parker