[x3d-public] Mantis 407: RigidBodyCollection errorCorrection and maxCorrectionSpeed field definitions [corrected]

Don Brutzman brutzman at nps.edu
Mon Jul 5 11:38:52 PDT 2021

[corrected copy, removing strikout prose]

With some effort, Dick and I improved RigidBodyCollection field definitions today.

* Mantis 407: 37.4.11 RigidBodyCollection -- Missing Definition

We first refined /errorCorrection/ field definition to reduce ambiguity, then attempted to add a missing definition for /maxCorrectionSpeed/ field.  Prose modifications to spec appear after the following node signature.

X3D4 Architecture, 37.4.11 RigidBodyCollection

RigidBodyCollection : X3DChildNode {
   MFNode  [in]     set_contacts                     [Contact]
   SFBool  [in,out] autoDisable             FALSE
   MFNode  [in,out] bodies                  []       [RigidBody]
   SFFloat [in,out] constantForceMix        0.0001   [0,∞)
   SFFloat [in,out] contactSurfaceThickness 0        [0,∞)
   SFFloat [in,out] disableAngularSpeed     0        [0,∞)
   SFFloat [in,out] disableLinearSpeed      0        [0,∞)

   SFTime  [in,out] disableTime             0       [0,∞)
   SFBool  [in,out] enabled                 TRUE
   SFFloat [in,out] errorCorrection         0.8      [0,1]
   SFVec3f [in,out] gravity                 0 -9.8 0
   SFInt32 [in,out] iterations              10	    [0,∞)
   MFNode  [in,out] joints                  []       [X3DRigidJointNode]
   SFFloat [in,out] maxCorrectionSpeed      -1       [0,∞) or -1
   SFBool  [in,out] preferAccuracy          FALSE
   SFNode  []       collider                NULL     [CollisionCollection]

The errorCorrection field is a rate factor that 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 is performed, a value of 0.8 indicates that 80% of each error is corrected in a single step, while a value of 1 indicates that each error is completely corrected in a single step.

EDITORS NOTE: the following field definition deserves close review, with possibility of being removed or fully redefined.

The maxCorrectionSpeed field limits the amount of change that can be applied to resolve intersection error, effectively modifying object positions, using an absolute value of speed. A value of -1 indicates that no speed limitation exists, while a value of 0 indicates that no corrections are allowed.

All review and feedback welcome, especially with respect to implementation.

all the best, Don
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman

More information about the x3d-public mailing list