MeVisLab Toolbox Reference
ml::WEMSetOp Namespace Reference

Tool namespace for performing set operations on WEM patches. More...

Enumerations

enum  Axis { xAxis = 0 , yAxis , zAxis }
 Defines the main axes. More...
 

Functions

MLWEM_EXPORT void unify (WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2, WEMTrianglePatch *outPatch, unsigned int outputMode, TriangulationModes triangulationMode, WEMVector< WEMCut > *cuts=nullptr)
 Returns the union of the given patches.
 
MLWEM_EXPORT void intersect (WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2, WEMTrianglePatch *outPatch, unsigned int outputMode, TriangulationModes triangulationMode, WEMVector< WEMCut > *cuts=nullptr)
 Returns the intersection of the given patches.
 
MLWEM_EXPORT void difference (WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2, WEMTrianglePatch *outPatch, unsigned int outputMode, TriangulationModes triangulationMode, WEMVector< WEMCut > *cuts=nullptr)
 Returns the difference of the given patches.
 
void _boolOp (WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2, WEMTrianglePatch *outPatch, unsigned int boolOpMode, unsigned int outputMode, TriangulationModes triangulationMode, WEMVector< WEMCut > *cuts)
 Performs a boolean operation (union, intersection, difference) on given patches.
 
bool _intersectBoundingBoxes (WEMTrianglePatch *triPatch1, WEMTrianglePatch *triPatch2)
 Intersects bounding boxes of given patches.
 
void _updateClassification (WEMTrianglePatch *triPatch, WEMVector< WEMFaceCut > **faceCutTable, WEMTrianglePatch *rayPatch, WEMVector< WEMFace > *outerFaces=nullptr, WEMVector< WEMFace > *innerFaces=nullptr)
 Updates classification of nodes and faces based on face cuts.
 
Axis _getMinimalOverlapAxisOfBoundingBoxes (const Vector3 &min1, const Vector3 &min2, const Vector3 &max1, const Vector3 &max2)
 Returns the minimal overlap axis of the given bounding boxes.
 
void _resetOuterAndIntersectingFlags (WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2)
 Resets the status flags of nodes and faces.
 
void _performTrivialBoolOp (WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2, WEMTrianglePatch *outPatch, unsigned int boolOpMode, unsigned int outputMode)
 If the bounding boxes of the input WEMs do not intersect, perform a trivial Boolean operation.
 
bool _areWEMBoundingBoxesIntersecting (WEMPatch *wemPatch1, WEMPatch *wemPatch2)
 Returns whether the bounding boxes of the given WEMs are intersecting.
 
void _removeNonValidCuts (WEMVector< WEMFace > *intersectedFaces, WEMVector< WEMFaceCut > **faceCuts)
 Removes all non-valid face cuts from the common face cuts vector.
 
void _classifyIntersectionAndOutsideFaces (WEMTrianglePatch *inPatch1, WEMVector< WEMFace > *intersectedFaces)
 Checks all faces; if a face if fully outside, it is just marked, else it is also added to the given intersectedFaces vector.
 
void _addFacesToOutputPatch (WEMVector< WEMFace > *faces, WEMNode **nodeTable, WEMTrianglePatch *outPatch)
 Adds the given faces to the output patch.
 
WEMVector< WEMFaceCut > ** _setupFaceCuts (WEMTrianglePatch *inPatch, WEMVector< WEMFace > *intersectedFaces, WEMVector< WEMPartialFaceCut > **partialFaceCuts)
 Sets up the face cut vector.
 

Detailed Description

Tool namespace for performing set operations on WEM patches.

Enumeration Type Documentation

◆ Axis

Defines the main axes.

Enumerator
xAxis 
yAxis 
zAxis 

Definition at line 43 of file WEMSetOp.h.

Function Documentation

◆ _addFacesToOutputPatch()

void ml::WEMSetOp::_addFacesToOutputPatch ( WEMVector< WEMFace > * faces,
WEMNode ** nodeTable,
WEMTrianglePatch * outPatch )

Adds the given faces to the output patch.

References _addFacesToOutputPatch().

Referenced by _addFacesToOutputPatch().

◆ _areWEMBoundingBoxesIntersecting()

bool ml::WEMSetOp::_areWEMBoundingBoxesIntersecting ( WEMPatch * wemPatch1,
WEMPatch * wemPatch2 )

Returns whether the bounding boxes of the given WEMs are intersecting.

References _areWEMBoundingBoxesIntersecting().

Referenced by _areWEMBoundingBoxesIntersecting().

◆ _boolOp()

void ml::WEMSetOp::_boolOp ( WEMTrianglePatch * inPatch1,
WEMTrianglePatch * inPatch2,
WEMTrianglePatch * outPatch,
unsigned int boolOpMode,
unsigned int outputMode,
TriangulationModes triangulationMode,
WEMVector< WEMCut > * cuts )

