X3D Model Documentation: ComputerKeyboard.x3d

  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='titlecontent=' ComputerKeyboard.x3d '/>
  6            <meta name='descriptioncontent='A computer keyboard for the control panel in the CVN bridge control. The buttons animated to be pushed in when touched'/>
  7            <meta name='creatorcontent='Foo Khee Loon'/>
  8            <meta name='createdcontent='17 February 2001'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/CarrierSaratogaUnitedStates/ComputerKeyboard.x3d '/>
 11            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 12            <meta name='licensecontent='../../license.html'/>
 13       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: EscapeButton, Move, push, row, space_bar, Touch_esc
-->
 14       <Scene>
 15            <WorldInfo title='ComputerKeyboard.x3d'/>
 16            <Transform rotation='1 0 0 1.571'>
 17                 <Shape>
 18                      <Appearance>
 19                           <Material diffuseColor='0.8 0.8 0.7'/>
 20                      </Appearance>
 21                      <Extrusion ccw='falsecreaseAngle='1.75crossSection='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 0spine='0 0 0 0 0.98 0'/>
 22                 </Shape>
 23 
               <!-- 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='EscapeButtonrotation='1 0 0 -1.571translation='0.1 0.95 -0.065'>
 24                      <Shape>
 25                           <Appearance>
 26                                <Material diffuseColor='0.7 0.7 0.8'/>
 27                           </Appearance>
 28                           <Extrusion creaseAngle='2crossSection='-0.02 -0.02 -0.02 0.02 0.02 0.02 0.02 -0.02 -0.02 -0.02scale='1 1 1.2 1.2 0.7 0.7spine='0 0 0 0 0.02 0 0 0.04 0'/>
 29                      </Shape>
 30 
                    <!-- ROUTE information for Touch_esc node:  [from touchTime to push.set_startTime ] -->
                    <TouchSensor DEF='Touch_esc'/>
 31 
                    <!-- ROUTE information for push node:  [from Touch_esc.touchTime to set_startTime ] [from fraction_changed to Move.set_fraction ] -->
                    <TimeSensor DEF='pushstopTime='0.5'/>
 32 
                    <!-- ROUTE information for Move node:  [from push.fraction_changed to set_fraction ] [from value_changed to EscapeButton.set_translation ] -->
                    <PositionInterpolator DEF='Movekey='0 0.5 1keyValue='0.1 0.95 -0.065 0.1 0.95 -0.05 0.1 0.95 -0.065'/>
 33                 </Transform>
 34                 <!-- first row of the keyboard -->
 35                 <Transform translation='0 -0.1 0'>
 36                      <Transform USE='EscapeButton'/>
 37                 </Transform>
 38                 <Transform translation='0 -0.1467 0'>
 39                      <Transform USE='EscapeButton'/>
 40                 </Transform>
 41                 <Transform translation='0 -0.193367 0'>
 42                      <Transform USE='EscapeButton'/>
 43                 </Transform>
 44                 <Transform translation='0 -0.240033 0'>
 45                      <Transform USE='EscapeButton'/>
 46                 </Transform>
 47                 <Transform translation='0 -0.340033 0'>
 48                      <Transform USE='EscapeButton'/>
 49                 </Transform>
 50                 <Transform translation='0 -0.386700 0'>
 51                      <Transform USE='EscapeButton'/>
 52                 </Transform>
 53                 <Transform translation='0 -0.43336700 0'>
 54                      <Transform USE='EscapeButton'/>
 55                 </Transform>
 56                 <Transform translation='0 -0.4800 0'>
 57                      <Transform USE='EscapeButton'/>
 58                 </Transform>
 59                 <Transform translation='0 -0.5800 0'>
 60                      <Transform USE='EscapeButton'/>
 61                 </Transform>
 62                 <Transform translation='0 -0.626667 0'>
 63                      <Transform USE='EscapeButton'/>
 64                 </Transform>
 65                 <Transform translation='0 -0.67333 0'>
 66                      <Transform USE='EscapeButton'/>
 67                 </Transform>
 68                 <Transform translation='0 -0.72 0'>
 69                      <Transform USE='EscapeButton'/>
 70                 </Transform>
 71                 <Transform translation='0 -0.82 0'>
 72                      <Transform USE='EscapeButton'/>
 73                 </Transform>
 74                 <Transform translation='0 -0.8667 0'>
 75                      <Transform USE='EscapeButton'/>
 76                 </Transform>
 77                 <Transform translation='0 -0.91333 0'>
 78                      <Transform USE='EscapeButton'/>
 79                 </Transform>
 80                 <!-- second row of key board -->
 81                 <Transform translation='0.1 -0.001 0.015'>
 82                      <Transform USE='EscapeButton'/>
 83                 </Transform>
 84                 <Transform translation='0.1 -0.048667 0.015'>
 85                      <Transform USE='EscapeButton'/>
 86                 </Transform>
 87                 <Transform translation='0.1 -0.0963 0.015'>
 88                      <Transform USE='EscapeButton'/>
 89                 </Transform>
 90                 <Transform translation='0.1 -0.144 0.015'>
 91                      <Transform USE='EscapeButton'/>
 92                 </Transform>
 93                 <Transform translation='0.1 -0.19167666 0.015'>
 94                      <Transform USE='EscapeButton'/>
 95                 </Transform>
 96                 <Transform translation='0.1 -0.23934 0.015'>
 97                      <Transform USE='EscapeButton'/>
 98                 </Transform>
 99                 <Transform translation='0.1 -0.2871 0.015'>
