79 virtual void NotifyShapeChanged(
const BodyID &inBodyID,
Vec3Arg inDeltaCOM)
override;
80 virtual void SetupVelocityConstraint(
float inDeltaTime)
override;
81 virtual void ResetWarmStart()
override;
82 virtual void WarmStartVelocityConstraint(
float inWarmStartImpulseRatio)
override;
83 virtual bool SolveVelocityConstraint(
float inDeltaTime)
override;
84 virtual bool SolvePositionConstraint(
float inDeltaTime,
float inBaumgarte)
override;
85#ifdef JPH_DEBUG_RENDERER
86 virtual void DrawConstraint(
DebugRenderer *inRenderer)
const override;
87 virtual void DrawConstraintLimits(
DebugRenderer *inRenderer)
const override;
89 virtual void SaveState(
StateRecorder &inStream)
const override;
94 virtual Mat44 GetConstraintToBody1Matrix()
const override;
95 virtual Mat44 GetConstraintToBody2Matrix()
const override;
98 void SetHalfConeAngle(
float inHalfConeAngle) {
JPH_ASSERT(inHalfConeAngle >= 0.0f && inHalfConeAngle <= JPH_PI); mCosHalfConeAngle =
Cos(inHalfConeAngle); }
107 void CalculateRotationConstraintProperties(
Mat44Arg inRotation1,
Mat44Arg inRotation2);
112 Vec3 mLocalSpacePosition1;
113 Vec3 mLocalSpacePosition2;
116 Vec3 mLocalSpaceTwistAxis1;
117 Vec3 mLocalSpaceTwistAxis2;
120 float mCosHalfConeAngle;
125 Vec3 mWorldSpaceRotationAxis;
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.
Definition Constraint.h:60
EConstraintSubType
Enum to identify constraint sub type.
Definition Constraint.h:34
@ Cone
Definition Constraint.h:40
#define JPH_EXPORT
Definition Core.h:275
#define JPH_NAMESPACE_END
Definition Core.h:425
#define JPH_NAMESPACE_BEGIN
Definition Core.h:419
#define JPH_ASSERT(...)
Definition IssueReporting.h:33
const Vec3 Vec3Arg
Definition MathTypes.h:19
const Mat44 & Mat44Arg
Definition MathTypes.h:29
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:50
Vec3 RVec3
Definition Real.h:29
#define JPH_DECLARE_SERIALIZABLE_VIRTUAL(linkage, class_name)
Definition SerializableObject.h:109
JPH_INLINE float Cos(float inX)
Cosine of x (input in radians).
Definition Trigonometry.h:20
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
float GetTotalLambdaRotation() const
Definition ConeConstraint.h:103
float GetCosHalfConeAngle() const
Definition ConeConstraint.h:99
virtual EConstraintSubType GetSubType() const override
Get the sub type of a constraint.
Definition ConeConstraint.h:78
JPH_OVERRIDE_NEW_DELETE ConeConstraint(Body &inBody1, Body &inBody2, const ConeConstraintSettings &inSettings)
Construct cone constraint.
Definition ConeConstraint.cpp:59
void SetHalfConeAngle(float inHalfConeAngle)
Update maximum angle between body 1 and 2 (see ConeConstraintSettings).
Definition ConeConstraint.h:98
Vec3 GetTotalLambdaPosition() const
Definition ConeConstraint.h:102
Cone constraint settings, used to create a cone constraint.
Definition ConeConstraint.h:15
float mHalfConeAngle
Half of maximum angle between twist axis of body 1 and 2.
Definition ConeConstraint.h:37
Vec3 mTwistAxis2
Definition ConeConstraint.h:34
RVec3 mPoint1
Body 1 constraint reference frame (space determined by mSpace).
Definition ConeConstraint.h:29
Vec3 mTwistAxis1
Definition ConeConstraint.h:30
EConstraintSpace mSpace
This determines in which space the constraint is setup, all properties below should be in the specifi...
Definition ConeConstraint.h:26
RVec3 mPoint2
Body 2 constraint reference frame (space determined by mSpace).
Definition ConeConstraint.h:33
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
Definition DebugRenderer.h:47
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition Mat44.h:13
Definition PointConstraintPart.h:41
Definition Reference.h:107
Definition StateRecorder.h:110
Simple binary input stream.
Definition StreamIn.h:13
Simple binary output stream.
Definition StreamOut.h:13
Base class for all constraints that involve 2 bodies. Body1 is usually considered the parent,...
Definition TwoBodyConstraint.h:27
JPH_OVERRIDE_NEW_DELETE TwoBodyConstraint(Body &inBody1, Body &inBody2, const TwoBodyConstraintSettings &inSettings)
Constructor.
Definition TwoBodyConstraint.h:32
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:56
static JPH_INLINE Vec3 sZero()
Vector with all zeros.
Definition Vec3.inl:103