Class: DoubleAxisHingeJoint

X3D: 3.3
Component: RigidBodyPhysics
Status:
experimental

.nodeTypes. DoubleAxisHingeJoint

The DoubleAxisHingeJoint node represents a joint that has two independent axes that are located around a common anchor point. Axis 1 is specified relative to the first body (specified by the body1 field) and axis 2 is specified relative to the second body (specified by the body2 field). Axis 1 can have limits and a motor, axis 2 can only have a motor.

HTML Encoding and Default Values

<DoubleAxisHingeJoint anchorPoint='0,0,0' axis1='0,0,0' axis2='0,0,0' body1='x3dom.nodeTypes.RigidBody' body2='x3dom.nodeTypes.RigidBody' desiredAngularVelocity1='0' desiredAngularVelocity2='0' forceOutput='"NONE"' maxAngle1='90' maxTorque1='0' maxTorque2='0' metadata='X3DMetadataObject' minAngle1='-90' stopBounce1='0' stopConstantForceMix1='0.001' stopErrorCorrection1='0.8' suspensionErrorCorrection='0.8' suspensionForce='0' ></DoubleAxisHingeJoint>

Inheritance


Constructor

DoubleAxisHingeJoint(ctx)

Constructor for DoubleAxisHingeJoint

Parameters:
Name Type Argument Default Description
ctx Object <optional>
null context object, containing initial settings like namespace

Fields

These are the X3D / X3DOM fields of this node. Values should usually be received / set as strings via DOM functions (i.e., using setAttribute("myFieldName", "myFieldValue") and getAttribute("myFieldName")).
Name Type Default Value Range Inheritance Standard Description
anchorPoint SFVec3f 0,0,0 Anchor point of the joint
axis1 SFVec3f 0,0,0 Axis 1 is specified relative to the first body (specified by the body1 field).
axis2 SFVec3f 0,0,0 Axis 2 is specified relative to the second body (specified by the body2 field).
body1 SFNode RigidBody X3DRigidJointNode The first body to be joint by the node
body2 SFNode RigidBody X3DRigidJointNode The second rigid body to be joint by the node
desiredAngularVelocity1 SFFloat 0 (-inf,inf) Desired angular velocity for the first axis.
desiredAngularVelocity2 SFFloat 0 (-inf,inf) Desired angular velocity for the second axis.
forceOutput SFString "NONE" ["ALL", "NONE",...] X3DRigidJointNode The forceOutput field is used to control which output fields are to be generated for the next frame. In physics models, the amount of data that can be generated per frame can be quite extensive, particularly in complex models with a large number of joints. A typical application will need only a few of them, if any at all. This field is used to control which of those outputs the author requires to be generated. The values of the array are to describe the names, exactly, of the output field(s) that are to be updated at the start of the next frame. Two special values are defined: "ALL" and "NONE".
maxAngle1 SFFloat 90 The minAngle1 and maxAngle1 fields are used to control the maximum angles through which the hinge is allowed to travel. A hinge may not travel more than π radians (or the equivalent angle base units) in either direction from its initial position.
maxTorque1 SFFloat 0 (-inf, inf) The maxTorque1 field defines the maximum amount of torque that the motor can apply on axis 1 in order to achieve the desired desiredAngularVelocity1 value.
maxTorque2 SFFloat 0 (-inf, inf) The maxTorque2 field defines the maximum amount of torque that the motor can apply on axis 1 in order to achieve the desired desiredAngularVelocity2 value.
metadata SFNode X3DMetadataObject X3DNode Field to add metadata information
minAngle1 SFFloat -90 [-pi * radToDeg, pi * radToDeg] The minAngle1 and maxAngle1 fields are used to control the maximum angles through which the hinge is allowed to travel. A hinge may not travel more than π radians (or the equivalent angle base units) in either direction from its initial position.
stopBounce1 SFFloat 0 [0,1] The stopBounce1 field is used to set how bouncy the minimum and maximum angle stops are for axis 1. A value of zero means they are not bouncy while a value of 1 means maximum bounciness (full reflection of force arriving at the stop).
stopConstantForceMix1 SFFloat 0.001 [0,inf] The stopConstantForceMix1 and suspensionForce fields can be used to apply damping to the calculations by violating the normal constraints by applying a small, constant force to those calculations.
stopErrorCorrection1 SFFloat 0.8 [0,1] The stopErrorCorrection1 and suspensionErrorCorrection fields describe how quickly the system should resolve intersection errors due to floating point inaccuracies.
suspensionErrorCorrection SFFloat 0.8 [0,1] The stopErrorCorrection1 and suspensionErrorCorrection fields describe how quickly the system should resolve intersection errors due to floating point inaccuracies.
suspensionForce SFFloat 0 [0,inf) The stopConstantForceMix1 and suspensionForce fields can be used to apply damping to the calculations by violating the normal constraints by applying a small, constant force to those calculations.