Defines the mesh component: edge.
Defines the mesh component: node.
This represents a WEMPatch consisting of triangles only.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
MLWEM_EXPORT WEMNode * performSplit(WEMTrianglePatch *triPatch, WEMEdge *edge, void *heap=nullptr, float maxEdgeLength=1.0f)
Performs a splitting of the edge in a triangle patch. Returns the node which has been inserted.
MLWEM_EXPORT void deleteTetrahedron(WEMTrianglePatch *triPatch, WEMNode *node, void *heap=nullptr)
Deletes a tetrahedron constellation where the given node is part of.
MLWEM_EXPORT bool checkSwap(WEMTrianglePatch *triPatch, WEMEdge *edge, void *heap=nullptr, float maxDihedralAngleNeigh=0.99999331899f)
Returns whether the given edge of the triangle patch can be swapped.
MLWEM_EXPORT bool performSwap(WEMTrianglePatch *triPatch, WEMEdge *edge, void *heap=nullptr, float maxDihedralAngleNeigh=0.99999331899f)
Performs a swapping of the edge in a triangle patch. Returns whether a swapping was performed.
MLWEM_EXPORT bool checkSplit(WEMTrianglePatch *triPatch, WEMEdge *edge, void *heap=nullptr, float maxEdgeLength=1.0f)
Returns whether the given edge of the triangle patch can be split.
MLWEM_EXPORT WEMNode * performCollapse(WEMTrianglePatch *triPatch, WEMEdge *edge, void *heap=nullptr, float maxDihedralAngleNeigh=0.99999331899f)
Performs a collapsing of the given edge in a triangle patch and returns the inserted node.
MLWEM_EXPORT bool deleteNodeWithValenceThree(WEMTrianglePatch *triPatch, WEMNode *node, void *heap=nullptr, float maxDihedralAngleNeigh=0.99999331899f)
Deletes a node with a valence of 3. Returns whether the operation was successful.
MLWEM_EXPORT bool isWellFormed(WEMEdge *edge)
Perform a basic sanity check.
MLWEM_EXPORT bool checkCollapse(WEMTrianglePatch *triPatch, WEMEdge *edge, void *heap=nullptr, float maxDihedralAngleNeigh=0.99999331899f)
Returns whether the given edge in the triangle patch can be collapsed.
MLWEM_EXPORT bool areCollinear(WEMNode *n0, WEMNode *n1, WEMNode *n2)
Returns whether the given positions are collinear, assuming that n0 is always in the middle.