Open CASCADE Technology  7.4.1.dev
BVH_Distance< NumType, Dimension, ObjectType, BVHSetType > Class Template Reference

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>

Inheritance diagram for BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >:
Inheritance graph
[legend]

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...
 

Detailed Description

template<class NumType, int Dimension, class ObjectType, class BVHSetType>
class BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >

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:

Template Parameters
NumTypeNumeric data type
DimensionVector dimension
ObjectTypeType of the object to which the distance is required
BVHSetTypeType of the set on which BVH is built

Constructor & Destructor Documentation

◆ BVH_Distance()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::BVH_Distance ( )
inline

Constructor.

Member Function Documentation

◆ ComputeDistance()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
NumType BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::ComputeDistance ( )
inline

Computes the distance between object and BVH tree.

◆ Distance()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
NumType BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::Distance ( ) const
inline

Returns the computed distance.

◆ IsDone()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
Standard_Boolean BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::IsDone ( ) const
inline

Returns IsDone flag.

◆ IsMetricBetter()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
virtual Standard_Boolean BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::IsMetricBetter ( const NumType &  theLeft,
const NumType &  theRight 
) const
inlineoverridevirtual

Compares the two metrics and chooses the best one.

Reimplemented from BVH_BaseTraverse< NumType >.

◆ RejectMetric()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
virtual Standard_Boolean BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::RejectMetric ( const NumType &  theMetric) const
inlineoverridevirtual

Rejects the branch by the metric.

Reimplemented from BVH_BaseTraverse< NumType >.

◆ SetObject()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
void BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::SetObject ( const ObjectType &  theObject)
inline

Sets the object to which the distance is required.

◆ Stop()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
virtual Standard_Boolean BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::Stop ( ) const
inlineoverridevirtual

Returns the flag controlling the tree descend.

Reimplemented from BVH_BaseTraverse< NumType >.

Field Documentation

◆ myDistance

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
NumType BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::myDistance
protected

Distance.

◆ myIsDone

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
Standard_Boolean BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::myIsDone
protected

State of the algorithm.

◆ myObject

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
ObjectType BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::myObject
protected

Object to compute the distance to.


The documentation for this class was generated from the following file: