Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
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

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

bool 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

bool IsMetricBetter (const NumType &theLeft, const NumType &theRight) const override
 Rejects the branch by the metric.
 
bool RejectMetric (const NumType &theMetric) const override
 Rejects the branch by the metric.
 
bool Stop () const override
 Returns the flag controlling the tree descend.
 
- Public Member Functions inherited from BVH_Traverse< NumType, Dimension, BVHSetType, NumType >
 BVH_Traverse ()
 
void SetBVHSet (BVHSetType *theBVHSet)
 
virtual bool 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 bool 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 bool Accept (const int 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.
 
int Select ()
 Performs selection of the elements from the BVH tree by the rules defined in Accept/Reject methods. Returns the number of accepted elements.
 
int 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.
 
- Public Member Functions inherited from BVH_BaseTraverse< MetricType >
virtual bool IsMetricBetter (const MetricType &, const MetricType &) const
 
virtual bool RejectMetric (const MetricType &) const
 

Protected Attributes

Fields
NumType myDistance
 Distance.
 
bool myIsDone
 State of the algorithm.
 
ObjectType myObject
 Object to compute the distance to.
 
- Protected Attributes inherited from BVH_Traverse< NumType, Dimension, BVHSetType, NumType >
BVHSetTypemyBVHSet
 

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< MetricType >
 BVH_BaseTraverse ()
 Destructor.
 
virtual ~BVH_BaseTraverse ()=default
 Destructor.
 

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

Member Function Documentation

◆ ComputeDistance()

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

◆ 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 >
bool BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::IsDone ( ) const
inline

Returns the computed distance.

◆ IsMetricBetter()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
bool BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::IsMetricBetter ( const NumType & theLeft,
const NumType & theRight ) const
inlineoverride

Rejects the branch by the metric.

◆ RejectMetric()

template<class NumType , int Dimension, class ObjectType , class BVHSetType >
bool BVH_Distance< NumType, Dimension, ObjectType, BVHSetType >::RejectMetric ( const NumType & theMetric) const
inlineoverride

Rejects the branch by the metric.

◆ SetObject()

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

◆ Stop()

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

Returns the flag controlling the tree descend.

Reimplemented from BVH_BaseTraverse< MetricType >.

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 >
bool 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: