Open CASCADE Technology  7.6.0.dev
Public Types | Public Member Functions | Protected Attributes
BVH_RadixSorter< T, N > Class Template Reference

Performs radix sort of a BVH primitive set using 10-bit Morton codes (or 1024 x 1024 x 1024 grid). More...

#include <BVH_RadixSorter.hxx>

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

Public Types

typedef BVH::VectorType< T, N >::Type BVH_VecNt
 

Public Member Functions

 BVH_RadixSorter (const BVH_Box< T, N > &theBox)
 Creates new BVH radix sorter for the given AABB. More...
 
virtual void Perform (BVH_Set< T, N > *theSet) override
 Sorts the set. More...
 
virtual void Perform (BVH_Set< T, N > *theSet, const Standard_Integer theStart, const Standard_Integer theFinal) override
 Sorts the given (inclusive) range in the set. More...
 
const NCollection_Array1< BVH_EncodedLink > & EncodedLinks () const
 Returns Morton codes assigned to BVH primitives. More...
 
- Public Member Functions inherited from BVH_Sorter< T, N >
 BVH_Sorter ()
 Performs default initialization. More...
 
virtual ~BVH_Sorter ()
 Releases resources of BVH sorter. More...
 
Standard_Boolean IsParallel () const
 Returns parallel flag. More...
 
void SetParallel (const Standard_Boolean isParallel)
 Set parallel flag contolling possibility of parallel execution. More...
 

Protected Attributes

BVH_Box< T, N > myBox
 Axis-aligned bounding box (AABB) to perform sorting. More...
 
Handle< NCollection_Shared< NCollection_Array1< BVH_EncodedLink > > > myEncodedLinks
 Morton codes assigned to BVH primitives. More...
 

Detailed Description

template<class T, int N>
class BVH_RadixSorter< T, N >

Performs radix sort of a BVH primitive set using 10-bit Morton codes (or 1024 x 1024 x 1024 grid).

Member Typedef Documentation

◆ BVH_VecNt

template<class T , int N>
typedef BVH::VectorType<T, N>::Type BVH_RadixSorter< T, N >::BVH_VecNt

Constructor & Destructor Documentation

◆ BVH_RadixSorter()

template<class T , int N>
BVH_RadixSorter< T, N >::BVH_RadixSorter ( const BVH_Box< T, N > &  theBox)
inline

Creates new BVH radix sorter for the given AABB.

Member Function Documentation

◆ EncodedLinks()

template<class T , int N>
const NCollection_Array1<BVH_EncodedLink>& BVH_RadixSorter< T, N >::EncodedLinks ( ) const
inline

Returns Morton codes assigned to BVH primitives.

◆ Perform() [1/2]

template<class T , int N>
virtual void BVH_RadixSorter< T, N >::Perform ( BVH_Set< T, N > *  theSet)
inlineoverridevirtual

Sorts the set.

Implements BVH_Sorter< T, N >.

◆ Perform() [2/2]

template<class T , int N>
void BVH_RadixSorter< T, N >::Perform ( BVH_Set< T, N > *  theSet,
const Standard_Integer  theStart,
const Standard_Integer  theFinal 
)
overridevirtual

Sorts the given (inclusive) range in the set.

Implements BVH_Sorter< T, N >.

Field Documentation

◆ myBox

template<class T , int N>
BVH_Box<T, N> BVH_RadixSorter< T, N >::myBox
protected

Axis-aligned bounding box (AABB) to perform sorting.

◆ myEncodedLinks

template<class T , int N>
Handle< NCollection_Shared<NCollection_Array1<BVH_EncodedLink> > > BVH_RadixSorter< T, N >::myEncodedLinks
protected

Morton codes assigned to BVH primitives.


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