28 void SetRatio(
int inNumTeethGear1,
int inNumTeethGear2)
30 mRatio = float(inNumTeethGear2) / float(inNumTeethGear1);
63 virtual void SetupVelocityConstraint(
float inDeltaTime)
override;
64 virtual void ResetWarmStart()
override;
65 virtual void WarmStartVelocityConstraint(
float inWarmStartImpulseRatio)
override;
66 virtual bool SolveVelocityConstraint(
float inDeltaTime)
override;
67 virtual bool SolvePositionConstraint(
float inDeltaTime,
float inBaumgarte)
override;
68#ifdef JPH_DEBUG_RENDERER
69 virtual void DrawConstraint(
DebugRenderer *inRenderer)
const override;
71 virtual void SaveState(
StateRecorder &inStream)
const override;
76 virtual Mat44 GetConstraintToBody1Matrix()
const override;
77 virtual Mat44 GetConstraintToBody2Matrix()
const override;
83 inline float GetTotalLambda()
const {
return mGearConstraintPart.GetTotalLambda(); }
87 void CalculateConstraintProperties(
Mat44Arg inRotation1,
Mat44Arg inRotation2);
92 Vec3 mLocalSpaceHingeAxis1;
95 Vec3 mLocalSpaceHingeAxis2;
107 Vec3 mWorldSpaceHingeAxis1;
110 Vec3 mWorldSpaceHingeAxis2;
EConstraintSpace
Certain constraints support setting them up in local or world space. This governs what is used.
Definition: Constraint.h:58
EConstraintSubType
Enum to identify constraint sub type.
Definition: Constraint.h:34
#define JPH_EXPORT
Definition: Core.h:227
#define JPH_NAMESPACE_END
Definition: Core.h:367
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:361
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:29
#define JPH_DECLARE_SERIALIZABLE_VIRTUAL(linkage, class_name)
Definition: SerializableObject.h:100
ID of a body. This is a way of reasoning about bodies in a multithreaded simulation while avoiding ra...
Definition: BodyID.h:13
Base class for all physics constraints. A constraint removes one or more degrees of freedom for a rig...
Definition: Constraint.h:103
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
Definition: GearConstraint.h:53
float GetTotalLambda() const
Definition: GearConstraint.h:83
virtual void NotifyShapeChanged(const BodyID &inBodyID, Vec3Arg inDeltaCOM) override
Definition: GearConstraint.h:62
void SetConstraints(const Constraint *inGear1, const Constraint *inGear2)
The constraints that constrain both gears (2 hinges), optional and used to calculate the rotation err...
Definition: GearConstraint.h:80
virtual EConstraintSubType GetSubType() const override
Get the sub type of a constraint.
Definition: GearConstraint.h:61
Definition: GearConstraintPart.h:40
Gear constraint settings.
Definition: GearConstraint.h:14
void SetRatio(int inNumTeethGear1, int inNumTeethGear2)
Definition: GearConstraint.h:28
Holds a 4x4 matrix of floats, but supports also operations on the 3x3 upper left part of the matrix.
Definition: Mat44.h:13
Definition: Reference.h:151
Definition: Reference.h:101
Definition: StateRecorder.h:48
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
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