| 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> |
| 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 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' User-interaction hint for 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.
-->