|
| | BVH_LinearBuilder (const Standard_Integer theLeafNodeSize=BVH_Constants_LeafNodeSizeDefault, const Standard_Integer theMaxTreeDepth=BVH_Constants_MaxTreeDepth) |
| | Creates binned LBVH builder.
|
| |
| virtual | ~BVH_LinearBuilder () |
| | Releases resources of LBVH builder.
|
| |
| virtual void | Build (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const BVH_Box< T, N > &theBox) const override |
| | Builds BVH.
|
| |
| virtual void | Build (BVH_Set< T, N > *theSet, BVH_Tree< T, N > *theBVH, const BVH_Box< T, N > &theBox) const =0 |
| | 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 void | Delete () const |
| | Memory deallocator for transient classes.
|
| |
| 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 |
| | Get the reference counter of this object.
|
| |
| void | IncrementRefCounter () const |
| | Increments the reference counter of this object.
|
| |
| Standard_Integer | DecrementRefCounter () const |
| | Decrements the reference counter of this object; returns the decremented value.
|
| |
|
| Standard_Integer | emitHierachy (BVH_Tree< T, N > *theBVH, const NCollection_Array1< BVH_EncodedLink > &theEncodedLinks, const Standard_Integer theBit, const Standard_Integer theShift, const Standard_Integer theStart, const Standard_Integer theFinal) const |
| | Emits hierarchy from sorted Morton codes.
|
| |
| Standard_Integer | lowerBound (const NCollection_Array1< BVH_EncodedLink > &theEncodedLinks, Standard_Integer theStart, Standard_Integer theFinal, Standard_Integer theDigit) const |
| | Returns index of the first element which does not compare less than the given one.
|
| |
| | 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>
class BVH_LinearBuilder< T, N >
Performs fast BVH construction using LBVH building approach. Algorithm uses spatial Morton codes to reduce the BVH construction problem to a sorting problem (radix sort – O(N) complexity). This Linear Bounding Volume Hierarchy (LBVH) builder produces BVH trees of lower quality compared to SAH-based BVH builders but it is over an order of magnitude faster (up to 3M triangles per second).
For more details see: C. Lauterbach, M. Garland, S. Sengupta, D. Luebke, and D. Manocha. Fast BVH construction on GPUs. Eurographics, 2009.