| 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='title' content=' DesignPatternsApparelMedicalSkinLayers.x3d '/> |
| 6 | <meta name='description' content='Design patterns for skin and apparel using HAnim2 standard in X3D4'/> |
| 7 | <meta name='creator' content='Don Brutzman'/> |
| 8 | <meta name='creator' content='Joe D. Williams'/> |
| 9 | <meta name='creator' content='Dick Puk'/> |
| 10 | <meta name='created' content='23 December 2022'/> |
| 11 | <meta name='modified' content='18 May 2024'/> |
| 12 | <meta name='reference' content=' DesignPatternsApparelVariations.txt '/> |
| 13 | <meta name='reference' content='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='reference' content='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='reference' content='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='identifier' content=' https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayers.x3d '/> |
| 18 | <meta name='generator' content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
| 19 | <meta name='license' content='../license.html'/> |
| 20 | </head> |
HAnimHumanoid model visualization reports: 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.
-->
<!--
DEF nodes index:
a_feature01_tip,
a_SimpleSkeleton,
b_SimpleSkeletonMesh,
c_SkinIndexedGeometry,
d_SkinShapeIndexedGeometry,
e_SkinSwitchShapeIndexedGeometry,
f_SynthesizedSkinShapeIndexedTwoPartGeometry,
g_ApparelSkinIndexedGeometryMultipleShapes,
h_AnatomySkinIndexedGeometryMultipleShapes,
IndexedSkinMeshIFS,
JointVisualization,
MultipleHumanoids,
SegmentBoneMesh,
SegmentVisualization,
SiteVisualization,
SkinMeshCoordinate,
SkinMeshIFS,
TwoPartIndexedSkinMesh,
TwoPartSkinMesh
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='HAnimArchitecture' reference='https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/Guidelines.html#MultipleHumanoidsPerFile' value='"E.4 Multiple humanoids per file"'/> |
| 26 | <!-- ============================== --> |
| 27 | <HAnimHumanoid DEF='a_SimpleSkeleton' name='SimpleSkeleton'> |
| 28 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 29 | <HAnimSegment name='sacrum'> |
| 30 | <Shape DEF='JointVisualization'/> |
| 31 | <Shape DEF='SegmentVisualization'/> |
| 32 | <HAnimSite DEF='a_feature01_tip' name='feature01_tip'> |
| 33 | <Shape DEF='SiteVisualization'/> |
| 34 | </HAnimSite> |
| 35 | </HAnimSegment> |
| 36 | </HAnimJoint> |
| 37 | </HAnimHumanoid> |
| 38 | <!-- ============================== --> |
| 39 | <HAnimHumanoid DEF='b_SimpleSkeletonMesh' name='SimpleSkeletonMesh'> |
| 40 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 41 | <HAnimSegment name='sacrum'> |
| 42 | <Shape> |
| 43 | <IndexedFaceSet DEF='SegmentBoneMesh'/> |
| 44 | </Shape> |
| 45 | </HAnimSegment> |
| 46 | </HAnimJoint> |
| 47 | </HAnimHumanoid> |
| 48 | <!-- ============================== --> |
| 49 | <HAnimHumanoid DEF='c_SkinIndexedGeometry' name='SkinIndexedGeometry'> |
| 50 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 51 | <HAnimSegment name='sacrum'/> |
| 52 | </HAnimJoint> |
| 53 |
<!-- IndexedFaceSet
SkinMeshIFS is a DEF node that has 1 USE node: USE_1 --> <IndexedFaceSet DEF='SkinMeshIFS' containerField='skin'/> |
| 54 | </HAnimHumanoid> |
| 55 | <!-- ============================== --> |
| 56 | <HAnimHumanoid DEF='d_SkinShapeIndexedGeometry' name='SkinShapeIndexedGeometry'> |
| 57 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 58 | <HAnimSegment name='sacrum'/> |
| 59 | </HAnimJoint> |
| 60 | <Shape containerField='skin'> |
| 61 | <IndexedFaceSet USE='SkinMeshIFS'/> |
| 62 | </Shape> |
| 63 | </HAnimHumanoid> |
| 64 | <!-- ============================== --> |
| 65 | <HAnimHumanoid DEF='e_SkinSwitchShapeIndexedGeometry' name='SkinSwitchShapeIndexedGeometry'> |
| 66 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 67 | <HAnimSegment name='sacrum'/> |
| 68 | </HAnimJoint> |
| 69 | <!-- TODO show X3D4.0 addition of <Switch DEF='AlternativeSkins' containerField='skin'> --> |
| 70 | <Shape containerField='skin'> |
| 71 | <IndexedFaceSet DEF='IndexedSkinMeshIFS'> |
| 72 | <Coordinate DEF='SkinMeshCoordinate'/> |
| 73 | </IndexedFaceSet> |
| 74 | </Shape> |
| 75 | </HAnimHumanoid> |
| 76 | <!-- similarly for LOD --> |
| 77 | <!-- ============================== --> |
| 78 | <HAnimHumanoid DEF='f_SynthesizedSkinShapeIndexedTwoPartGeometry' name='SynthesizedSkinShapeIndexedTwoPartGeometry'> |
| 79 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 80 | <HAnimSegment name='sacrum'/> |
| 81 | </HAnimJoint> |
| 82 | <Shape containerField='skin'> |
| 83 | <IndexedFaceSet DEF='TwoPartIndexedSkinMesh'> |
| 84 | <Coordinate DEF='TwoPartSkinMesh'/> |
| 85 | </IndexedFaceSet> |
| 86 | </Shape> |
| 87 | </HAnimHumanoid> |
| 88 | <!-- ============================== --> |
| 89 | <HAnimHumanoid DEF='g_ApparelSkinIndexedGeometryMultipleShapes' name='ApparelSkinIndexedGeometryMultipleShapes'> |
| 90 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 91 | <HAnimSegment name='sacrum'/> |
| 92 | </HAnimJoint> |
| 93 | <Shape containerField='skin'/> |
| 94 | <!-- allow multiple Shape nodes with containerField='apparel', one for each layer of clothing --> |
| 95 | <!-- TODO proposed for X3D4.1 <Shape containerField='apparel'/> --> |
| 96 | </HAnimHumanoid> |
| 97 | <!-- ============================== --> |
| 98 | <HAnimHumanoid DEF='h_AnatomySkinIndexedGeometryMultipleShapes' name='AnatomySkinIndexedGeometryMultipleShapes'> |
| 99 | <HAnimJoint containerField='skeleton' name='humanoid_root'> |
| 100 | <HAnimSegment name='sacrum'/> |
| 101 | </HAnimJoint> |
| 102 | <!-- allow multiple Shape nodes with containerField='skin', one for each layer of skin --> |
| 103 | <Shape containerField='skin'/> |
| 104 | </HAnimHumanoid> |
| 105 | <!-- ============================== --> |
| 106 | </Group> |
| 107 | <Viewpoint DEF='ViewHelpText' description='Select text to see website' position='0 0 12'/> |
| 108 | <!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip --> |
| 109 | <Anchor description='DesignPatternsApparelMedicalSkinLayers.x3d explores potential apparel approaches' parameter='"target=blank"' url=' "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skin/DesignPatternsApparelMedicalSkinLayersIndex.html" '> |
| 110 | <Shape> |
| 111 | <!-- TODO adjust Text string and Box size, then set Material transparency='1' --> |
| 112 | <Text string='"DesignPatternsApparelMedicalSkinLayers.x3d" "" "explores potential apparel approaches"'> |
| 113 | <FontStyle family='"SANS"' justify='"MIDDLE" "MIDDLE"' size='0.6' style='BOLD'/> |
| 114 | </Text> |
| 115 | <Appearance> |
| 116 | <Material diffuseColor='0.9 0.9 0.9'/> |
| 117 | </Appearance> |
| 118 | </Shape> |
| 119 | <Shape> |
| 120 | <!-- Author TODO: to adjust transparent Box as text-selection assist, set width and height to match size, then set transparency='1' to make invisible. --> |
| 121 | <Box size='11 2 .001'/> |
| 122 | <Appearance> |
| 123 | <Material transparency='1'/> |
| 124 | </Appearance> |
| 125 | </Shape> |
| 126 | </Anchor> |
| 127 | </Scene> |
| 128 | </X3D> |
HAnimHumanoid model visualization reports: 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.
-->
<!--
DEF nodes index:
a_feature01_tip,
a_SimpleSkeleton,
b_SimpleSkeletonMesh,
c_SkinIndexedGeometry,
d_SkinShapeIndexedGeometry,
e_SkinSwitchShapeIndexedGeometry,
f_SynthesizedSkinShapeIndexedTwoPartGeometry,
g_ApparelSkinIndexedGeometryMultipleShapes,
h_AnatomySkinIndexedGeometryMultipleShapes,
IndexedSkinMeshIFS,
JointVisualization,
MultipleHumanoids,
SegmentBoneMesh,
SegmentVisualization,
SiteVisualization,
SkinMeshCoordinate,
SkinMeshIFS,
TwoPartIndexedSkinMesh,
TwoPartSkinMesh
Index for Viewpoint node: ViewHelpText
-->============================================================================================================================= HAnimHumanoid a_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='a_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:
| <HAnimHumanoid DEF='a_SimpleSkeleton' name='SimpleSkeleton' version ='2.0' > | |||||||
| |||||||
| 26 | <!-- ============================== --> | ||||||
|
</HAnimHumanoid> |
|||||||
============================================================================================================================= HAnimHumanoid b_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='b_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:
| <HAnimHumanoid DEF='b_SimpleSkeletonMesh' name='SimpleSkeletonMesh' version ='2.0' > | |||||||
| |||||||
| 26 | <!-- ============================== --> | ||||||
| 38 | <!-- ============================== --> | ||||||
|
</HAnimHumanoid> |
|||||||
============================================================================================================================= HAnimHumanoid c_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='c_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='c_SkinIndexedGeometry' name='SkinIndexedGeometry' version ='2.0' > | |
| |
| 26 | <!-- ============================== --> |
| 38 | <!-- ============================== --> |
| 48 | <!-- ============================== --> |
|
</HAnimHumanoid> |
|
============================================================================================================================= HAnimHumanoid d_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='d_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='d_SkinShapeIndexedGeometry' name='SkinShapeIndexedGeometry' version ='2.0' > | |
| |
| 26 | <!-- ============================== --> |
| 38 | <!-- ============================== --> |
| 48 | <!-- ============================== --> |
| 55 | <!-- ============================== --> |
|
</HAnimHumanoid> |
|
============================================================================================================================= HAnimHumanoid e_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='e_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='e_SkinSwitchShapeIndexedGeometry' name='SkinSwitchShapeIndexedGeometry' version ='2.0' > | |
| |
| 26 | <!-- ============================== --> |
| 38 | <!-- ============================== --> |
| 48 | <!-- ============================== --> |
| 55 | <!-- ============================== --> |
| 64 | <!-- ============================== --> |
|
</HAnimHumanoid> |
|
============================================================================================================================= HAnimHumanoid f_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='f_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='f_SynthesizedSkinShapeIndexedTwoPartGeometry' name='SynthesizedSkinShapeIndexedTwoPartGeometry' version ='2.0' > | |
| |
| 26 | <!-- ============================== --> |
| 38 | <!-- ============================== --> |
| 48 | <!-- ============================== --> |
| 55 | <!-- ============================== --> |
| 64 | <!-- ============================== --> |
| 76 | <!-- similarly for LOD --> |
| 77 | <!-- ============================== --> |
|
</HAnimHumanoid> |
|
============================================================================================================================= HAnimHumanoid g_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='g_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='g_ApparelSkinIndexedGeometryMultipleShapes' name='ApparelSkinIndexedGeometryMultipleShapes' version ='2.0' > | |
| |
| 26 | <!-- ============================== --> |
| 38 | <!-- ============================== --> |
| 48 | <!-- ============================== --> |
| 55 | <!-- ============================== --> |
| 64 | <!-- ============================== --> |
| 76 | <!-- similarly for LOD --> |
| 77 | <!-- ============================== --> |
| 88 | <!-- ============================== --> |
|
</HAnimHumanoid> |
|
============================================================================================================================= HAnimHumanoid h_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='h_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='h_AnatomySkinIndexedGeometryMultipleShapes' name='AnatomySkinIndexedGeometryMultipleShapes' version ='2.0' > | |
| |
| 26 | <!-- ============================== --> |
| 38 | <!-- ============================== --> |
| 48 | <!-- ============================== --> |
| 55 | <!-- ============================== --> |
| 64 | <!-- ============================== --> |
| 76 | <!-- similarly for LOD --> |
| 77 | <!-- ============================== --> |
| 88 | <!-- ============================== --> |
| 97 | <!-- ============================== --> |
|
</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 109
Anchor |
description='DesignPatternsApparelMedicalSkinLayers.x3d explores potential apparel approaches' No direct ROUTE connection found for events to/from this node. |
<!--
Color-coding legend: X3D terminology
<X3dNode DEF='idName' field='value'/>
matches XML terminology
<XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->