Open CASCADE Technology Reference Manual 8.0.0.dev-68d3dc89
 
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Loading...
Searching...
No Matches
BOPTools_PairSelector< Dimension > Class Template Reference

Template Selector for selection of the elements from two BVH trees. More...

#include <BOPTools_PairSelector.hxx>

Inheritance diagram for BOPTools_PairSelector< Dimension >:

Data Structures

struct  PairIDs
 

Public Types

public types

Auxiliary structure to keep the pair of indices

typedef BVH::VectorType< Standard_Real, Dimension >::Type BVH_VecNd
 
- Public Types inherited from BVH_PairTraverse< Standard_Real, Dimension, BVH_BoxSet< Standard_Real, Dimension, Standard_Integer > >
typedef BVH_Box< Standard_Real, Dimension >::BVH_VecNt BVH_VecNt
 

Public Member Functions

Constructor

Empty constructor

 BOPTools_PairSelector ()
 
public interfaces

Clears the indices

void Clear ()
 Sorts the indices.
 
void Sort ()
 Sorts the indices.
 
void SetSame (const Standard_Boolean theIsSame)
 Tells to selector that BVH trees are the same. If the flag is set to true the resulting vector will contain only unique pairs (mirrored pairs will be rejected, e.g. (1, 2) will be taken, (2, 1) will be rejected) and will not contain pairs in which IDs are the same (pair (1, 1) will be rejected). If it is required to have a full vector of pairs even for the same BVH trees, just keep the false value of this flag.
 
const std::vector< PairIDs > & Pairs () const
 Returns the list of accepted indices.
 
Rejection/Acceptance rules

Basing on the bounding boxes of the nodes checks if the pair of nodes should be rejected.

virtual Standard_Boolean RejectNode (const BVH_VecNd &theCMin1, const BVH_VecNd &theCMax1, const BVH_VecNd &theCMin2, const BVH_VecNd &theCMax2, Standard_Real &) const override
 Checks if the pair of elements should be rejected.
 
Standard_Boolean RejectElement (const Standard_Integer theID1, const Standard_Integer theID2)
 Checks if the pair of elements should be rejected.
 
virtual Standard_Boolean Accept (const Standard_Integer theID1, const Standard_Integer theID2) override
 Checks and accepts the pair of elements.
 
- Public Member Functions inherited from BVH_PairTraverse< Standard_Real, Dimension, BVH_BoxSet< Standard_Real, Dimension, Standard_Integer > >
 BVH_PairTraverse ()
 
void SetBVHSets (BVH_BoxSet< Standard_Real, Dimension, Standard_Integer > *theBVHSet1, BVH_BoxSet< Standard_Real, Dimension, Standard_Integer > *theBVHSet2)
 
virtual Standard_Boolean RejectNode (const BVH_VecNt &theCornerMin1, const BVH_VecNt &theCornerMax1, const BVH_VecNt &theCornerMin2, const BVH_VecNt &theCornerMax2, Standard_Real &theMetric) const=0
 Leaf element acceptance. Returns true if the pair of elements is accepted, false otherwise.
 
Standard_Integer Select ()
 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.
 
Standard_Integer Select (const opencascade::handle< BVH_Tree< Standard_Real, Dimension > > &theBVH1, const opencascade::handle< BVH_Tree< Standard_Real, 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.
 
- Public Member Functions inherited from BVH_BaseTraverse< Standard_Real >
virtual Standard_Boolean IsMetricBetter (const Standard_Real &, const Standard_Real &) const
 
virtual Standard_Boolean RejectMetric (const Standard_Real &) const
 
virtual Standard_Boolean Stop () const
 

Protected Attributes

Fields
std::vector< PairIDsmyPairs
 Selected pairs of indices.
 
Standard_Boolean mySameBVHs
 Selection is performed from the same BVH trees.
 
- Protected Attributes inherited from BVH_PairTraverse< Standard_Real, Dimension, BVH_BoxSet< Standard_Real, Dimension, Standard_Integer > >
BVH_BoxSet< Standard_Real, Dimension, Standard_Integer > * myBVHSet1
 
BVH_BoxSet< Standard_Real, Dimension, Standard_Integer > * myBVHSet2
 

Additional Inherited Members

- Protected Member Functions inherited from BVH_BaseTraverse< Standard_Real >
 BVH_BaseTraverse ()
 Destructor.
 
virtual ~BVH_BaseTraverse ()
 Destructor.
 

Detailed Description

template<int Dimension>
class BOPTools_PairSelector< Dimension >

Template Selector for selection of the elements from two BVH trees.

Member Typedef Documentation

◆ BVH_VecNd

template<int Dimension>
typedef BVH::VectorType<Standard_Real,Dimension>::Type BOPTools_PairSelector< Dimension >::BVH_VecNd

Constructor & Destructor Documentation

◆ BOPTools_PairSelector()

template<int Dimension>
BOPTools_PairSelector< Dimension >::BOPTools_PairSelector ( )
inline

Member Function Documentation

◆ Accept()

template<int Dimension>
virtual Standard_Boolean BOPTools_PairSelector< Dimension >::Accept ( const Standard_Integer theID1,
const Standard_Integer theID2 )
inlineoverridevirtual

◆ Clear()

template<int Dimension>
void BOPTools_PairSelector< Dimension >::Clear ( )
inline

Sorts the indices.

◆ Pairs()

template<int Dimension>
const std::vector< PairIDs > & BOPTools_PairSelector< Dimension >::Pairs ( ) const
inline

Returns the list of accepted indices.

◆ RejectElement()

template<int Dimension>
Standard_Boolean BOPTools_PairSelector< Dimension >::RejectElement ( const Standard_Integer theID1,
const Standard_Integer theID2 )
inline

Checks if the pair of elements should be rejected.

◆ RejectNode()

template<int Dimension>
virtual Standard_Boolean BOPTools_PairSelector< Dimension >::RejectNode ( const BVH_VecNd & theCMin1,
const BVH_VecNd & theCMax1,
const BVH_VecNd & theCMin2,
const BVH_VecNd & theCMax2,
Standard_Real &  ) const
inlineoverridevirtual

Checks if the pair of elements should be rejected.

◆ SetSame()

template<int Dimension>
void BOPTools_PairSelector< Dimension >::SetSame ( const Standard_Boolean theIsSame)
inline

Tells to selector that BVH trees are the same. If the flag is set to true the resulting vector will contain only unique pairs (mirrored pairs will be rejected, e.g. (1, 2) will be taken, (2, 1) will be rejected) and will not contain pairs in which IDs are the same (pair (1, 1) will be rejected). If it is required to have a full vector of pairs even for the same BVH trees, just keep the false value of this flag.

◆ Sort()

template<int Dimension>
void BOPTools_PairSelector< Dimension >::Sort ( )
inline

Sorts the indices.

Field Documentation

◆ myPairs

template<int Dimension>
std::vector<PairIDs> BOPTools_PairSelector< Dimension >::myPairs
protected

Selected pairs of indices.

◆ mySameBVHs

template<int Dimension>
Standard_Boolean BOPTools_PairSelector< Dimension >::mySameBVHs
protected

Selection is performed from the same BVH trees.


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