X3D Model Documentation: House.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='House.x3d'/>
  6            <meta name='descriptioncontent='Final Project MV4204'/>
  7            <meta name='creatorcontent='Seksit Siripala'/>
  8            <meta name='createdcontent='5 September 2002'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='identifiercontent='https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/House.x3d'/>
 11            <meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 12            <meta name='licensecontent='../../license.html'/>
 13       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: back, back11, back12, back13, back14, back21, back22, back23, back24, back31, back32, back33, back34, back35, BACKDOOR, backdoor, backtwall32, backwall11, backwall12, backwall13, backwall14, backwall21, backwall22, backwall23, backwall24, backwall31, backwall33, backwall34, backwall35, BACKWINDOW1, backwindow1, backWindow1Clock, backWindow1Clock2, backWindow1Close, backWindow1KnubClose, backWindow1KnubO, backWindow1KnubOpen, backWindow1Open, backWindow1Pos, backWindow1Pos2, BACKWINDOW2, backwindow2, backWindow2Clock, backWindow2Clock2, backWindow2Close, backWindow2KnubC, backWindow2KnubClose, backWindow2KnubO, backWindow2KnubOpen, backWindow2Open, backWindow2Pos, backWindow2Pos2, BACKWINDOW3, backwindow3, backWindow3Clock, backWindow3Clock2, backWindow3Close, backWindow3KnubClose, backWindow3KnubO, backWindow3KnubOpen, backWindow3Open, backWindow3Pos, backWindow3Pos2, Bed, celling1, celling1shape, cellingapp, Chair, Clock, ClockBD, ClockClose, ClockCloseBD, ClockCloseFR, ClockCloseFR2, ClockCloseroomleft, ClockCloseroomright, Clockdoorroomleft, Clockdoorroomright, ClockFR, ClockFR2, DOOR, door, doorBDPathClose, doorBDPathOpen, doorFR2PathClose, doorFR2PathOpen, doorFRPathClose, doorFRPathOpen, doorKnub, doorKnubB, doorKnubFR, doorKnubFR2, doorPathClose, doorPathOpen, DOORROOMLEFT, doorroomleft, doorroomleftPathClose, doorroomleftPathOpen, DOORROOMRIGHT, doorroomright, doorroomrightPathClose, doorroomrightPathOpen, FLOOR, floor1, floor2, floorappearance, floorshape1, floorshape2, Front1, Front2, FRONTROOMDOOR, frontroomdoor, FRONTROOMDOOR2, frontroomdoor2, INSIDE, knub_ap, knubOut, knubOutB, knubOutfrontroom, knubOutfrontroom2, left, left1, left11, left12, left2, left21, left22, left2wall1, left2wall11, left2wall12, left2wall1Appearance, left2wall2, left2wall2Appearance, left31, left32, left33, lefttWindow1KnubO, lefttWindow2KnubO, leftwall11, leftwall12, leftwall21, leftwall22, leftwall31, leftwall32, leftwall33, LEFTWINDOW1, leftwindow1, leftWindow1Clock, leftWindow1Clock2, leftWindow1Close, leftWindow1Knub2, leftWindow1KnubClose, leftWindow1KnubOpen, leftWindow1Open, leftWindow1Pos, leftWindow1Pos2, LEFTWINDOW2, leftwindow2, leftWindow2Clock, leftWindow2Clock2, leftWindow2Close, leftWindow2KnubClose, leftWindow2KnubOpen, leftWindow2Open, leftWindow2Pos, leftWindow2Pos2, part1, part2, partFront211, partFront212, partFront221, partFront222, partFront231, partFront232, partFront233, Right, right11, right12, right13, right14, right21, right22, right23, right24, right31, right32, right33, right34, rightwall11, rightwall12, rightwall13, rightwall14, rightwall21, rightwall22, rightwall23, rightwall24, rightwall31, rightwall32, rightwall33, rightwall34, RIGHTWINDOW1, rightwindow1, rightWindow1Clock, rightWindow1Clock2, rightWindow1Close, rightWindow1Knub1, rightWindow1KnubC, rightWindow1KnubClose, rightWindow1KnubO, rightWindow1KnubOpen, rightWindow1Open, rightWindow1Pos, rightWindow1Pos2, RIGHTWINDOW2, rightwindow2, rightWindow2Clock, rightWindow2Clock2, rightWindow2Close, rightWindow2Knub1, rightWindow2Knub2, rightWindow2KnubC, rightWindow2KnubClose, rightWindow2KnubO, rightWindow2KnubOpen, rightWindow2Open, rightWindow2Pos, rightWindow2Pos2, RIGHTWINDOW3, rightwindow3, rightWindow3Clock, rightWindow3Clock2, rightWindow3Close, rightWindow3KnubC, rightWindow3KnubClose, rightWindow3KnubO, rightWindow3KnubOpen, rightWindow3Open, rightWindow3Pos, rightWindow3Pos2, roof1, roof2, roof3, roof4, roofandcelling, roofapp, roofpart1, Sound1clip_5, toilet, touchClose, touchCloseBD, touchCloseFR, touchCloseFR2, touchCloseroomleft, touchCloseroomright, touchOpen, touchOpenBD, touchOpenFR, touchOpenFR2, touchOpenroomleft, touchOpenroomright, wall1, wall1roomleft, wall2, wallAppearance, wallpart, wellWall, WINDOW1, window1, window1Knub, window1knubopen, window1Slide, WINDOW2, window2, window2Knub, window2knubopen, window2Slide, windowApp, windowAppearance, wood, yellowBrick

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5
-->
 14       <Scene>
 15            <WorldInfo title='House.x3d'/>
 16            <Transform>
 17                 <Background groundAngle='1.309 1.570796groundColor='0.1 0.1 0 0.2 0.6 0.4 0.2 0.7 0.3skyAngle='1.309 1.571skyColor='0 0.2 0.7 0 0.5 1 1 1 1'   backUrl=' "mountns.png " "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/mountns.png " '   frontUrl=' "mountns.png " "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/mountns.png " '   leftUrl=' "mountns.png " "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/mountns.png " '   rightUrl=' "mountns.png " "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/mountns.png " '/>
 18            </Transform>
 19            <Viewpoint description='frontorientation='0 1 0 -0.57position='-15 3 25'/>
 20            <Viewpoint description='fromLeftorientation='0.07 1 0.07 -1.3position='-15 4 -2.5'/>
 21            <Viewpoint description='fromRightorientation='0 1 0 1.57position='35 4 2.5'/>
 22            <Viewpoint description='inside1orientation='0 1 0 1.20position='8.9 2.0 -3.2'/>
 23            <Viewpoint description='inside2orientation='0 1 0 0.50position='-0.15 1.3 -7.5'/>
 24            <Group DEF='Front1'>
 25                 <Transform DEF='wall1translation='-2.0 1 -3.0'>
 26                      <Shape DEF='part1'>
 27                           <Box size='2 2 0.1'/>
 28 
                         <!-- Appearance wallAppearance is a DEF node that has 55 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 -->
                         <Appearance DEF='wallAppearance'>
 29                                <Material/>
 30 
                              <!-- ImageTexture yellowBrick is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                              <ImageTexture DEF='yellowBrick'   url=' "yellowBrick.jpg " "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/yellowBrick.jpg " '/>
 31                           </Appearance>
 32                      </Shape>
 33                 </Transform>
 34 
               <!-- ROUTE information for DOOR node:  [from doorPathOpen.value_changed to set_rotation ] [from doorPathClose.value_changed to set_rotation ] -->
               <Transform DEF='DOORcenter='0.5 0 0translation='-0.5 1 -3.0'>
 35                      <Shape DEF='door'>
 36                           <Box size='1 2 0.1'/>
 37                           <Appearance>
 38                                <Material diffuseColor='0.8 0.5 0'/>
 39 
                              <!-- ImageTexture wood is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 -->
                              <ImageTexture DEF='wood'   url=' "wood.jpg " "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/wood.jpg " '/>
 40                           </Appearance>
 41                      </Shape>
 42                      <Transform translation='-0.4 0 0.05'>
 43 
                         <!-- Shape knubOut is a DEF node that has 8 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8 -->
                         <Shape DEF='knubOut'>
 44                                <Sphere DEF='doorKnubradius='0.05'/>
 45                                <Appearance DEF='knub_ap'>
 46                                     <Material/>
 47                                </Appearance>
 48                           </Shape>
 49 
                         <!-- ROUTE information for Clock node:  [from touchOpen.touchTime to set_startTime ] [from fraction_changed to doorPathOpen.set_fraction ] -->
                         <TimeSensor DEF='ClockcycleInterval='3'/>
 50 
                         <!-- ROUTE information for doorPathOpen node:  [from Clock.fraction_changed to set_fraction ] [from value_changed to DOOR.set_rotation ] -->
                         <OrientationInterpolator DEF='doorPathOpenkey='0 0.34 0.68 1keyValue='0 1 0 0 0 1 0 -0.7 0 1 0 -1.0 0 1 0 -1.2'/>
 51 
                         <!-- ROUTE information for touchOpen node:  [from touchTime to Clock.set_startTime ] -->
                         <TouchSensor DEF='touchOpendescription='touch to open'/>
 52                           < ROUTE  fromNode='touchOpen' fromField='touchTime' toNode='Clock' toField='set_startTime'/>
 53                           < ROUTE  fromNode='Clock' fromField='fraction_changed' toNode='doorPathOpen' toField='set_fraction'/>
 54                           < ROUTE  fromNode='doorPathOpen' fromField='value_changed' toNode='DOOR' toField='set_rotation'/>
 55                      </Transform>
 56                      <Transform translation='-0.4 0 -0.05'>
 57                           <Shape USE='knubOut'/>
 58 
                         <!-- ROUTE information for ClockClose node:  [from touchClose.touchTime to set_startTime ] [from fraction_changed to doorPathClose.set_fraction ] -->
                         <TimeSensor DEF='ClockClosecycleInterval='2'/>
 59 
                         <!-- ROUTE information for doorPathClose node:  [from ClockClose.fraction_changed to set_fraction ] [from value_changed to DOOR.set_rotation ] -->
                         <OrientationInterpolator DEF='doorPathClosekey='0 0.34 0.68 1keyValue='0 1 0 -1.2 0 1 0 -1.0 0 1 0 -0.7 0 1 0 0'/>
 60 
                         <!-- ROUTE information for touchClose node:  [from touchTime to ClockClose.set_startTime ] -->
                         <TouchSensor DEF='touchClosedescription='touch to close'/>
 61                           < ROUTE  fromNode='touchClose' fromField='touchTime' toNode='ClockClose' toField='set_startTime'/>
 62                           < ROUTE  fromNode='ClockClose' fromField='fraction_changed' toNode='doorPathClose' toField='set_fraction'/>
 63                           < ROUTE  fromNode='doorPathClose' fromField='value_changed' toNode='DOOR' toField='set_rotation'/>
 64                      </Transform>
 65                 </Transform>
 66                 <Transform DEF='wall2translation='-1.5 3 -3.0'>
 67                      <Shape DEF='part2'>
 68                           <Box size='3 2 0.1'/>
 69                           <Appearance DEF='wallpart'>
 70                                <Material diffuseColor='0.8 0.8 0.4'/>
 71                                <ImageTexture USE='yellowBrick'/>
 72                           </Appearance>
 73                      </Shape>
 74                 </Transform>
 75            </Group>
 76            <Group DEF='Front2'>
 77                 <Transform translation='2.25 3.25 0'>
 78                      <Shape DEF='partFront211'>
 79                           <Box size='4.5 1.5 0.1'/>
 80                           <Appearance USE='wallAppearance'/>
 81                      </Shape>
 82                 </Transform>
 83                 <Transform translation='6.75 3.25 0'>
 84                      <Shape DEF='partFront212'>
 85                           <Box size='4.5 1.5 0.1'/>
 86                           <Appearance USE='wallAppearance'/>
 87                      </Shape>
 88                 </Transform>
 89                 <Transform translation='2.25 0.75 0'>
 90                      <Shape DEF='partFront221'>
 91                           <Box size='4.5 1.5 0.1'/>
 92                           <Appearance USE='wallAppearance'/>
 93                      </Shape>
 94                 </Transform>
 95                 <Transform translation='6.75 0.75 0'>
 96                      <Shape DEF='partFront222'>
 97                           <Box size='4.5 1.5 0.1'/>
 98                           <Appearance USE='wallAppearance'/>
 99                      </Shape>
