The set of CbTypes assigned to this constraint. Used to filter which listeners respond to this constraint's events.
Whether the constraint's simulation component is currently sleeping.
Only valid when the constraint is active and in a space — throws otherwise.
Maximum force (in Newtons) the constraint may apply per step.
When the required force exceeds this value the constraint becomes slack.
If breakUnderForce is true the constraint breaks instead.
The clamp only applies to soft constraints (stiff = false): a stiff
constraint ignores maxForce unless breakUnderForce is set.
MotorJoint and SpringJoint are the exception and always clamp.
Must be >= 0. Infinity disables the limit.
Arbitrary user data attached to this constraint.
Lazily initialized to {} on first access.
Creates and returns a copy of this constraint with the same parameters. The copy is not automatically added to a space.
Invokes fn once for each distinct body linked to this constraint.
Function to call for each body.
Base class for all physics constraints (joints).
Constraints restrict the relative motion of two bodies. This class provides properties common to all joint types:
active,stiff,frequency,damping,maxForce,maxError,breakUnderForce,breakUnderError,removeOnBreak,isSleeping,space,compound,cbTypes, anduserData.Cannot be instantiated directly — use one of the concrete joint subclasses: AngleJoint, DistanceJoint, LineJoint, MotorJoint, PivotJoint, PulleyJoint, WeldJoint, or UserConstraint.
Soft vs. stiff constraints:
stiff = true(default): the constraint is enforced rigidly.stiff = false: uses a spring model withfrequency(Hz) anddamping(ratio).Fully modernized — uses ZPP_Constraint directly (extracted to TypeScript).