100                      <Transform USE='EscapeButton'/>
101                 </Transform>
102                 <Transform translation='0.1 -0.33466 0.015'>
103                      <Transform USE='EscapeButton'/>
104                 </Transform>
105                 <Transform translation='0.1 -0.382333 0.015'>
106                      <Transform USE='EscapeButton'/>
107                 </Transform>
108                 <Transform translation='0.1 -0.43 0.015'>
109                      <Transform USE='EscapeButton'/>
110                 </Transform>
111                 <Transform translation='0.1 -0.477 0.015'>
112                      <Transform USE='EscapeButton'/>
113                 </Transform>
114                 <Transform translation='0.1 -0.525333 0.015'>
115                      <Transform USE='EscapeButton'/>
116                 </Transform>
117                 <Transform translation='0.1 -0.57 0.015'>
118                      <Transform USE='EscapeButton'/>
119                 </Transform>
120                 <Transform translation='0.1 -0.62066 0.015'>
121                      <Transform USE='EscapeButton'/>
122                 </Transform>
123                 <Transform translation='0.1 -0.66833 0.015'>
124                      <Transform USE='EscapeButton'/>
125                 </Transform>
126                 <Transform translation='0.1 -0.716 0.015'>
127                      <Transform USE='EscapeButton'/>
128                 </Transform>
129                 <Transform translation='0.1 -0.763666 0.015'>
130                      <Transform USE='EscapeButton'/>
131                 </Transform>
132                 <Transform translation='0.1 -0.811333 0.015'>
133                      <Transform USE='EscapeButton'/>
134                 </Transform>
135                 <Transform translation='0.1 -0.859 0.015'>
136                      <Transform USE='EscapeButton'/>
137                 </Transform>
138                 <Transform translation='0.1 -0.9066 0.015'>
139                      <Transform USE='EscapeButton'/>
140                 </Transform>
141                 <!-- third row of key board -->
142 
               <!-- Group row is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
               <Group DEF='row'>