100                 </Transform>
101                 <Transform translation='1.25 2 0'>
102                      <Shape DEF='partFront231'>
103                           <Box size='2.5 1 0.1'/>
104                           <Appearance USE='wallAppearance'/>
105                      </Shape>
106                 </Transform>
107                 <Transform translation='4.5 2 0'>
108                      <Shape DEF='partFront232'>
109                           <Box size='2 1 0.1'/>
110                           <Appearance USE='wallAppearance'/>
111                      </Shape>
112                 </Transform>
113                 <Transform translation='7.75 2 0'>
114                      <Shape DEF='partFront233'>
115                           <Box size='2.5 1 0.1'/>
116                           <Appearance USE='wallAppearance'/>
117                      </Shape>
118                 </Transform>
119 
               <!-- ROUTE information for WINDOW1 node:  [from window1Slide.translation_changed to set_translation ] -->
               <Transform DEF='WINDOW1translation='3 2 0.05'>
120                      <Shape DEF='window1'>
121                           <Box size='1 1 0.075'/>
122                           <Appearance DEF='windowAppearance'>
123                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
124                           </Appearance>
125                      </Shape>
126                      <Transform translation='0.4 0 -0.1'>
127                           <Shape DEF='window1knubopen'>
128                                <Sphere DEF='window1Knubradius='0.05'/>
129                                <Appearance>
130                                     <Material/>
131                                </Appearance>
132                           </Shape>
133                      </Transform>
134 
                    <!-- ROUTE information for window1Slide node:  [from translation_changed to WINDOW1.set_translation ] -->
                    <PlaneSensor DEF='window1Slidedescription='click and drag to move windowmaxPosition='3 2minPosition='2.1 2'/>
135                      < ROUTE  fromNode='window1Slide' fromField='translation_changed' toNode='WINDOW1' toField='set_translation'/>
136                 </Transform>
137 
               <!-- ROUTE information for WINDOW2 node:  [from window2Slide.translation_changed to set_translation ] -->
               <Transform DEF='WINDOW2translation='6 2 0.05'>
138                      <Shape DEF='window2'>
139                           <Box size='1 1 0.075'/>
140                           <Appearance DEF='windowApp'>
141                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
142                           </Appearance>
143                      </Shape>
144                      <Transform translation='0.4 0 -0.1'>
145                           <Shape DEF='window2knubopen'>
146                                <Sphere DEF='window2Knubradius='0.05'/>
147                                <Appearance>
148                                     <Material/>
149                                </Appearance>
150                           </Shape>
151                      </Transform>
152 
                    <!-- ROUTE information for window2Slide node:  [from translation_changed to WINDOW2.set_translation ] -->
                    <PlaneSensor DEF='window2Slidedescription='click and drag to move windowmaxPosition='6 2minPosition='5.1 2'/>
153                      < ROUTE  fromNode='window2Slide' fromField='translation_changed' toNode='WINDOW2' toField='set_translation'/>
154                 </Transform>
155            </Group>
156            <Group DEF='Right'>
157                 <Transform DEF='rightwall11rotation='0 1 0 1.57translation='9 3.25 -1.5'>
158                      <Shape DEF='right11'>
159                           <Box size='3 1.5 0.1'/>
160                           <Appearance USE='wallAppearance'/>
161                      </Shape>
162                 </Transform>
163                 <Transform DEF='rightwall12rotation='0 1 0 1.57translation='9 3.25 -4.5'>
164                      <Shape DEF='right12'>
165                           <Box size='3 1.5 0.1'/>
166                           <Appearance USE='wallAppearance'/>
167                      </Shape>
168                 </Transform>
169                 <Transform DEF='rightwall13rotation='0 1 0 1.57translation='9 3.25 -7.5'>
170                      <Shape DEF='right13'>
171                           <Box size='3 1.5 0.1'/>
172                           <Appearance USE='wallAppearance'/>
173                      </Shape>
174                 </Transform>
175                 <Transform DEF='rightwall14rotation='0 1 0 1.57translation='9 3.25 -10.5'>
176                      <Shape DEF='right14'>
177                           <Box size='3 1.5 0.1'/>
178                           <Appearance USE='wallAppearance'/>
179                      </Shape>
180                 </Transform>
181                 <Transform DEF='rightwall21rotation='0 1 0 1.57translation='9 0.75 -1.5'>
182                      <Shape DEF='right21'>
183                           <Box size='3 1.5 0.1'/>
184                           <Appearance USE='wallAppearance'/>
185                      </Shape>
186                 </Transform>
187                 <Transform DEF='rightwall22rotation='0 1 0 1.57translation='9 0.75 -4.5'>
188                      <Shape DEF='right22'>
189                           <Box size='3 1.5 0.1'/>
190                           <Appearance USE='wallAppearance'/>
191                      </Shape>
192                 </Transform>
193                 <Transform DEF='rightwall23rotation='0 1 0 1.57translation='9 0.75 -7.5'>
194                      <Shape DEF='right23'>
195                           <Box size='3 1.5 0.1'/>
196                           <Appearance USE='wallAppearance'/>
197                      </Shape>
198                 </Transform>
199                 <Transform DEF='rightwall24rotation='0 1 0 1.57translation='9 0.75 -10.5'>
200                      <Shape DEF='right24'>
201                           <Box size='3 1.5 0.1'/>
202                           <Appearance USE='wallAppearance'/>
203                      </Shape>
204                 </Transform>
205                 <Transform DEF='rightwall31rotation='0 1 0 1.57translation='9 2 -1.25'>
206                      <Shape DEF='right31'>
207                           <Box size='2.5 1 0.1'/>
208                           <Appearance USE='wallAppearance'/>
209                      </Shape>
210                 </Transform>
211                 <Transform DEF='rightwall32rotation='0 1 0 1.57translation='9 2 -4.5'>
212                      <Shape DEF='right32'>
213                           <Box size='2 1 0.1'/>
214                           <Appearance USE='wallAppearance'/>
215                      </Shape>
216                 </Transform>
217                 <Transform DEF='rightwall33rotation='0 1 0 1.57translation='9 2 -7.5'>
218                      <Shape DEF='right33'>
219                           <Box size='2 1 0.1'/>
220                           <Appearance USE='wallAppearance'/>
221                      </Shape>
222                 </Transform>
223                 <Transform DEF='rightwall34rotation='0 1 0 1.57translation='9 2 -10.75'>
224                      <Shape DEF='right34'>
225                           <Box size='2.5 1 0.1'/>
226                           <Appearance USE='wallAppearance'/>
227                      </Shape>
228                 </Transform>
229 
               <!-- ROUTE information for RIGHTWINDOW1 node:  [from rightWindow1Pos.value_changed to set_translation ] [from rightWindow1Pos2.value_changed to set_translation ] -->
               <Transform DEF='RIGHTWINDOW1rotation='0 1 0 1.57translation='9 2 -3'>
230                      <Shape DEF='rightwindow1'>
231                           <Box size='1 1 0.075'/>
232                           <Appearance>
233                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
234                           </Appearance>
235                      </Shape>
236                      <Transform translation='-0.4 0 -0.1'>
237                           <Shape DEF='rightWindow1KnubOpen'>
238                                <Sphere DEF='rightWindow1KnubOradius='0.05'/>
239                                <Appearance>
240                                     <Material/>
241                                </Appearance>
242                           </Shape>
243 
                         <!-- ROUTE information for rightWindow1Clock node:  [from rightWindow1Open.touchTime to set_startTime ] [from fraction_changed to rightWindow1Pos.set_fraction ] -->
                         <TimeSensor DEF='rightWindow1Clock'/>
244 
                         <!-- ROUTE information for rightWindow1Pos node:  [from rightWindow1Clock.fraction_changed to set_fraction ] [from value_changed to RIGHTWINDOW1.set_translation ] -->
                         <PositionInterpolator DEF='rightWindow1Poskey='0 0.5 1keyValue='9 2 -3 9 2 -3.5 9 2 -3.9'/>
245 
                         <!-- ROUTE information for rightWindow1Open node:  [from touchTime to rightWindow1Clock.set_startTime ] -->
                         <TouchSensor DEF='rightWindow1Opendescription='touch to open'/>
246                           < ROUTE  fromNode='rightWindow1Open' fromField='touchTime' toNode='rightWindow1Clock' toField='set_startTime'/>
247                           < ROUTE  fromNode='rightWindow1Clock' fromField='fraction_changed' toNode='rightWindow1Pos' toField='set_fraction'/>
248                           < ROUTE  fromNode='rightWindow1Pos' fromField='value_changed' toNode='RIGHTWINDOW1' toField='set_translation'/>
249                      </Transform>
250                      <Transform translation='-0.4 -0.2 -0.1'>
251                           <Shape DEF='rightWindow1KnubClose'>
252                                <Sphere DEF='rightWindow1Knub1radius='0.05'/>
253                                <Appearance>
254                                     <Material/>
255                                </Appearance>
256                           </Shape>
257 
                         <!-- ROUTE information for rightWindow1Clock2 node:  [from rightWindow1Close.touchTime to set_startTime ] [from fraction_changed to rightWindow1Pos2.set_fraction ] -->
                         <TimeSensor DEF='rightWindow1Clock2'/>
258 
                         <!-- ROUTE information for rightWindow1Pos2 node:  [from rightWindow1Clock2.fraction_changed to set_fraction ] [from value_changed to RIGHTWINDOW1.set_translation ] -->
                         <PositionInterpolator DEF='rightWindow1Pos2key='0 0.5 1keyValue='9 2 -3.9 9 2 -3.5 9 2 -3'/>
259 
                         <!-- ROUTE information for rightWindow1Close node:  [from touchTime to rightWindow1Clock2.set_startTime ] -->
                         <TouchSensor DEF='rightWindow1Closedescription='touch to close'/>
