| 
| JPH_OVERRIDE_NEW_DELETE  | ConeConstraint (Body &inBody1, Body &inBody2, const ConeConstraintSettings &inSettings) | 
|   | Construct cone constraint.  More...
  | 
|   | 
| virtual EConstraintSubType  | GetSubType () const override | 
|   | Get the sub type of a constraint.  More...
  | 
|   | 
| virtual void  | NotifyShapeChanged (const BodyID &inBodyID, Vec3Arg inDeltaCOM) override | 
|   | 
| virtual void  | SetupVelocityConstraint (float inDeltaTime) override | 
|   | 
| virtual void  | ResetWarmStart () override | 
|   | 
| virtual void  | WarmStartVelocityConstraint (float inWarmStartImpulseRatio) override | 
|   | 
| virtual bool  | SolveVelocityConstraint (float inDeltaTime) override | 
|   | 
| virtual bool  | SolvePositionConstraint (float inDeltaTime, float inBaumgarte) override | 
|   | 
| virtual void  | DrawConstraint (DebugRenderer *inRenderer) const override | 
|   | 
| virtual void  | DrawConstraintLimits (DebugRenderer *inRenderer) const override | 
|   | 
| virtual void  | SaveState (StateRecorder &inStream) const override | 
|   | Saving state for replay.  More...
  | 
|   | 
| virtual void  | RestoreState (StateRecorder &inStream) override | 
|   | Restoring state for replay.  More...
  | 
|   | 
| virtual Ref< ConstraintSettings >  | GetConstraintSettings () const override | 
|   | Debug function to convert a constraint to its settings, note that this will not save to which bodies the constraint is connected to.  More...
  | 
|   | 
| virtual Mat44  | GetConstraintToBody1Matrix () const override | 
|   | Calculates the transform that transforms from constraint space to body 1 space. The first column of the matrix is the primary constraint axis (e.g. the hinge axis / slider direction), second column the secondary etc.  More...
  | 
|   | 
| virtual Mat44  | GetConstraintToBody2Matrix () const override | 
|   | Calculates the transform that transforms from constraint space to body 2 space. The first column of the matrix is the primary constraint axis (e.g. the hinge axis / slider direction), second column the secondary etc.  More...
  | 
|   | 
| void  | SetHalfConeAngle (float inHalfConeAngle) | 
|   | Update maximum angle between body 1 and 2 (see ConeConstraintSettings)  More...
  | 
|   | 
| float  | GetCosHalfConeAngle () const | 
|   | 
  Public Member Functions inherited from TwoBodyConstraint | 
| JPH_OVERRIDE_NEW_DELETE  | TwoBodyConstraint (Body &inBody1, Body &inBody2, const TwoBodyConstraintSettings &inSettings) | 
|   | Constructor.  More...
  | 
|   | 
| virtual EConstraintType  | GetType () const override | 
|   | Get the type of a constraint.  More...
  | 
|   | 
| virtual bool  | IsActive () const override | 
|   | Solver interface.  More...
  | 
|   | 
| virtual void  | DrawConstraintReferenceFrame (DebugRenderer *inRenderer) const override | 
|   | 
| Body *  | GetBody1 () const | 
|   | Access to the connected bodies.  More...
  | 
|   | 
| Body *  | GetBody2 () const | 
|   | 
| virtual Mat44  | GetConstraintToBody1Matrix () const =0 | 
|   | Calculates the transform that transforms from constraint space to body 1 space. The first column of the matrix is the primary constraint axis (e.g. the hinge axis / slider direction), second column the secondary etc.  More...
  | 
|   | 
| virtual Mat44  | GetConstraintToBody2Matrix () const =0 | 
|   | Calculates the transform that transforms from constraint space to body 2 space. The first column of the matrix is the primary constraint axis (e.g. the hinge axis / slider direction), second column the secondary etc.  More...
  | 
|   | 
| virtual void  | BuildIslands (uint32 inConstraintIndex, IslandBuilder &ioBuilder, BodyManager &inBodyManager) override | 
|   | Link bodies that are connected by this constraint in the island builder.  More...
  | 
|   | 
| virtual uint  | BuildIslandSplits (LargeIslandSplitter &ioSplitter) const override | 
|   | Link bodies that are connected by this constraint in the same split. Returns the split index.  More...
  | 
|   | 
| JPH_OVERRIDE_NEW_DELETE  | Constraint (const ConstraintSettings &inSettings) | 
|   | Constructor.  More...
  | 
|   | 
| virtual  | ~Constraint ()=default | 
|   | Virtual destructor.  More...
  | 
|   | 
| virtual EConstraintType  | GetType () const | 
|   | Get the type of a constraint.  More...
  | 
|   | 
| virtual EConstraintSubType  | GetSubType () const =0 | 
|   | Get the sub type of a constraint.  More...
  | 
