Newton Dynamics  4.00
ndSceneMixed Class Reference
Inheritance diagram for ndSceneMixed:
ndScene dClassAlloc dThreadPool dSyncMutex dThread dSemaphore dAtomic< bool > ndWorldScene< ndSceneMixed > ndWorldMixedScene ndWorldSegregatedScene

Protected Member Functions

virtual D_COLLISION_API bool AddBody (ndBodyKinematic *const body)
 
virtual D_COLLISION_API bool RemoveBody (ndBodyKinematic *const body)
 
virtual D_COLLISION_API dFloat32 RayCast (ndRayCastNotify &callback, const dVector &p0, const dVector &p1) const
 
virtual D_COLLISION_API void Cleanup ()
 
D_COLLISION_API void BalanceScene ()
 
virtual D_COLLISION_API void DebugScene (ndSceneTreeNotiFy *const notify)
 
- Protected Member Functions inherited from ndScene
D_COLLISION_API void BuildBodyArray ()
 
D_COLLISION_API void UpdateAabb ()
 
D_COLLISION_API void UpdateTransform ()
 
D_COLLISION_API void CalculateContacts ()
 
D_COLLISION_API void DeleteDeadContact ()
 
D_COLLISION_API void FindCollidingPairs ()
 
virtual D_COLLISION_API void ThreadFunction ()
 
D_COLLISION_API ndSceneTreeNodeInsertNode (ndSceneNode *const root, ndSceneNode *const node)
 
void UpdateFitness (ndFitnessList &fitness, dFloat64 &oldEntropy, ndSceneNode **const root)
 
ndContactFindContactJoint (ndBodyKinematic *const body0, ndBodyKinematic *const body1) const
 
ndJointBilateralConstraintFindBilateralJoint (ndBodyKinematic *const body0, ndBodyKinematic *const body1) const
 
void AddPair (ndBodyKinematic *const body0, ndBodyKinematic *const body1)
 
bool TestOverlaping (const ndBodyKinematic *const body0, const ndBodyKinematic *const body1) const
 
void SubmitPairs (ndSceneNode *const leaftNode, ndSceneNode *const node)
 
D_COLLISION_API void BuildContactArray ()
 
dFloat32 RayCast (ndRayCastNotify &callback, const ndSceneNode **stackPool, dFloat32 *const distance, dInt32 stack, const dFastRayTest &ray) const
 

Additional Inherited Members

- Public Member Functions inherited from ndScene
void Sync ()
 
dInt32 GetThreadCount () const
 
virtual ndWorldGetWorld () const
 
const ndBodyListGetBodyList () const
 
ndConstraintArrayGetActiveContactArray ()
 
const ndConstraintArrayGetActiveContactArray () const
 
dArray< ndBodyKinematic * > & GetActiveBodyArray ()
 
const dArray< ndBodyKinematic * > & GetActiveBodyArray () const
 
template<class T >
void SubmitJobs (void *const context=nullptr)
 
dFloat32 GetTimestep () const
 
void SetTimestep (dFloat32 timestep)
 
D_COLLISION_API void Update (dFloat32 timestep)
 
D_COLLISION_API ndContactNotifyGetContactNotify () const
 
D_COLLISION_API void SetContactNotify (ndContactNotify *const notify)
 
- Public Member Functions inherited from dClassAlloc
 dClassAlloc ()
 Empty.
 
 ~dClassAlloc ()
 Empty.
 
void * operator new (size_t size)
 Overloaded operator new for any subclass derived from dClassAlloc.
 
void operator delete (void *ptr)
 Overloaded operator delete for any subclass derived from dClassAlloc.
 
- Public Member Functions inherited from dThreadPool
D_CORE_API dThreadPool (const char *const baseName)
 
D_CORE_API dInt32 GetCount () const
 
D_CORE_API void SetCount (dInt32 count)
 
D_CORE_API void TickOne ()
 
D_CORE_API void ExecuteJobs (dThreadPoolJob **const jobs)
 
D_CORE_API void Begin ()
 
D_CORE_API void End ()
 
- Public Member Functions inherited from dSyncMutex
D_CORE_API dSyncMutex ()
 Create and initialize counter to zero.
 
D_CORE_API ~dSyncMutex ()
 Destroy mutex.
 
D_CORE_API void Sync ()
 Synchronize with another worker threads. More...
 
D_CORE_API void Tick ()
 Increment internal variable m_count by one.
 
D_CORE_API void Release ()
 Decrement internal variable m_count by one and signal the thread to wakeup.
 
- Public Member Functions inherited from dThread
D_CORE_API void SetName (const char *const name)
 
D_CORE_API void Finish ()
 
D_CORE_API void Signal ()
 
- Public Member Functions inherited from dSemaphore
D_CORE_API dSemaphore ()
 Create and initialize counter to zero.
 
D_CORE_API ~dSemaphore ()
 Destroy semaphore.
 
D_CORE_API dInt32 GetCount () const
 Returns counter counter value.
 
D_CORE_API bool Wait ()
 Synchronize with another threads. More...
 
D_CORE_API void Signal ()
 Notify a thread blocked by member function Wait to wake and test m_counter again. More...
 
D_CORE_API void Terminate ()
 Notify a waiting thread on member function Wait that is time to exit the thread loop.
 
- Public Member Functions inherited from dAtomic< bool >
 dAtomic (bool val)
 
- Static Public Member Functions inherited from dClassAlloc
static D_CORE_API void * Malloc (size_t size)
 Generic allocation for any function subclass from dClassAlloc.
 
static D_CORE_API void Free (void *const ptr)
 Generic destruction for any function subclass from dClassAlloc.
 
- Protected Attributes inherited from ndScene
ndBodyList m_bodyList
 
ndContactList m_contactList
 
dArray< ndBodyKinematic * > m_activeBodyArray
 
ndConstraintArray m_activeConstraintArray
 
dSpinLock m_contactLock
 
ndSceneNodem_rootNode
 
ndContactNotifym_contactNotifyCallback
 
dFloat32 m_timestep
 
dUnsigned32 m_sleepBodies
 
dUnsigned32 m_lru
 
bool m_fullScan
 
- Protected Attributes inherited from dThread
char m_name [32]
 
- Static Protected Attributes inherited from ndScene
static dVector m_velocTol
 
static dVector m_linearContactError2
 
static dVector m_angularContactError2