Post

UniversalJoint

Overview

UniversalJoint is like a BallJoint that constrains an extra degree of rotational freedom. Contains two RigidBody nodes (containerField values body1, body2).

The UniversalJoint node belongs to the RigidBodyPhysics component and requires at least level 2, its default container field is joints. It is available from X3D version 3.2 or higher.

Hierarchy

1
2
3
+ X3DNode
  + X3DRigidJointNode
    + UniversalJoint

Fields

SFNode [in, out] metadata NULL [X3DMetadataObject]

Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.

Hint

MFString [in, out] forceOutput “NONE” [“ALL”, “NONE”, …]

forceOutput controls which output fields are generated for the next frame. Values are ALL, NONE, or exact names of output fields updated at start of next frame.

SFVec3f [in, out] anchorPoint 0 0 0 (-∞,∞)

anchorPoint is joint center, specified in world coordinates.

SFVec3f [in, out] axis1 1 0 0 (-∞,∞)

axis1 defines axis vector of joint connection to body1.

Hint

  • 0 0 0 means motor disabled about this axis.

SFVec3f [in, out] axis2 0 1 0 (-∞,∞)

axis2 defines axis vector of joint connection to body2.

Hint

  • 0 0 0 means motor disabled about this axis.

SFFloat [in, out] stop1Bounce 0 [0,1]

stop1Bounce is velocity factor for bounce back once stop point is reached.

Hint

  • 0 means no bounce, 1 means return velocity matches.

SFFloat [in, out] stop2Bounce 0 [0,1]

stop2Bounce is velocity factor for bounce back once stop point is reached.

Hint

  • 0 means no bounce, 1 means return velocity matches.

SFFloat [in, out] stop1ErrorCorrection 0.8 [0,1]

stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached.

Hint

  • 0 means no error correction, 1 means all error corrected in single step.

SFFloat [in, out] stop2ErrorCorrection 0.8 [0,1]

stop2ErrorCorrection is fraction of error correction performed during time step once stop point is reached.

Hint

  • 0 means no error correction, 1 means all error corrected in single step.

SFVec3f [out] body1Axis

body1Axis describes report the current location of the anchor point relative to the corresponding body. This can be used to determine if the joint has broken.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFVec3f [out] body2Axis

Body1Axis describes report the current location of the anchor point relative to the corresponding body. This can be used to determine if the joint has broken.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFVec3f [out] body1AnchorPoint

body1AnchorPoint describes anchorPoint position relative to local coordinate reference frame.

Hint

  • Can detect separation if body1AnchorPoint!=body2AnchorPoint.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFVec3f [out] body2AnchorPoint

body2AnchorPoint describes anchorPoint position relative to local coordinate reference frame.

Hint

  • Can detect separation if body1AnchorPoint!=body2AnchorPoint.

Warning

  • It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.

SFNode [in, out] body1 NULL [RigidBody]

The body1 and body2 fields indicate the two RigidBody nodes connected by this joint.

SFNode [in, out] body2 NULL [RigidBody]

The body1 and body2 fields indicate the two RigidBody nodes connected by this joint.

Advice

Hints

  • Useful in combination with BallJoint.
  • RigidBodyPhysics component, level 2.

See Also

This post is licensed under CC BY 4.0 by the author.