### 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>
```

### 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 | Core/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 | 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 | 8 | [0,1] | The stopErrorCorrection1 and suspensionErrorCorrection fields describe how quickly the system should resolve intersection errors due to floating point inaccuracies. | ||

suspensionErrorCorrection | SFFloat | 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. |