260                           < ROUTE  fromNode='rightWindow1Close' fromField='touchTime' toNode='rightWindow1Clock2' toField='set_startTime'/>
261                           < ROUTE  fromNode='rightWindow1Clock2' fromField='fraction_changed' toNode='rightWindow1Pos2' toField='set_fraction'/>
262                           < ROUTE  fromNode='rightWindow1Pos2' fromField='value_changed' toNode='RIGHTWINDOW1' toField='set_translation'/>
263                      </Transform>
264                 </Transform>
265 
               <!-- ROUTE information for RIGHTWINDOW2 node:  [from rightWindow2Pos.value_changed to set_translation ] [from rightWindow2Pos2.value_changed to set_translation ] -->
               <Transform DEF='RIGHTWINDOW2rotation='0 1 0 1.57translation='9 2 -6'>
266                      <Shape DEF='rightwindow2'>
267                           <Box size='1 1 0.075'/>
268                           <Appearance>
269                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
270                           </Appearance>
271                      </Shape>
272                      <Transform translation='-0.4 0 -0.1'>
273                           <Shape DEF='rightWindow2KnubOpen'>
274                                <Sphere DEF='rightWindow2KnubOradius='0.05'/>
275                                <Appearance>
276                                     <Material/>
277                                </Appearance>
278                           </Shape>
279 
                         <!-- ROUTE information for rightWindow2Clock node:  [from rightWindow2Open.touchTime to set_startTime ] [from fraction_changed to rightWindow2Pos.set_fraction ] -->
                         <TimeSensor DEF='rightWindow2Clock'/>
280 
                         <!-- ROUTE information for rightWindow2Pos node:  [from rightWindow2Clock.fraction_changed to set_fraction ] [from value_changed to RIGHTWINDOW2.set_translation ] -->
                         <PositionInterpolator DEF='rightWindow2Poskey='0 0.5 1keyValue='9 2 -6 9 2 -6.5 9 2 -6.9'/>
281 
                         <!-- ROUTE information for rightWindow2Open node:  [from touchTime to rightWindow2Clock.set_startTime ] -->
                         <TouchSensor DEF='rightWindow2Opendescription='touch to open'/>
282                           < ROUTE  fromNode='rightWindow2Open' fromField='touchTime' toNode='rightWindow2Clock' toField='set_startTime'/>
283                           < ROUTE  fromNode='rightWindow2Clock' fromField='fraction_changed' toNode='rightWindow2Pos' toField='set_fraction'/>
284                           < ROUTE  fromNode='rightWindow2Pos' fromField='value_changed' toNode='RIGHTWINDOW2' toField='set_translation'/>
285                      </Transform>
286                      <Transform translation='-0.4 -0.2 -0.1'>
287                           <Shape DEF='rightWindow2KnubClose'>
288                                <Sphere DEF='rightWindow2Knub2radius='0.05'/>
289                                <Appearance>
290                                     <Material/>
291                                </Appearance>
292                           </Shape>
293 
                         <!-- ROUTE information for rightWindow2Clock2 node:  [from rightWindow2Close.touchTime to set_startTime ] [from fraction_changed to rightWindow2Pos2.set_fraction ] -->
                         <TimeSensor DEF='rightWindow2Clock2'/>
294 
                         <!-- ROUTE information for rightWindow2Pos2 node:  [from rightWindow2Clock2.fraction_changed to set_fraction ] [from value_changed to RIGHTWINDOW2.set_translation ] -->
                         <PositionInterpolator DEF='rightWindow2Pos2key='0 0.5 1keyValue='9 2 -6.9 9 2 -6.5 9 2 -6'/>
295 
                         <!-- ROUTE information for rightWindow2Close node:  [from touchTime to rightWindow2Clock2.set_startTime ] -->
                         <TouchSensor DEF='rightWindow2Closedescription='touch to close'/>
296                           < ROUTE  fromNode='rightWindow2Close' fromField='touchTime' toNode='rightWindow2Clock2' toField='set_startTime'/>
297                           < ROUTE  fromNode='rightWindow2Clock2' fromField='fraction_changed' toNode='rightWindow2Pos2' toField='set_fraction'/>
298                           < ROUTE  fromNode='rightWindow2Pos2' fromField='value_changed' toNode='RIGHTWINDOW2' toField='set_translation'/>
299                      </Transform>
300                 </Transform>
301 
               <!-- ROUTE information for RIGHTWINDOW3 node:  [from rightWindow3Pos.value_changed to set_translation ] [from rightWindow3Pos2.value_changed to set_translation ] -->
               <Transform DEF='RIGHTWINDOW3rotation='0 1 0 1.57translation='9 2 -9'>
302                      <Shape DEF='rightwindow3'>
303                           <Box size='1 1 0.075'/>
304                           <Appearance>
305                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
306                           </Appearance>
307                      </Shape>
308                      <Transform translation='-0.4 0 -0.1'>
309                           <Shape DEF='rightWindow3KnubOpen'>
310                                <Sphere DEF='rightWindow3KnubOradius='0.05'/>
311                                <Appearance>
312                                     <Material/>
313                                </Appearance>
314                           </Shape>
315 
                         <!-- ROUTE information for rightWindow3Clock node:  [from rightWindow3Open.touchTime to set_startTime ] [from fraction_changed to rightWindow3Pos.set_fraction ] -->
                         <TimeSensor DEF='rightWindow3Clock'/>
316 
                         <!-- ROUTE information for rightWindow3Pos node:  [from rightWindow3Clock.fraction_changed to set_fraction ] [from value_changed to RIGHTWINDOW3.set_translation ] -->
                         <PositionInterpolator DEF='rightWindow3Poskey='0 0.5 1keyValue='9 2 -9 9 2 -9.5 9 2 -9.9'/>
317 
                         <!-- ROUTE information for rightWindow3Open node:  [from touchTime to rightWindow3Clock.set_startTime ] -->
                         <TouchSensor DEF='rightWindow3Opendescription='touch to open'/>
318                           < ROUTE  fromNode='rightWindow3Open' fromField='touchTime' toNode='rightWindow3Clock' toField='set_startTime'/>
319                           < ROUTE  fromNode='rightWindow3Clock' fromField='fraction_changed' toNode='rightWindow3Pos' toField='set_fraction'/>
320                           < ROUTE  fromNode='rightWindow3Pos' fromField='value_changed' toNode='RIGHTWINDOW3' toField='set_translation'/>
321                      </Transform>
322                      <Transform translation='-0.4 -0.2 -0.1'>
323                           <Shape DEF='rightWindow3KnubClose'>
324                                <Sphere DEF='rightWindow2KnubCradius='0.05'/>
325                                <Appearance>
326                                     <Material/>
327                                </Appearance>
328                           </Shape>
329 
                         <!-- ROUTE information for rightWindow3Clock2 node:  [from rightWindow3Close.touchTime to set_startTime ] [from fraction_changed to rightWindow3Pos2.set_fraction ] -->
                         <TimeSensor DEF='rightWindow3Clock2'/>
330 
                         <!-- ROUTE information for rightWindow3Pos2 node:  [from rightWindow3Clock2.fraction_changed to set_fraction ] [from value_changed to RIGHTWINDOW3.set_translation ] -->
                         <PositionInterpolator DEF='rightWindow3Pos2key='0 0.5 1keyValue='9 2 -9.9 9 2 -9.5 9 2 -9'/>
331 
                         <!-- ROUTE information for rightWindow3Close node:  [from touchTime to rightWindow3Clock2.set_startTime ] -->
                         <TouchSensor DEF='rightWindow3Closedescription='touch to close'/>
332                           < ROUTE  fromNode='rightWindow3Close' fromField='touchTime' toNode='rightWindow3Clock2' toField='set_startTime'/>
333                           < ROUTE  fromNode='rightWindow3Clock2' fromField='fraction_changed' toNode='rightWindow3Pos2' toField='set_fraction'/>
334                           < ROUTE  fromNode='rightWindow3Pos2' fromField='value_changed' toNode='RIGHTWINDOW3' toField='set_translation'/>
335                      </Transform>
336                 </Transform>
337            </Group>
338            <Group DEF='back'>
339                 <Transform DEF='backwall11translation='7.5 3.25 -12'>
340                      <Shape DEF='back11'>
341                           <Box size='3 1.5 0.1'/>
342                           <Appearance USE='wallAppearance'/>
343                      </Shape>
344                 </Transform>
345                 <Transform DEF='backwall12translation='4.5 3.25 -12'>
346                      <Shape DEF='back12'>
347                           <Box size='3 1.5 0.1'/>
348                           <Appearance USE='wallAppearance'/>
349                      </Shape>
350                 </Transform>
351                 <Transform DEF='backwall13translation='1.5 3.25 -12'>
352                      <Shape DEF='back13'>
353                           <Box size='3 1.5 0.1'/>
354                           <Appearance USE='wallAppearance'/>
355                      </Shape>
356                 </Transform>
357                 <Transform DEF='backwall14translation='-1.5 3.25 -12'>
358                      <Shape DEF='back14'>
359                           <Box size='3 1.5 0.1'/>
360                           <Appearance USE='wallAppearance'/>
361                      </Shape>
362                 </Transform>
363                 <Transform DEF='backwall21translation='7 0.75 -12'>
364                      <Shape DEF='back21'>
365                           <Box size='2 1.5 0.1'/>
366                           <Appearance USE='wallAppearance'/>
367                      </Shape>
368                 </Transform>
369                 <Transform DEF='backwall22translation='4.5 0.75 -12'>
370                      <Shape DEF='back22'>
371                           <Box size='3 1.5 0.1'/>
372                           <Appearance USE='wallAppearance'/>
373                      </Shape>
374                 </Transform>
375                 <Transform DEF='backwall23translation='1.5 0.75 -12'>
376                      <Shape DEF='back23'>
377                           <Box size='3 1.5 0.1'/>
378                           <Appearance USE='wallAppearance'/>
379                      </Shape>
380                 </Transform>
381                 <Transform DEF='backwall24translation='-1.5 0.75 -12'>
382                      <Shape DEF='back24'>
383                           <Box size='3 1.5 0.1'/>
384                           <Appearance USE='wallAppearance'/>
385                      </Shape>
386                 </Transform>
387                 <Transform DEF='backwall31translation='7.25 2 -12'>
388                      <Shape DEF='back31'>
389                           <Box size='1.5 1 0.1'/>
390                           <Appearance USE='wallAppearance'/>
391                      </Shape>
392                 </Transform>
393                 <Transform DEF='backtwall32translation='4.5 2 -12'>
394                      <Shape DEF='back32'>
395                           <Box size='2 1 0.1'/>
396                           <Appearance USE='wallAppearance'/>
397                      </Shape>
398                 </Transform>
399                 <Transform DEF='backwall33translation='1.5 2 -12'>
400                      <Shape DEF='back33'>
401                           <Box size='2 1 0.1'/>
402                           <Appearance USE='wallAppearance'/>
403                      </Shape>
404                 </Transform>
405                 <Transform DEF='backwall34translation='-1.75 2 -12'>
406                      <Shape DEF='back34'>
407                           <Box size='2.5 1 0.1'/>
408                           <Appearance USE='wallAppearance'/>
409                      </Shape>
410                 </Transform>
411                 <Transform DEF='backwall35translation='8.5 2.25 -12'>
412                      <Shape DEF='back35'>
413                           <Box size='1 0.5 0.1'/>
414                           <Appearance USE='wallAppearance'/>
415                      </Shape>
416                 </Transform>
417 
               <!-- ROUTE information for BACKDOOR node:  [from doorBDPathOpen.value_changed to set_rotation ] [from doorBDPathClose.value_changed to set_rotation ] -->
               <Transform DEF='BACKDOORcenter='0.5 0 0translation='8.5 1 -12'>
