A universal joint constrains two rigid bodies' constraint axes to be perpendicular to each other. Rigid bodies can rotate along their constraint axes, but cannot along the direction perpendicular to two constraint axes. This joint provides two degrees of freedom. You can enable lower and upper limits, motors, spring and damper effects of the two rotational constraints.

Constructor

new(config:UniversalJointConfig)

Creates a new universal joint by configuration config.

Methods

inlinegetAngle1():Float

Returns the rotation angle along the first body's constraint axis.

inlinegetAngle2():Float

Returns the rotation angle along the second body's constraint axis.

inlinegetAxis1():Vec3

Returns the first rigid body's constraint axis in world coordinates.

inlinegetAxis1To(axis:Vec3):Void

Sets axis to the first rigid body's constraint axis in world coordinates.

This does not create a new instance of Vec3.

inlinegetAxis2():Vec3

Returns the second rigid body's constraint axis in world coordinates.

inlinegetAxis2To(axis:Vec3):Void

Sets axis to the second rigid body's constraint axis in world coordinates.

This does not create a new instance of Vec3.

inlinegetLimitMotor1():RotationalLimitMotor

Returns the rotational limits and motor settings along the first body's constraint axis.

inlinegetLimitMotor2():RotationalLimitMotor

Returns the rotational limits and motor settings along the second body's constraint axis.

inlinegetLocalAxis1():Vec3

Returns the first rigid body's constraint axis relative to the rigid body's transform.

inlinegetLocalAxis1To(axis:Vec3):Void

Sets axis to the first rigid body's constraint axis relative to the rigid body's transform.

This does not create a new instance of Vec3.

inlinegetLocalAxis2():Vec3

Returns the second rigid body's constraint axis relative to the rigid body's transform.

inlinegetLocalAxis2To(axis:Vec3):Void

Sets axis to the second rigid body's constraint axis relative to the rigid body's transform.

This does not create a new instance of Vec3.

inlinegetSpringDamper1():SpringDamper

Returns the rotational spring and damper settings along the first body's constraint axis.

inlinegetSpringDamper2():SpringDamper

Returns the rotational spring and damper settings along the second body's constraint axis.

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.