| 
|   | 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.  
  | 
|   | 
| virtual  | ~BVH_BinnedBuilder () | 
|   | Releases resources of binned SAH BVH builder.  
  | 
|   | 
|   | BVH_QueueBuilder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth, const Standard_Integer theNumOfThreads=1) | 
|   | Creates new BVH queue based builder.  
  | 
|   | 
| virtual  | ~BVH_QueueBuilder () | 
|   | Releases resources of BVH queue based builder.  
  | 
|   | 
| 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.  
  | 
|   | 
| Standard_Integer  | MaxTreeDepth () const | 
|   | Returns the maximum depth of constructed BVH.  
  | 
|   | 
| Standard_Integer  | LeafNodeSize () const | 
|   | Returns the maximum number of sub-elements in the leaf.  
  | 
|   | 
| Standard_Boolean  | IsParallel () const | 
|   | Returns parallel flag.  
  | 
|   | 
| void  | SetParallel (const Standard_Boolean isParallel) | 
|   | Set parallel flag contolling possibility of parallel execution.  
  | 
|   | 
  Public Member Functions inherited from Standard_Transient | 
|   | Standard_Transient () | 
|   | Empty constructor.  
  | 
|   | 
|   | Standard_Transient (const Standard_Transient &) | 
|   | Copy constructor – does nothing.  
  | 
|   | 
| Standard_Transient &  | operator= (const Standard_Transient &) | 
|   | Assignment operator, needed to avoid copying reference counter.  
  | 
|   | 
| virtual  | ~Standard_Transient () | 
|   | Destructor must be virtual.  
  | 
|   | 
| virtual const opencascade::handle< Standard_Type > &  | DynamicType () const | 
|   | Returns a type descriptor about this object.  
  | 
|   | 
| Standard_Boolean  | IsInstance (const opencascade::handle< Standard_Type > &theType) const | 
|   | Returns a true value if this is an instance of Type.  
  | 
|   | 
| Standard_Boolean  | IsInstance (const Standard_CString theTypeName) const | 
|   | Returns a true value if this is an instance of TypeName.  
  | 
|   | 
| 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.  
  | 
|   | 
| 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.  
  | 
|   | 
| 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.  
  | 
|   | 
| Standard_Integer  | GetRefCount () const noexcept | 
|   | Get the reference counter of this object.  
  | 
|   | 
| void  | IncrementRefCounter () noexcept | 
|   | Increments the reference counter of this object.  
  | 
|   | 
| Standard_Integer  | DecrementRefCounter () noexcept | 
|   | Decrements the reference counter of this object; returns the decremented value.  
  | 
|   | 
| virtual void  | Delete () const | 
|   | Memory deallocator for transient classes.  
  | 
|   | 
 | 
| 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.  
  | 
|   | 
| 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.  
  | 
|   | 
| 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.  
  | 
|   | 
|   | BVH_Builder (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth) | 
|   | Creates new abstract BVH builder.  
  | 
|   | 
| void  | updateDepth (BVH_Tree< T, N > *theBVH, const Standard_Integer theLevel) const | 
|   | Updates depth of constructed BVH tree.  
  | 
|   | 
|   | BVH_BuilderTransient (const Standard_Integer theLeafNodeSize, const Standard_Integer theMaxTreeDepth) | 
|   | Creates new abstract BVH builder.  
  | 
|   | 
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.