418                      <Shape DEF='backdoor'>
419                           <Box size='1 2 0.1'/>
420                           <Appearance>
421                                <Material diffuseColor='0.8 0.5 0'/>
422                                <ImageTexture USE='wood'/>
423                           </Appearance>
424                      </Shape>
425                      <Transform translation='-0.4 0 -0.05'>
426                           <Shape DEF='knubOutB'>
427                                <Sphere DEF='doorKnubBradius='0.05'/>
428                                <Appearance>
429                                     <Material/>
430                                </Appearance>
431                           </Shape>
432 
                         <!-- ROUTE information for ClockBD node:  [from touchOpenBD.touchTime to set_startTime ] [from fraction_changed to doorBDPathOpen.set_fraction ] -->
                         <TimeSensor DEF='ClockBDcycleInterval='3'/>
433 
                         <!-- ROUTE information for doorBDPathOpen node:  [from ClockBD.fraction_changed to set_fraction ] [from value_changed to BACKDOOR.set_rotation ] -->
                         <OrientationInterpolator DEF='doorBDPathOpenkey='0 0.34 0.68 1keyValue='0 1 0 0 0 1 0 0.7 0 1 0 1.0 0 1 0 1.2'/>
434 
                         <!-- ROUTE information for touchOpenBD node:  [from touchTime to ClockBD.set_startTime ] -->
                         <TouchSensor DEF='touchOpenBDdescription='touch to open'/>
435                           < ROUTE  fromNode='touchOpenBD' fromField='touchTime' toNode='ClockBD' toField='set_startTime'/>
436                           < ROUTE  fromNode='ClockBD' fromField='fraction_changed' toNode='doorBDPathOpen' toField='set_fraction'/>
437                           < ROUTE  fromNode='doorBDPathOpen' fromField='value_changed' toNode='BACKDOOR' toField='set_rotation'/>
438                      </Transform>
439                      <Transform translation='-0.4 0 0.05'>
440                           <Shape USE='knubOut'/>
441 
                         <!-- ROUTE information for ClockCloseBD node:  [from touchCloseBD.touchTime to set_startTime ] [from fraction_changed to doorBDPathClose.set_fraction ] -->
                         <TimeSensor DEF='ClockCloseBDcycleInterval='2'/>
442 
                         <!-- ROUTE information for doorBDPathClose node:  [from ClockCloseBD.fraction_changed to set_fraction ] [from value_changed to BACKDOOR.set_rotation ] -->
                         <OrientationInterpolator DEF='doorBDPathClosekey='0 0.34 0.68 1keyValue='0 1 0 1.2 0 1 0 1.0 0 1 0 0.7 0 1 0 0'/>
443 
                         <!-- ROUTE information for touchCloseBD node:  [from touchTime to ClockCloseBD.set_startTime ] -->
                         <TouchSensor DEF='touchCloseBDdescription='touch to close'/>
444                           < ROUTE  fromNode='touchCloseBD' fromField='touchTime' toNode='ClockCloseBD' toField='set_startTime'/>
445                           < ROUTE  fromNode='ClockCloseBD' fromField='fraction_changed' toNode='doorBDPathClose' toField='set_fraction'/>
446                           < ROUTE  fromNode='doorBDPathClose' fromField='value_changed' toNode='BACKDOOR' toField='set_rotation'/>
447                      </Transform>
448                 </Transform>
449 
               <!-- ROUTE information for BACKWINDOW1 node:  [from backWindow1Pos.value_changed to set_translation ] [from backWindow1Pos2.value_changed to set_translation ] -->
               <Transform DEF='BACKWINDOW1translation='6 2 -12'>
450                      <Shape DEF='backwindow1'>
451                           <Box size='1 1 0.075'/>
452                           <Appearance>
453                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
454                           </Appearance>
455                      </Shape>
456                      <Transform translation='0.4 0 0.1'>
457                           <Shape DEF='backWindow1KnubOpen'>
458                                <Sphere DEF='backWindow1KnubOradius='0.05'/>
459                                <Appearance>
460                                     <Material/>
461                                </Appearance>
462                           </Shape>
463 
                         <!-- ROUTE information for backWindow1Clock node:  [from backWindow1Open.touchTime to set_startTime ] [from fraction_changed to backWindow1Pos.set_fraction ] -->
                         <TimeSensor DEF='backWindow1Clock'/>
464 
                         <!-- ROUTE information for backWindow1Pos node:  [from backWindow1Clock.fraction_changed to set_fraction ] [from value_changed to BACKWINDOW1.set_translation ] -->
                         <PositionInterpolator DEF='backWindow1Poskey='0 0.5 1keyValue='6 2 -12 5.5 2 -12 5.1 2 -12'/>
465 
                         <!-- ROUTE information for backWindow1Open node:  [from touchTime to backWindow1Clock.set_startTime ] -->
                         <TouchSensor DEF='backWindow1Opendescription='touch to open'/>
466                           < ROUTE  fromNode='backWindow1Open' fromField='touchTime' toNode='backWindow1Clock' toField='set_startTime'/>
467                           < ROUTE  fromNode='backWindow1Clock' fromField='fraction_changed' toNode='backWindow1Pos' toField='set_fraction'/>
468                           < ROUTE  fromNode='backWindow1Pos' fromField='value_changed' toNode='BACKWINDOW1' toField='set_translation'/>
469                      </Transform>
470                      <Transform translation='0.4 -0.2 0.1'>
471                           <Shape DEF='backWindow1KnubClose'>
472                                <Sphere DEF='rightWindow1KnubCradius='0.05'/>
473                                <Appearance>
474                                     <Material/>
475                                </Appearance>
476                           </Shape>
477 
                         <!-- ROUTE information for backWindow1Clock2 node:  [from backWindow1Close.touchTime to set_startTime ] [from fraction_changed to backWindow1Pos2.set_fraction ] -->
                         <TimeSensor DEF='backWindow1Clock2'/>
478 
                         <!-- ROUTE information for backWindow1Pos2 node:  [from backWindow1Clock2.fraction_changed to set_fraction ] [from value_changed to BACKWINDOW1.set_translation ] -->
                         <PositionInterpolator DEF='backWindow1Pos2key='0 0.5 1keyValue='5.1 2 -12 5.5 2 -12 6 2 -12'/>
479 
                         <!-- ROUTE information for backWindow1Close node:  [from touchTime to backWindow1Clock2.set_startTime ] -->
                         <TouchSensor DEF='backWindow1Closedescription='touch to close'/>
480                           < ROUTE  fromNode='backWindow1Close' fromField='touchTime' toNode='backWindow1Clock2' toField='set_startTime'/>
481                           < ROUTE  fromNode='backWindow1Clock2' fromField='fraction_changed' toNode='backWindow1Pos2' toField='set_fraction'/>
482                           < ROUTE  fromNode='backWindow1Pos2' fromField='value_changed' toNode='BACKWINDOW1' toField='set_translation'/>
483                      </Transform>
484                 </Transform>
485 
               <!-- ROUTE information for BACKWINDOW2 node:  [from backWindow2Pos.value_changed to set_translation ] [from backWindow2Pos2.value_changed to set_translation ] -->
               <Transform DEF='BACKWINDOW2translation='3 2 -12'>
486                      <Shape DEF='backwindow2'>
487                           <Box size='1 1 0.075'/>
488                           <Appearance>
489                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
490                           </Appearance>
491                      </Shape>
492                      <Transform translation='0.4 0 0.1'>
493                           <Shape DEF='backWindow2KnubOpen'>
494                                <Sphere DEF='backWindow2KnubOradius='0.05'/>
495                                <Appearance>
496                                     <Material/>
497                                </Appearance>
498                           </Shape>
499 
                         <!-- ROUTE information for backWindow2Clock node:  [from backWindow2Open.touchTime to set_startTime ] [from fraction_changed to backWindow2Pos.set_fraction ] -->
                         <TimeSensor DEF='backWindow2Clock'/>
500 
                         <!-- ROUTE information for backWindow2Pos node:  [from backWindow2Clock.fraction_changed to set_fraction ] [from value_changed to BACKWINDOW2.set_translation ] -->
                         <PositionInterpolator DEF='backWindow2Poskey='0 0.5 1keyValue='3 2 -12 2.5 2 -12 2.1 2 -12'/>
501 
                         <!-- ROUTE information for backWindow2Open node:  [from touchTime to backWindow2Clock.set_startTime ] -->
                         <TouchSensor DEF='backWindow2Opendescription='touch to open'/>
502                           < ROUTE  fromNode='backWindow2Open' fromField='touchTime' toNode='backWindow2Clock' toField='set_startTime'/>
503                           < ROUTE  fromNode='backWindow2Clock' fromField='fraction_changed' toNode='backWindow2Pos' toField='set_fraction'/>
504                           < ROUTE  fromNode='backWindow2Pos' fromField='value_changed' toNode='BACKWINDOW2' toField='set_translation'/>
505                      </Transform>
506                      <Transform translation='0.4 -0.2 0.1'>
507                           <Shape DEF='backWindow2KnubClose'>
508                                <Sphere DEF='backWindow2KnubCradius='0.05'/>
509                                <Appearance>
510                                     <Material/>
511                                </Appearance>
512                           </Shape>
513 
                         <!-- ROUTE information for backWindow2Clock2 node:  [from backWindow2Close.touchTime to set_startTime ] [from fraction_changed to backWindow2Pos2.set_fraction ] -->
                         <TimeSensor DEF='backWindow2Clock2'/>
514 
                         <!-- ROUTE information for backWindow2Pos2 node:  [from backWindow2Clock2.fraction_changed to set_fraction ] [from value_changed to BACKWINDOW2.set_translation ] -->
                         <PositionInterpolator DEF='backWindow2Pos2key='0 0.5 1keyValue='2.1 2 -12 2.5 2 -12 3 2 -12'/>
515 
                         <!-- ROUTE information for backWindow2Close node:  [from touchTime to backWindow2Clock2.set_startTime ] -->
                         <TouchSensor DEF='backWindow2Closedescription='touch to close'/>
516                           < ROUTE  fromNode='backWindow2Close' fromField='touchTime' toNode='backWindow2Clock2' toField='set_startTime'/>
517                           < ROUTE  fromNode='backWindow2Clock2' fromField='fraction_changed' toNode='backWindow2Pos2' toField='set_fraction'/>
518                           < ROUTE  fromNode='backWindow2Pos2' fromField='value_changed' toNode='BACKWINDOW2' toField='set_translation'/>
519                      </Transform>
520                 </Transform>
521 
               <!-- ROUTE information for BACKWINDOW3 node:  [from backWindow3Pos.value_changed to set_translation ] [from backWindow3Pos2.value_changed to set_translation ] -->
               <Transform DEF='BACKWINDOW3translation='0 2 -12'>