143                      <Transform translation='0.146667 -0.001 0.025'>
144                           <Transform USE='EscapeButton'/>
145                      </Transform>
146                      <Transform translation='0.1467 -0.04866671 0.025'>
147                           <Transform USE='EscapeButton'/>
148                      </Transform>
149                      <Transform translation='0.1467 -0.096331 0.025'>
150                           <Transform USE='EscapeButton'/>
151                      </Transform>
152                      <Transform translation='0.1467 -0.144 0.025'>
153                           <Transform USE='EscapeButton'/>
154                      </Transform>
155                      <Transform translation='0.1467 -0.191664 0.025'>
156                           <Transform USE='EscapeButton'/>
157                      </Transform>
158                      <Transform translation='0.1467 -0.2393664 0.025'>
159                           <Transform USE='EscapeButton'/>
160                      </Transform>
161                      <Transform translation='0.1467 -0.287 0.025'>
162                           <Transform USE='EscapeButton'/>
163                      </Transform>
164                      <Transform translation='0.1467 -0.3346677 0.025'>
165                           <Transform USE='EscapeButton'/>
166                      </Transform>
167                      <Transform translation='0.1467 -0.38236677 0.025'>
168                           <Transform USE='EscapeButton'/>
169                      </Transform>
170                      <Transform translation='0.1467 -0.437 0.025'>
171                           <Transform USE='EscapeButton'/>
172                      </Transform>
173                      <Transform translation='0.1467 -0.4776 0.025'>
174                           <Transform USE='EscapeButton'/>
175                      </Transform>
176                      <Transform translation='0.1467 -0.525334776 0.025'>
177                           <Transform USE='EscapeButton'/>
178                      </Transform>
179                      <Transform translation='0.1467 -0.57376 0.025'>
180                           <Transform USE='EscapeButton'/>
181                      </Transform>
182                      <Transform translation='0.1467 -0.62057376 0.025'>
183                           <Transform USE='EscapeButton'/>
184                      </Transform>
185                      <Transform translation='0.1467 -0.66832057376 0.025'>
186                           <Transform USE='EscapeButton'/>
187                      </Transform>
188                      <Transform translation='0.1467 -0.716 0.025'>
189                           <Transform USE='EscapeButton'/>
190                      </Transform>
191                      <Transform translation='0.1467 -0.7636 0.025'>
192                           <Transform USE='EscapeButton'/>
193                      </Transform>
194                      <Transform translation='0.1467 -0.8113336 0.025'>
195                           <Transform USE='EscapeButton'/>
196                      </Transform>
197                      <Transform translation='0.1467 -0.859 0.025'>
198                           <Transform USE='EscapeButton'/>
199                      </Transform>
200                      <Transform translation='0.1467 -0.90667859 0.025'>
201                           <Transform USE='EscapeButton'/>
202                      </Transform>
203                 </Group>
204                 <!-- Fourth row of key board -->
205                 <Transform translation='0.04667 0 0.01'>
206                      <Group USE='row'/>
207                 </Transform>
208                 <!-- Fifth row of key board -->
209                 <Transform translation='0.093347 0 0.02'>
210                      <Group USE='row'/>
211                 </Transform>
212                 <!-- sixth row of key board -->
213                 <Transform scale='1 2 1translation='0.286667 -1 0.055'>
214                      <Transform USE='EscapeButton'/>
215                 </Transform>
216                 <Transform DEF='space_barrotation='0 0 1 1.571translation='0.3902677 0.5 -0.045'>
217                      <Transform rotation='1 0 0 1.571'>
218                           <Shape>
219                                <Appearance>
220                                     <Material diffuseColor='0.7 0.7 0.8'/>
221                                </Appearance>
222                                <Extrusion creaseAngle='2crossSection='-0.25 -0.02 -0.25 0.02 0.25 0.02 0.25 -0.02 -0.25 -0.02scale='1 1 1.2 1.2 0.7 0.7spine='0 0 0 0 0.02 0 0 0.04 0'/>
223                           </Shape>
224                      </Transform>
225                 </Transform>
226                 <Transform scale='1 2 1translation='0.286667 -1.8 0.055'>
227                      <Transform USE='EscapeButton'/>
228                 </Transform>
229            </Transform>
230            < ROUTE  fromNode='Touch_esc' fromField='touchTime' toNode='push' toField='set_startTime'/>
231            < ROUTE  fromNode='push' fromField='fraction_changed' toNode='Move' toField='set_fraction'/>
232            < ROUTE  fromNode='Move' fromField='value_changed' toNode='EscapeButton' toField='set_translation'/>
233       </Scene>
234  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: EscapeButton, Move, push, row, space_bar, Touch_esc
-->
X3D Tooltips element index: Appearance, Extrusion, Group, head, Material, meta, PositionInterpolator, ROUTE, Scene, Shape, TimeSensor, TouchSensor, Transform, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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.

Touch_esc
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
push
TimeSensor
set_startTime
SFTime
then
 
 
 
push
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
Move
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
Move
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
EscapeButton
Transform
set_translation
SFVec3f


Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/CarrierSaratogaUnitedStates/ComputerKeyboardIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/ShipsMilitary/CarrierSaratogaUnitedStates/ComputerKeyboard.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->