Open CASCADE Technology
7.4.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 | |
BVH_Distance () | |
Constructor. More... | |
Setting object for distance computation | |
void | SetObject (const ObjectType &theObject) |
Sets the object to which the distance is required. More... | |
Compute the distance | |
NumType | ComputeDistance () |
Computes the distance between object and BVH tree. More... | |
Accessing the results | |
Standard_Boolean | IsDone () const |
Returns IsDone flag. More... | |
NumType | Distance () const |
Returns the computed distance. More... | |
Definition of the rules for tree descend | |
virtual Standard_Boolean | IsMetricBetter (const NumType &theLeft, const NumType &theRight) const override |
Compares the two metrics and chooses the best one. More... | |
virtual Standard_Boolean | RejectMetric (const NumType &theMetric) const override |
Rejects the branch by the metric. More... | |
virtual Standard_Boolean | Stop () const override |
Returns the flag controlling the tree descend. More... | |
Public Member Functions inherited from BVH_Traverse< NumType, Dimension, BVHSetType, NumType > | |
BVH_Traverse () | |
Constructor. More... | |
void | SetBVHSet (BVHSetType *theBVHSet) |
Sets the BVH Set containing the BVH tree. More... | |
virtual Standard_Boolean | AcceptMetric (const NumType &) const |
Basing on the given metric, checks if the whole branch may be accepted without any further checks. Returns true if the metric is accepted, false otherwise. More... | |
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. More... | |
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. More... | |
Standard_Integer | Select () |
Selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. The method requires the BVHSet containing BVH tree to be set. Returns the number of accepted elements. More... | |
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. More... | |
Metrics comparison for choosing the best branch | |
Rejection of the node by metric | |
Condition to stop the descend |
Protected Attributes | |
Fields | |
NumType | myDistance |
Distance. More... | |
Standard_Boolean | myIsDone |
State of the algorithm. More... | |
ObjectType | myObject |
Object to compute the distance to. More... | |
Protected Attributes inherited from BVH_Traverse< NumType, Dimension, BVHSetType, NumType > | |
BVHSetType * | myBVHSet |
Additional Inherited Members | |
Public Types inherited from BVH_Traverse< NumType, Dimension, BVHSetType, NumType > | |
typedef BVH_Box< NumType, Dimension >::BVH_VecNt | BVH_VecNt |
Protected Member Functions inherited from BVH_BaseTraverse< NumType > | |
BVH_BaseTraverse () | |
Constructor. More... | |
virtual | ~BVH_BaseTraverse () |
Destructor. More... | |
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 |
Constructor.
|
inline |
Computes the distance between object and BVH tree.
|
inline |
Returns the computed distance.
|
inline |
Returns IsDone flag.
|
inlineoverridevirtual |
Compares the two metrics and chooses the best one.
Reimplemented from BVH_BaseTraverse< NumType >.
|
inlineoverridevirtual |
Rejects the branch by the metric.
Reimplemented from BVH_BaseTraverse< NumType >.
|
inline |
Sets the object to which the distance is required.
|
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.