522                      <Shape DEF='backwindow3'>
523                           <Box size='1 1 0.075'/>
524                           <Appearance>
525                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
526                           </Appearance>
527                      </Shape>
528                      <Transform translation='0.4 0 0.1'>
529                           <Shape DEF='backWindow3KnubOpen'>
530                                <Sphere DEF='backWindow3KnubOradius='0.05'/>
531                                <Appearance>
532                                     <Material/>
533                                </Appearance>
534                           </Shape>
535 
                         <!-- ROUTE information for backWindow3Clock node:  [from backWindow3Open.touchTime to set_startTime ] [from fraction_changed to backWindow3Pos.set_fraction ] -->
                         <TimeSensor DEF='backWindow3Clock'/>
536 
                         <!-- ROUTE information for backWindow3Pos node:  [from backWindow3Clock.fraction_changed to set_fraction ] [from value_changed to BACKWINDOW3.set_translation ] -->
                         <PositionInterpolator DEF='backWindow3Poskey='0 0.5 1keyValue='0 2 -12 -0.5 2 -12 -0.9 2 -12'/>
537 
                         <!-- ROUTE information for backWindow3Open node:  [from touchTime to backWindow3Clock.set_startTime ] -->
                         <TouchSensor DEF='backWindow3Opendescription='touch to open'/>
538                           < ROUTE  fromNode='backWindow3Open' fromField='touchTime' toNode='backWindow3Clock' toField='set_startTime'/>
539                           < ROUTE  fromNode='backWindow3Clock' fromField='fraction_changed' toNode='backWindow3Pos' toField='set_fraction'/>
540                           < ROUTE  fromNode='backWindow3Pos' fromField='value_changed' toNode='BACKWINDOW3' toField='set_translation'/>
541                      </Transform>
542                      <Transform translation='0.4 -0.2 0.1'>
543                           <Shape DEF='backWindow3KnubClose'>
544                                <Sphere DEF='rightWindow3KnubCradius='0.05'/>
545                                <Appearance>
546                                     <Material/>
547                                </Appearance>
548                           </Shape>
549 
                         <!-- ROUTE information for backWindow3Clock2 node:  [from backWindow3Close.touchTime to set_startTime ] [from fraction_changed to backWindow3Pos2.set_fraction ] -->
                         <TimeSensor DEF='backWindow3Clock2'/>
550 
                         <!-- ROUTE information for backWindow3Pos2 node:  [from backWindow3Clock2.fraction_changed to set_fraction ] [from value_changed to BACKWINDOW3.set_translation ] -->
                         <PositionInterpolator DEF='backWindow3Pos2key='0 0.5 1keyValue='-0.9 2 -12 -0.5 2 -12 0 2 -12'/>
551 
                         <!-- ROUTE information for backWindow3Close node:  [from touchTime to backWindow3Clock2.set_startTime ] -->
                         <TouchSensor DEF='backWindow3Closedescription='touch to close'/>
552                           < ROUTE  fromNode='backWindow3Close' fromField='touchTime' toNode='backWindow3Clock2' toField='set_startTime'/>
553                           < ROUTE  fromNode='backWindow3Clock2' fromField='fraction_changed' toNode='backWindow3Pos2' toField='set_fraction'/>
554                           < ROUTE  fromNode='backWindow3Pos2' fromField='value_changed' toNode='BACKWINDOW3' toField='set_translation'/>
555                      </Transform>
556                 </Transform>
557            </Group>
558            <Group DEF='left1'>
559                 <Transform DEF='leftwall11rotation='0 1 0 1.57translation='-3 3.25 -5.25'>
560                      <Shape DEF='left11'>
561                           <Box size='4.5 1.5 0.1'/>
562                           <Appearance USE='wallAppearance'/>
563                      </Shape>
564                 </Transform>
565                 <Transform DEF='leftwall12rotation='0 1 0 1.57translation='-3 3.25 -9.75'>
566                      <Shape DEF='left12'>
567                           <Box size='4.5 1.5 0.1'/>
568                           <Appearance USE='wallAppearance'/>
569                      </Shape>
570                 </Transform>
571                 <Transform DEF='leftwall21rotation='0 1 0 1.57translation='-3 0.75 -5.25'>
572                      <Shape DEF='left21'>
573                           <Box size='4.5 1.5 0.1'/>
574                           <Appearance USE='wallAppearance'/>
575                      </Shape>
576                 </Transform>
577                 <Transform DEF='leftwall22rotation='0 1 0 1.57translation='-3 0.75 -9.75'>
578                      <Shape DEF='left22'>
579                           <Box size='4.5 1.5 0.1'/>
580                           <Appearance USE='wallAppearance'/>
581                      </Shape>
582                 </Transform>
583                 <Transform DEF='leftwall31rotation='0 1 0 1.57translation='-3 2 -4.25'>
584                      <Shape DEF='left31'>
585                           <Box size='2.5 1 0.1'/>
586                           <Appearance USE='wallAppearance'/>
587                      </Shape>
588                 </Transform>
589                 <Transform DEF='leftwall32rotation='0 1 0 1.57translation='-3 2 -7.5'>
590                      <Shape DEF='left32'>
591                           <Box size='2 1 0.1'/>
592                           <Appearance USE='wallAppearance'/>
593                      </Shape>
594                 </Transform>
595                 <Transform DEF='leftwall33rotation='0 1 0 1.57translation='-3 2 -10.75'>
596                      <Shape DEF='left33'>
597                           <Box size='2.5 1 0.1'/>
598                           <Appearance USE='wallAppearance'/>
599                      </Shape>
600                 </Transform>
601 
               <!-- ROUTE information for LEFTWINDOW1 node:  [from leftWindow1Pos.value_changed to set_translation ] [from leftWindow1Pos2.value_changed to set_translation ] -->
               <Transform DEF='LEFTWINDOW1rotation='0 1 0 1.57translation='-3 2 -6'>
602                      <Shape DEF='leftwindow1'>
603                           <Box size='1 1 0.075'/>
604                           <Appearance>
605                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
606                           </Appearance>
607                      </Shape>
608                      <Transform translation='0.4 0 0.1'>
609                           <Shape DEF='leftWindow1KnubOpen'>
610                                <Sphere DEF='lefttWindow1KnubOradius='0.05'/>
611                                <Appearance>
612                                     <Material/>
613                                </Appearance>
614                           </Shape>
615 
                         <!-- ROUTE information for leftWindow1Clock node:  [from leftWindow1Open.touchTime to set_startTime ] [from fraction_changed to leftWindow1Pos.set_fraction ] -->
                         <TimeSensor DEF='leftWindow1Clock'/>
616 
                         <!-- ROUTE information for leftWindow1Pos node:  [from leftWindow1Clock.fraction_changed to set_fraction ] [from value_changed to LEFTWINDOW1.set_translation ] -->
                         <PositionInterpolator DEF='leftWindow1Poskey='0 0.5 1keyValue='-3 2 -6 -3 2 -5.5 -3 2 -5.1'/>
617 
                         <!-- ROUTE information for leftWindow1Open node:  [from touchTime to leftWindow1Clock.set_startTime ] -->
                         <TouchSensor DEF='leftWindow1Opendescription='touch to open'/>
618                           < ROUTE  fromNode='leftWindow1Open' fromField='touchTime' toNode='leftWindow1Clock' toField='set_startTime'/>
619                           < ROUTE  fromNode='leftWindow1Clock' fromField='fraction_changed' toNode='leftWindow1Pos' toField='set_fraction'/>
620                           < ROUTE  fromNode='leftWindow1Pos' fromField='value_changed' toNode='LEFTWINDOW1' toField='set_translation'/>
621                      </Transform>
622                      <Transform translation='0.4 -0.2 0.1'>
623                           <Shape DEF='leftWindow1KnubClose'>
624                                <Sphere DEF='leftWindow1Knub2radius='0.05'/>
625                                <Appearance>
626                                     <Material/>
627                                </Appearance>
628                           </Shape>
629 
                         <!-- ROUTE information for leftWindow1Clock2 node:  [from leftWindow1Close.touchTime to set_startTime ] [from fraction_changed to leftWindow1Pos2.set_fraction ] -->
                         <TimeSensor DEF='leftWindow1Clock2'/>
630 
                         <!-- ROUTE information for leftWindow1Pos2 node:  [from leftWindow1Clock2.fraction_changed to set_fraction ] [from value_changed to LEFTWINDOW1.set_translation ] -->
                         <PositionInterpolator DEF='leftWindow1Pos2key='0 0.5 1keyValue='-3 2 -5.1 -3 2 -5.5 -3 2 -6'/>
631 
                         <!-- ROUTE information for leftWindow1Close node:  [from touchTime to leftWindow1Clock2.set_startTime ] -->
                         <TouchSensor DEF='leftWindow1Closedescription='touch to close'/>
632                           < ROUTE  fromNode='leftWindow1Close' fromField='touchTime' toNode='leftWindow1Clock2' toField='set_startTime'/>
633                           < ROUTE  fromNode='leftWindow1Clock2' fromField='fraction_changed' toNode='leftWindow1Pos2' toField='set_fraction'/>
634                           < ROUTE  fromNode='leftWindow1Pos2' fromField='value_changed' toNode='LEFTWINDOW1' toField='set_translation'/>
635                      </Transform>
636                 </Transform>
637 
               <!-- ROUTE information for LEFTWINDOW2 node:  [from leftWindow2Pos.value_changed to set_translation ] [from leftWindow2Pos2.value_changed to set_translation ] -->
               <Transform DEF='LEFTWINDOW2rotation='0 1 0 1.57translation='-3 2 -9'>
638                      <Shape DEF='leftwindow2'>
639                           <Box size='1 1 0.075'/>
640                           <Appearance>
641                                <Material diffuseColor='0.7 0.9 0.9transparency='0.5'/>
642                           </Appearance>
643                      </Shape>
644                      <Transform translation='0.4 0 0.1'>
645                           <Shape DEF='leftWindow2KnubOpen'>
646                                <Sphere DEF='lefttWindow2KnubOradius='0.05'/>
647                                <Appearance>
648                                     <Material/>
649                                </Appearance>
650                           </Shape>
651 
                         <!-- ROUTE information for leftWindow2Clock node:  [from leftWindow2Open.touchTime to set_startTime ] [from fraction_changed to leftWindow2Pos.set_fraction ] -->
                         <TimeSensor DEF='leftWindow2Clock'/>
652 
                         <!-- ROUTE information for leftWindow2Pos node:  [from leftWindow2Clock.fraction_changed to set_fraction ] [from value_changed to LEFTWINDOW2.set_translation ] -->
                         <PositionInterpolator DEF='leftWindow2Poskey='0 0.5 1keyValue='-3 2 -9 -3 2 -8.5 -3 2 -8.1'/>
653 
                         <!-- ROUTE information for leftWindow2Open node:  [from touchTime to leftWindow2Clock.set_startTime ] -->
                         <TouchSensor DEF='leftWindow2Opendescription='touch to open'/>
654                           < ROUTE  fromNode='leftWindow2Open' fromField='touchTime' toNode='leftWindow2Clock' toField='set_startTime'/>
655                           < ROUTE  fromNode='leftWindow2Clock' fromField='fraction_changed' toNode='leftWindow2Pos' toField='set_fraction'/>
656                           < ROUTE  fromNode='leftWindow2Pos' fromField='value_changed' toNode='LEFTWINDOW2' toField='set_translation'/>
657                      </Transform>
658                      <Transform translation='0.4 -0.2 0.1'>
659                           <Shape DEF='leftWindow2KnubClose'>
660                                <Sphere DEF='rightWindow2Knub1radius='0.05'/>
661                                <Appearance>
662                                     <Material/>
663                                </Appearance>
664                           </Shape>
665 
                         <!-- ROUTE information for leftWindow2Clock2 node:  [from leftWindow2Close.touchTime to set_startTime ] [from fraction_changed to leftWindow2Pos2.set_fraction ] -->
                         <TimeSensor DEF='leftWindow2Clock2'/>
