Open CASCADE Technology  6.9.0
Public Types | Public Member Functions | Protected Member Functions

BVH_BinnedBuilder< T, N, Bins > Class Template Reference

Performs building of BVH tree using binned SAH algorithm. Number of Bins controls tree's quality (greater - better) in cost of construction time. More...

#include <BVH_BinnedBuilder.hxx>

Inheritance diagram for BVH_BinnedBuilder< T, N, Bins >:
Inheritance graph
[legend]

Public Types

typedef BVH_Bin< T, N > BVH_BinVector [Bins]
 Type for the array of bins of BVH tree node. More...
 

Public Member Functions

 BVH_BinnedBuilder (const Standard_Integer theLeafNodeSize=5, const Standard_Integer theMaxTreeDepth=32, const Standard_Boolean theToUseMainAxis=Standard_False)
 Creates binned SAH BVH builder. More...
 
virtual ~BVH_BinnedBuilder ()
 Releases resources of binned SAH BVH builder. More...
 
- Public Member Functions inherited from BVH_QueueBuilder< T, N >
 BVH_QueueBuilder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth)
 Creates new BVH queue based builder. More...
 
virtual ~BVH_QueueBuilder ()=0
 Releases resources of BVH queue based builder. More...
 
virtual void Build (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const BVH_Box< T, N > &theBox)
 Builds BVH using specific algorithm. More...
 
- Public Member Functions inherited from BVH_Builder< T, N >
 BVH_Builder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth)
 Creates new abstract BVH builder. More...
 
virtual ~BVH_Builder ()
 Releases resources of BVH builder. More...
 

Protected Member Functions

virtual void BuildNode (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const Standard_Integer theNode)
 Builds BVH node for specified task info. More...
 
virtual void GetSubVolumes (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const Standard_Integer theNode, BVH_BinVector &theBins, const Standard_Integer theAxis)
 Arranges node primitives into bins. More...
 
- Protected Member Functions inherited from BVH_Builder< T, N >
void UpdateDepth (BVH_Tree< T, N > *theBVH, const Standard_Integer theLevel)
 Updates depth of constructed BVH tree. More...
 

Additional Inherited Members

- Protected Attributes inherited from BVH_QueueBuilder< T, N >
NCollection_Vector
< Standard_Integer
myTasksQueue
 Queue to manage BVH node building tasks. More...
 
- Protected Attributes inherited from BVH_Builder< T, N >
Standard_Integer myMaxTreeDepth
 Maximum depth of constructed BVH. More...
 
Standard_Integer myLeafNodeSize
 Maximum number of objects per leaf. More...
 

Detailed Description

template<class T, int N, int Bins = 32>
class BVH_BinnedBuilder< T, N, Bins >

Performs building of BVH tree using binned SAH algorithm. Number of Bins controls tree's quality (greater - better) in cost of construction time.

Member Typedef Documentation

template<class T, int N, int Bins = 32>
typedef BVH_Bin<T, N> BVH_BinnedBuilder< T, N, Bins >::BVH_BinVector[Bins]

Type for the array of bins of BVH tree node.

Constructor & Destructor Documentation

template<class T, int N, int Bins = 32>
BVH_BinnedBuilder< T, N, Bins >::BVH_BinnedBuilder ( const Standard_Integer  theLeafNodeSize = 5,
const Standard_Integer  theMaxTreeDepth = 32,
const Standard_Boolean  theToUseMainAxis = Standard_False 
)

Creates binned SAH BVH builder.

template<class T, int N, int Bins = 32>
virtual BVH_BinnedBuilder< T, N, Bins >::~BVH_BinnedBuilder ( )
virtual

Releases resources of binned SAH BVH builder.

Member Function Documentation

template<class T, int N, int Bins = 32>
virtual void BVH_BinnedBuilder< T, N, Bins >::BuildNode ( BVH_Set< T, N > *  theSet,
BVH_Tree< T, N > *  theBVH,
const Standard_Integer  theNode 
)
protectedvirtual

Builds BVH node for specified task info.

Reimplemented from BVH_QueueBuilder< T, N >.

template<class T, int N, int Bins = 32>
virtual void BVH_BinnedBuilder< T, N, Bins >::GetSubVolumes ( BVH_Set< T, N > *  theSet,
BVH_Tree< T, N > *  theBVH,
const Standard_Integer  theNode,
BVH_BinVector theBins,
const Standard_Integer  theAxis 
)
protectedvirtual

Arranges node primitives into bins.


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