Open CASCADE Technology 7.8.0
|
Class defining a thread pool for building BVH for the list of Select3D_SensitiveEntity within background thread(s). More...
#include <SelectMgr_BVHThreadPool.hxx>
Data Structures | |
class | BVHThread |
Thread with back reference to thread pool and thread mutex in it. More... | |
class | Sentry |
Class providing a simple interface to mutexes for list of BVHThread. More... | |
Public Member Functions | |
SelectMgr_BVHThreadPool (Standard_Integer theNbThreads) | |
Main constructor. | |
virtual | ~SelectMgr_BVHThreadPool () |
Destructor. | |
void | AddEntity (const Handle< Select3D_SensitiveEntity > &theEntity) |
Queue a sensitive entity to build its BVH. | |
void | StopThreads () |
Stops threads. | |
void | WaitThreads () |
Waits for all threads finish their jobs. | |
NCollection_Array1< BVHThread > & | Threads () |
Returns array of threads. | |
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. | |
Protected Attributes | |
NCollection_List< Handle< Select3D_SensitiveEntity > > | myBVHToBuildList |
list of queued sensitive entities | |
NCollection_Array1< BVHThread > | myBVHThreads |
threads to build BVH | |
Standard_Boolean | myToStopBVHThread |
flag to stop BVH threads | |
Standard_Mutex | myBVHListMutex |
mutex for interaction with myBVHToBuildList | |
Standard_Condition | myWakeEvent |
raises when any sensitive is added to the BVH list | |
Standard_Condition | myIdleEvent |
raises when BVH list become empty | |
Standard_Boolean | myIsStarted |
indicates that threads are running | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. | |
Static Public Member Functions inherited from Standard_Transient | |
static constexpr const char * | get_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. | |
Class defining a thread pool for building BVH for the list of Select3D_SensitiveEntity within background thread(s).
SelectMgr_BVHThreadPool::SelectMgr_BVHThreadPool | ( | Standard_Integer | theNbThreads | ) |
Main constructor.
|
virtual |
Destructor.
void SelectMgr_BVHThreadPool::AddEntity | ( | const Handle< Select3D_SensitiveEntity > & | theEntity | ) |
Queue a sensitive entity to build its BVH.
void SelectMgr_BVHThreadPool::StopThreads | ( | ) |
Stops threads.
|
inline |
Returns array of threads.
void SelectMgr_BVHThreadPool::WaitThreads | ( | ) |
Waits for all threads finish their jobs.
|
protected |
mutex for interaction with myBVHToBuildList
|
protected |
threads to build BVH
|
protected |
list of queued sensitive entities
|
protected |
raises when BVH list become empty
|
protected |
indicates that threads are running
|
protected |
flag to stop BVH threads
|
protected |
raises when any sensitive is added to the BVH list