12template <
bool Write, 
class BodyType>
 
   21        mBodyLockInterface(inBodyLockInterface),
 
   22        mMutexMask(inBodyLockInterface.GetMutexMask(inBodyIDs, inNumber)),
 
   30                inBodyLockInterface.
LockWrite(mMutexMask);
 
   32                inBodyLockInterface.
LockRead(mMutexMask);
 
   49    inline BodyType *           
GetBody(
int inBodyIndex)
 const 
   52        JPH_ASSERT(inBodyIndex >= 0 && inBodyIndex < mNumBodyIDs);
 
   55        const BodyID &body_id = mBodyIDs[inBodyIndex];
 
#define JPH_NAMESPACE_END
Definition: Core.h:378
 
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:372
 
#define JPH_ASSERT(...)
Definition: IssueReporting.h:33
 
ID of a body. This is a way of reasoning about bodies in a multithreaded simulation while avoiding ra...
Definition: BodyID.h:13
 
bool IsInvalid() const
Check if the ID is valid.
Definition: BodyID.h:64
 
Base class interface for locking a body. Usually you will use BodyLockRead / BodyLockWrite / BodyLock...
Definition: BodyLockInterface.h:17
 
virtual void UnlockRead(SharedMutex *inMutex) const =0
 
Body * TryGetBody(const BodyID &inBodyID) const
Convert body ID to body.
Definition: BodyLockInterface.h:50
 
BodyManager::MutexMask MutexMask
Redefine MutexMask.
Definition: BodyLockInterface.h:20
 
virtual void UnlockWrite(SharedMutex *inMutex) const =0
 
virtual SharedMutex * LockRead(const BodyID &inBodyID) const =0
 
virtual SharedMutex * LockWrite(const BodyID &inBodyID) const =0
 
Base class for locking multiple bodies for the duration of the scope of this class (do not use direct...
Definition: BodyLockMulti.h:14
 
BodyType * GetBody(int inBodyIndex) const
Access the body (returns null if body was not properly locked)
Definition: BodyLockMulti.h:49
 
~BodyLockMultiBase()
Destructor will unlock the bodies.
Definition: BodyLockMulti.h:37
 
BodyLockMultiBase(const BodyLockInterface &inBodyLockInterface, const BodyID *inBodyIDs, int inNumber)
Constructor will lock the bodies.
Definition: BodyLockMulti.h:20
 
BodyLockInterface::MutexMask MutexMask
Redefine MutexMask.
Definition: BodyLockMulti.h:17
 
Definition: BodyLockMulti.h:94
 
Specialization that locks multiple bodies for writing to.
Definition: BodyLockMulti.h:100
 
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition: NonCopyable.h:11