|
| BVH_BinnedBuilder (const Standard_Integer theLeafNodeSize=BVH_Constants_LeafNodeSizeDefault, const Standard_Integer theMaxTreeDepth=BVH_Constants_MaxTreeDepth, const Standard_Boolean theDoMainSplits=Standard_False, const Standard_Integer theNumOfThreads=1) |
| Creates binned SAH BVH builder. More...
|
|
virtual | ~BVH_BinnedBuilder () |
| Releases resources of binned SAH BVH builder. More...
|
|
| BVH_QueueBuilder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth, const Standard_Integer theNumOfThreads=1) |
| Creates new BVH queue based builder. More...
|
|
virtual | ~BVH_QueueBuilder () |
| 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) const override |
| Builds BVH using specific algorithm. More...
|
|
Standard_Integer | MaxTreeDepth () const |
| Returns the maximum depth of constructed BVH. More...
|
|
Standard_Integer | LeafNodeSize () const |
| Returns the maximum number of sub-elements in the leaf. More...
|
|
Standard_Boolean | IsParallel () const |
| Returns parallel flag. More...
|
|
void | SetParallel (const Standard_Boolean isParallel) |
| Set parallel flag contolling possibility of parallel execution. More...
|
|
Public Member Functions inherited from Standard_Transient |
| Standard_Transient () |
| Empty constructor. More...
|
|
| Standard_Transient (const Standard_Transient &) |
| Copy constructor – does nothing. More...
|
|
Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter. More...
|
|
virtual | ~Standard_Transient () |
| Destructor must be virtual. More...
|
|
virtual void | Delete () const |
| Memory deallocator for transient classes. More...
|
|
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| Returns a type descriptor about this object. More...
|
|
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| Returns a true value if this is an instance of Type. More...
|
|
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
| Returns a true value if this is an instance of TypeName. More...
|
|
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
|
|
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
|
|
Standard_Transient * | This () const |
| Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More...
|
|
Standard_Integer | GetRefCount () const |
| Get the reference counter of this object. More...
|
|
void | IncrementRefCounter () const |
| Increments the reference counter of this object. More...
|
|
Standard_Integer | DecrementRefCounter () const |
| Decrements the reference counter of this object; returns the decremented value. More...
|
|
|
virtual BVH_QueueBuilder< T, N >::BVH_ChildNodes | buildNode (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const Standard_Integer theNode) const override |
| Performs splitting of the given BVH node. 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) const |
| Arranges node primitives into bins. More...
|
|
virtual void | addChildren (BVH_Tree< T, N > *theBVH, BVH_BuildQueue &theBuildQueue, const Standard_Integer theNode, const BVH_ChildNodes &theSubNodes) const |
| Processes child nodes of the split BVH node. More...
|
|
| BVH_Builder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth) |
| Creates new abstract BVH builder. More...
|
|
void | updateDepth (BVH_Tree< T, N > *theBVH, const Standard_Integer theLevel) const |
| Updates depth of constructed BVH tree. More...
|
|
| BVH_BuilderTransient (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth) |
| Creates new abstract BVH builder. More...
|
|
template<class T, int N, int Bins = BVH_Constants_NbBinsOptimal>
class BVH_BinnedBuilder< T, N, Bins >
Performs construction of BVH tree using binned SAH algorithm. Number of bins controls BVH quality in cost of construction time (greater - better). For optimal results, use 32 - 48 bins. However, reasonable performance is provided even for 4 - 8 bins (it is only 10-20% lower in comparison with optimal settings). Note that multiple threads can be used only with thread safe BVH primitive sets.