|   | 
| uint32  | GetConstraintPriority () const | 
|   | 
| void  | SetConstraintPriority (uint32 inPriority) | 
|   | 
| void  | SetNumVelocityStepsOverride (uint inN) | 
|   | Used only when the constraint is active. Override for the number of solver velocity iterations to run, 0 means use the default in PhysicsSettings::mNumVelocitySteps. The number of iterations to use is the max of all contacts and constraints in the island.  More...
  | 
|   | 
| uint  | GetNumVelocityStepsOverride () const | 
|   | 
| void  | SetNumPositionStepsOverride (uint inN) | 
|   | Used only when the constraint is active. Override for the number of solver position iterations to run, 0 means use the default in PhysicsSettings::mNumPositionSteps. The number of iterations to use is the max of all contacts and constraints in the island.  More...
  | 
|   | 
| uint  | GetNumPositionStepsOverride () const | 
|   | 
| void  | SetEnabled (bool inEnabled) | 
|   | 
| bool  | GetEnabled () const | 
|   | Test if a constraint is enabled.  More...
  | 
|   | 
| uint64  | GetUserData () const | 
|   | Access to the user data, can be used for anything by the application.  More...
  | 
|   | 
| void  | SetUserData (uint64 inUserData) | 
|   | 
| virtual void  | NotifyShapeChanged (const BodyID &inBodyID, Vec3Arg inDeltaCOM)=0 | 
|   | 
| virtual void  | ResetWarmStart ()=0 | 
|   | 
| virtual void  | BuildIslands (uint32 inConstraintIndex, IslandBuilder &ioBuilder, BodyManager &inBodyManager)=0 | 
|   | Link bodies that are connected by this constraint in the island builder.  More...
  | 
|   | 
| virtual uint  | BuildIslandSplits (LargeIslandSplitter &ioSplitter) const =0 | 
|   | Link bodies that are connected by this constraint in the same split. Returns the split index.  More...
  | 
|   | 
| virtual void  | DrawConstraint (DebugRenderer *inRenderer) const =0 | 
|   | 
| virtual void  | DrawConstraintLimits (DebugRenderer *inRenderer) const | 
|   | 
| virtual void  | DrawConstraintReferenceFrame (DebugRenderer *inRenderer) const | 
|   | 
| float  | GetDrawConstraintSize () const | 
|   | Size of constraint when drawing it through the debug renderer.  More...
  | 
|   | 
| void  | SetDrawConstraintSize (float inSize) | 
|   | 
| virtual void  | SaveState (StateRecorder &inStream) const | 
|   | Saving state for replay.  More...
  | 
|   | 
| virtual void  | RestoreState (StateRecorder &inStream) | 
|   | Restoring state for replay.  More...
  | 
|   | 
| virtual Ref< ConstraintSettings >  | GetConstraintSettings () const =0 | 
|   | Debug function to convert a constraint to its settings, note that this will not save to which bodies the constraint is connected to.  More...
  | 
|   | 
|   | RefTarget ()=default | 
|   | Constructor.  More...
  | 
|   | 
|   | RefTarget (const RefTarget &) | 
|   | 
|   | ~RefTarget () | 
|   | assert no one is referencing us  More...
  | 
|   | 
| void  | SetEmbedded () const | 
|   | 
| RefTarget &  | operator= (const RefTarget &) | 
|   | Assignment operator.  More...
  | 
|   | 
| uint32  | GetRefCount () const | 
|   | Get current refcount of this object.  More...
  | 
|   | 
| void  | AddRef () const | 
|   | Add or release a reference to this object.  More...
  | 
|   | 
| void  | Release () const | 
|   | 
|   | NonCopyable ()=default | 
|   | 
|   | NonCopyable (const NonCopyable &)=delete | 
|   | 
| void  | operator= (const NonCopyable &)=delete | 
|   | 
A cone constraint constraints 2 bodies to a single point and limits the swing between the twist axis within a cone:
t1 . t2 <= cos(theta)
Where:
t1 = twist axis of body 1. t2 = twist axis of body 2. theta = half cone angle (angle from the principal axis of the cone to the edge).
Calculating the Jacobian:
Constraint equation:
C = t1 . t2 - cos(theta)
Derivative:
d/dt C = d/dt (t1 . t2) = (d/dt t1) . t2 + t1 . (d/dt t2) = (w1 x t1) . t2 + t1 . (w2 x t2) = (t1 x t2) . w1 + (t2 x t1) . w2
d/dt C = J v = [0, -t2 x t1, 0, t2 x t1] [v1, w1, v2, w2]
Where J is the Jacobian.
Note that this is the exact same equation as used in AngleConstraintPart if we use t2 x t1 as the world space axis