Open CASCADE Technology 7.9.0
|
Abstract class for computation of the min distance between some Object and elements of BVH tree. To use this class it is required to define two methods: More...
#include <BVH_Distance.hxx>
Public Member Functions | |
Constructor | |
Constructor | |
BVH_Distance () | |
Setting object for distance computation | |
Sets the object to which the distance is required | |
void | SetObject (const ObjectType &theObject) |
Compute the distance | |
Computes the distance between object and BVH tree | |
NumType | ComputeDistance () |
Accessing the results | |
Returns IsDone flag | |
Standard_Boolean | IsDone () const |
Returns the computed distance. | |
NumType | Distance () const |
Returns the computed distance. | |
Definition of the rules for tree descend | |
Compares the two metrics and chooses the best one | |
virtual Standard_Boolean | IsMetricBetter (const NumType &theLeft, const NumType &theRight) const override |
Rejects the branch by the metric. | |
virtual Standard_Boolean | RejectMetric (const NumType &theMetric) const override |
Rejects the branch by the metric. | |
virtual Standard_Boolean | Stop () const override |
Returns the flag controlling the tree descend. | |
![]() | |
BVH_Traverse () | |
void | SetBVHSet (BVHSetType *theBVHSet) |
virtual Standard_Boolean | AcceptMetric (const NumType &) const |
Rejection of the node by bounding box. Metric is computed to choose the best branch. Returns true if the node should be rejected, false otherwise. | |
virtual Standard_Boolean | RejectNode (const BVH_VecNt &theCornerMin, const BVH_VecNt &theCornerMax, NumType &theMetric) const=0 |
Rejection of the node by bounding box. Metric is computed to choose the best branch. Returns true if the node should be rejected, false otherwise. | |
virtual Standard_Boolean | Accept (const Standard_Integer theIndex, const NumType &theMetric)=0 |
Leaf element acceptance. Metric of the parent leaf-node is passed to avoid the check on the element and accept it unconditionally. Returns true if the element has been accepted, false otherwise. | |
Standard_Integer | Select () |
Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements. | |
Standard_Integer | Select (const opencascade::handle< BVH_Tree< NumType, Dimension > > &theBVH) |
Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements. | |
![]() |
Protected Attributes | |
Fields | |
NumType | myDistance |
Distance. | |
Standard_Boolean | myIsDone |
State of the algorithm. | |
ObjectType | myObject |
Object to compute the distance to. | |
![]() | |
BVHSetType * | myBVHSet |
Additional Inherited Members | |
![]() | |
typedef BVH_Box< NumType, Dimension >::BVH_VecNt | BVH_VecNt |
![]() | |
BVH_BaseTraverse () | |
Destructor. | |
virtual | ~BVH_BaseTraverse () |
Destructor. | |
Abstract class for computation of the min distance between some Object and elements of BVH tree. To use this class it is required to define two methods:
NumType | Numeric data type |
Dimension | Vector dimension |
ObjectType | Type of the object to which the distance is required |
BVHSetType | Type of the set on which BVH is built |
|
inline |
|
inline |
|
inline |
Returns the computed distance.
|
inline |
Returns the computed distance.
|
inlineoverridevirtual |
Rejects the branch by the metric.
Reimplemented from BVH_BaseTraverse< NumType >.
|
inlineoverridevirtual |
Rejects the branch by the metric.
Reimplemented from BVH_BaseTraverse< NumType >.
|
inline |
|
inlineoverridevirtual |
Returns the flag controlling the tree descend.
Reimplemented from BVH_BaseTraverse< NumType >.
|
protected |
Distance.
|
protected |
State of the algorithm.
|
protected |
Object to compute the distance to.