MeVisLab Toolbox Reference
WEMSetOp.h File Reference

Go to the source code of this file.

Namespaces

namespace  ml
 Main documentation file for ML users and developers.
 
namespace  ml::WEMSetOp
 Tool namespace for performing set operations on WEM patches.
 

Enumerations

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

Functions

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.
 
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.
 
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.
 
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.
 
bool ml::WEMSetOp::_intersectBoundingBoxes (WEMTrianglePatch *triPatch1, WEMTrianglePatch *triPatch2)
 Intersects bounding boxes of given patches.
 
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.
 
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.
 
void ml::WEMSetOp::_resetOuterAndIntersectingFlags (WEMTrianglePatch *inPatch1, WEMTrianglePatch *inPatch2)
 Resets the status flags of nodes and faces.
 
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.
 
bool ml::WEMSetOp::_areWEMBoundingBoxesIntersecting (WEMPatch *wemPatch1, WEMPatch *wemPatch2)
 Returns whether the bounding boxes of the given WEMs are intersecting.
 
void ml::WEMSetOp::_removeNonValidCuts (WEMVector< WEMFace > *intersectedFaces, WEMVector< WEMFaceCut > **faceCuts)
 Removes all non-valid face cuts from the common face cuts vector.
 
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.
 
void ml::WEMSetOp::_addFacesToOutputPatch (WEMVector< WEMFace > *faces, WEMNode **nodeTable, WEMTrianglePatch *outPatch)
 Adds the given faces to the output patch.
 
WEMVector< WEMFaceCut > ** ml::WEMSetOp::_setupFaceCuts (WEMTrianglePatch *inPatch, WEMVector< WEMFace > *intersectedFaces, WEMVector< WEMPartialFaceCut > **partialFaceCuts)
 Sets up the face cut vector.
 

Variables

const unsigned int ml::WEMSETOP_OUTPUT_FIRST = 0
 Output mode: first patch only.
 
const unsigned int ml::WEMSETOP_OUTPUT_SECOND = 1
 Output mode: second patch only.
 
const unsigned int ml::WEMSETOP_OUTPUT_BOTH = 2
 Output mode: both patches.
 
const unsigned int ml::WEMSETOP_BOOLEAN_UNION = 0
 Set operation: union.
 
const unsigned int ml::WEMSETOP_BOOLEAN_INTERSECTION = 1
 Set operation: intersection.
 
const unsigned int ml::WEMSETOP_BOOLEAN_DIFFERENCE = 2
 Set operation: difference.
 
const unsigned int ml::WEMSETOP_OUTER_FLAG = 1
 
const unsigned int ml::WEMSETOP_INTERSECTING_FLAG = 5