1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
|
3 | <X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'> |
4 | <head> |
5 | <meta name='title' content='ComputerKeyboard.x3d'/> |
6 | <meta name='description' content='A computer keyboard for the control panel in the CVN bridge control. The buttons animated to be pushed in when touched.'/> |
7 | <meta name='creator' content='Foo Khee Loon'/> |
8 | <meta name='created' content='17 February 2001'/> |
9 | <meta name='modified' content='20 October 2019'/> |
10 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/ComputerKeyboard.x3d'/> |
11 | <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/> |
12 | <meta name='license' content='../license.html'/> |
13 | </head> |
14 | <Scene> |
15 | <WorldInfo title='ComputerKeyboard.x3d'/> |
16 | <Viewpoint description='Front View' fieldOfView='1' orientation='0 1 0 1.571' position='1 0.2 0.5'/> |
17 | <Transform rotation='1 0 0 1.571'> |
18 | <Shape> |
19 | <Appearance> |
20 | <Material diffuseColor='0.8 0.8 0.7'/> |
21 | </Appearance> |
22 | <Extrusion ccw='false' creaseAngle='1.75' crossSection='0 0 0.025 -0.05 0.05 -0.07 0.075 -0.08 0.1 -0.09 0.35 -0.04 0.4 -0.03 0.45 -0.0275 0.45 0 0.045 -0.0275 0.045 0 0 0' spine='0 0 0 0 0.98 0'/> |
23 | </Shape> |
24 |
<!-- Transform
EscapeButton is a DEF node that has 57 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11, USE_12, USE_13, USE_14, USE_15, USE_16, USE_17, USE_18, USE_19, USE_20, USE_21, USE_22, USE_23, USE_24, USE_25, USE_26, USE_27, USE_28, USE_29, USE_30, USE_31, USE_32, USE_33, USE_34, USE_35, USE_36, USE_37, USE_38, USE_39, USE_40, USE_41, USE_42, USE_43, USE_44, USE_45, USE_46, USE_47, USE_48, USE_49, USE_50, USE_51, USE_52, USE_53, USE_54, USE_55, USE_56, USE_57
<!-- ROUTE information for EscapeButton node: [from Move.value_changed to set_translation ] --> <Transform DEF='EscapeButton' rotation='1 0 0 -1.571' translation='0.1 0.95 -0.065'> |
25 | <Shape> |
26 | <Appearance> |
27 | <Material diffuseColor='0.7 0.7 0.8'/> |
28 | </Appearance> |
29 | <Extrusion creaseAngle='2' crossSection='-0.02 -0.02 -0.02 0.02 0.02 0.02 0.02 -0.02 -0.02 -0.02' scale='1 1 1.2 1.2 0.7 0.7' spine='0 0 0 0 0.02 0 0 0.04 0'/> |
30 | </Shape> |
31 |
<!-- ROUTE information for TouchButton node:
[from touchTime to push.set_startTime
]
-->
<TouchSensor DEF='TouchButton' description='touch keys to animate'/> |
32 |
<!-- ROUTE information for push node:
[from TouchButton.touchTime to set_startTime
]
[from fraction_changed to Move.set_fraction
]
-->
<TimeSensor DEF='push' stopTime='0.5'/> |
33 |
<!-- ROUTE information for Move node:
[from push.fraction_changed to set_fraction
]
[from value_changed to EscapeButton.set_translation
]
-->
<PositionInterpolator DEF='Move' key='0 0.5 1' keyValue='0.1 0.95 -0.065 0.1 0.95 -0.05 0.1 0.95 -0.065'/> |
34 | </Transform> |
35 | <!-- first row of the keyboard --> |
36 | <Transform translation='0 -0.1 0'> |
37 | <Transform USE='EscapeButton'/> |
38 | </Transform> |
39 | <Transform translation='0 -0.1467 0'> |
40 | <Transform USE='EscapeButton'/> |
41 | </Transform> |
42 | <Transform translation='0 -0.193367 0'> |
43 | <Transform USE='EscapeButton'/> |
44 | </Transform> |
45 | <Transform translation='0 -0.240033 0'> |
46 | <Transform USE='EscapeButton'/> |
47 | </Transform> |
48 | <Transform translation='0 -0.340033 0'> |
49 | <Transform USE='EscapeButton'/> |
50 | </Transform> |
51 | <Transform translation='0 -0.386700 0'> |
52 | <Transform USE='EscapeButton'/> |
53 | </Transform> |
54 | <Transform translation='0 -0.43336700 0'> |
55 | <Transform USE='EscapeButton'/> |
56 | </Transform> |
57 | <Transform translation='0 -0.4800 0'> |
58 | <Transform USE='EscapeButton'/> |
59 | </Transform> |
60 | <Transform translation='0 -0.5800 0'> |
61 | <Transform USE='EscapeButton'/> |
62 | </Transform> |
63 | <Transform translation='0 -0.626667 0'> |
64 | <Transform USE='EscapeButton'/> |
65 | </Transform> |
66 | <Transform translation='0 -0.67333 0'> |
67 | <Transform USE='EscapeButton'/> |
68 | </Transform> |
69 | <Transform translation='0 -0.72 0'> |
70 | <Transform USE='EscapeButton'/> |
71 | </Transform> |
72 | <Transform translation='0 -0.82 0'> |
73 | <Transform USE='EscapeButton'/> |
74 | </Transform> |
75 | <Transform translation='0 -0.8667 0'> |
76 | <Transform USE='EscapeButton'/> |
77 | </Transform> |
78 | <Transform translation='0 -0.91333 0'> |
79 | <Transform USE='EscapeButton'/> |
80 | </Transform> |
81 | <!-- second row of key board --> |
82 | <Transform translation='0.1 -0.001 0.015'> |
83 | <Transform USE='EscapeButton'/> |
84 | </Transform> |
85 | <Transform translation='0.1 -0.048667 0.015'> |
86 | <Transform USE='EscapeButton'/> |
87 | </Transform> |
88 | <Transform translation='0.1 -0.0963 0.015'> |
89 | <Transform USE='EscapeButton'/> |
90 | </Transform> |
91 | <Transform translation='0.1 -0.144 0.015'> |
92 | <Transform USE='EscapeButton'/> |
93 | </Transform> |
94 | <Transform translation='0.1 -0.19167666 0.015'> |
95 | <Transform USE='EscapeButton'/> |
96 | </Transform> |
97 | <Transform translation='0.1 -0.23934 0.015'> |
98 | <Transform USE='EscapeButton'/> |
99 | </Transform> |
100 | <Transform translation='0.1 -0.2871 0.015'> |
101 | <Transform USE='EscapeButton'/> |
102 | </Transform> |
103 | <Transform translation='0.1 -0.33466 0.015'> |
104 | <Transform USE='EscapeButton'/> |
105 | </Transform> |
106 | <Transform translation='0.1 -0.382333 0.015'> |
107 | <Transform USE='EscapeButton'/> |
108 | </Transform> |
109 | <Transform translation='0.1 -0.43 0.015'> |
110 | <Transform USE='EscapeButton'/> |
111 | </Transform> |
112 | <Transform translation='0.1 -0.477 0.015'> |
113 | <Transform USE='EscapeButton'/> |
114 | </Transform> |
115 | <Transform translation='0.1 -0.525333 0.015'> |
116 | <Transform USE='EscapeButton'/> |
117 | </Transform> |
118 | <Transform translation='0.1 -0.57 0.015'> |
119 | <Transform USE='EscapeButton'/> |
120 | </Transform> |
121 | <Transform translation='0.1 -0.62066 0.015'> |
122 | <Transform USE='EscapeButton'/> |
123 | </Transform> |
124 | <Transform translation='0.1 -0.66833 0.015'> |
125 | <Transform USE='EscapeButton'/> |
126 | </Transform> |
127 | <Transform translation='0.1 -0.716 0.015'> |
128 | <Transform USE='EscapeButton'/> |
129 | </Transform> |
130 | <Transform translation='0.1 -0.763666 0.015'> |
131 | <Transform USE='EscapeButton'/> |
132 | </Transform> |
133 | <Transform translation='0.1 -0.811333 0.015'> |
134 | <Transform USE='EscapeButton'/> |
135 | </Transform> |
136 | <Transform translation='0.1 -0.859 0.015'> |
137 | <Transform USE='EscapeButton'/> |
138 | </Transform> |
139 | <Transform translation='0.1 -0.9066 0.015'> |
140 | <Transform USE='EscapeButton'/> |
141 | </Transform> |
142 | <!-- third row of key board --> |
143 | |
144 | <Transform translation='0.146667 -0.001 0.025'> |
145 | <Transform USE='EscapeButton'/> |
146 | </Transform> |
147 | <Transform translation='0.1467 -0.04866671 0.025'> |
148 | <Transform USE='EscapeButton'/> |
149 | </Transform> |
150 | <Transform translation='0.1467 -0.096331 0.025'> |
151 | <Transform USE='EscapeButton'/> |
152 | </Transform> |
153 | <Transform translation='0.1467 -0.144 0.025'> |
154 | <Transform USE='EscapeButton'/> |
155 | </Transform> |
156 | <Transform translation='0.1467 -0.191664 0.025'> |
157 | <Transform USE='EscapeButton'/> |
158 | </Transform> |
159 | <Transform translation='0.1467 -0.2393664 0.025'> |
160 | <Transform USE='EscapeButton'/> |
161 | </Transform> |
162 | <Transform translation='0.1467 -0.287 0.025'> |
163 | <Transform USE='EscapeButton'/> |
164 | </Transform> |
165 | <Transform translation='0.1467 -0.3346677 0.025'> |
166 | <Transform USE='EscapeButton'/> |
167 | </Transform> |
168 | <Transform translation='0.1467 -0.38236677 0.025'> |
169 | <Transform USE='EscapeButton'/> |
170 | </Transform> |
171 | <Transform translation='0.1467 -0.437 0.025'> |
172 | <Transform USE='EscapeButton'/> |
173 | </Transform> |
174 | <Transform translation='0.1467 -0.4776 0.025'> |
175 | <Transform USE='EscapeButton'/> |
176 | </Transform> |
177 | <Transform translation='0.1467 -0.525334776 0.025'> |
178 | <Transform USE='EscapeButton'/> |
179 | </Transform> |
180 | <Transform translation='0.1467 -0.57376 0.025'> |
181 | <Transform USE='EscapeButton'/> |
182 | </Transform> |
183 | <Transform translation='0.1467 -0.62057376 0.025'> |
184 | <Transform USE='EscapeButton'/> |
185 | </Transform> |
186 | <Transform translation='0.1467 -0.66832057376 0.025'> |
187 | <Transform USE='EscapeButton'/> |
188 | </Transform> |
189 | <Transform translation='0.1467 -0.716 0.025'> |
190 | <Transform USE='EscapeButton'/> |
191 | </Transform> |
192 | <Transform translation='0.1467 -0.7636 0.025'> |
193 | <Transform USE='EscapeButton'/> |
194 | </Transform> |
195 | <Transform translation='0.1467 -0.8113336 0.025'> |
196 | <Transform USE='EscapeButton'/> |
197 | </Transform> |
198 | <Transform translation='0.1467 -0.859 0.025'> |
199 | <Transform USE='EscapeButton'/> |
200 | </Transform> |
201 | <Transform translation='0.1467 -0.90667859 0.025'> |
202 | <Transform USE='EscapeButton'/> |
203 | </Transform> |
204 | </Group> |
205 | <!-- Fourth row of key board --> |
206 | <Transform translation='0.04667 0 0.01'> |
207 | <Group USE='row'/> |
208 | </Transform> |
209 | <!-- Fifth row of key board --> |
210 | <Transform translation='0.093347 0 0.02'> |
211 | <Group USE='row'/> |
212 | </Transform> |
213 | <!-- sixth row of key board --> |
214 | <Transform scale='1 2 1' translation='0.286667 -1 0.055'> |
215 | <Transform USE='EscapeButton'/> |
216 | </Transform> |
217 | <Transform DEF='space_bar' rotation='0 0 1 1.571' translation='0.3902677 0.5 -0.045'> |
218 | <Transform rotation='1 0 0 1.571'> |
219 | <Shape> |
220 | <Appearance> |
221 | <Material diffuseColor='0.7 0.7 0.8'/> |
222 | </Appearance> |
223 | <Extrusion creaseAngle='2' crossSection='-0.25 -0.02 -0.25 0.02 0.25 0.02 0.25 -0.02 -0.25 -0.02' scale='1 1 1.2 1.2 0.7 0.7' spine='0 0 0 0 0.02 0 0 0.04 0'/> |
224 | </Shape> |
225 | </Transform> |
226 | </Transform> |
227 | <Transform USE='EscapeButton'/> |
228 | </Transform> |
229 | < ROUTE fromNode='TouchButton' fromField='touchTime' toNode='push' toField='set_startTime'/> |
230 | < ROUTE fromNode='push' fromField='fraction_changed' toNode='Move' toField='set_fraction'/> |
231 | < ROUTE fromNode='Move' fromField='value_changed' toNode='EscapeButton' toField='set_translation'/> |
232 | </Scene> |
233 | </X3D> |
Event Graph ROUTE Table entries with 3 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.
TouchButton
TouchSensor touchTime SFTime |
push
TimeSensor set_startTime SFTime |
then
|
push
TimeSensor fraction_changed SFFloat |
Move
PositionInterpolator set_fraction SFFloat |
then
|
Move
PositionInterpolator value_changed SFVec3f |
EscapeButton
Transform set_translation SFVec3f |
<!--
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. -->