X3D Model Documentation: DesignPatternsApparelMedicalSkinLayers.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
  3  <X3D profile='Immersive' version='4.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-4.0.xsd'>
  4       <head>
  5            <meta name='titlecontent=' DesignPatternsApparelMedicalSkinLayers.x3d '/>
  6            <meta name='descriptioncontent='Design patterns for skin and apparel using HAnim2 standard in X3D4'/>
  7            <meta name='creatorcontent='Don Brutzman'/>
  8            <meta name='creatorcontent='Joe D. Williams'/>
  9            <meta name='creatorcontent='Dick Puk'/>
 10            <meta name='createdcontent='23 December 2022'/>
 11            <meta name='modifiedcontent='18 May 2024'/>
 12            <meta name='referencecontent=' DesignPatternsApparelVariations.txt '/>
 13            <meta name='referencecontent='HAnim2 Part 1, HAnim architecture, 4.3 Humanoid object https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#HumanoidObject'/>
 14            <meta name='referencecontent='HAnim2 Part 1, HAnim architecture, E.4 Multiple humanoids per file https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/Guidelines.html#MultipleHumanoidsPerFile'/>
 15            <meta name='referencecontent='X3D4 Architecture, clause 26 HAnim component, 26.3.2 HAnimHumanoid https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimHumanoid'/>
 16            <meta name=' warning content=' Under development. This template example does not produce renderable HAnim models. '/>
 17            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayers.x3d '/>
 18            <meta name='generatorcontent='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 19            <meta name='licensecontent='../license.html'/>
 20       </head>
<!--

Visualization reports for HAnimHumanoid models: SimpleSkeleton HAnimHumanoid Report, SimpleSkeletonMesh HAnimHumanoid Report, SkinIndexedGeometry HAnimHumanoid Report, SkinShapeIndexedGeometry HAnimHumanoid Report, SkinSwitchShapeIndexedGeometry HAnimHumanoid Report, SynthesizedSkinShapeIndexedTwoPartGeometry HAnimHumanoid Report, ApparelSkinIndexedGeometryMultipleShapes HAnimHumanoid Report, AnatomySkinIndexedGeometryMultipleShapes HAnimHumanoid Report <!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: hanim_AnatomySkinIndexedGeometryMultipleShapes, hanim_ApparelSkinIndexedGeometryMultipleShapes, hanim_feature01_tip, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_SimpleSkeleton, hanim_SimpleSkeletonMesh, hanim_SkinIndexedGeometry, hanim_SkinShapeIndexedGeometry, hanim_SkinSwitchShapeIndexedGeometry, hanim_SynthesizedSkinShapeIndexedTwoPartGeometry, IndexedSkinMeshIFS, JointVisualization, MultipleHumanoids, SegmentBoneMesh, SegmentVisualization, SiteVisualization, SkinMeshCoordinate, SkinMeshIFS, TwoPartIndexedSkinMesh, TwoPartSkinMesh, ViewHelpText

Index for Viewpoint node: ViewHelpText
-->
 21       <Scene>
 22            <WorldInfo title='HAnimHumanoid skin design patterns for apparel, medical'/>
 23            <Background skyColor='0 0.6 0.6'/>
 24            <Group DEF='MultipleHumanoids'>
 25                 <MetadataString name='HAnimArchitecturereference='https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/Guidelines.html#MultipleHumanoidsPerFilevalue='"E.4 Multiple humanoids per file"'/>
 26                 <!-- ============================== -->
 27                 <HAnimHumanoid DEF='hanim_SimpleSkeletonname='SimpleSkeleton'>
 28                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
 29                           <HAnimSegment DEF='hanim_sacrumname='sacrum'>
 30                                <Shape DEF='JointVisualization'/>
 31                                <Shape DEF='SegmentVisualization'/>
 32                                <HAnimSite DEF='hanim_feature01_tipname='feature01_tip'>
 33                                     <Shape DEF='SiteVisualization'/>
 34                                </HAnimSite>
 35                           </HAnimSegment>
 36                      </HAnimJoint>
 37                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 38                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 39                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 40                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 41                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 42                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 43                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 44                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 45                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 46                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 47                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 48                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 49                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 50                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 51                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 52                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 53                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
 54                 </HAnimHumanoid>
 55                 <!-- ============================== -->
 56                 <HAnimHumanoid DEF='hanim_SimpleSkeletonMeshname='SimpleSkeletonMesh'>
 57                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
 58                           <HAnimSegment DEF='hanim_sacrumname='sacrum'>
 59                                <Shape>
 60                                     <IndexedFaceSet DEF='SegmentBoneMesh'/>
 61                                </Shape>
 62                           </HAnimSegment>
 63                      </HAnimJoint>
 64                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 65                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 66                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 67                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 68                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 69                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 70                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 71                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 72                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 73                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 74                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 75                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 76                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 77                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 78                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 79                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 80                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
 81                 </HAnimHumanoid>
 82                 <!-- ============================== -->
 83                 <HAnimHumanoid DEF='hanim_SkinIndexedGeometryname='SkinIndexedGeometry'>
 84                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
 85                           <HAnimSegment DEF='hanim_sacrumname='sacrum'/>
 86                      </HAnimJoint>
 87 
                    <!-- IndexedFaceSet SkinMeshIFS is a DEF node that has 1 USE node: USE_1 -->
                    <IndexedFaceSet DEF='SkinMeshIFScontainerField='skin'/>
 88                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 89                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 90                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 91                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 92                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 93                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 94                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 95                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
 96                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 97                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 98                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
 99                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
