A generic joint (a.k.a. 6-DoF joint) constrains two rigid bodies in highly flexible way, so that every translational and rotational axis can be locked, unlocked, springy, or powered by a motor like other joints. Note that rotation angles are measured as x-y-z Euler angles, not as z-x-z Euler angles.

Constructor

new(config:GenericJointConfig)

Creates a new generic joint by configuration config.

Methods

inlinegetAngles():Vec3

Returns the relative x-y-z Euler angles.

inlinegetAxisX():Vec3

Returns the first (x) rotation axis of the relative Euler angles.

inlinegetAxisY():Vec3

Returns the second (y) rotation axis of the relative Euler angles.

inlinegetAxisZ():Vec3

Returns the third (z) rotation axis of the relative Euler angles.

inlinegetRotationalLimitMotors():Array<RotationalLimitMotor>

Returns the rotational limits and motor settings along the rotation axes of the relative x-y-z Euler angles.

inlinegetRotationalSpringDampers():Array<SpringDamper>

Returns the rotational spring and damper settings along the rotation axes of the relative x-y-z Euler angles.

inlinegetTranslationalLimitMotors():Array<TranslationalLimitMotor>

Returns the translational limits and motor settings along the first body's constraint basis.

inlinegetTranslationalSpringDampers():Array<SpringDamper>

Returns the translational spring and damper settings along the first body's constraint basis.

inlinegetTranslations():Vec3

Returns the translations along the first rigid body's constraint basis.

Inherited Variables

Defined by Joint

userData:Any

Extra field that users can use for their own purposes.

Inherited Methods

Defined by Joint

inlinegetAllowCollision():Bool

Returns whether to allow the connected rigid bodies to collide each other.

inlinegetAnchor1():Vec3

Returns the first rigid body's anchor point in world coordinates.

inlinegetAnchor1To(anchor:Vec3):Void

Sets anchor to the first rigid body's anchor point in world coordinates.

This does not create a new instance of Vec3.

inlinegetAnchor2():Vec3

Returns the second rigid body's anchor point in world coordinates.

inlinegetAnchor2To(anchor:Vec3):Void

Sets anchor to the second rigid body's anchor point in world coordinates.

This does not create a new instance of Vec3.

inlinegetAppliedForce():Vec3

Returns the force applied to the first rigid body at the last time step.

inlinegetAppliedForceTo(appliedForce:Vec3):Void

Sets appliedForce to the force applied to the first rigid body at the last time step.

This does not create a new instance of Vec3.

inlinegetAppliedTorque():Vec3

Returns the torque applied to the first rigid body at the last time step.

inlinegetAppliedTorqueTo(appliedTorque:Vec3):Void

Sets appliedTorque to the torque applied to the first rigid body at the last time step.

This does not create a new instance of Vec3.

inlinegetBasis1():Mat3

Returns the basis of the joint for the first rigid body in world coordinates.

inlinegetBasis1To(basis:Mat3):Void

Sets basis to the basis of the joint for the first rigid body in world coordinates.

This does not create a new instance of Mat3.

inlinegetBasis2():Mat3

Returns the basis of the joint for the second rigid body in world coordinates.

inlinegetBasis2To(basis:Mat3):Void

Sets basis to the basis of the joint for the second rigid body in world coordinates.

This does not create a new instance of Mat3.

inlinegetBreakForce():Float

Returns the magnitude of the constraint force at which the joint will be destroyed.

Returns 0 if the joint is unbreakable.

inlinegetBreakTorque():Float

Returns the magnitude of the constraint torque at which the joint will be destroyed.

Returns 0 if the joint is unbreakable.

inlinegetLocalAnchor1():Vec3

Returns the first rigid body's local anchor point in world coordinates.

inlinegetLocalAnchor1To(localAnchor:Vec3):Void

Sets localAnchor to the first rigid body's anchor point in local coordinates.

This does not create a new instance of Vec3.

inlinegetLocalAnchor2():Vec3

Returns the second rigid body's local anchor point in world coordinates.

inlinegetLocalAnchor2To(localAnchor:Vec3):Void

Sets localAnchor to the second rigid body's anchor point in local coordinates.

This does not create a new instance of Vec3.

inlinegetNext():Joint

Returns the next joint in the world.

If the next one does not exist, null will be returned.

inlinegetPositionCorrectionAlgorithm():Int

Returns the type of the position correction algorithm for the joint.

See PositionCorrectionAlgorithm for details.

inlinegetPrev():Joint

Returns the previous joint in the world.

If the previous one does not exist, null will be returned.

inlinegetRigidBody1():RigidBody

Returns the first rigid body.

inlinegetRigidBody2():RigidBody

Returns the second rigid body.

inlinegetType():Int

Returns the type of the joint.

See JointType for details.

inlinesetAllowCollision(allowCollision:Bool):Void

Sets whether to allow the connected rigid bodies to collide each other.

inlinesetBreakForce(breakForce:Float):Void

Sets the magnitude of the constraint force at which the joint will be destroyed.

Set 0 for unbreakable joints.

inlinesetBreakTorque(breakTorque:Float):Void

Sets the magnitude of the constraint force at which the joint will be destroyed.

Set 0 for unbreakable joints.

inlinesetPositionCorrectionAlgorithm(positionCorrectionAlgorithm:Int):Void

Sets the type of the position correction algorithm to positionCorrectionAlgorithm for the joint.

See PositionCorrectionAlgorithm for details.