666 
                         <!-- ROUTE information for leftWindow2Pos2 node:  [from leftWindow2Clock2.fraction_changed to set_fraction ] [from value_changed to LEFTWINDOW2.set_translation ] -->
                         <PositionInterpolator DEF='leftWindow2Pos2key='0 0.5 1keyValue='-3 2 -8.1 -3 2 -8.5 -3 2 -9'/>
667 
                         <!-- ROUTE information for leftWindow2Close node:  [from touchTime to leftWindow2Clock2.set_startTime ] -->
                         <TouchSensor DEF='leftWindow2Closedescription='touch to close'/>
668                           < ROUTE  fromNode='leftWindow2Close' fromField='touchTime' toNode='leftWindow2Clock2' toField='set_startTime'/>
669                           < ROUTE  fromNode='leftWindow2Clock2' fromField='fraction_changed' toNode='leftWindow2Pos2' toField='set_fraction'/>
670                           < ROUTE  fromNode='leftWindow2Pos2' fromField='value_changed' toNode='LEFTWINDOW2' toField='set_translation'/>
671                      </Transform>
672                 </Transform>
673            </Group>
674            <Group DEF='left2'>
675                 <Transform DEF='left2wall11rotation='0 1 0 1.57translation='0 3 -1.5'>
676                      <Shape DEF='left2wall1'>
677                           <Box size='3 2 0.1'/>
678                           <Appearance DEF='left2wall1Appearance'>
679                                <Material/>
680                                <ImageTexture USE='yellowBrick'/>
681                           </Appearance>
682                      </Shape>
683                 </Transform>
684                 <Transform DEF='left2wall12rotation='0 1 0 1.57translation='0 1 -1.5'>
685                      <Shape DEF='left2wall2'>
686                           <Box size='3 2 0.1'/>
687                           <Appearance DEF='left2wall2Appearance'>
688                                <Material/>
689                                <ImageTexture USE='yellowBrick'/>
690                           </Appearance>
691                      </Shape>
692                 </Transform>
693            </Group>
694            <Group DEF='FLOOR'>
695                 <Transform DEF='floor1translation='4.5 0.005 -6'>
696                      <Shape DEF='floorshape1'>
697                           <Box size='9 0.01 12'/>
698 
                         <!-- Appearance floorappearance is a DEF node that has 1 USE node: USE_1 -->
                         <Appearance DEF='floorappearance'>
699                                <Material diffuseColor='0.9 0.9 0.9'/>
700                           </Appearance>
701                      </Shape>
702                 </Transform>
703                 <Transform DEF='floor2translation='-1.5 0.005 -7.5'>
704                      <Shape DEF='floorshape2'>
705                           <Box size='3 0.01 9'/>
706                           <Appearance USE='floorappearance'/>
707                      </Shape>
708                 </Transform>
709            </Group>
710            <Group DEF='INSIDE'>
711                 <Transform translation='-1.25 1 -7.5'>
712                      <Shape DEF='wall1roomleft'>
713                           <Box size='3.5 2 0.1'/>
714                           <Appearance USE='wallAppearance'/>
715                      </Shape>
716                 </Transform>
717                 <Transform translation='-0.75 3 -7.5'>
718                      <Shape DEF='left'>
719                           <Box size='4.5 2 0.1'/>
720                           <Appearance USE='wallAppearance'/>
721                      </Shape>
722                 </Transform>
723                 <Transform rotation='0 1 0 1.57translation='1.5 3 -9.75'>
724                      <Shape>
725                           <Box size='4.5 2 0.1'/>
726                           <Appearance USE='wallAppearance'/>
727                      </Shape>
728                 </Transform>
729                 <Transform rotation='0 1 0 1.57translation='1.5 1 -9.75'>
730                      <Shape>
731                           <Box size='4.5 2 0.1'/>
732                           <Appearance USE='wallAppearance'/>
733                      </Shape>
734                 </Transform>
735 
               <!-- ROUTE information for DOORROOMLEFT node:  [from doorroomleftPathOpen.value_changed to set_rotation ] [from doorroomleftPathClose.value_changed to set_rotation ] -->
               <Transform DEF='DOORROOMLEFTcenter='0.5 0 0translation='1 1 -7.5'>
736                      <Shape DEF='doorroomleft'>
737                           <Box size='1 2 0.1'/>
738                           <Appearance>
739                                <Material diffuseColor='0.8 0.5 0'/>
740                                <ImageTexture USE='wood'/>
741                           </Appearance>
742                      </Shape>
743                      <Transform translation='-0.4 0 0.05'>
744                           <Shape USE='knubOut'/>
745 
                         <!-- ROUTE information for Clockdoorroomleft node:  [from touchOpenroomleft.touchTime to set_startTime ] [from fraction_changed to doorroomleftPathOpen.set_fraction ] -->
                         <TimeSensor DEF='ClockdoorroomleftcycleInterval='3'/>
746 
                         <!-- ROUTE information for doorroomleftPathOpen node:  [from Clockdoorroomleft.fraction_changed to set_fraction ] [from value_changed to DOORROOMLEFT.set_rotation ] -->
                         <OrientationInterpolator DEF='doorroomleftPathOpenkey='0 0.34 0.68 1keyValue='0 1 0 0 0 1 0 -0.7 0 1 0 -1.0 0 1 0 -1.2'/>
747 
                         <!-- ROUTE information for touchOpenroomleft node:  [from touchTime to Clockdoorroomleft.set_startTime ] -->
                         <TouchSensor DEF='touchOpenroomleftdescription='touch to open'/>
748                           < ROUTE  fromNode='touchOpenroomleft' fromField='touchTime' toNode='Clockdoorroomleft' toField='set_startTime'/>
749                           < ROUTE  fromNode='Clockdoorroomleft' fromField='fraction_changed' toNode='doorroomleftPathOpen' toField='set_fraction'/>
750                           < ROUTE  fromNode='doorroomleftPathOpen' fromField='value_changed' toNode='DOORROOMLEFT' toField='set_rotation'/>
751                      </Transform>
752                      <Transform translation='-0.4 0 -0.05'>
753                           <Shape USE='knubOut'/>
754 
                         <!-- ROUTE information for ClockCloseroomleft node:  [from touchCloseroomleft.touchTime to set_startTime ] [from fraction_changed to doorroomleftPathClose.set_fraction ] -->
                         <TimeSensor DEF='ClockCloseroomleftcycleInterval='2'/>
755 
                         <!-- ROUTE information for doorroomleftPathClose node:  [from ClockCloseroomleft.fraction_changed to set_fraction ] [from value_changed to DOORROOMLEFT.set_rotation ] -->
                         <OrientationInterpolator DEF='doorroomleftPathClosekey='0 0.34 0.68 1keyValue='0 1 0 -1.2 0 1 0 -1.0 0 1 0 -0.7 0 1 0 0'/>
756 
                         <!-- ROUTE information for touchCloseroomleft node:  [from touchTime to ClockCloseroomleft.set_startTime ] -->
                         <TouchSensor DEF='touchCloseroomleftdescription='touch to close'/>
757                           < ROUTE  fromNode='touchCloseroomleft' fromField='touchTime' toNode='ClockCloseroomleft' toField='set_startTime'/>
758                           < ROUTE  fromNode='ClockCloseroomleft' fromField='fraction_changed' toNode='doorroomleftPathClose' toField='set_fraction'/>
759                           < ROUTE  fromNode='doorroomleftPathClose' fromField='value_changed' toNode='DOORROOMLEFT' toField='set_rotation'/>
760                      </Transform>
761                 </Transform>
762                 <Transform rotation='0 1 0 1.57translation='7 3 -9.70'>
763                      <Shape>
764                           <Box size='4.50 2 0.1'/>
765                           <Appearance USE='wallAppearance'/>
766                      </Shape>
767                 </Transform>
768                 <Transform rotation='0 1 0 1.57translation='7 1 -9.70'>
769                      <Shape>
770                           <Box size='4.50 2 0.1'/>
771                           <Appearance USE='wallAppearance'/>
772                      </Shape>
773                 </Transform>
774                 <Transform translation='4.25 3 -7.5'>
775                      <Shape>
776                           <Box size='5.5 2 0.1'/>
777                           <Appearance USE='wallAppearance'/>
778                      </Shape>
779                 </Transform>
780                 <Transform translation='3.75 1 -7.5'>
781                      <Shape>
782                           <Box size='4.5 2 0.1'/>
783                           <Appearance USE='wallAppearance'/>
784                      </Shape>
785                 </Transform>
786 
               <!-- ROUTE information for DOORROOMRIGHT node:  [from doorroomrightPathOpen.value_changed to set_rotation ] [from doorroomrightPathClose.value_changed to set_rotation ] -->
               <Transform DEF='DOORROOMRIGHTcenter='0.5 0 0translation='6.5 1 -7.5'>
787                      <Shape DEF='doorroomright'>
788                           <Box size='1 2 0.1'/>
789                           <Appearance>
790                                <Material diffuseColor='0.8 0.5 0'/>
791                                <ImageTexture USE='wood'/>
792                           </Appearance>
793                      </Shape>
794                      <Transform translation='-0.4 0 0.05'>
795                           <Shape USE='knubOut'/>
796 
                         <!-- ROUTE information for Clockdoorroomright node:  [from touchOpenroomright.touchTime to set_startTime ] [from fraction_changed to doorroomrightPathOpen.set_fraction ] -->
                         <TimeSensor DEF='ClockdoorroomrightcycleInterval='3'/>
797 
                         <!-- ROUTE information for doorroomrightPathOpen node:  [from Clockdoorroomright.fraction_changed to set_fraction ] [from value_changed to DOORROOMRIGHT.set_rotation ] -->
                         <OrientationInterpolator DEF='doorroomrightPathOpenkey='0 0.34 0.68 1keyValue='0 1 0 0 0 1 0 -0.4 0 1 0 -0.7 0 1 0 -1.0'/>
798 
                         <!-- ROUTE information for touchOpenroomright node:  [from touchTime to Clockdoorroomright.set_startTime ] -->
                         <TouchSensor DEF='touchOpenroomrightdescription='touch to open'/>
799                           < ROUTE  fromNode='touchOpenroomright' fromField='touchTime' toNode='Clockdoorroomright' toField='set_startTime'/>
800                           < ROUTE  fromNode='Clockdoorroomright' fromField='fraction_changed' toNode='doorroomrightPathOpen' toField='set_fraction'/>
801                           < ROUTE  fromNode='doorroomrightPathOpen' fromField='value_changed' toNode='DOORROOMRIGHT' toField='set_rotation'/>
802                      </Transform>
803                      <Transform translation='-0.4 0 -0.05'>
804                           <Shape USE='knubOut'/>
805 
                         <!-- ROUTE information for ClockCloseroomright node:  [from touchCloseroomright.touchTime to set_startTime ] [from fraction_changed to doorroomrightPathClose.set_fraction ] -->
                         <TimeSensor DEF='ClockCloseroomrightcycleInterval='2'/>