100                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
101                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
102                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
103                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
104                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
105                 </HAnimHumanoid>
106                 <!-- ============================== -->
107                 <HAnimHumanoid DEF='hanim_SkinShapeIndexedGeometryname='SkinShapeIndexedGeometry'>
108                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
109                           <HAnimSegment DEF='hanim_sacrumname='sacrum'/>
110                      </HAnimJoint>
111                      <Shape containerField='skin'>
112                           <IndexedFaceSet USE='SkinMeshIFS'/>
113                      </Shape>
114                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
115                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
116                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
117                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
118                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
119                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
120                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
121                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
122                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
123                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
124                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
125                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
126                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
127                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
128                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
129                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
130                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
131                 </HAnimHumanoid>
132                 <!-- ============================== -->
133                 <HAnimHumanoid DEF='hanim_SkinSwitchShapeIndexedGeometryname='SkinSwitchShapeIndexedGeometry'>
134                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
135                           <HAnimSegment DEF='hanim_sacrumname='sacrum'/>
136                      </HAnimJoint>
137                      <!-- TODO show X3D4.0 addition of <Switch DEF='AlternativeSkins' containerField='skin'> -->
138                      <Shape containerField='skin'>
139                           <IndexedFaceSet DEF='IndexedSkinMeshIFS'>
140                                <Coordinate DEF='SkinMeshCoordinate'/>
141                           </IndexedFaceSet>
142                      </Shape>
143                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
144                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
145                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
146                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
147                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
148                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
149                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
150                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
151                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
152                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
153                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
154                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
155                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
156                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
157                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
158                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
159                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
160                 </HAnimHumanoid>
161                 <!-- similarly for LOD -->
162                 <!-- ============================== -->
163                 <HAnimHumanoid DEF='hanim_SynthesizedSkinShapeIndexedTwoPartGeometryname='SynthesizedSkinShapeIndexedTwoPartGeometry'>
164                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
165                           <HAnimSegment DEF='hanim_sacrumname='sacrum'/>
166                      </HAnimJoint>
167                      <Shape containerField='skin'>
168                           <IndexedFaceSet DEF='TwoPartIndexedSkinMesh'>
169                                <Coordinate DEF='TwoPartSkinMesh'/>
170                           </IndexedFaceSet>
171                      </Shape>
172                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
173                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
174                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
175                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
176                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
177                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
178                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
179                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
180                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
181                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
182                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
183                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
184                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
185                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
186                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
187                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
188                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
189                 </HAnimHumanoid>
190                 <!-- ============================== -->
191                 <HAnimHumanoid DEF='hanim_ApparelSkinIndexedGeometryMultipleShapesname='ApparelSkinIndexedGeometryMultipleShapes'>
192                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
193                           <HAnimSegment DEF='hanim_sacrumname='sacrum'/>
194                      </HAnimJoint>
195                      <Shape containerField='skin'/>
196                      <!-- allow multiple Shape nodes with containerField='apparel', one for each layer of clothing -->
197                      <!-- TODO proposed for X3D4.1 <Shape containerField='apparel'/> -->
198                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
199                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
200                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
201                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
202                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
203                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
204                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
205                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
206                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
207                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
208                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
209                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
210                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
211                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
212                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
213                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
214                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
215                 </HAnimHumanoid>
216                 <!-- ============================== -->
217                 <HAnimHumanoid DEF='hanim_AnatomySkinIndexedGeometryMultipleShapesname='AnatomySkinIndexedGeometryMultipleShapes'>
218                      <HAnimJoint DEF='hanim_humanoid_rootcontainerField='skeletonname='humanoid_root'>
219                           <HAnimSegment DEF='hanim_sacrumname='sacrum'/>
220                      </HAnimJoint>
221                      <!-- allow multiple Shape nodes with containerField='skin', one for each layer of skin -->
222                      <Shape containerField='skin'/>
223                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
224                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
225                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
226                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
227                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
228                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
229                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
230                      <!-- missing USE HAnimJoint USE='' containerField=''/> -->
231                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
232                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
233                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
234                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
235                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
236                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
237                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
238                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
239                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>
240                 </HAnimHumanoid>
241                 <!-- ============================== -->
242            </Group>
243            <Viewpoint DEF='ViewHelpTextdescription='Select text to see websiteposition='0 0 12'/>
244            <!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
245            <Anchor description='DesignPatternsApparelMedicalSkinLayers.x3d explores potential apparel approachesparameter='"target=blank"'   url=' "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayersIndex.html" '>
246                 <Shape>
247                      <!-- TODO adjust Text string and Box size, then set Material transparency='1' -->
248                      <Text string='"DesignPatternsApparelMedicalSkinLayers.x3d" "" "explores potential apparel approaches"'>
249                           <FontStyle family='"SANS"justify='"MIDDLE" "MIDDLE"size='0.6style='BOLD'/>
250                      </Text>
251                      <Appearance>
252                           <Material diffuseColor='0.9 0.9 0.9'/>
253                      </Appearance>
254                 </Shape>
255                 <Shape>
256                      <!-- Author TODO: to adjust transparent Box as text-selection assist, set width and height to match size, then set transparency='1' to make invisible. -->
257                      <Box size='11 2 0.001'/>
258                      <Appearance>
259                           <Material transparency='1'/>
260                      </Appearance>
261                 </Shape>
262            </Anchor>
263       </Scene>
264  </X3D>
<!--

