[x3d-public] X3D Working Group agenda 7 JAN 2022: welcome back; HAnimJoint llimit, ulimit and stiffness

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Jan 10 11:26:31 PST 2022


Dick, does the following CD1 specification change match our planned response in Mantis 1116 for HAnimJoint llimit, ulimit and stiffness?


  *   X3D4 architecture, clause 26 Humanoid Animation (HAnim) component, 26.3.3 HAnimJoint
  *   https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimJoint


  *   Mantis 1116: 26.3.3 HAnimJoint - confirm type and defaults for llimit/ulimit/stiffness fields
  *   https://www.web3d.org/member-only/mantis/view.php?id=1116

I have applied, checked in, deployed and tested corresponding changes to X3D XML Schema, DTD, X3DUOM, Java X3DJSAIL, Python X3DPSAIL, X3D Ontology and X3D Tooltips to their regular locations.

26.3.3 HAnimJoint

HAnimJoint : X3DGroupingNode {

  MFNode     [in]     addChildren               [HAnimJoint,HAnimSegment,HAnimSite]

  MFNode     [in]     removeChildren            [HAnimJoint,HAnimSegment,HAnimSite]

  SFVec3f    [in,out] center           0 0 0    (-∞,∞)`

  MFNode     [in,out] children         []       [HAnimJoint,HAnimSegment,HAnimSite]

  SFString   [in,out] description      ""

  MFNode     [in,out] displacers       []       [HAnimDisplacer]

  SFBool     [in,out] bboxDisplay      FALSE

  SFBool     [in,out] visible          TRUE

  SFRotation [in,out] limitOrientation 0 0 1 0  (-∞,∞)|[-1,1]

  MFVec3fMFFloat    [in,out] llimit           []       (-∞,∞)

  SFNode     [in,out] metadata         NULL     [X3DMetadataObject]

  SFString   [in,out] name             ""

  SFRotation [in,out] rotation         0 0 1 0  (-∞,∞)|[-1,1]

  SFVec3f    [in,out] scale            1 1 1    (0,∞)

  SFRotation [in,out] scaleOrientation 0 0 1 0  (-∞,∞)|[-1,1]

  MFInt32    [in,out] skinCoordIndex   []       [0,∞)

  MFFloat    [in,out] skinCoordWeight  []       [0,1]

  MFFloat    [in,out] stiffness        [0 0 0]  [0,1]

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

  MFVec3fMFFloat    [in,out] ulimit           []       (-∞,∞)

  SFVec3f    []       bboxCenter       0 0 0    (-∞,∞)

  SFVec3f    []       bboxSize         -1 -1 -1 [0,∞) or −1 −1 −1

}

Each joint in the body is represented by an HAnimJoint node, which is used to define the relationship of each body segment to its immediate parent.

An HAnimJoint may only be a child of another HAnimJoint node or a child within the skeleton field in the case of the HAnimJoint used as a humanoid root ( i.e., an HAnimJoint may not be a child of an HAnimSegment<file:///C:/x3d-github/Web3dConsortiumMember/X3D/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.0/ISO-IEC19775-1v4-CD1/Part01/components/hanim.html#HAnimSegment>).

The HAnimJoint node is also used to store other joint-specific information. In particular, a joint name is provided so that applications can identify each HAnimJoint node at run-time. The HAnimJoint node may contain hints for inverse-kinematics systems that wish to control the HAnim figure. These hints include the upper and lower joint limits, the orientation of the joint limits, and a stiffness (resistance) value.

The llimit, ulimit, and stiffness fields shall contain three values or else be an empty array. An empty llimit, ulimit, or stiffness array is equivalent to 0 0 0. Behavior is undefined when array length is 1, 2, or greater than 3.

NOTE  These limits are not enforced by any mechanism within the scene graph of the humanoid, and are provided for information purposes only. Use of this information and enforcement of the joint limits is up to the application.

Humanoid authors and tools are free to implement the HAnimJoint node however they choose. In particular, they may choose to use a single polygonal mesh to represent a humanoid, rather than having a separate IndexedFaceSet<file:///C:/x3d-github/Web3dConsortiumMember/X3D/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.0/ISO-IEC19775-1v4-CD1/Part01/components/geometry3D.html#IndexedFaceSet> for each body segment. In such a case, an HAnimJoint would be responsible for moving the vertices that correspond to a particular body segment and all the segments descended from it.

Each field is described in ISO/IEC 19774<file:///C:/x3d-github/Web3dConsortiumMember/X3D/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.0/ISO-IEC19775-1v4-CD1/Part01/references.html#I19774>.
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 https:// faculty.nps.edu/brutzman

From: Brutzman, Donald (Don) (CIV)
Sent: Thursday, January 6, 2022 9:36 PM
To: X3D Public Mailing List (x3d-public at web3d.org) <x3d-public at web3d.org>
Cc: brutzman at nps.edu
Subject: X3D Working Group agenda 7 JAN 2022: welcome back

Resuming our weekly meetings 10-1100 pacific time Friday.  Agenda this week:

[…]

  1.  Mantis issues highlight: HAnim Joint fields llimit, ulimit, stiffness to remain MFFloat for backwards compatibility

     *   Mantis 1116: 26.3.3 HAnimJoint - confirm type and defaults for llimit/ulimit/stiffness fields
     *   https://www.web3d.org/member-only/mantis/view.php?id=1116
[…]

have fun with X3D!  8)

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220110/8d86094b/attachment-0001.html>


More information about the x3d-public mailing list