45 float mNormalHalfConeAngle = 0.0f;
46 float mPlaneHalfConeAngle = 0.0f;
49 float mTwistMinAngle = 0.0f;
50 float mTwistMaxAngle = 0.0f;
53 float mMaxFrictionTorque = 0.0f;
77 virtual void NotifyShapeChanged(
const BodyID &inBodyID,
Vec3Arg inDeltaCOM)
override;
78 virtual void SetupVelocityConstraint(
float inDeltaTime)
override;
79 virtual void WarmStartVelocityConstraint(
float inWarmStartImpulseRatio)
override;
80 virtual bool SolveVelocityConstraint(
float inDeltaTime)
override;
81 virtual bool SolvePositionConstraint(
float inDeltaTime,
float inBaumgarte)
override;
82#ifdef JPH_DEBUG_RENDERER
83 virtual void DrawConstraint(
DebugRenderer *inRenderer)
const override;
84 virtual void DrawConstraintLimits(
DebugRenderer *inRenderer)
const override;
86 virtual void SaveState(
StateRecorder &inStream)
const override;
133 void SetTargetOrientationCS(
QuatArg inOrientation);
142 Quat GetRotationInConstraintSpace()
const;
149 inline Vec3 GetTotalLambdaMotor()
const {
return Vec3(mMotorConstraintPart[0].GetTotalLambda(), mMotorConstraintPart[1].GetTotalLambda(), mMotorConstraintPart[2].GetTotalLambda()); }
158 Vec3 mLocalSpacePosition1;
159 Vec3 mLocalSpacePosition2;
162 Quat mConstraintToBody1;
163 Quat mConstraintToBody2;
166 float mNormalHalfConeAngle;
167 float mPlaneHalfConeAngle;
168 float mTwistMinAngle;
169 float mTwistMaxAngle;
172 float mMaxFrictionTorque;
185 Vec3 mWorldSpaceMotorAxis[3];
EConstraintSpace
Certain constraints support setting them up in local or world space. This governs what is used.
Definition Constraint.h:58
@ WorldSpace
All constraint properties are specified in world space.
EConstraintSubType
Enum to identify constraint sub type.
Definition Constraint.h:34
#define JPH_EXPORT
Definition Core.h:214
#define JPH_NAMESPACE_END
Definition Core.h:354
#define JPH_NAMESPACE_BEGIN
Definition Core.h:348
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:29
EMotorState
Definition MotorSettings.h:17
#define JPH_DECLARE_SERIALIZABLE_VIRTUAL(linkage, class_name)
Definition SerializableObject.h:100
Definition AngleConstraintPart.h:37
ID of a body. This is a way of reasoning about bodies in a multithreaded simulation while avoiding ra...
Definition BodyID.h:13
virtual void SaveBinaryState(StreamOut &inStream) const
Saves the contents of the constraint settings in binary form to inStream.
Definition Constraint.cpp:26
virtual void RestoreBinaryState(StreamIn &inStream)
This function should not be called directly, it is used by sRestoreFromBinaryState.
Definition Constraint.cpp:36
Simple triangle renderer for debugging purposes.
Definition DebugRenderer.h:30
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition Mat44.h:13
static JPH_INLINE Mat44 sRotationTranslation(QuatArg inR, Vec3Arg inT)
Get matrix that rotates and translates.
Definition Mat44.inl:149
Definition MotorSettings.h:26
Definition PointConstraintPart.h:41
static JPH_INLINE Quat sIdentity()
Definition Quat.h:103
Definition Reference.h:101
Definition StateRecorder.h:48
Simple binary input stream.
Definition StreamIn.h:13
Simple binary output stream.
Definition StreamOut.h:13
Definition SwingTwistConstraint.h:68
void SetPlaneHalfConeAngle(float inAngle)
Definition SwingTwistConstraint.h:104
float GetNormalHalfConeAngle() const
Definition SwingTwistConstraint.h:101
void SetTwistMinAngle(float inAngle)
Definition SwingTwistConstraint.h:106
float GetTotalLambdaSwingY() const
Definition SwingTwistConstraint.h:147
float GetTwistMaxAngle() const
Definition SwingTwistConstraint.h:107
virtual EConstraintSubType GetSubType() const override
Get the sub type of a constraint.
Definition SwingTwistConstraint.h:76
virtual Mat44 GetConstraintToBody2Matrix() const override
Calculates the transform that transforms from constraint space to body 2 space. The first column of t...
Definition SwingTwistConstraint.h:92
float GetTotalLambdaSwingZ() const
Definition SwingTwistConstraint.h:148
void SetTargetAngularVelocityCS(Vec3Arg inAngularVelocity)
Set the target angular velocity of body 2 in constraint space of body 2.
Definition SwingTwistConstraint.h:129
Vec3 GetTotalLambdaMotor() const
Definition SwingTwistConstraint.h:149
EMotorState GetTwistMotorState() const
Definition SwingTwistConstraint.h:126
Quat GetConstraintToBody1() const
Definition SwingTwistConstraint.h:97
void SetTwistMaxAngle(float inAngle)
Definition SwingTwistConstraint.h:108
void SetNormalHalfConeAngle(float inAngle)
Definition SwingTwistConstraint.h:102
Vec3 GetLocalSpacePosition1() const
Definition SwingTwistConstraint.h:95
const MotorSettings & GetSwingMotorSettings() const
Definition SwingTwistConstraint.h:111
float GetPlaneHalfConeAngle() const
Definition SwingTwistConstraint.h:103
float GetMaxFrictionTorque() const
Definition SwingTwistConstraint.h:118
Quat GetConstraintToBody2() const
Definition SwingTwistConstraint.h:98
Vec3 GetTargetAngularVelocityCS() const
Definition SwingTwistConstraint.h:130
Vec3 GetTotalLambdaPosition() const
Definition SwingTwistConstraint.h:145
void SetTargetOrientationBS(QuatArg inOrientation)
Definition SwingTwistConstraint.h:138
Vec3 GetLocalSpacePosition2() const
Definition SwingTwistConstraint.h:96
Quat GetTargetOrientationCS() const
Definition SwingTwistConstraint.h:134
virtual Mat44 GetConstraintToBody1Matrix() const override
Calculates the transform that transforms from constraint space to body 1 space. The first column of t...
Definition SwingTwistConstraint.h:91
void SetMaxFrictionTorque(float inFrictionTorque)
Definition SwingTwistConstraint.h:117
MotorSettings & GetSwingMotorSettings()
Definition SwingTwistConstraint.h:112
float GetTwistMinAngle() const
Definition SwingTwistConstraint.h:105
const MotorSettings & GetTwistMotorSettings() const
Definition SwingTwistConstraint.h:113
MotorSettings & GetTwistMotorSettings()
Definition SwingTwistConstraint.h:114
float GetTotalLambdaTwist() const
Definition SwingTwistConstraint.h:146
EMotorState GetSwingMotorState() const
Definition SwingTwistConstraint.h:124
Definition SwingTwistConstraintPart.h:26
Definition SwingTwistConstraint.h:21
MotorSettings mSwingMotorSettings
Definition SwingTwistConstraint.h:56
MotorSettings mTwistMotorSettings
Definition SwingTwistConstraint.h:57
Base class for all constraints that involve 2 bodies. Body1 is usually considered the parent,...
Definition TwoBodyConstraint.h:27
Base class for settings for all constraints that involve 2 bodies.
Definition TwoBodyConstraint.h:16
virtual TwoBodyConstraint * Create(Body &inBody1, Body &inBody2) const =0
static JPH_INLINE Vec3 sAxisX()
Vectors with the principal axis.
Definition Vec3.h:52
static JPH_INLINE Vec3 sAxisY()
Definition Vec3.h:53
static JPH_INLINE Vec3 sZero()
Vector with all zeros.
Definition Vec3.inl:107