806 
                         <!-- ROUTE information for doorroomrightPathClose node:  [from ClockCloseroomright.fraction_changed to set_fraction ] [from value_changed to DOORROOMRIGHT.set_rotation ] -->
                         <OrientationInterpolator DEF='doorroomrightPathClosekey='0 0.34 0.68 1keyValue='0 1 0 -1.0 0 1 0 -0.7 0 1 0 -0.4 0 1 0 0'/>
807 
                         <!-- ROUTE information for touchCloseroomright node:  [from touchTime to ClockCloseroomright.set_startTime ] -->
                         <TouchSensor DEF='touchCloseroomrightdescription='touch to close'/>
808                           < ROUTE  fromNode='touchCloseroomright' fromField='touchTime' toNode='ClockCloseroomright' toField='set_startTime'/>
809                           < ROUTE  fromNode='ClockCloseroomright' fromField='fraction_changed' toNode='doorroomrightPathClose' toField='set_fraction'/>
810                           < ROUTE  fromNode='doorroomrightPathClose' fromField='value_changed' toNode='DOORROOMRIGHT' toField='set_rotation'/>
811                      </Transform>
812                 </Transform>
813                 <Transform translation='2.25 3 -3'>
814                      <Shape>
815                           <Box size='4.5 2 0.1'/>
816                           <Appearance USE='wallAppearance'/>
817                      </Shape>
818                 </Transform>
819                 <Transform translation='1.75 1 -3'>
820                      <Shape>
821                           <Box size='3.5 2 0.1'/>
822                           <Appearance USE='wallAppearance'/>
823                      </Shape>
824                 </Transform>
825                 <Transform rotation='0 1 0 1.57translation='4.45 1 -1.50'>
826                      <Shape>
827                           <Box size='2.90 2 0.1'/>
828                           <Appearance USE='wallAppearance'/>
829                      </Shape>
830                 </Transform>
831                 <Transform rotation='0 1 0 1.57translation='4.45 3 -1.50'>
832                      <Shape>
833                           <Box size='2.90 2 0.1'/>
834                           <Appearance USE='wallAppearance'/>
835                      </Shape>
836                 </Transform>
837 
               <!-- ROUTE information for FRONTROOMDOOR node:  [from doorFRPathOpen.value_changed to set_rotation ] [from doorFRPathClose.value_changed to set_rotation ] -->
               <Transform DEF='FRONTROOMDOORcenter='0.5 0 0translation='4 1 -3'>
838                      <Shape DEF='frontroomdoor'>
839                           <Box size='1 2 0.1'/>
840                           <Appearance>
841                                <Material diffuseColor='0.8 0.5 0'/>
842                                <ImageTexture USE='wood'/>
843                           </Appearance>
844                      </Shape>
845                      <Transform translation='-0.4 0 -0.05'>
846                           <Shape DEF='knubOutfrontroom'>
847                                <Sphere DEF='doorKnubFRradius='0.05'/>
848                                <Appearance>
849                                     <Material/>
850                                </Appearance>
851                           </Shape>
852 
                         <!-- ROUTE information for ClockFR node:  [from touchOpenFR.touchTime to set_startTime ] [from fraction_changed to doorFRPathOpen.set_fraction ] -->
                         <TimeSensor DEF='ClockFRcycleInterval='3'/>
853 
                         <!-- ROUTE information for doorFRPathOpen node:  [from ClockFR.fraction_changed to set_fraction ] [from value_changed to FRONTROOMDOOR.set_rotation ] -->
                         <OrientationInterpolator DEF='doorFRPathOpenkey='0 0.34 0.68 1keyValue='0 1 0 0 0 1 0 0.4 0 1 0 0.7 0 1 0 0.9'/>
854 
                         <!-- ROUTE information for touchOpenFR node:  [from touchTime to ClockFR.set_startTime ] -->
                         <TouchSensor DEF='touchOpenFRdescription='touch to open'/>
855                           < ROUTE  fromNode='touchOpenFR' fromField='touchTime' toNode='ClockFR' toField='set_startTime'/>
856                           < ROUTE  fromNode='ClockFR' fromField='fraction_changed' toNode='doorFRPathOpen' toField='set_fraction'/>
857                           < ROUTE  fromNode='doorFRPathOpen' fromField='value_changed' toNode='FRONTROOMDOOR' toField='set_rotation'/>
858                      </Transform>
859                      <Transform translation='-0.4 0 0.05'>
860                           <Shape USE='knubOut'/>
861 
                         <!-- ROUTE information for ClockCloseFR node:  [from touchCloseFR.touchTime to set_startTime ] [from fraction_changed to doorFRPathClose.set_fraction ] -->
                         <TimeSensor DEF='ClockCloseFRcycleInterval='2'/>
862 
                         <!-- ROUTE information for doorFRPathClose node:  [from ClockCloseFR.fraction_changed to set_fraction ] [from value_changed to FRONTROOMDOOR.set_rotation ] -->
                         <OrientationInterpolator DEF='doorFRPathClosekey='0 0.34 0.68 1keyValue='0 1 0 0.9 0 1 0 0.7 0 1 0 0.4 0 1 0 0'/>
863 
                         <!-- ROUTE information for touchCloseFR node:  [from touchTime to ClockCloseFR.set_startTime ] -->
                         <TouchSensor DEF='touchCloseFRdescription='touch to close'/>
864                           < ROUTE  fromNode='touchCloseFR' fromField='touchTime' toNode='ClockCloseFR' toField='set_startTime'/>
865                           < ROUTE  fromNode='ClockCloseFR' fromField='fraction_changed' toNode='doorFRPathClose' toField='set_fraction'/>
866                           < ROUTE  fromNode='doorFRPathClose' fromField='value_changed' toNode='FRONTROOMDOOR' toField='set_rotation'/>
867                      </Transform>
868                 </Transform>
869                 <Transform translation='5.75 3 -3'>
870                      <Shape>
871                           <Box size='2.5 2 0.1'/>
872                           <Appearance USE='wallAppearance'/>
873                      </Shape>
874                 </Transform>
875                 <Transform translation='5.75 1 -3'>
876                      <Shape>
877                           <Box size='2.5 2 0.1'/>
878                           <Appearance USE='wallAppearance'/>
879                      </Shape>
880                 </Transform>
881                 <Transform rotation='0 1 0 1.57translation='6.95 3 -1.50'>
882                      <Shape>
883                           <Box size='2.90 2 0.1'/>
884                           <Appearance USE='wallAppearance'/>
885                      </Shape>
886                 </Transform>
887                 <Transform rotation='0 1 0 1.57translation='6.95 1 -0.95'>
888                      <Shape>
889                           <Box size='2.0 2 0.1'/>
890                           <Appearance USE='wallAppearance'/>
891                      </Shape>
892                 </Transform>
893 
               <!-- ROUTE information for FRONTROOMDOOR2 node:  [from doorFR2PathOpen.value_changed to set_rotation ] [from doorFR2PathClose.value_changed to set_rotation ] -->
               <Transform DEF='FRONTROOMDOOR2center='0.5 0 0rotation='0 1 0 1.57translation='6.45 1 -2.95'>
894                      <Shape DEF='frontroomdoor2'>
895                           <Box size='1 2 0.1'/>
896                           <Appearance>
897                                <Material diffuseColor='0.8 0.5 0'/>
898                                <ImageTexture USE='wood'/>
899                           </Appearance>
900                      </Shape>
901                      <Transform translation='-0.4 0 -0.05'>
902                           <Shape DEF='knubOutfrontroom2'>
903                                <Sphere DEF='doorKnubFR2radius='0.05'/>
904                                <Appearance>
905                                     <Material/>
906                                </Appearance>
907                           </Shape>
908 
                         <!-- ROUTE information for ClockFR2 node:  [from touchOpenFR2.touchTime to set_startTime ] [from fraction_changed to doorFR2PathOpen.set_fraction ] -->
                         <TimeSensor DEF='ClockFR2cycleInterval='3'/>
909 
                         <!-- ROUTE information for doorFR2PathOpen node:  [from ClockFR2.fraction_changed to set_fraction ] [from value_changed to FRONTROOMDOOR2.set_rotation ] -->
                         <OrientationInterpolator DEF='doorFR2PathOpenkey='0 0.34 0.68 1keyValue='0 1 0 0 0 1 0 0.4 0 1 0 0.7 0 1 0 0.9'/>
910 
                         <!-- ROUTE information for touchOpenFR2 node:  [from touchTime to ClockFR2.set_startTime ] -->
                         <TouchSensor DEF='touchOpenFR2description='touch to open'/>
911                           < ROUTE  fromNode='touchOpenFR2' fromField='touchTime' toNode='ClockFR2' toField='set_startTime'/>
912                           < ROUTE  fromNode='ClockFR2' fromField='fraction_changed' toNode='doorFR2PathOpen' toField='set_fraction'/>
913                           < ROUTE  fromNode='doorFR2PathOpen' fromField='value_changed' toNode='FRONTROOMDOOR2' toField='set_rotation'/>
914                      </Transform>
915                      <Transform translation='-0.4 0 0.05'>
916                           <Shape USE='knubOut'/>
917 
                         <!-- ROUTE information for ClockCloseFR2 node:  [from touchCloseFR2.touchTime to set_startTime ] [from fraction_changed to doorFR2PathClose.set_fraction ] -->
                         <TimeSensor DEF='ClockCloseFR2cycleInterval='2'/>
918 
                         <!-- ROUTE information for doorFR2PathClose node:  [from ClockCloseFR2.fraction_changed to set_fraction ] [from value_changed to FRONTROOMDOOR2.set_rotation ] -->
                         <OrientationInterpolator DEF='doorFR2PathClosekey='0 0.34 0.68 1keyValue='0 1 0 0.9 0 1 0 0.7 0 1 0 0.4 0 1 0 0'/>
919 
                         <!-- ROUTE information for touchCloseFR2 node:  [from touchTime to ClockCloseFR2.set_startTime ] -->
                         <TouchSensor DEF='touchCloseFR2description='touch to close'/>
920                           < ROUTE  fromNode='touchCloseFR2' fromField='touchTime' toNode='ClockCloseFR2' toField='set_startTime'/>
921                           < ROUTE  fromNode='ClockCloseFR2' fromField='fraction_changed' toNode='doorFR2PathClose' toField='set_fraction'/>
922                           < ROUTE  fromNode='doorFR2PathClose' fromField='value_changed' toNode='FRONTROOMDOOR2' toField='set_rotation'/>
923                      </Transform>
924                 </Transform>
925            </Group>
926            <Group DEF='roofandcelling'>
927                 <Transform DEF='roof1center='0 4 0rotation='1 0 0 1scale='1 1 0.01translation='3 4.1 -5.8'>
928 
                    <!-- Shape roofpart1 is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                    <Shape DEF='roofpart1'>
929                           <Cone bottomRadius='6.1height='7.3'/>
930                           <Appearance DEF='roofapp'>
931                                <Material diffuseColor='0 0.2 1'/>
932 
                              <!-- ImageTexture wellWall is a DEF node that has 1 USE node: USE_1 -->
                              <ImageTexture DEF='wellWall'   url=' "wellWall.jpg " "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/wellWall.jpg " '/>
