Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions
Graphic3d_BvhCStructureSet Class Reference

Set of OpenGl_Structures for building BVH tree. More...

#include <Graphic3d_BvhCStructureSet.hxx>

Inheritance diagram for Graphic3d_BvhCStructureSet:
Inheritance graph
[legend]

Public Member Functions

 Graphic3d_BvhCStructureSet ()
 Creates an empty primitive set for BVH clipping.
 
int Size () const override
 Returns total number of structures.
 
Graphic3d_BndBox3d Box (const int theIdx) const override
 Returns AABB of the structure.
 
double Center (const int theIdx, const int theAxis) const override
 Calculates center of the AABB along given axis.
 
void Swap (const int theIdx1, const int theIdx2) override
 Swaps structures with the given indices.
 
bool Add (const Graphic3d_CStructure *theStruct)
 Adds structure to the set.
 
bool Remove (const Graphic3d_CStructure *theStruct)
 Removes the given structure from the set.
 
void Clear ()
 Cleans the whole primitive set.
 
const Graphic3d_CStructureGetStructureById (int theId)
 Returns the structure corresponding to the given ID.
 
const NCollection_IndexedMap< const Graphic3d_CStructure * > & Structures () const
 Access directly a collection of structures.
 
- Public Member Functions inherited from BVH_PrimitiveSet< double, 3 >
 BVH_PrimitiveSet ()
 Creates set of abstract primitives.
 
 BVH_PrimitiveSet (const opencascade::handle< BVH_Builder< double, N > > &theBuilder)
 Creates set of abstract primitives.
 
 ~BVH_PrimitiveSet () override
 Releases resources of set of abstract primitives.
 
BVH_Box< double, N > Box () const override
 Returns AABB of primitive set.
 
virtual const opencascade::handle< BVH_Tree< double, N > > & BVH ()
 Returns BVH tree (and builds it if necessary).
 
virtual const opencascade::handle< BVH_Builder< double, N > > & Builder () const
 Returns the method (builder) used to construct BVH.
 
virtual void SetBuilder (const opencascade::handle< BVH_Builder< double, N > > &theBuilder)
 Sets the method (builder) used to construct BVH.
 
- Public Member Functions inherited from BVH_Object< T, N >
 BVH_Object ()=default
 Creates new abstract geometric object.
 
 ~BVH_Object () override=default
 Releases resources of geometric object.
 
- Public Member Functions inherited from BVH_ObjectTransient
virtual const occ::handle< BVH_Properties > & Properties () const
 Returns properties of the geometric object.
 
virtual void SetProperties (const occ::handle< BVH_Properties > &theProperties)
 Sets properties of the geometric object.
 
virtual bool IsDirty () const
 Returns TRUE if object state should be updated.
 
virtual void MarkDirty ()
 Marks object state as outdated (needs BVH rebuilding).
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()=default
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
bool IsInstance (const char *const theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
bool 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.
 
bool IsKind (const char *const 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_TransientThis () 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.
 
int GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
 
int DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 
- Public Member Functions inherited from BVH_Set< T, N >
 BVH_Set ()=default
 Creates new abstract set of objects.
 
virtual ~BVH_Set ()=default
 Releases resources of set of objects.
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Public Types inherited from BVH_Set< T, N >
typedef BVH_Box< T, N > BVH_BoxNt
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 
- Static Public Attributes inherited from BVH_PrimitiveSet< double, 3 >
static const int MaxTreeDepth
 
- Protected Member Functions inherited from BVH_PrimitiveSet< double, 3 >
virtual void Update ()
 Updates BVH of primitive set.
 
- Protected Member Functions inherited from BVH_ObjectTransient
 BVH_ObjectTransient ()
 Creates new abstract geometric object.
 
- Protected Attributes inherited from BVH_PrimitiveSet< double, 3 >
opencascade::handle< BVH_Tree< double, N > > myBVH
 Constructed bottom-level BVH.
 
opencascade::handle< BVH_Builder< double, N > > myBuilder
 Builder for bottom-level BVH.
 
BVH_Box< double, N > myBox
 Cached bounding box of geometric primitives.
 
- Protected Attributes inherited from BVH_ObjectTransient
bool myIsDirty
 Marks internal object state as outdated.
 
occ::handle< BVH_PropertiesmyProperties
 Generic properties assigned to the object.
 

Detailed Description

Set of OpenGl_Structures for building BVH tree.

Constructor & Destructor Documentation

◆ Graphic3d_BvhCStructureSet()

Graphic3d_BvhCStructureSet::Graphic3d_BvhCStructureSet ( )

Creates an empty primitive set for BVH clipping.

Member Function Documentation

◆ Add()

bool Graphic3d_BvhCStructureSet::Add ( const Graphic3d_CStructure * theStruct)

Adds structure to the set.

Returns
true if structure added, otherwise returns false (structure already in the set).

◆ Box()

Graphic3d_BndBox3d Graphic3d_BvhCStructureSet::Box ( const int theIdx) const
overridevirtual

Returns AABB of the structure.

Implements BVH_Set< T, N >.

◆ Center()

double Graphic3d_BvhCStructureSet::Center ( const int theIdx,
const int theAxis ) const
overridevirtual

Calculates center of the AABB along given axis.

Implements BVH_Set< T, N >.

◆ Clear()

void Graphic3d_BvhCStructureSet::Clear ( )

Cleans the whole primitive set.

◆ GetStructureById()

const Graphic3d_CStructure * Graphic3d_BvhCStructureSet::GetStructureById ( int theId)

Returns the structure corresponding to the given ID.

◆ Remove()

bool Graphic3d_BvhCStructureSet::Remove ( const Graphic3d_CStructure * theStruct)

Removes the given structure from the set.

Returns
true if structure removed, otherwise returns false (structure is not in the set).

◆ Size()

int Graphic3d_BvhCStructureSet::Size ( ) const
overridevirtual

Returns total number of structures.

Implements BVH_Set< T, N >.

◆ Structures()

const NCollection_IndexedMap< const Graphic3d_CStructure * > & Graphic3d_BvhCStructureSet::Structures ( ) const
inline

Access directly a collection of structures.

◆ Swap()

void Graphic3d_BvhCStructureSet::Swap ( const int theIdx1,
const int theIdx2 )
overridevirtual

Swaps structures with the given indices.

Implements BVH_Set< T, N >.


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