Open CASCADE Technology  7.3.0
Public Member Functions | Protected Member Functions
BRepExtrema_OverlapTool Class Reference

Enables storing of individual overlapped triangles (useful for debug). More...

#include <BRepExtrema_OverlapTool.hxx>

Public Member Functions

 BRepExtrema_OverlapTool ()
 Creates new unitialized overlap tool. More...
 
 BRepExtrema_OverlapTool (const Handle< BRepExtrema_TriangleSet > &theSet1, const Handle< BRepExtrema_TriangleSet > &theSet2)
 Creates new overlap tool for the given element sets. More...
 
void LoadTriangleSets (const Handle< BRepExtrema_TriangleSet > &theSet1, const Handle< BRepExtrema_TriangleSet > &theSet2)
 Loads the given element sets into the overlap tool. More...
 
void Perform (const Standard_Real theTolerance=0.0)
 Performs searching of overlapped mesh elements. More...
 
Standard_Boolean IsDone () const
 Is overlap test completed? More...
 
void MarkDirty ()
 Marks test results as outdated. More...
 
const BRepExtrema_MapOfIntegerPackedMapOfIntegerOverlapSubShapes1 () const
 Returns set of overlapped sub-shapes of 1st shape (currently only faces are detected). More...
 
const BRepExtrema_MapOfIntegerPackedMapOfIntegerOverlapSubShapes2 () const
 Returns set of overlapped sub-shapes of 2nd shape (currently only faces are detected). More...
 
void SetElementFilter (BRepExtrema_ElementFilter *theFilter)
 Sets filtering tool for preliminary checking pairs of mesh elements. More...
 

Protected Member Functions

void intersectTriangleRangesExact (const BVH_Vec4i &theLeaf1, const BVH_Vec4i &theLeaf2)
 Performs narrow-phase of overlap test (exact intersection). More...
 
void intersectTriangleRangesToler (const BVH_Vec4i &theLeaf1, const BVH_Vec4i &theLeaf2, const Standard_Real theToler)
 Performs narrow-phase of overlap test (intersection with non-zero tolerance). More...
 

Detailed Description

Enables storing of individual overlapped triangles (useful for debug).

Tool class for for detection of overlapping of two BVH primitive sets. This tool is not intended to be used independently, and is integrated in other classes, implementing algorithms based on shape tessellation (BRepExtrema_ShapeProximity and BRepExtrema_SelfIntersection).

Note that input element sets may correspond to different shapes or to the same shape. In first case, tessellations of two given shapes will be tested for intersection (or overlapping, if tolerance is not zero). In second case, tessellation of single shape will be tested for self- intersections. Please note that algorithm results are approximate and depend greatly on the quality of input tessellation(s).

Constructor & Destructor Documentation

◆ BRepExtrema_OverlapTool() [1/2]

BRepExtrema_OverlapTool::BRepExtrema_OverlapTool ( )

Creates new unitialized overlap tool.

◆ BRepExtrema_OverlapTool() [2/2]

BRepExtrema_OverlapTool::BRepExtrema_OverlapTool ( const Handle< BRepExtrema_TriangleSet > &  theSet1,
const Handle< BRepExtrema_TriangleSet > &  theSet2 
)

Creates new overlap tool for the given element sets.

Member Function Documentation

◆ intersectTriangleRangesExact()

void BRepExtrema_OverlapTool::intersectTriangleRangesExact ( const BVH_Vec4i theLeaf1,
const BVH_Vec4i theLeaf2 
)
protected

Performs narrow-phase of overlap test (exact intersection).

◆ intersectTriangleRangesToler()

void BRepExtrema_OverlapTool::intersectTriangleRangesToler ( const BVH_Vec4i theLeaf1,
const BVH_Vec4i theLeaf2,
const Standard_Real  theToler 
)
protected

Performs narrow-phase of overlap test (intersection with non-zero tolerance).

◆ IsDone()

Standard_Boolean BRepExtrema_OverlapTool::IsDone ( ) const
inline

Is overlap test completed?

◆ LoadTriangleSets()

void BRepExtrema_OverlapTool::LoadTriangleSets ( const Handle< BRepExtrema_TriangleSet > &  theSet1,
const Handle< BRepExtrema_TriangleSet > &  theSet2 
)

Loads the given element sets into the overlap tool.

◆ MarkDirty()

void BRepExtrema_OverlapTool::MarkDirty ( )
inline

Marks test results as outdated.

◆ OverlapSubShapes1()

const BRepExtrema_MapOfIntegerPackedMapOfInteger& BRepExtrema_OverlapTool::OverlapSubShapes1 ( ) const
inline

Returns set of overlapped sub-shapes of 1st shape (currently only faces are detected).

◆ OverlapSubShapes2()

const BRepExtrema_MapOfIntegerPackedMapOfInteger& BRepExtrema_OverlapTool::OverlapSubShapes2 ( ) const
inline

Returns set of overlapped sub-shapes of 2nd shape (currently only faces are detected).

◆ Perform()

void BRepExtrema_OverlapTool::Perform ( const Standard_Real  theTolerance = 0.0)

Performs searching of overlapped mesh elements.

◆ SetElementFilter()

void BRepExtrema_OverlapTool::SetElementFilter ( BRepExtrema_ElementFilter theFilter)
inline

Sets filtering tool for preliminary checking pairs of mesh elements.


The documentation for this class was generated from the following file: