Skip to content

(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, use OpenABF::IsManifold
  • Same winding order
  • Unreferenced vertices: Use OpenABF::HasUnreferencedVertices or OpenABF::UnreferencedVertices (!10 (merged))
Edited by Seth Parker
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information