Performs a boolean operation (union, intersection, difference) on given patches.

References _boolOp().

Referenced by _boolOp().

◆ _classifyIntersectionAndOutsideFaces()

void ml::WEMSetOp::_classifyIntersectionAndOutsideFaces ( WEMTrianglePatch * inPatch1,
WEMVector< WEMFace > * intersectedFaces )

Checks all faces; if a face if fully outside, it is just marked, else it is also added to the given intersectedFaces vector.

References _classifyIntersectionAndOutsideFaces().

Referenced by _classifyIntersectionAndOutsideFaces().

◆ _getMinimalOverlapAxisOfBoundingBoxes()

Axis ml::WEMSetOp::_getMinimalOverlapAxisOfBoundingBoxes ( const Vector3 & min1,
const Vector3 & min2,
const Vector3 & max1,
const Vector3 & max2 )

Returns the minimal overlap axis of the given bounding boxes.

References _getMinimalOverlapAxisOfBoundingBoxes().

Referenced by _getMinimalOverlapAxisOfBoundingBoxes().

◆ _intersectBoundingBoxes()

bool ml::WEMSetOp::_intersectBoundingBoxes ( WEMTrianglePatch * triPatch1,
WEMTrianglePatch * triPatch2 )

Intersects bounding boxes of given patches.

Sets outer and intersecting flags on nodes and faces. Returns whether there was any intersection.

References _intersectBoundingBoxes().

Referenced by _intersectBoundingBoxes().

◆ _performTrivialBoolOp()

void ml::WEMSetOp::_performTrivialBoolOp ( WEMTrianglePatch * inPatch1,
WEMTrianglePatch * inPatch2,
WEMTrianglePatch * outPatch,
unsigned int boolOpMode,
unsigned int outputMode )

If the bounding boxes of the input WEMs do not intersect, perform a trivial Boolean operation.

References _performTrivialBoolOp().

Referenced by _performTrivialBoolOp().

◆ _removeNonValidCuts()

void ml::WEMSetOp::_removeNonValidCuts ( WEMVector< WEMFace > * intersectedFaces,
WEMVector< WEMFaceCut > ** faceCuts )

Removes all non-valid face cuts from the common face cuts vector.

References _removeNonValidCuts().

Referenced by _removeNonValidCuts().

◆ _resetOuterAndIntersectingFlags()

void ml::WEMSetOp::_resetOuterAndIntersectingFlags ( WEMTrianglePatch * inPatch1,
WEMTrianglePatch * inPatch2 )

Resets the status flags of nodes and faces.

References _resetOuterAndIntersectingFlags().

Referenced by _resetOuterAndIntersectingFlags().

◆ _setupFaceCuts()

WEMVector< WEMFaceCut > ** ml::WEMSetOp::_setupFaceCuts ( WEMTrianglePatch * inPatch,
WEMVector< WEMFace > * intersectedFaces,
WEMVector< WEMPartialFaceCut > ** partialFaceCuts )

Sets up the face cut vector.

References _setupFaceCuts().

Referenced by _setupFaceCuts().

◆ _updateClassification()

void ml::WEMSetOp::_updateClassification ( WEMTrianglePatch * triPatch,
WEMVector< WEMFaceCut > ** faceCutTable,
WEMTrianglePatch * rayPatch,
WEMVector< WEMFace > * outerFaces = nullptr,
WEMVector< WEMFace > * innerFaces = nullptr )

Updates classification of nodes and faces based on face cuts.

References _updateClassification().

Referenced by _updateClassification().

◆ difference()

MLWEM_EXPORT void ml::WEMSetOp::difference ( WEMTrianglePatch * inPatch1,
WEMTrianglePatch * inPatch2,
WEMTrianglePatch * outPatch,
unsigned int outputMode,
TriangulationModes triangulationMode,
WEMVector< WEMCut > * cuts = nullptr )

Returns the difference of the given patches.

References difference().

Referenced by difference().

◆ intersect()

MLWEM_EXPORT void ml::WEMSetOp::intersect ( WEMTrianglePatch * inPatch1,
WEMTrianglePatch * inPatch2,
WEMTrianglePatch * outPatch,
unsigned int outputMode,
TriangulationModes triangulationMode,
WEMVector< WEMCut > * cuts = nullptr )

Returns the intersection of the given patches.

References intersect().

Referenced by intersect().

◆ unify()

MLWEM_EXPORT void ml::WEMSetOp::unify ( WEMTrianglePatch * inPatch1,
WEMTrianglePatch * inPatch2,
WEMTrianglePatch * outPatch,
unsigned int outputMode,
TriangulationModes triangulationMode,
WEMVector< WEMCut > * cuts = nullptr )

Returns the union of the given patches.

References unify().

Referenced by unify().