MeVisLab Toolbox Reference
ml::WEMEdgeOp Namespace Reference

Helper namespace for performing swap, split and collapse operations on edges of a WEM. More...

Functions

MLWEM_EXPORT bool isWellFormed (WEMEdge *edge)
 Perform a basic sanity check. More...
 
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. More...
 
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. More...
 
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. More...
 
MLWEM_EXPORT WEMNodeperformSplit (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. More...
 
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. More...
 
MLWEM_EXPORT WEMNodeperformCollapse (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. More...
 
MLWEM_EXPORT void deleteTetrahedron (WEMTrianglePatch *triPatch, WEMNode *node, void *heap=nullptr)
 Deletes a tetrahedron constellation where the given node is part of. More...
 
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. More...
 
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. More...
 

Detailed Description

Helper namespace for performing swap, split and collapse operations on edges of a WEM.

All methods accept an optional pointer to an edge-heap which can be maintained by the method.

Function Documentation

◆ areCollinear()

MLWEM_EXPORT bool ml::WEMEdgeOp::areCollinear ( WEMNode n0,
WEMNode n1,
WEMNode n2 
)

Returns whether the given positions are collinear, assuming that n0 is always in the middle.

◆ checkCollapse()

MLWEM_EXPORT bool ml::WEMEdgeOp::checkCollapse ( WEMTrianglePatch triPatch,
WEMEdge edge,
void *  heap = nullptr,
float  maxDihedralAngleNeigh = 0.99999331899f 
)

Returns whether the given edge in the triangle patch can be collapsed.

An optional maximum dihedral angle for the neighboring faces can be given. Default for this is 12 degrees.

◆ checkSplit()

MLWEM_EXPORT bool ml::WEMEdgeOp::checkSplit ( WEMTrianglePatch triPatch,
WEMEdge edge,
void *  heap = nullptr,
float  maxEdgeLength = 1.0f 
)

Returns whether the given edge of the triangle patch can be split.

◆ checkSwap()

MLWEM_EXPORT bool ml::WEMEdgeOp::checkSwap ( WEMTrianglePatch triPatch,
WEMEdge edge,
void *  heap = nullptr,
float  maxDihedralAngleNeigh = 0.99999331899f 
)

Returns whether the given edge of the triangle patch can be swapped.

◆ deleteNodeWithValenceThree()

MLWEM_EXPORT bool ml::WEMEdgeOp::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.

◆ deleteTetrahedron()

MLWEM_EXPORT void ml::WEMEdgeOp::deleteTetrahedron ( WEMTrianglePatch triPatch,
WEMNode node,
void *  heap = nullptr 
)

Deletes a tetrahedron constellation where the given node is part of.

◆ isWellFormed()

MLWEM_EXPORT bool ml::WEMEdgeOp::isWellFormed ( WEMEdge edge)

Perform a basic sanity check.

◆ performCollapse()

MLWEM_EXPORT WEMNode* ml::WEMEdgeOp::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.

◆ performSplit()

MLWEM_EXPORT WEMNode* ml::WEMEdgeOp::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.

◆ performSwap()

MLWEM_EXPORT bool ml::WEMEdgeOp::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.