Class: RigidBodyCollection

X3D: 3.3
Component: RigidBodyPhysics
Status:
experimental

x3dom.nodeTypes. RigidBodyCollection

The RigidBodyCollection node represents a system of bodies that will interact within a single physics model. The collection is not a renderable part of the scene graph nor are its children as a typical model may need to represent the geometry for physics separately, and in less detail, than those needed for visuals.

HTML Encoding and Default Values

<RigidBodyCollection autoDisable='false' bodies='x3dom.nodeTypes.RigidBody' constantForceMix='0.0001' contactSurfaceThickness='0' disableAngularSpeed='0' disableLinearSpeed='0' disableTime='0' enabled='true' errorCorrection='0.8' gravity='0,-9.8,0' iterations='1' joints='x3dom.nodeTypes.X3DRigidJointNode' maxCorrectionSpeed='-1' metadata='X3DMetadataObject' preferAccuracy='false' ></RigidBodyCollection>

Inheritance


Constructor

RigidBodyCollection(ctx)

Constructor for RigidBodyCollection

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
autoDisable SFBool false The disable fields define conditions for when the body ceases to considered as part of the rigid body calculations and should be considered as at rest.
bodies MFNode RigidBody The bodies field contains a collection of the top-level nodes that comprise a set of bodies that should be evaluated as a single set of interactions.
constantForceMix SFFloat 0001 [0, inf) The constantForceMix field can be used to apply damping to the calculations by violating the normal constraints by applying a small, constant force to those calculations. This allows joints and bodies to be a fraction springy, as well as helping to eliminate numerical instability. The larger the value, the more soft each of the constraints being evaluated. A value of zero indicates hard constraints so that everything is exactly honoured. By combining the errorCorrection and constantForceMix fields, various effects, such as spring-driven or spongy connections, can be emulated.
contactSurfaceThickness SFFloat 0 [0, inf) The contactSurfaceThickness field represents how far bodies may interpenetrate after a collision. This allows simulation of softer bodies that may deform somewhat during collision. The default value is zero.
disableAngularSpeed SFFloat 0 [0, inf) The disable fields define conditions for when the body ceases to considered as part of the rigid body calculations and should be considered as at rest.
disableLinearSpeed SFFloat 0 [0, inf) The disable fields define conditions for when the body ceases to considered as part of the rigid body calculations and should be considered as at rest.
disableTime SFFloat 0 [0, inf) The disable fields define conditions for when the body ceases to considered as part of the rigid body calculations and should be considered as at rest.
enabled SFBool true The enabled field is used to control whether the physics model for this collection should be run this frame.
errorCorrection SFFloat 8 [0,1] The errorCorrection field describes how quickly the system should resolve intersection errors due to floating point inaccuracies. This value ranges between 0 and 1. A value of 0 means no correction at all while a value of 1 indicates that all errors should be corrected in a single step.
gravity SFVec3f 8,0 The gravity field indicates direction and strength (in acceleration base units) of the local gravity vector for this collection of bodies. The default gravity is standard earth gravity of 9.8 meters/second2 downwards.
iterations SFInt32 1 [0,inf) The iterations field is used to control how many iterations over the collections of joints and bodies are to be performed each time the model is evaluated. Rigid body physics is a process of iterative refinement in order to maintain reasonable performance. As the number of iterations grow, the more stable the final results are at the cost of increasing evaluation time. Since maintaining real-time performance is a trade off between accuracy and frame rate, this setting allows the user to control that trade off to a limited extent.
joints MFNode X3DRigidJointNode The joints field is used to register all the joints between the bodies contained in this collection. If a joint is connected between bodies in two different collections, the result is implementation-dependent. If a joint instance is registered with more than one collection, the results are implementation dependent. Joints not registered with any collection are not evaluated.
maxCorrectionSpeed SFFloat -1 [0, inf) or -1 Maximal correction speed.
metadata SFNode X3DMetadataObject X3DChildNode Field to add metadata information
preferAccuracy SFBool false The preferAccuracy field is used to provide a performance hint to the underlying evaluation about whether the user prefers to have very accurate models or fast models. Accuracy comes at a large penalty in both speed and memory usage, but may not be needed most of the time. The default setting is to optimize for speed rather than accuracy.