Enables storing of individual overlapped triangles (useful for debug). More...
#include <BRepExtrema_OverlapTool.hxx>
Public Member Functions | |
BRepExtrema_OverlapTool () | |
Creates new uninitialized overlap tool. | |
BRepExtrema_OverlapTool (const Handle< BRepExtrema_TriangleSet > &theSet1, const Handle< BRepExtrema_TriangleSet > &theSet2) | |
Creates new overlap tool for the given element sets. | |
void | LoadTriangleSets (const Handle< BRepExtrema_TriangleSet > &theSet1, const Handle< BRepExtrema_TriangleSet > &theSet2) |
Loads the given element sets into the overlap tool. | |
void | Perform (const Standard_Real theTolerance=0.0) |
Performs searching of overlapped mesh elements. | |
Standard_Boolean | IsDone () const |
Is overlap test completed? | |
void | MarkDirty () |
Marks test results as outdated. | |
const BRepExtrema_MapOfIntegerPackedMapOfInteger & | OverlapSubShapes1 () const |
Returns set of overlapped sub-shapes of 1st shape (currently only faces are detected). | |
const BRepExtrema_MapOfIntegerPackedMapOfInteger & | OverlapSubShapes2 () const |
Returns set of overlapped sub-shapes of 2nd shape (currently only faces are detected). | |
void | SetElementFilter (BRepExtrema_ElementFilter *theFilter) |
Sets filtering tool for preliminary checking pairs of mesh elements. | |
![]() | |
BVH_PairTraverse () | |
void | SetBVHSets (void *theBVHSet1, void *theBVHSet2) |
virtual Standard_Boolean | RejectNode (const BVH_VecNt &theCornerMin1, const BVH_VecNt &theCornerMax1, const BVH_VecNt &theCornerMin2, const BVH_VecNt &theCornerMax2, Standard_Real &theMetric) const=0 |
Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise. | |
Standard_Integer | Select () |
Performs selection of the elements from two BVH trees by the rules defined in Accept/Reject methods. Returns the number of accepted pairs of elements. | |
Standard_Integer | Select (const opencascade::handle< BVH_Tree< Standard_Real, Dimension > > &theBVH1, const opencascade::handle< BVH_Tree< Standard_Real, Dimension > > &theBVH2) |
Performs selection of the elements from two BVH trees by the rules defined in Accept/Reject methods. Returns the number of accepted pairs of elements. | |
![]() | |
virtual Standard_Boolean | IsMetricBetter (const Standard_Real &, const Standard_Real &) const |
virtual Standard_Boolean | RejectMetric (const Standard_Real &) const |
virtual Standard_Boolean | Stop () const |
Reject/Accept implementations | |
Defines the rules for node rejection by bounding box | |
virtual Standard_Boolean | RejectNode (const BVH_Vec3d &theCornerMin1, const BVH_Vec3d &theCornerMax1, const BVH_Vec3d &theCornerMin2, const BVH_Vec3d &theCornerMax2, Standard_Real &) const override |
Set of all mesh elements (triangles) of the 1st shape. | |
virtual Standard_Boolean | Accept (const Standard_Integer theLeaf1, const Standard_Integer theLeaf2) override |
Defines the rules for leaf acceptance. | |
void | intersectTrianglesExact (const Standard_Integer theTrgIdx1, const Standard_Integer theTrgIdx2) |
Performs narrow-phase of overlap test (exact intersection). | |
void | intersectTrianglesToler (const Standard_Integer theTrgIdx1, const Standard_Integer theTrgIdx2, const Standard_Real theToler) |
Performs narrow-phase of overlap test (intersection with non-zero tolerance). | |
Additional Inherited Members | |
![]() | |
typedef BVH_Box< Standard_Real, Dimension >::BVH_VecNt | BVH_VecNt |
![]() | |
BVH_BaseTraverse () | |
Destructor. | |
virtual | ~BVH_BaseTraverse () |
Destructor. | |
![]() | |
void * | myBVHSet1 |
void * | myBVHSet2 |
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).
BRepExtrema_OverlapTool::BRepExtrema_OverlapTool | ( | ) |
Creates new uninitialized overlap tool.
BRepExtrema_OverlapTool::BRepExtrema_OverlapTool | ( | const Handle< BRepExtrema_TriangleSet > & | theSet1, |
const Handle< BRepExtrema_TriangleSet > & | theSet2 ) |
Creates new overlap tool for the given element sets.
|
overridevirtual |
Defines the rules for leaf acceptance.
Implements BVH_PairTraverse< Standard_Real, 3 >.
|
protected |
Performs narrow-phase of overlap test (exact intersection).
|
protected |
Performs narrow-phase of overlap test (intersection with non-zero tolerance).
|
inline |
Is overlap test completed?
void BRepExtrema_OverlapTool::LoadTriangleSets | ( | const Handle< BRepExtrema_TriangleSet > & | theSet1, |
const Handle< BRepExtrema_TriangleSet > & | theSet2 ) |
Loads the given element sets into the overlap tool.
|
inline |
Marks test results as outdated.
|
inline |
Returns set of overlapped sub-shapes of 1st shape (currently only faces are detected).
|
inline |
Returns set of overlapped sub-shapes of 2nd shape (currently only faces are detected).
void BRepExtrema_OverlapTool::Perform | ( | const Standard_Real | theTolerance = 0.0 | ) |
Performs searching of overlapped mesh elements.
|
overridevirtual |
Set of all mesh elements (triangles) of the 1st shape.
|
inline |
Sets filtering tool for preliminary checking pairs of mesh elements.