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://savage.nps.edu/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' ulimit='0 0 0' llimit='0 0 0'> |
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' ulimit='0 0 0' llimit='0 0 0'> |
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' ulimit='0 0 0' llimit='0 0 0'> |
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' ulimit='0 0 0' llimit='0 0 0'> |
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' ulimit='0 0 0' llimit='0 0 0'> |
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' ulimit='0 0 0' llimit='0 0 0'> |
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' ulimit='0 0 0' llimit='0 0 0'> |
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' ulimit='0 0 0' llimit='0 0 0'> |
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.
Anchor |
description='DesignPatternsApparelMedicalSkinLayers.x3d explores potential apparel approaches' User-interaction hint for this node. |
<!--
Color 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. -->