Open CASCADE Technology 7.8.2.dev
|
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 | |
BVH_PairTraverse () | |
Constructor. | |
Setting the sets to access the elements and BVH trees | |
void | SetBVHSets (BVHSetType *theBVHSet1, BVHSetType *theBVHSet2) |
Sets the BVH Sets containing the BVH trees. | |
Rules for Accept/Reject | |
virtual Standard_Boolean | RejectNode (const BVH_VecNt &theCornerMin1, const BVH_VecNt &theCornerMax1, const BVH_VecNt &theCornerMin2, const BVH_VecNt &theCornerMax2, MetricType &theMetric) const =0 |
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 | 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 () |
Selection of the pairs of elements of two BVH trees by the rules defined in Accept/Reject methods. The method requires the BVHSets containing BVH trees to be set. 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 |
Compares the two metrics and chooses the best one. Returns true if the first metric is better than the second, false otherwise. | |
virtual Standard_Boolean | RejectMetric (const NumType &) const |
Rejects the node by the metric. | |
virtual Standard_Boolean | Stop () const |
Returns the flag controlling the tree descend. Returns true if the tree descend should be stopped. | |
Protected Attributes | |
Fields | |
BVHSetType * | myBVHSet1 |
BVHSetType * | myBVHSet2 |
Additional Inherited Members | |
![]() | |
BVH_BaseTraverse () | |
Constructor. | |
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 |
BVH_Box<NumType,Dimension>::BVH_VecNt BVH_PairTraverse< NumType, Dimension, BVHSetType, MetricType >::BVH_VecNt |
|
inline |
Constructor.
|
pure virtual |
Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.
Implemented in BOPTools_PairSelector< Dimension >, and BRepExtrema_OverlapTool.
|
pure virtual |
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.
Implemented in BVH_PairDistance< NumType, Dimension, BVHSetType >.
|
inline |
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 |