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.
 
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 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.
 
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 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.
 
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 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 areCollinear (WEMNode *n0, WEMNode *n1, WEMNode *n2)
 Returns whether the given positions are collinear, assuming that n0 is always in the middle.
 

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.

References areCollinear().

Referenced by areCollinear().

◆ 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.

References checkCollapse().

Referenced by checkCollapse().

◆ 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.

References checkSplit().

Referenced by checkSplit().

◆ 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.

References checkSwap().

Referenced by checkSwap().

◆ 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.

References deleteNodeWithValenceThree().

Referenced by deleteNodeWithValenceThree().

◆ 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.

References deleteTetrahedron().

Referenced by deleteTetrahedron().

◆ isWellFormed()

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

Perform a basic sanity check.

References isWellFormed().

Referenced by isWellFormed().

◆ 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.

References performCollapse().

Referenced by performCollapse().

◆ 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.

References performSplit().

Referenced by performSplit().

◆ 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.

References performSwap().

Referenced by performSwap().