16#ifdef JPH_DEBUG_RENDERER
29#ifdef JPH_ENABLE_ASSERTS
36 void Add(
Constraint **inConstraints,
int inNumber);
40 void Remove(
Constraint **inConstraint,
int inNumber);
49 void GetActiveConstraints(
uint32 inStartConstraintIdx,
uint32 inEndConstraintIdx,
Constraint **outActiveConstraints,
uint32 &outNumActiveConstraints)
const;
55 static void sSortConstraints(
Constraint **inActiveConstraints,
uint32 *inConstraintIdxBegin,
uint32 *inConstraintIdxEnd);
58 static void sSetupVelocityConstraints(
Constraint **inActiveConstraints,
uint32 inNumActiveConstraints,
float inDeltaTime);
61 static void sWarmStartVelocityConstraints(
Constraint **inActiveConstraints,
const uint32 *inConstraintIdxBegin,
const uint32 *inConstraintIdxEnd,
float inWarmStartImpulseRatio);
64 static void sWarmStartVelocityConstraints(
Constraint **inActiveConstraints,
const uint32 *inConstraintIdxBegin,
const uint32 *inConstraintIdxEnd,
float inWarmStartImpulseRatio,
int &ioNumVelocitySteps);
67 static bool sSolveVelocityConstraints(
Constraint **inActiveConstraints,
const uint32 *inConstraintIdxBegin,
const uint32 *inConstraintIdxEnd,
float inDeltaTime);
70 static bool sSolvePositionConstraints(
Constraint **inActiveConstraints,
const uint32 *inConstraintIdxBegin,
const uint32 *inConstraintIdxEnd,
float inDeltaTime,
float inBaumgarte);
73 static bool sSolvePositionConstraints(
Constraint **inActiveConstraints,
const uint32 *inConstraintIdxBegin,
const uint32 *inConstraintIdxEnd,
float inDeltaTime,
float inBaumgarte,
int &ioNumPositionSteps);
75#ifdef JPH_DEBUG_RENDERER
83 void DrawConstraintReferenceFrame(
DebugRenderer *inRenderer)
const;
97#ifdef JPH_ENABLE_ASSERTS
98 PhysicsLockContext mLockContext;
101 mutable Mutex mConstraintsMutex;
Array< Ref< Constraint > > Constraints
A list of constraints.
Definition ConstraintManager.h:21
#define JPH_EXPORT
Definition Core.h:214
#define JPH_NAMESPACE_END
Definition Core.h:354
std::uint32_t uint32
Definition Core.h:429
#define JPH_NAMESPACE_BEGIN
Definition Core.h:348
#define JPH_IF_ENABLE_ASSERTS(...)
Definition IssueReporting.h:35
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:29
std::vector< T, STLAllocator< T > > Array
Definition STLAllocator.h:81
Class that contains all bodies.
Definition BodyManager.h:32
Base class for all physics constraints. A constraint removes one or more degrees of freedom for a rig...
Definition Constraint.h:103
A constraint manager manages all constraints of the same type.
Definition ConstraintManager.h:25
uint32 GetNumConstraints() const
Get total number of constraints.
Definition ConstraintManager.h:46
void LockAllConstraints()
Lock all constraints. This should only be done during PhysicsSystem::Update().
Definition ConstraintManager.h:93
void UnlockAllConstraints()
Definition ConstraintManager.h:94
Simple triangle renderer for debugging purposes.
Definition DebugRenderer.h:30
Keeps track of connected bodies and builds islands for multithreaded velocity/position update.
Definition IslandBuilder.h:19
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition NonCopyable.h:11
static void sUnlock(LockType &inMutex JPH_IF_ENABLE_ASSERTS(, PhysicsLockContext inContext, EPhysicsLockTypes inType))
Definition PhysicsLock.h:61
static void sLock(LockType &inMutex JPH_IF_ENABLE_ASSERTS(, PhysicsLockContext inContext, EPhysicsLockTypes inType))
Definition PhysicsLock.h:54
User callbacks that allow determining which parts of the simulation should be saved by a StateRecorde...
Definition StateRecorder.h:29
Definition StateRecorder.h:48