Visualization reports for HAnimHumanoid models: SimpleSkeleton HAnimHumanoid Report, SimpleSkeletonMesh HAnimHumanoid Report, SkinIndexedGeometry HAnimHumanoid Report, SkinShapeIndexedGeometry HAnimHumanoid Report, SkinSwitchShapeIndexedGeometry HAnimHumanoid Report, SynthesizedSkinShapeIndexedTwoPartGeometry HAnimHumanoid Report, ApparelSkinIndexedGeometryMultipleShapes HAnimHumanoid Report, AnatomySkinIndexedGeometryMultipleShapes HAnimHumanoid Report <!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: hanim_AnatomySkinIndexedGeometryMultipleShapes, hanim_ApparelSkinIndexedGeometryMultipleShapes, hanim_feature01_tip, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_humanoid_root, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_sacrum, hanim_SimpleSkeleton, hanim_SimpleSkeletonMesh, hanim_SkinIndexedGeometry, hanim_SkinShapeIndexedGeometry, hanim_SkinSwitchShapeIndexedGeometry, hanim_SynthesizedSkinShapeIndexedTwoPartGeometry, IndexedSkinMeshIFS, JointVisualization, MultipleHumanoids, SegmentBoneMesh, SegmentVisualization, SiteVisualization, SkinMeshCoordinate, SkinMeshIFS, TwoPartIndexedSkinMesh, TwoPartSkinMesh, ViewHelpText

Index for Viewpoint node: ViewHelpText
-->
X3D Tooltips element index: Anchor, Appearance, Background, Box, Coordinate, FontStyle, Group, HAnimHumanoid, HAnimJoint, HAnimSegment, HAnimSite, head, IndexedFaceSet, Material, meta, MetadataString, Scene, Shape, Text, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types
<!--