933                           </Appearance>
934                      </Shape>
935                 </Transform>
936                 <Transform DEF='roof2center='0 4 0rotation='1 0 0 -1scale='1 1 0.01translation='3 4.1 -6.4'>
937                      <Shape USE='roofpart1'/>
938                 </Transform>
939                 <Transform DEF='roof3center='0 4 0rotation='0 0 1 -1scale='0.02 1 1translation='3.4 4.1 -6.1'>
940                      <Shape USE='roofpart1'/>
941                 </Transform>
942                 <Transform DEF='roof4center='0 4 0rotation='0 0 1 1scale='0.02 1 1translation='2.6 4.1 -6.1'>
943                      <Shape USE='roofpart1'/>
944                 </Transform>
945                 <Transform DEF='celling1translation='3 4.075 -6'>
946                      <Shape DEF='celling1shape'>
947                           <Box size='12 0.05 12'/>
948                           <Appearance DEF='cellingapp'>
949                                <Material diffuseColor='0 0.2 1'/>
950                                <ImageTexture USE='wellWall'/>
951                           </Appearance>
952                      </Shape>
953                 </Transform>
954            </Group>
955            <Group>
956                 <Transform translation='-6 0 0'>
957                      <Inline   url=' "Tree.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Tree.x3d" "Tree.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Tree.wrl" '/>
958                 </Transform>
959                 <Transform rotation='0 1 0 -1.57scale='0.5 0.5 0.5translation='-2.5 0.5 -5.5'>
960                      <Inline   url=' "Desk.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Desk.x3d" "Desk.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Desk.wrl" '/>
961                 </Transform>
962                 <Transform rotation='0 1 0 1.57scale='0.5 0.5 0.5translation='-2.5 1.4 -5.5'>
963                      <Inline   url=' "TV.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/TV.x3d" "TV.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/TV.wrl" '/>
964                 </Transform>
965                 <Transform rotation='0 1 0 -3.14scale='0.35 0.35 0.35translation='1 0.10 -5.5'>
966                      <Inline   url=' "Sofa.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Sofa.x3d" "Sofa.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Sofa.wrl" '/>
967                 </Transform>
968                 <Transform scale='0.5 0.5 0.5translation='4.5 1 -5.5'>
969                      <Inline   url=' "Table.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Table.x3d" "Table.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Table.wrl" '/>
970                 </Transform>
971                 <Transform scale='0.25 0.25 0.25translation='5.5 0.50 -5.5'>
972 
                    <!-- Inline Chair is a DEF node that has 1 USE node: USE_1 -->
                    <Inline DEF='Chair'   url=' "Chair.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Chair.x3d" "Chair.wrl" "http://web.nps.navy.mil/~brutzmanChair/Savage/Buildings/HouseSeksitSiripala/Chair.wrl" '/>
973                 </Transform>
974                 <Transform rotation='0 1 0 3.14scale='0.25 0.25 0.25translation='3.5 0.50 -5.5'>
975                      <Inline USE='Chair'/>
976                 </Transform>
977                 <Transform rotation='0 1 0 3.14scale='0.40 0.40 0.40translation='3.25 0.32 -11'>
978 
                    <!-- Inline Bed is a DEF node that has 1 USE node: USE_1 -->
                    <Inline DEF='Bed'   url=' "Bed.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Bed.x3d" "Bed.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Bed.wrl" '/>
979                 </Transform>
980                 <Transform rotation='0 1 0 3.14scale='0.40 0.40 0.40translation='-1.25 0.32 -11'>
981                      <Inline USE='Bed'/>
982                 </Transform>
983                 <Transform rotation='0 1 0 1.57scale='0.7 0.7 0.7translation='7.35 0.35 -8.2'>
984                      <Inline   url=' "Cabinet.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Cabinet.x3d" "Cabinet.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Cabinet.wrl" '/>
985                 </Transform>
986                 <Transform rotation='0 1 0 1.57translation='7.35 0.75 -9.5'>
987                      <Inline   url=' "Refrigerator.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Refrigerator.x3d" "Refrigerator.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Refrigerator.wrl" '/>
988                 </Transform>
989                 <Transform rotation='0 1 0 3.14scale='0.25 0.25 0.25translation='6 0.75 -0.5'>
990                      <Inline   url=' "Toilet.x3d" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Toilet.x3d" "Toilet.wrl" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/Toilet.wrl" '/>
991                      <Sound DEF='toiletlocation='-0.957652 0.102433 0.970123minBack='12.0minFront='12.0priority='1.0'>
992                           <AudioClip DEF='Sound1clip_5description='toilet flushing sound'   url=' "toilet.wav" "https://savage.nps.edu/Savage/Buildings/HouseSeksitSiripala/toilet.wav" '/>
993                      </Sound>
994                 </Transform>
995            </Group>
996       </Scene>
997  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: back, back11, back12, back13, back14, back21, back22, back23, back24, back31, back32, back33, back34, back35, BACKDOOR, backdoor, backtwall32, backwall11, backwall12, backwall13, backwall14, backwall21, backwall22, backwall23, backwall24, backwall31, backwall33, backwall34, backwall35, BACKWINDOW1, backwindow1, backWindow1Clock, backWindow1Clock2, backWindow1Close, backWindow1KnubClose, backWindow1KnubO, backWindow1KnubOpen, backWindow1Open, backWindow1Pos, backWindow1Pos2, BACKWINDOW2, backwindow2, backWindow2Clock, backWindow2Clock2, backWindow2Close, backWindow2KnubC, backWindow2KnubClose, backWindow2KnubO, backWindow2KnubOpen, backWindow2Open, backWindow2Pos, backWindow2Pos2, BACKWINDOW3, backwindow3, backWindow3Clock, backWindow3Clock2, backWindow3Close, backWindow3KnubClose, backWindow3KnubO, backWindow3KnubOpen, backWindow3Open, backWindow3Pos, backWindow3Pos2, Bed, celling1, celling1shape, cellingapp, Chair, Clock, ClockBD, ClockClose, ClockCloseBD, ClockCloseFR, ClockCloseFR2, ClockCloseroomleft, ClockCloseroomright, Clockdoorroomleft, Clockdoorroomright, ClockFR, ClockFR2, DOOR, door, doorBDPathClose, doorBDPathOpen, doorFR2PathClose, doorFR2PathOpen, doorFRPathClose, doorFRPathOpen, doorKnub, doorKnubB, doorKnubFR, doorKnubFR2, doorPathClose, doorPathOpen, DOORROOMLEFT, doorroomleft, doorroomleftPathClose, doorroomleftPathOpen, DOORROOMRIGHT, doorroomright, doorroomrightPathClose, doorroomrightPathOpen, FLOOR, floor1, floor2, floorappearance, floorshape1, floorshape2, Front1, Front2, FRONTROOMDOOR, frontroomdoor, FRONTROOMDOOR2, frontroomdoor2, INSIDE, knub_ap, knubOut, knubOutB, knubOutfrontroom, knubOutfrontroom2, left, left1, left11, left12, left2, left21, left22, left2wall1, left2wall11, left2wall12, left2wall1Appearance, left2wall2, left2wall2Appearance, left31, left32, left33, lefttWindow1KnubO, lefttWindow2KnubO, leftwall11, leftwall12, leftwall21, leftwall22, leftwall31, leftwall32, leftwall33, LEFTWINDOW1, leftwindow1, leftWindow1Clock, leftWindow1Clock2, leftWindow1Close, leftWindow1Knub2, leftWindow1KnubClose, leftWindow1KnubOpen, leftWindow1Open, leftWindow1Pos, leftWindow1Pos2, LEFTWINDOW2, leftwindow2, leftWindow2Clock, leftWindow2Clock2, leftWindow2Close, leftWindow2KnubClose, leftWindow2KnubOpen, leftWindow2Open, leftWindow2Pos, leftWindow2Pos2, part1, part2, partFront211, partFront212, partFront221, partFront222, partFront231, partFront232, partFront233, Right, right11, right12, right13, right14, right21, right22, right23, right24, right31, right32, right33, right34, rightwall11, rightwall12, rightwall13, rightwall14, rightwall21, rightwall22, rightwall23, rightwall24, rightwall31, rightwall32, rightwall33, rightwall34, RIGHTWINDOW1, rightwindow1, rightWindow1Clock, rightWindow1Clock2, rightWindow1Close, rightWindow1Knub1, rightWindow1KnubC, rightWindow1KnubClose, rightWindow1KnubO, rightWindow1KnubOpen, rightWindow1Open, rightWindow1Pos, rightWindow1Pos2, RIGHTWINDOW2, rightwindow2, rightWindow2Clock, rightWindow2Clock2, rightWindow2Close, rightWindow2Knub1, rightWindow2Knub2, rightWindow2KnubC, rightWindow2KnubClose, rightWindow2KnubO, rightWindow2KnubOpen, rightWindow2Open, rightWindow2Pos, rightWindow2Pos2, RIGHTWINDOW3, rightwindow3, rightWindow3Clock, rightWindow3Clock2, rightWindow3Close, rightWindow3KnubC, rightWindow3KnubClose, rightWindow3KnubO, rightWindow3KnubOpen, rightWindow3Open, rightWindow3Pos, rightWindow3Pos2, roof1, roof2, roof3, roof4, roofandcelling, roofapp, roofpart1, Sound1clip_5, toilet, touchClose, touchCloseBD, touchCloseFR, touchCloseFR2, touchCloseroomleft, touchCloseroomright, touchOpen, touchOpenBD, touchOpenFR, touchOpenFR2, touchOpenroomleft, touchOpenroomright, wall1, wall1roomleft, wall2, wallAppearance, wallpart, wellWall, WINDOW1, window1, window1Knub, window1knubopen, window1Slide, WINDOW2, window2, window2Knub, window2knubopen, window2Slide, windowApp, windowAppearance, wood, yellowBrick

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5
-->
X3D Tooltips element index: Appearance, AudioClip, Background, Box, Cone, Group, head, ImageTexture, Inline, Material, meta, OrientationInterpolator, PlaneSensor, PositionInterpolator, ROUTE, Scene, Shape, Sound, Sphere, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 86 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.

backWindow1Close
TouchSensor
touchTime
SFTime

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

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

ROUTE
event to
(3)
BACKWINDOW1
Transform
set_translation
SFVec3f

backWindow1Open
TouchSensor
touchTime
SFTime

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

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

ROUTE
event to
(3)
BACKWINDOW1
Transform
set_translation
SFVec3f

backWindow2Close
TouchSensor
touchTime
SFTime

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

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

ROUTE
event to
(3)
BACKWINDOW2
Transform
set_translation
SFVec3f

backWindow2Open
TouchSensor
touchTime
SFTime

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

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

ROUTE
event to
(3)
BACKWINDOW2
Transform
set_translation
SFVec3f

backWindow3Close
TouchSensor
touchTime
SFTime

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

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

ROUTE
event to
(3)
BACKWINDOW3
Transform
set_translation
SFVec3f

backWindow3Open
TouchSensor
touchTime
SFTime

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

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

ROUTE
event to
(3)
BACKWINDOW3
Transform
set_translation
SFVec3f

leftWindow1Close
TouchSensor
touchTime
SFTime

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

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

ROUTE
event to
(3)
LEFTWINDOW1
Transform
set_translation