1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
|
3 | <X3D profile='Immersive' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'> |
4 | <head> |
5 | <meta name='title' content='Hand.x3d'/> |
6 | <meta name='description' content='Robotic hand juggling primitives: this scene illustrates the use of the primitive shapes and a lot of nested Transform nodes to created articulated structures.'/> |
7 | <meta name='creator' content='David R. Nadeau'/> |
8 | <meta name='translator' content='Don Brutzman'/> |
9 | <meta name='created' content='1 July 1998'/> |
10 | <meta name='translated' content='2 February 2014'/> |
11 | <meta name='modified' content='3 September 2023'/> |
12 | <meta name='Image' content='Hand.png'/> |
13 | <meta name='reference' content='originals/hand.wrl'/> |
14 | <meta name='reference' content='http://www.siggraph.org/s98'/> |
15 | <meta name='reference' content='http://www.siggraph.org/s98/conference/courses/18.html'/> |
16 | <meta name='reference' content='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0063.htm'/> |
17 | <meta name='reference' content='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0115.htm'/> |
18 | <meta name='reference' content='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/vrml97.htm'/> |
19 | <meta name='reference' content='https://www.web3d.org/x3d/content/examples/X3dResources.html'/> |
20 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Hand.x3d'/> |
21 | <meta name='generator' content='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/> |
22 | <meta name='generator' content='X3D-Edit, https://savage.nps.edu/X3D-Edit'/> |
23 | <meta name='license' content='../license.html'/> |
24 | </head> |
25 | <Scene> |
26 | <!-- Each of the finger joints are controlled by a separate rotation. Changing the rotation angles (by editing this file) will open and close the hand. --> |
27 | <!-- For convenience, each of the hand's parts are spearately authored within a Switch node whose 'whichChoice' field is set to -1 which forces the parts to be skipped during drawing. The parts in the Switch, however, are assembled later in a 'hand' shape at the end of the Switch, and that shape is then instanced outside of the Switch. The effect is to create a file structure that enables you to build things piece by piece, then use Transform's later on to assemble those pieces into a drawn shape. --> |
28 | <WorldInfo info='"copyright (c) 1997, David R. Nadeau"' title='Robotic hand juggling primitives'/> |
29 | <Viewpoint description='Entry view'/> |
30 | <NavigationInfo/> |
31 | <Switch whichChoice='-1'> |
32 | <Shape> |
33 | |
34 | <Material ambientIntensity='0.3' diffuseColor='0.3 0.3 0.5' shininess='0.1' specularColor='0.7 0.7 0.8'/> |
35 | </Appearance> |
36 | </Shape> |
37 |
<!-- Group
finger_base is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 -->
<Group DEF='finger_base'> |
38 | <Shape> |
39 | <Appearance USE='HandColor'/> |
40 | <Sphere radius='0.41'/> |
41 | </Shape> |
42 | <Transform translation='0.0 0.875 0.0'> |
43 | <Shape> |
44 | <Appearance USE='HandColor'/> |
45 | <Cylinder height='1.75' radius='0.35'/> |
46 | </Shape> |
47 | <Transform translation='0.0 0.835 0.0'> |
48 | <Shape> |
49 | <Appearance USE='HandColor'/> |
50 | <Sphere radius='0.35'/> |
51 | </Shape> |
52 | </Transform> |
53 | </Transform> |
54 | </Group> |
55 |
<!-- Transform
finger_middle is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 -->
<Transform DEF='finger_middle' translation='0.0 0.5 0.0'> |
56 | <Shape> |
57 | <Appearance USE='HandColor'/> |
58 | <Cylinder height='1.0' radius='0.315'/> |
59 | </Shape> |
60 | <Transform translation='0.0 0.5 0.0'> |
61 | <Shape> |
62 | <Appearance USE='HandColor'/> |
63 | <Sphere radius='0.32'/> |
64 | </Shape> |
65 | </Transform> |
66 | </Transform> |
67 |
<!-- Transform
finger_tip is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 -->
<Transform DEF='finger_tip' rotation='1.0 0.0 0.0 -0.1'> |
68 | <Transform translation='0.0 0.4 0.0'> |
69 | <Shape> |
70 | <Appearance USE='HandColor'/> |
71 | <Cylinder height='0.75' radius='0.27'/> |
72 | </Shape> |
73 | <Transform scale='1.0 0.7 1.0' translation='0.0 0.35 0.0'> |
74 | <Shape> |
75 | <Appearance USE='HandColor'/> |
76 | <Sphere radius='0.235'/> |
77 | </Shape> |
78 | </Transform> |
79 | </Transform> |
80 | </Transform> |
81 | |
82 | <Transform rotation='0.0 1.0 0.0 -0.03'> |
83 | <Transform rotation='1.0 0.0 0.0 -0.2'> |
84 | <Group USE='finger_base'/> |
85 | <Transform rotation='1.0 0.0 0.0 -0.2' translation='0.0 1.71 0.0'> |
86 | <Transform USE='finger_middle'/> |
87 | <Transform rotation='1.0 0.0 0.0 -0.2' translation='0.0 1.0 0.0'> |
88 | <Transform USE='finger_tip'/> |
89 | </Transform> |
90 | </Transform> |
91 | </Transform> |
92 | </Transform> |
93 | </Transform> |
94 | |
95 | <Transform> |
96 | <Transform rotation='1.0 0.0 0.0 -0.4' translation='0.0 0.2 0.0'> |
97 | <Group USE='finger_base'/> |
98 | <Transform rotation='1.0 0.0 0.0 -0.4' translation='0.0 1.71 0.0'> |
99 | <Transform USE='finger_middle'/> |
100 | <Transform rotation='1.0 0.0 0.0 -0.4' translation='0.0 1.0 0.0'> |
101 | <Transform USE='finger_tip'/> |
102 | </Transform> |
103 | </Transform> |
104 | </Transform> |
105 | </Transform> |
106 | </Transform> |
107 | |
108 | <Transform rotation='0.0 1.0 0.0 0.065'> |
109 | <Transform rotation='1.0 0.0 0.0 -0.6' translation='0.0 0.1 0.0'> |
110 | <Group USE='finger_base'/> |
111 | <Transform rotation='1.0 0.0 0.0 -0.4' translation='0.0 1.71 0.0'> |
112 | <Transform USE='finger_middle'/> |
113 | <Transform rotation='1.0 0.0 0.0 -0.4' translation='0.0 1.0 0.0'> |
114 | <Transform USE='finger_tip'/> |
115 | </Transform> |
116 | </Transform> |
117 | </Transform> |
118 | </Transform> |
119 | </Transform> |
120 | |
121 | <Transform rotation='0.0 1.0 0.0 0.1'> |
122 | <Transform rotation='1.0 0.0 0.0 -0.7' translation='0.0 -0.2 0.0'> |
123 | <Group USE='finger_base'/> |
124 | <Transform rotation='1.0 0.0 0.0 -0.4' translation='0.0 1.71 0.0'> |
125 | <Transform USE='finger_middle'/> |
126 | <Transform rotation='1.0 0.0 0.0 -0.4' translation='0.0 1.0 0.0'> |
127 | <Transform USE='finger_tip'/> |
128 | </Transform> |
129 | </Transform> |
130 | </Transform> |
131 | </Transform> |
132 | </Transform> |
133 | |
134 | <Transform rotation='0.0 0.0 1.0 0.1'> |
135 | <Transform rotation='0.0 1.0 0.0 -0.9' scale='0.7 0.7 0.8'> |
136 | <Shape> |
137 | <Appearance USE='HandColor'/> |
138 | <Sphere radius='0.9'/> |
139 | </Shape> |
140 | <Transform translation='0.0 1.1 0.0'> |
141 | <Shape> |
142 | <Appearance USE='HandColor'/> |
143 | <Cylinder radius='0.55'/> |
144 | </Shape> |
145 | <Transform translation='0.0 0.85 0.0'> |
146 | <Shape> |
147 | <Appearance USE='HandColor'/> |
148 | <Sphere radius='0.58'/> |
149 | </Shape> |
150 | <Transform rotation='1.0 0.0 0.0 0.08'> |
151 | <Transform translation='0.0 0.6 0.0'> |
152 | <Shape> |
153 | <Appearance USE='HandColor'/> |
154 | <Cylinder height='1.2' radius='0.41'/> |
155 | </Shape> |
156 | <Transform translation='0.0 0.6 0.0'> |
157 | <Shape> |
158 | <Appearance USE='HandColor'/> |
159 | <Sphere radius='0.45'/> |
160 | </Shape> |
161 | <Transform rotation='1.0 0.0 0.0 0.13'> |
162 | <Transform rotation='1.0 0.0 0.0 -0.1'> |
163 | <Transform translation='0.0 0.5 0.05'> |
164 | <Shape> |
165 | <Appearance USE='HandColor'/> |
166 | <Cylinder height='1.0' radius='0.325'/> |
167 | </Shape> |
168 | <Transform scale='1.0 0.7 1.0' translation='0.0 0.5 0.0'> |
169 | <Shape> |
170 | <Appearance USE='HandColor'/> |
171 | <Sphere radius='0.29'/> |
172 | </Shape> |
173 | </Transform> |
174 | </Transform> |
175 | </Transform> |
176 | </Transform> |
177 | </Transform> |
178 | </Transform> |
179 | </Transform> |
180 | </Transform> |
181 | </Transform> |
182 | </Transform> |
183 | </Transform> |
184 | </Transform> |
185 | |
186 | <Transform translation='-0.05 0.875 -0.03'> |
187 | <Shape> |
188 | <Appearance USE='HandColor'/> |
189 | <Box size='2.85 2.45 0.6'/> |
190 | </Shape> |
191 | </Transform> |
192 | <Transform scale='1.1 0.7 0.3' translation='-0.9 0.2 -0.2'> |
193 | <Shape> |
194 | <Appearance USE='HandColor'/> |
195 | <Sphere radius='1.1'/> |
196 | </Shape> |
197 | </Transform> |
198 | <Transform scale='0.9 0.8 0.3' translation='0.5 0.0 -0.2'> |
199 | <Shape> |
200 | <Appearance USE='HandColor'/> |
201 | <Sphere/> |
202 | </Shape> |
203 | </Transform> |
204 | <Transform scale='1.5 1.0 1.0' translation='0.0 -0.6 0.0'> |
205 | <Transform rotation='1.0 0.0 0.0 -0.4'> |
206 | <Shape> |
207 | <Appearance USE='HandColor'/> |
208 | <Cylinder height='0.1' radius='1.1'/> |
209 | </Shape> |
210 | <Transform translation='0.0 -0.3 0.0'> |
211 | <Shape> |
212 | <Appearance USE='HandColor'/> |
213 | <Sphere radius='0.8'/> |
214 | </Shape> |
215 | <Shape> |
216 | <Appearance USE='HandColor'/> |
217 | <Cylinder height='0.1' radius='1.1'/> |
218 | </Shape> |
219 | <Transform translation='0.0 -1.3 0.0'> |
220 | <Shape> |
221 | <Appearance USE='HandColor'/> |
222 | <Cylinder radius='0.6'/> |
223 | </Shape> |
224 | </Transform> |
225 | </Transform> |
226 | </Transform> |
227 | </Transform> |
228 | <Transform translation='0.0 -0.475 0.345'> |
229 | <Transform rotation='0.0 0.0 1.0 0.15'> |
230 | |
231 | <Shape> |
232 | <Appearance USE='HandColor'/> |
233 | <Cylinder height='2.85' radius='0.15'/> |
234 | </Shape> |
235 | </Transform> |
236 | </Transform> |
237 | <Transform rotation='0.0 0.0 1.0 0.45'> |
238 | <Transform USE='vein'/> |
239 | </Transform> |
240 | <Transform rotation='0.0 0.0 1.0 -0.15'> |
241 | <Transform USE='vein'/> |
242 | </Transform> |
243 | <Transform rotation='0.0 0.0 1.0 -0.45'> |
244 | <Transform USE='vein'/> |
245 | </Transform> |
246 | <Transform rotation='0.0 0.0 1.0 1.15'> |
247 | <Transform translation='0.0 0.875 0.0'> |
248 | <Shape> |
249 | <Appearance USE='HandColor'/> |
250 | <Cylinder height='1.75' radius='0.15'/> |
251 | </Shape> |
252 | </Transform> |
253 | </Transform> |
254 | </Transform> |
255 | </Group> |
256 | |
257 | <Transform USE='finger1'/> |
258 | <Transform translation='0.8 0.0 0.0'> |
259 | <Transform USE='finger2'/> |
260 | <Transform translation='0.8 0.0 0.0'> |
261 | <Transform USE='finger3'/> |
262 | <Transform translation='0.8 0.0 0.0'> |
263 | <Transform USE='finger4'/> |
264 | </Transform> |
265 | </Transform> |
266 | </Transform> |
267 | <Transform translation='-0.4 -2.0 0.0'> |
268 | <Transform USE='thumb'/> |
269 | </Transform> |
270 | <Transform translation='1.2 -2.2 0.0'> |
271 | <Group USE='palm'/> |
272 | </Transform> |
273 | </Group> |
274 | </Switch> |
275 | <Transform rotation='0.0 1.0 0.0 1.0' translation='0.0 -2.0 0.0'> |
276 | <Transform rotation='1.0 0.0 0.0 1.9'> |
277 | <Group USE='hand'/> |
278 | </Transform> |
279 | </Transform> |
280 | <Transform rotation='1.0 0.0 1.0 0.3' translation='1.5 1.0 0.0'> |
281 | <Shape> |
282 | <Appearance> |
283 | <Material diffuseColor='1.0 0.0 0.0'/> |
284 | </Appearance> |
285 | <Cone/> |
286 | </Shape> |
287 | </Transform> |
288 | <Transform translation='2.0 3.0 -0.5'> |
289 | <Shape> |
290 | <Appearance> |
291 | <Material diffuseColor='1.0 1.0 0.0'/> |
292 | </Appearance> |
293 | <Sphere/> |
294 | </Shape> |
295 | </Transform> |
296 | <Transform rotation='1.0 0.0 0.2 0.82' translation='-0.6 0.8 0.5'> |
297 | <Shape> |
298 | <Appearance> |
299 | <Material diffuseColor='0.0 0.7 1.0'/> |
300 | </Appearance> |
301 | <Cylinder height='1.5' radius='0.75'/> |
302 | </Shape> |
303 | </Transform> |
304 | <Transform rotation='1.0 0.0 0.7 1.3' translation='0.0 2.6 -1.1'> |
305 | <Shape> |
306 | <Appearance> |
307 | <Material diffuseColor='0.0 1.0 0.0'/> |
308 | </Appearance> |
309 | <Box size='1.25 1.25 1.25'/> |
310 | </Shape> |
311 | </Transform> |
312 | </Scene> |
313 | </X3D> |
<!--
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. -->