🔖 Visualization report for HAnimHumanoid model hanim_SimpleSkeleton

=============================================================================================================================
HAnimHumanoid hanim_SimpleSkeleton skeleton holds X3D4 HAnim2 joints/segments/sites.
  [key] jointname : segmentname ^ sitename
[nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (1), @ skin nodes (0)
=============================================================================================================================
HAnimHumanoid DEF='hanim_SimpleSkeleton name='SimpleSkeleton' loa='-1'
skeleton
  humanoid_root : sacrum ^ feature01_tip

^ HAnimSegment sacrum holds 1 HAnimSite node: feature01_tip

=============================================================================================================================

The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

Key to author-assist additions inserted in the HAnimHumanoid skeleton:

  • <HAnimSite DEF='hanim_feature01_tip' name='feature01_tip_pt' translation='0 0 0'>
    • <!-- HAnimSite visualization shape -->
    • <TouchSensor description='HAnimSite feature01_tip'/>
    • <Shape USE='HAnimSiteShape'/>
  • </HAnimSite></HAnimSegment>
    </HAnimJoint>

    <HAnimHumanoid DEF='hanim_SimpleSkeleton' name='SimpleSkeleton' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
        • <!-- HAnimSite visualization line segment from ancestor <HAnimJoint name='humanoid_root'/> to <HAnimSite name='feature01_tip'/> -->
          <Shape> <LineSet vertexCount='2'> <Coordinate point='0 0 0, 0 0 0'/> <ColorRGBA USE='HAnimSiteColorRGBA'/> </LineSet> </Shape>
     30                                <Shape DEF='JointVisualization'/>
     31                                <Shape DEF='SegmentVisualization'/>
     33                                     <Shape DEF='SiteVisualization'/>
     26                 <!-- ============================== -->

     52                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
     53                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    🔖 Visualization report for HAnimHumanoid model hanim_SimpleSkeletonMesh

    =============================================================================================================================
    HAnimHumanoid hanim_SimpleSkeletonMesh skeleton holds X3D4 HAnim2 joints/segments.
      [key] jointname : segmentname ^ sitename
    [nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (0), @ skin nodes (0)
    =============================================================================================================================
    HAnimHumanoid DEF='hanim_SimpleSkeletonMesh name='SimpleSkeletonMesh' loa='-1'
    skeleton
      humanoid_root : sacrum
    
    
    =============================================================================================================================
    

    The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

    Key to author-assist additions inserted in the HAnimHumanoid skeleton:

    </HAnimSegment>
    </HAnimJoint>

    <HAnimHumanoid DEF='hanim_SimpleSkeletonMesh' name='SimpleSkeletonMesh' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
     59                                <Shape>
     60                                     <IndexedFaceSet DEF='SegmentBoneMesh'/>
     61                                </Shape>
     26                 <!-- ============================== -->
     55                 <!-- ============================== -->

     79                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
     80                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    🔖 Visualization report for HAnimHumanoid model hanim_SkinIndexedGeometry

    =============================================================================================================================
    HAnimHumanoid hanim_SkinIndexedGeometry skeleton holds X3D4 HAnim2 joints/segments and a skin node.
      [key] jointname : segmentname ^ sitename
    [nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (0), @ skin nodes (1)
    =============================================================================================================================
    HAnimHumanoid DEF='hanim_SkinIndexedGeometry name='SkinIndexedGeometry' loa='-1'
    skin IndexedFaceSet DEF='SkinMeshIFS'
    skeleton
      humanoid_root : sacrum
    
    
    @ HAnimHumanoid SkinIndexedGeometry holds 1 containerField='skin' node: IndexedFaceSet DEF='SkinMeshIFS'
    =============================================================================================================================
    

    The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

    Key to author-assist additions inserted in the HAnimHumanoid skeleton:



    <HAnimHumanoid DEF='hanim_SkinIndexedGeometry' name='SkinIndexedGeometry' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
        </HAnimSegment>
      </HAnimJoint>
     26                 <!-- ============================== -->
     55                 <!-- ============================== -->
     82                 <!-- ============================== -->

    103                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
    104                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    🔖 Visualization report for HAnimHumanoid model hanim_SkinShapeIndexedGeometry

    =============================================================================================================================
    HAnimHumanoid hanim_SkinShapeIndexedGeometry skeleton holds X3D4 HAnim2 joints/segments and a skin node.
      [key] jointname : segmentname ^ sitename
    [nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (0), @ skin nodes (1)
    =============================================================================================================================
    HAnimHumanoid DEF='hanim_SkinShapeIndexedGeometry name='SkinShapeIndexedGeometry' loa='-1'
    skin Shape
    skeleton
      humanoid_root : sacrum
    
    
    @ HAnimHumanoid SkinShapeIndexedGeometry holds 1 containerField='skin' node: 
    =============================================================================================================================
    

    The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

    Key to author-assist additions inserted in the HAnimHumanoid skeleton:



    <HAnimHumanoid DEF='hanim_SkinShapeIndexedGeometry' name='SkinShapeIndexedGeometry' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
        </HAnimSegment>
      </HAnimJoint>
     26                 <!-- ============================== -->
     55                 <!-- ============================== -->
     82                 <!-- ============================== -->
    106                 <!-- ============================== -->

    129                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
    130                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    🔖 Visualization report for HAnimHumanoid model hanim_SkinSwitchShapeIndexedGeometry

    =============================================================================================================================
    HAnimHumanoid hanim_SkinSwitchShapeIndexedGeometry skeleton holds X3D4 HAnim2 joints/segments and a skin node.
      [key] jointname : segmentname ^ sitename
    [nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (0), @ skin nodes (1)
    =============================================================================================================================
    HAnimHumanoid DEF='hanim_SkinSwitchShapeIndexedGeometry name='SkinSwitchShapeIndexedGeometry' loa='-1'
    skin Shape
    skeleton
      humanoid_root : sacrum
    
    
    @ HAnimHumanoid SkinSwitchShapeIndexedGeometry holds 1 containerField='skin' node: 
    =============================================================================================================================
    

    The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

    Key to author-assist additions inserted in the HAnimHumanoid skeleton:



    <HAnimHumanoid DEF='hanim_SkinSwitchShapeIndexedGeometry' name='SkinSwitchShapeIndexedGeometry' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
        </HAnimSegment>
      </HAnimJoint>
     26                 <!-- ============================== -->
     55                 <!-- ============================== -->
     82                 <!-- ============================== -->
    106                 <!-- ============================== -->
    132                 <!-- ============================== -->

    158                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
    159                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    🔖 Visualization report for HAnimHumanoid model hanim_SynthesizedSkinShapeIndexedTwoPartGeometry

    =============================================================================================================================
    HAnimHumanoid hanim_SynthesizedSkinShapeIndexedTwoPartGeometry skeleton holds X3D4 HAnim2 joints/segments and a skin node.
      [key] jointname : segmentname ^ sitename
    [nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (0), @ skin nodes (1)
    =============================================================================================================================
    HAnimHumanoid DEF='hanim_SynthesizedSkinShapeIndexedTwoPartGeometry name='SynthesizedSkinShapeIndexedTwoPartGeometry' loa='-1'
    skin Shape
    skeleton
      humanoid_root : sacrum
    
    
    @ HAnimHumanoid SynthesizedSkinShapeIndexedTwoPartGeometry holds 1 containerField='skin' node: 
    =============================================================================================================================
    

    The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

    Key to author-assist additions inserted in the HAnimHumanoid skeleton:



    <HAnimHumanoid DEF='hanim_SynthesizedSkinShapeIndexedTwoPartGeometry' name='SynthesizedSkinShapeIndexedTwoPartGeometry' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
        </HAnimSegment>
      </HAnimJoint>
     26                 <!-- ============================== -->
     55                 <!-- ============================== -->
     82                 <!-- ============================== -->
    106                 <!-- ============================== -->
    132                 <!-- ============================== -->
    161                 <!-- similarly for LOD -->
    162                 <!-- ============================== -->

    187                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
    188                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    🔖 Visualization report for HAnimHumanoid model hanim_ApparelSkinIndexedGeometryMultipleShapes

    =============================================================================================================================
    HAnimHumanoid hanim_ApparelSkinIndexedGeometryMultipleShapes skeleton holds X3D4 HAnim2 joints/segments and a skin node.
      [key] jointname : segmentname ^ sitename
    [nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (0), @ skin nodes (1)
    =============================================================================================================================
    HAnimHumanoid DEF='hanim_ApparelSkinIndexedGeometryMultipleShapes name='ApparelSkinIndexedGeometryMultipleShapes' loa='-1'
    skin Shape
    skeleton
      humanoid_root : sacrum
    
    
    @ HAnimHumanoid ApparelSkinIndexedGeometryMultipleShapes holds 1 containerField='skin' node: 
    =============================================================================================================================
    

    The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

    Key to author-assist additions inserted in the HAnimHumanoid skeleton:



    <HAnimHumanoid DEF='hanim_ApparelSkinIndexedGeometryMultipleShapes' name='ApparelSkinIndexedGeometryMultipleShapes' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
        </HAnimSegment>
      </HAnimJoint>
     26                 <!-- ============================== -->
     55                 <!-- ============================== -->
     82                 <!-- ============================== -->
    106                 <!-- ============================== -->
    132                 <!-- ============================== -->
    161                 <!-- similarly for LOD -->
    162                 <!-- ============================== -->
    190                 <!-- ============================== -->

    213                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
    214                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    🔖 Visualization report for HAnimHumanoid model hanim_AnatomySkinIndexedGeometryMultipleShapes

    =============================================================================================================================
    HAnimHumanoid hanim_AnatomySkinIndexedGeometryMultipleShapes skeleton holds X3D4 HAnim2 joints/segments and a skin node.
      [key] jointname : segmentname ^ sitename
    [nodes] HAnimJoint (1), : HAnimSegment (1), % HAnimDisplacer (0), $ HAnimMotion (0), ^ HAnimSite (0), @ skin nodes (1)
    =============================================================================================================================
    HAnimHumanoid DEF='hanim_AnatomySkinIndexedGeometryMultipleShapes name='AnatomySkinIndexedGeometryMultipleShapes' loa='-1'
    skin Shape
    skeleton
      humanoid_root : sacrum
    
    
    @ HAnimHumanoid AnatomySkinIndexedGeometryMultipleShapes holds 1 containerField='skin' node: 
    =============================================================================================================================
    

    The following inset decorates the original HAnimHumanoid skeleton with additional visualization shapes. Authors can copy/paste this version to assist in visually diagnosing skeleton correctness.

    Key to author-assist additions inserted in the HAnimHumanoid skeleton:



    <HAnimHumanoid DEF='hanim_AnatomySkinIndexedGeometryMultipleShapes' name='AnatomySkinIndexedGeometryMultipleShapes' version ='2.0' >
    • <HAnimJoint DEF='hanim_humanoid_root' name='humanoid_root' containerField ='skeleton' >
      • <HAnimSegment DEF='hanim_sacrum' name='sacrum'>
        • <!-- Visualization sphere for <HAnimJoint name='humanoid_root'/> is placed within <HAnimSegment name='sacrum'/> -->
          <TouchSensor description='HAnimJoint humanoid_root, HAnimSegment sacrum'/>
        • <Transform translation='0 0 0'> <Shape USE='HAnimJointShape'/> </Transform>
        </HAnimSegment>
      </HAnimJoint>
     26                 <!-- ============================== -->
     55                 <!-- ============================== -->
     82                 <!-- ============================== -->
    106                 <!-- ============================== -->
    132                 <!-- ============================== -->
    161                 <!-- similarly for LOD -->
    162                 <!-- ============================== -->
    190                 <!-- ============================== -->
    216                 <!-- ============================== -->

    238                      <!-- missing USE HAnimSegment USE='' containerField=''/> -->
    239                      <HAnimSite USE='a_feature01_tipcontainerField='sites'/>

    </HAnimHumanoid>

    Event Graph ROUTE Table with 0 ROUTE connections total, showing X3D event-model relationships for this scene.

    Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

    line 245
    Anchor
    description='DesignPatternsApparelMedicalSkinLayers.x3d explores potential apparel approaches' 
    No direct ROUTE connection found for events to/from this node. 

    Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

    -->
    <!-- Online at
    https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayersIndex.html -->
    <!-- Version control at
    https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayers.x3d -->

    <!-- Color-coding legend: X3D terminology <X3dNode DEF='idNamefield='value'/> matches XML terminology <XmlElement DEF='idNameattribute='value'/>
    (Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    -->

    to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->