![]()  | 
  
    Jolt Physics
    
   A multi core friendly Game Physics Engine 
   | 
 
A constraint manager manages all constraints of the same type. More...
#include <ConstraintManager.h>
  
Public Member Functions | |
| JPH_OVERRIDE_NEW_DELETE void | Add (Constraint **inConstraints, int inNumber) | 
| Add a new constraint. This is thread safe.  More... | |
| void | Remove (Constraint **inConstraint, int inNumber) | 
| Remove a constraint. This is thread safe.  More... | |
| Constraints | GetConstraints () const | 
| Get a list of all constraints.  More... | |
| uint32 | GetNumConstraints () const | 
| Get total number of constraints.  More... | |
| void | GetActiveConstraints (uint32 inStartConstraintIdx, uint32 inEndConstraintIdx, Constraint **outActiveConstraints, uint32 &outNumActiveConstraints) const | 
| Determine the active constraints of a subset of the constraints.  More... | |
| void | DrawConstraints (DebugRenderer *inRenderer) const | 
| Draw all constraints.  More... | |
| void | DrawConstraintLimits (DebugRenderer *inRenderer) const | 
| Draw all constraint limits.  More... | |
| void | DrawConstraintReferenceFrame (DebugRenderer *inRenderer) const | 
| Draw all constraint reference frames.  More... | |
| void | SaveState (StateRecorder &inStream, const StateRecorderFilter *inFilter) const | 
| Save state of constraints.  More... | |
| bool | RestoreState (StateRecorder &inStream) | 
| Restore the state of constraints. Returns false if failed.  More... | |
| void | LockAllConstraints () | 
| Lock all constraints. This should only be done during PhysicsSystem::Update().  More... | |
| void | UnlockAllConstraints () | 
  Public Member Functions inherited from NonCopyable | |
| NonCopyable ()=default | |
| NonCopyable (const NonCopyable &)=delete | |
| void | operator= (const NonCopyable &)=delete | 
Static Public Member Functions | |
| static void | sBuildIslands (Constraint **inActiveConstraints, uint32 inNumActiveConstraints, IslandBuilder &ioBuilder, BodyManager &inBodyManager) | 
| Link bodies to form islands.  More... | |
| static void | sSortConstraints (Constraint **inActiveConstraints, uint32 *inConstraintIdxBegin, uint32 *inConstraintIdxEnd) | 
| In order to have a deterministic simulation, we need to sort the constraints of an island before solving them.  More... | |
| static void | sSetupVelocityConstraints (Constraint **inActiveConstraints, uint32 inNumActiveConstraints, float inDeltaTime) | 
| Prior to solving the velocity constraints, you must call SetupVelocityConstraints once to precalculate values that are independent of velocity.  More... | |
| template<class ConstraintCallback > | |
| static void | sWarmStartVelocityConstraints (Constraint **inActiveConstraints, const uint32 *inConstraintIdxBegin, const uint32 *inConstraintIdxEnd, float inWarmStartImpulseRatio, ConstraintCallback &ioCallback) | 
| Apply last frame's impulses, must be called prior to SolveVelocityConstraints.  More... | |
| static bool | sSolveVelocityConstraints (Constraint **inActiveConstraints, const uint32 *inConstraintIdxBegin, const uint32 *inConstraintIdxEnd, float inDeltaTime) | 
| This function is called multiple times to iteratively come to a solution that meets all velocity constraints.  More... | |
| static bool | sSolvePositionConstraints (Constraint **inActiveConstraints, const uint32 *inConstraintIdxBegin, const uint32 *inConstraintIdxEnd, float inDeltaTime, float inBaumgarte) | 
| This function is called multiple times to iteratively come to a solution that meets all position constraints.  More... | |
A constraint manager manages all constraints of the same type.
| JPH_NAMESPACE_BEGIN void ConstraintManager::Add | ( | Constraint ** | inConstraints, | 
| int | inNumber | ||
| ) | 
Add a new constraint. This is thread safe.
| void ConstraintManager::DrawConstraintLimits | ( | DebugRenderer * | inRenderer | ) | const | 
Draw all constraint limits.
| void ConstraintManager::DrawConstraintReferenceFrame | ( | DebugRenderer * | inRenderer | ) | const | 
Draw all constraint reference frames.
| void ConstraintManager::DrawConstraints | ( | DebugRenderer * | inRenderer | ) | const | 
Draw all constraints.
| void ConstraintManager::GetActiveConstraints | ( | uint32 | inStartConstraintIdx, | 
| uint32 | inEndConstraintIdx, | ||
| Constraint ** | outActiveConstraints, | ||
| uint32 & | outNumActiveConstraints | ||
| ) | const | 
Determine the active constraints of a subset of the constraints.
| Constraints ConstraintManager::GetConstraints | ( | ) | const | 
Get a list of all constraints.
      
  | 
  inline | 
Get total number of constraints.
      
  | 
  inline | 
Lock all constraints. This should only be done during PhysicsSystem::Update().
| void ConstraintManager::Remove | ( | Constraint ** | inConstraint, | 
| int | inNumber | ||
| ) | 
Remove a constraint. This is thread safe.
| bool ConstraintManager::RestoreState | ( | StateRecorder & | inStream | ) | 
Restore the state of constraints. Returns false if failed.
| void ConstraintManager::SaveState | ( | StateRecorder & | inStream, | 
| const StateRecorderFilter * | inFilter | ||
| ) | const | 
Save state of constraints.
      
  | 
  static | 
Link bodies to form islands.
      
  | 
  static | 
Prior to solving the velocity constraints, you must call SetupVelocityConstraints once to precalculate values that are independent of velocity.
      
  | 
  static | 
This function is called multiple times to iteratively come to a solution that meets all position constraints.
      
  | 
  static | 
This function is called multiple times to iteratively come to a solution that meets all velocity constraints.
      
  | 
  static | 
In order to have a deterministic simulation, we need to sort the constraints of an island before solving them.
      
  | 
  static | 
Apply last frame's impulses, must be called prior to SolveVelocityConstraints.
      
  | 
  inline |