Abstract class implementing the parallel traverse of two binary trees. Selection of the data from the trees is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above. More...
#include <BVH_Traverse.hxx>
Public Types | |
public types | |
typedef BVH_Box< NumType, Dimension >::BVH_VecNt | BVH_VecNt |
Public Member Functions | |
Constructor | |
Constructor | |
BVH_PairTraverse () | |
Setting the sets to access the elements and BVH trees | |
void | SetBVHSets (BVHSetType *theBVHSet1, BVHSetType *theBVHSet2) |
Rules for Accept/Reject | |
Rejection of the pair of nodes by bounding boxes. Metric is computed to choose the best branch. Returns true if the pair of nodes should be rejected, false otherwise. | |
virtual Standard_Boolean | RejectNode (const BVH_VecNt &theCornerMin1, const BVH_VecNt &theCornerMax1, const BVH_VecNt &theCornerMin2, const BVH_VecNt &theCornerMax2, MetricType &theMetric) const =0 |
Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise. | |
virtual Standard_Boolean | Accept (const Standard_Integer theIndex1, const Standard_Integer theIndex2)=0 |
Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise. | |
Selection | |
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< NumType, Dimension > > &theBVH1, const opencascade::handle< BVH_Tree< NumType, 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 NumType &, const NumType &) const |
virtual Standard_Boolean | RejectMetric (const NumType &) const |
virtual Standard_Boolean | Stop () const |
Protected Attributes | |
Fields | |
BVHSetType * | myBVHSet1 |
BVHSetType * | myBVHSet2 |
Additional Inherited Members | |
![]() | |
BVH_BaseTraverse () | |
Destructor. | |
virtual | ~BVH_BaseTraverse () |
Destructor. | |
Abstract class implementing the parallel traverse of two binary trees. Selection of the data from the trees is performed by the rules defined in the Accept/Reject methods. See description of the required methods in the comments above.
NumType | Numeric data type |
Dimension | Vector dimension |
BVHSetType | Type of set containing the BVH tree (required to access the elements by the index) |
MetricType | Type of metric to perform more optimal tree descend |
typedef BVH_Box<NumType,Dimension>::BVH_VecNt BVH_PairTraverse< NumType, Dimension, BVHSetType, MetricType >::BVH_VecNt |
|
inline |
|
pure virtual |
Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.
Implemented in BOPTools_PairSelector< Dimension >, BOPTools_PairSelector< 2 >, BOPTools_PairSelector< 2 >, BOPTools_PairSelector< 3 >, BOPTools_PairSelector< 3 >, and BRepExtrema_OverlapTool.
|
pure virtual |
Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.
Implemented in BVH_PairDistance< NumType, Dimension, BVHSetType >.
|
inline |
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 BVH_PairTraverse< NumType, Dimension, BVHSetType, MetricType >::Select | ( | const opencascade::handle< BVH_Tree< NumType, Dimension > > & | theBVH1, |
const opencascade::handle< BVH_Tree< NumType, 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.
|
inline |
|
protected |
|
protected |