Open CASCADE Technology 7.8.2.dev
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 >:

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.
 
virtual void Perform (BVH_Set< T, N > *theSet) override
 Sorts the set.
 
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.
 
const NCollection_Array1< BVH_EncodedLink > & EncodedLinks () const
 Returns Morton codes assigned to BVH primitives.
 
- Public Member Functions inherited from BVH_Sorter< T, N >
 BVH_Sorter ()
 Performs default initialization.
 
virtual ~BVH_Sorter ()
 Releases resources of BVH sorter.
 
Standard_Boolean IsParallel () const
 Returns parallel flag.
 
void SetParallel (const Standard_Boolean isParallel)
 Set parallel flag contolling possibility of parallel execution.
 

Protected Attributes

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

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