X3D Model Documentation: Chess8Levels.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='Chess8Levels.x3d'/>
  6            <meta name='descriptioncontent='Multi-layered Chess Board in 3 dimensions.'/>
  7            <meta name='creatorcontent='John W. Carls'/>
  8            <meta name='createdcontent='9 August 2002'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='versioncontent='0.3'/>
 11            <meta name=' warning content=' functionality incomplete for full game play '/>
 12            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chess8Levels.x3d'/>
 13            <meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
 14            <meta name='licensecontent='../license.html'/>
 15       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: Aqua, aquapawn, BackgroundCyan-ish, BlueBishop1, BLUEBISHOP1CLOCK, BlueBishop1PathInterpolator, BlueBishop1PlaneSensor, BlueBishop1TouchSensor, BlueBishop2, BLUEBISHOP2CLOCK, BlueBishop2PathInterpolator, BlueBishop2PlaneSensor, BlueBishop2TouchSensor, BlueBolt, BlueCastle1, BLUECASTLE1CLOCK, BlueCastle1PathInterpolator, BlueCastle1PlaneSensor, BlueCastle1TouchSensor, BlueCastle2, BLUECASTLE2CLOCK, BlueCastle2PathInterpolator, BlueCastle2PlaneSensor, BlueCastle2TouchSensor, BlueKing, BLUEKINGCLOCK, BlueKingPathInterpolator, BlueKingPlaneSensor, BlueKingTouchSensor, BlueKnight1, BLUEKNIGHT1CLOCK, BlueKnight1PathInterpolator, BlueKnight1PlaneSensor, BlueKnight1TouchSensor, BlueKnight2, BLUEKNIGHT2CLOCK, BlueKnight2PathInterpolator, BlueKnight2PlaneSensor, BlueKnight2TouchSensor, BlueLeft, BluePawn1, BLUEPAWN1CLOCK, BluePawn1PathInterpolator, BluePawn1PlaneSensor, BluePawn1TouchSensor, BluePawn2, BLUEPAWN2CLOCK, BluePawn2PathInterpolator, BluePawn2PlaneSensor, BluePawn2TouchSensor, BluePawn3, BLUEPAWN3CLOCK, BluePawn3PathInterpolator, BluePawn3PlaneSensor, BluePawn3TouchSensor, BluePawn4, BLUEPAWN4CLOCK, BluePawn4PathInterpolator, BluePawn4PlaneSensor, BluePawn4TouchSensor, BluePawn5, BLUEPAWN5CLOCK, BluePawn5PathInterpolator, BluePawn5PlaneSensor, BluePawn5TouchSensor, BluePawn6, BLUEPAWN6CLOCK, BluePawn6PathInterpolator, BluePawn6PlaneSensor, BluePawn6TouchSensor, BluePawn7, BLUEPAWN7CLOCK, BluePawn7PathInterpolator, BluePawn7PlaneSensor, BluePawn7TouchSensor, BluePawn8, BLUEPAWN8CLOCK, BluePawn8PathInterpolator, BluePawn8PlaneSensor, BluePawn8TouchSensor, bluepiecebase, bluepiecepost, BlueQueen, BLUEQUEENCLOCK, BlueQueenPathInterpolator, BlueQueenPlaneSensor, BlueQueenTouchSensor, BlueSide, BlueSquare, board, BottomAngle1, BottomAngle2, BottomAngle3, BottomAngle4, BottomCorner1, BottomCorner2, BottomCorner3, BottomCorner4, chesspiecebase, Corner1, Corner2, Corner3, Corner4, GreenSquare, Red, RedBishop1, REDBISHOP1CLOCK, RedBishop1PathInterpolator, RedBishop1PlaneSensor, RedBishop1TouchSensor, RedBishop2, REDBISHOP2CLOCK, RedBishop2PathInterpolator, RedBishop2PlaneSensor, RedBishop2TouchSensor, RedBolt, RedCastle1, REDCASTLE1CLOCK, RedCastle1PathInterpolator, RedCastle1PlaneSensor, RedCastle1TouchSensor, RedCastle2, REDCASTLE2CLOCK, RedCastle2PathInterpolator, RedCastle2PlaneSensor, RedCastle2TouchSensor, RedKing, REDKINGCLOCK, RedKingPathInterpolator, RedKingPlaneSensor, RedKingTouchSensor, RedKnight1, REDKNIGHT1CLOCK, RedKnight1PathInterpolator, RedKnight1PlaneSensor, RedKnight1TouchSensor, RedKnight2, REDKNIGHT2CLOCK, RedKnight2PathInterpolator, RedKnight2PlaneSensor, RedKnight2TouchSensor, RedLeft, redpawn, RedPawn1, REDPAWN1CLOCK, RedPawn1PathInterpolator, RedPawn1PlaneSensor, RedPawn1TouchSensor, RedPawn2, REDPAWN2CLOCK, RedPawn2PathInterpolator, RedPawn2PlaneSensor, RedPawn2TouchSensor, RedPawn3, REDPAWN3CLOCK, RedPawn3PathInterpolator, RedPawn3PlaneSensor, RedPawn3TouchSensor, RedPawn4, REDPAWN4CLOCK, RedPawn4PathInterpolator, RedPawn4PlaneSensor, RedPawn4TouchSensor, RedPawn5, REDPAWN5CLOCK, RedPawn5PathInterpolator, RedPawn5PlaneSensor, RedPawn5TouchSensor, RedPawn6, REDPAWN6CLOCK, RedPawn6PathInterpolator, RedPawn6PlaneSensor, RedPawn6TouchSensor, RedPawn7, REDPAWN7CLOCK, RedPawn7PathInterpolator, RedPawn7PlaneSensor, RedPawn7TouchSensor, RedPawn8, REDPAWN8CLOCK, RedPawn8PathInterpolator, RedPawn8PlaneSensor, RedPawn8TouchSensor, redpiecebase, redpiecepost, RedQueen, REDQUEENCLOCK, RedQueenPathInterpolator, RedQueenPlaneSensor, RedQueenTouchSensor, RedSide, Row1, Row2, TopAngle1, TopAngle2, TopAngle3, TopAngle4, TopCorner1, TopCorner2, TopCorner3, TopCorner4, X_Plane

Index for Viewpoint nodes: BlueLeft, BlueSide, BottomAngle1, BottomAngle2, BottomAngle3, BottomAngle4, BottomCorner1, BottomCorner2, BottomCorner3, BottomCorner4, Corner1, Corner2, Corner3, Corner4, RedLeft, RedSide, TopAngle1, TopAngle2, TopAngle3, TopAngle4, TopCorner1, TopCorner2, TopCorner3, TopCorner4
-->
 16       <Scene>
 17            <!-- Multi-layered chess board construction. -->
 18            <WorldInfo title='Chess8Levels.x3d'/>
 19            <Group DEF='board'>
 20 
               <!-- Transform X_Plane 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 -->
               <Transform DEF='X_Plane'>
 21 
                    <!-- Group Row1 is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                    <Group DEF='Row1'>
 22                           <Transform>
 23 
                              <!-- Shape GreenSquare is a DEF node that has 7 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7 -->
                              <Shape DEF='GreenSquare'>
 24                                     <Box size='1 0.01 1'/>
 25                                     <Appearance>
 26                                          <Material diffuseColor='.25 1 .25transparency='.125'/>
 27                                     </Appearance>
 28                                </Shape>
 29                           </Transform>
 30                           <Transform translation='1 0 0'>
 31 
                              <!-- Shape BlueSquare is a DEF node that has 7 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7 -->
                              <Shape DEF='BlueSquare'>
 32                                     <Box size='1 0.01 1'/>
 33                                     <Appearance>
 34                                          <Material diffuseColor='.25 .25 1transparency='.125'/>
 35                                     </Appearance>
 36                                </Shape>
 37                           </Transform>
 38                           <Transform translation='2 0 0'>
 39                                <Shape USE='GreenSquare'/>
 40                           </Transform>
 41                           <Transform translation='3 0 0'>
 42                                <Shape USE='BlueSquare'/>
 43                           </Transform>
 44                           <Transform translation='-1 0 0'>
 45                                <Shape USE='BlueSquare'/>
 46                           </Transform>
 47                           <Transform translation='-2 0 0'>
 48                                <Shape USE='GreenSquare'/>
 49                           </Transform>
 50                           <Transform translation='-3 0 0'>
 51                                <Shape USE='BlueSquare'/>
 52                           </Transform>
 53                           <Transform translation='-4 0 0'>
 54                                <Shape USE='GreenSquare'/>
 55                           </Transform>
 56                      </Group>
 57                      <Transform translation='0 0 -1'>
 58 
                         <!-- Group Row2 is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                         <Group DEF='Row2'>
 59                                <Transform>
 60                                     <Shape USE='BlueSquare'/>
 61                                </Transform>
 62                                <Transform translation='1 0 0'>
 63                                     <Shape USE='GreenSquare'/>
 64                                </Transform>
 65                                <Transform translation='2 0 0'>
 66                                     <Shape USE='BlueSquare'/>
 67                                </Transform>
 68                                <Transform translation='3 0 0'>
 69                                     <Shape USE='GreenSquare'/>
 70                                </Transform>
 71                                <Transform translation='-1 0 0'>
 72                                     <Shape USE='GreenSquare'/>
 73                                </Transform>
 74                                <Transform translation='-2 0 0'>
 75                                     <Shape USE='BlueSquare'/>
 76                                </Transform>
 77                                <Transform translation='-3 0 0'>
 78                                     <Shape USE='GreenSquare'/>
 79                                </Transform>
 80                                <Transform translation='-4 0 0'>
 81                                     <Shape USE='BlueSquare'/>
 82                                </Transform>
 83                           </Group>
 84                      </Transform>
 85                      <Transform translation='0 0 -2'>
 86                           <Group USE='Row1'/>
 87                      </Transform>
 88                      <Transform translation='0 0 -3'>
 89                           <Group USE='Row2'/>
 90                      </Transform>
 91                      <Transform translation='0 0 -4'>
 92                           <Group USE='Row1'/>
 93                      </Transform>
 94                      <Transform translation='0 0 1'>
 95                           <Group USE='Row2'/>
 96                      </Transform>
 97                      <Transform translation='0 0 2'>
 98                           <Group USE='Row1'/>
 99                      </Transform>
100                      <Transform translation='0 0 3'>
101                           <Group USE='Row2'/>
102                      </Transform>
103                 </Transform>
104                 <Transform translation='0 -4 0'>
105                      <Transform USE='X_Plane'/>
106                 </Transform>
107                 <Transform rotation='0 1 0 1.57translation='0 -3 -1'>
108                      <Transform USE='X_Plane'/>
109                 </Transform>
110                 <Transform translation='0 -2 0'>
111                      <Transform USE='X_Plane'/>
112                 </Transform>
113                 <Transform rotation='0 1 0 1.57translation='0 -1 -1'>
114                      <Transform USE='X_Plane'/>
115                 </Transform>
116                 <Transform rotation='0 1 0 1.57translation='0 1 -1'>
117                      <Transform USE='X_Plane'/>
118                 </Transform>
119                 <Transform translation='0 2 0'>
120                      <Transform USE='X_Plane'/>
121                 </Transform>
122                 <Transform rotation='0 1 0 1.57translation='0 3 -1'>
123                      <Transform USE='X_Plane'/>
124                 </Transform>
125                 <Transform translation='0 4 0'>
126                      <Transform USE='X_Plane'/>
127                 </Transform>
128            </Group>
129 
          <!-- ROUTE information for RedPawn1 node:  [from RedPawn1PathInterpolator.value_changed to set_rotation ] [from RedPawn1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn1translation='-4 0 -3'>
130 
               <!-- Group redpawn is a DEF node that has 7 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7 -->
               <Group DEF='redpawn'>
131                      <Transform translation='0 .415 0'>
132                           <Transform>
133                                <Shape>
134                                     <Sphere radius='.1875'/>
135 
                                   <!-- Appearance Red is a DEF node that has 15 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 -->
                                   <Appearance DEF='Red'>
136                                          <Material diffuseColor='1 .25 .25'/>
137                                     </Appearance>
138                                </Shape>
139                           </Transform>
140                      </Transform>
141 
                    <!-- Group redpiecebase 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 -->
                    <Group DEF='redpiecebase'>
142                           <Transform DEF='chesspiecebasetranslation='0 0.04 0'>
143                                <Shape>
144                                     <Cylinder height='.0625radius='.1875'/>
145                                </Shape>
146                           </Transform>
147                           <Transform DEF='redpieceposttranslation='0 .165 0'>
148                                <Shape>
149                                     <Cylinder height='.25radius='.0825'/>
150                                     <Appearance USE='Red'/>
151                                </Shape>
152                           </Transform>
153                      </Group>
154                 </Group>
155 
               <!-- ROUTE information for RedPawn1TouchSensor node:  [from isOver to REDPAWN1CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn1TouchSensor'/>
156 
               <!-- ROUTE information for REDPAWN1CLOCK node:  [from RedPawn1TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN1CLOCKcycleInterval='4enabled='falseloop='true'/>
157 
               <!-- ROUTE information for RedPawn1PathInterpolator node:  [from REDPAWN1CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn1.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
158 
               <!-- ROUTE information for RedPawn1PlaneSensor node:  [from translation_changed to RedPawn1.set_translation ] -->
               <PlaneSensor DEF='RedPawn1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-4 1 -2'/>
159                 <Group>
160                      < ROUTE  fromNode='RedPawn1TouchSensor' fromField='isOver' toNode='REDPAWN1CLOCK' toField='set_enabled'/>
161                      < ROUTE  fromNode='REDPAWN1CLOCK' fromField='fraction_changed' toNode='RedPawn1PathInterpolator' toField='set_fraction'/>
162                      < ROUTE  fromNode='RedPawn1PathInterpolator' fromField='value_changed' toNode='RedPawn1' toField='set_rotation'/>
163                 </Group>
164                 <Group>
165                      < ROUTE  fromNode='RedPawn1PlaneSensor' fromField='translation_changed' toNode='RedPawn1' toField='set_translation'/>
166                 </Group>
167            </Transform>
168 
          <!-- ROUTE information for RedPawn2 node:  [from RedPawn2PathInterpolator.value_changed to set_rotation ] [from RedPawn2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn2translation='-3 0 -3'>
169                 <Group USE='redpawn'/>
170 
               <!-- ROUTE information for RedPawn2TouchSensor node:  [from isOver to REDPAWN2CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn2TouchSensor'/>
171 
               <!-- ROUTE information for REDPAWN2CLOCK node:  [from RedPawn2TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN2CLOCKcycleInterval='4enabled='falseloop='true'/>
172 
               <!-- ROUTE information for RedPawn2PathInterpolator node:  [from REDPAWN2CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn2.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
173 
               <!-- ROUTE information for RedPawn2PlaneSensor node:  [from translation_changed to RedPawn2.set_translation ] -->
               <PlaneSensor DEF='RedPawn2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-3 -1 -2'/>
174                 <Group>
175                      < ROUTE  fromNode='RedPawn2TouchSensor' fromField='isOver' toNode='REDPAWN2CLOCK' toField='set_enabled'/>
176                      < ROUTE  fromNode='REDPAWN2CLOCK' fromField='fraction_changed' toNode='RedPawn2PathInterpolator' toField='set_fraction'/>
177                      < ROUTE  fromNode='RedPawn2PathInterpolator' fromField='value_changed' toNode='RedPawn2' toField='set_rotation'/>
178                 </Group>
179                 <Group>
180                      < ROUTE  fromNode='RedPawn2PlaneSensor' fromField='translation_changed' toNode='RedPawn2' toField='set_translation'/>
181                 </Group>
182            </Transform>
183 
          <!-- ROUTE information for RedPawn3 node:  [from RedPawn3PathInterpolator.value_changed to set_rotation ] [from RedPawn3PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn3translation='-2 0 -3'>
184                 <Group USE='redpawn'/>
185 
               <!-- ROUTE information for RedPawn3TouchSensor node:  [from isOver to REDPAWN3CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn3TouchSensor'/>
186 
               <!-- ROUTE information for REDPAWN3CLOCK node:  [from RedPawn3TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn3PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN3CLOCKcycleInterval='4enabled='falseloop='true'/>
187 
               <!-- ROUTE information for RedPawn3PathInterpolator node:  [from REDPAWN3CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn3.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn3PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
188 
               <!-- ROUTE information for RedPawn3PlaneSensor node:  [from translation_changed to RedPawn3.set_translation ] -->
               <PlaneSensor DEF='RedPawn3PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-2 1 -2'/>
189                 <Group>
190                      < ROUTE  fromNode='RedPawn3TouchSensor' fromField='isOver' toNode='REDPAWN3CLOCK' toField='set_enabled'/>
191                      < ROUTE  fromNode='REDPAWN3CLOCK' fromField='fraction_changed' toNode='RedPawn3PathInterpolator' toField='set_fraction'/>
192                      < ROUTE  fromNode='RedPawn3PathInterpolator' fromField='value_changed' toNode='RedPawn3' toField='set_rotation'/>
193                 </Group>
194                 <Group>
195                      < ROUTE  fromNode='RedPawn3PlaneSensor' fromField='translation_changed' toNode='RedPawn3' toField='set_translation'/>
196                 </Group>
197            </Transform>
198 
          <!-- ROUTE information for RedPawn4 node:  [from RedPawn4PathInterpolator.value_changed to set_rotation ] [from RedPawn4PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn4translation='-1 0 -3'>
199                 <Group USE='redpawn'/>
200 
               <!-- ROUTE information for RedPawn4TouchSensor node:  [from isOver to REDPAWN4CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn4TouchSensor'/>
201 
               <!-- ROUTE information for REDPAWN4CLOCK node:  [from RedPawn4TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn4PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN4CLOCKcycleInterval='4enabled='falseloop='true'/>
202 
               <!-- ROUTE information for RedPawn4PathInterpolator node:  [from REDPAWN4CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn4.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn4PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
203 
               <!-- ROUTE information for RedPawn4PlaneSensor node:  [from translation_changed to RedPawn4.set_translation ] -->
               <PlaneSensor DEF='RedPawn4PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-1 2 -2'/>
204                 <Group>
205                      < ROUTE  fromNode='RedPawn4TouchSensor' fromField='isOver' toNode='REDPAWN4CLOCK' toField='set_enabled'/>
206                      < ROUTE  fromNode='REDPAWN4CLOCK' fromField='fraction_changed' toNode='RedPawn4PathInterpolator' toField='set_fraction'/>
207                      < ROUTE  fromNode='RedPawn4PathInterpolator' fromField='value_changed' toNode='RedPawn4' toField='set_rotation'/>
208                 </Group>
209                 <Group>
210                      < ROUTE  fromNode='RedPawn4PlaneSensor' fromField='translation_changed' toNode='RedPawn4' toField='set_translation'/>
211                 </Group>
212            </Transform>
213 
          <!-- ROUTE information for RedPawn5 node:  [from RedPawn5PathInterpolator.value_changed to set_rotation ] [from RedPawn5PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn5translation='0 0 -3'>
214                 <Group USE='redpawn'/>
215 
               <!-- ROUTE information for RedPawn5TouchSensor node:  [from isOver to REDPAWN5CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn5TouchSensor'/>
216 
               <!-- ROUTE information for REDPAWN5CLOCK node:  [from RedPawn5TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn5PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN5CLOCKcycleInterval='4enabled='falseloop='true'/>
217 
               <!-- ROUTE information for RedPawn5PathInterpolator node:  [from REDPAWN5CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn5.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn5PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
218 
               <!-- ROUTE information for RedPawn5PlaneSensor node:  [from translation_changed to RedPawn5.set_translation ] -->
               <PlaneSensor DEF='RedPawn5PlaneSensormaxPosition='3 4minPosition='-4 -4offset='0 -2 -2'/>
219                 <Group>
220                      < ROUTE  fromNode='RedPawn5TouchSensor' fromField='isOver' toNode='REDPAWN5CLOCK' toField='set_enabled'/>
221                      < ROUTE  fromNode='REDPAWN5CLOCK' fromField='fraction_changed' toNode='RedPawn5PathInterpolator' toField='set_fraction'/>
222                      < ROUTE  fromNode='RedPawn5PathInterpolator' fromField='value_changed' toNode='RedPawn5' toField='set_rotation'/>
223                 </Group>
224                 <Group>
225                      < ROUTE  fromNode='RedPawn5PlaneSensor' fromField='translation_changed' toNode='RedPawn5' toField='set_translation'/>
226                 </Group>
227            </Transform>
228 
          <!-- ROUTE information for RedPawn6 node:  [from RedPawn6PathInterpolator.value_changed to set_rotation ] [from RedPawn6PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn6translation='1 0 -3'>
229                 <Group USE='redpawn'/>
230 
               <!-- ROUTE information for RedPawn6TouchSensor node:  [from isOver to REDPAWN6CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn6TouchSensor'/>
231 
               <!-- ROUTE information for REDPAWN6CLOCK node:  [from RedPawn6TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn6PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN6CLOCKcycleInterval='4enabled='falseloop='true'/>
232 
               <!-- ROUTE information for RedPawn6PathInterpolator node:  [from REDPAWN6CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn6.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn6PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
233 
               <!-- ROUTE information for RedPawn6PlaneSensor node:  [from translation_changed to RedPawn6.set_translation ] -->
               <PlaneSensor DEF='RedPawn6PlaneSensormaxPosition='3 4minPosition='-4 -4offset='1 1 -1'/>
234                 <Group>
235                      < ROUTE  fromNode='RedPawn6TouchSensor' fromField='isOver' toNode='REDPAWN6CLOCK' toField='set_enabled'/>
236                      < ROUTE  fromNode='REDPAWN6CLOCK' fromField='fraction_changed' toNode='RedPawn6PathInterpolator' toField='set_fraction'/>
237                      < ROUTE  fromNode='RedPawn6PathInterpolator' fromField='value_changed' toNode='RedPawn6' toField='set_rotation'/>
238                 </Group>
239                 <Group>
240                      < ROUTE  fromNode='RedPawn6PlaneSensor' fromField='translation_changed' toNode='RedPawn6' toField='set_translation'/>
241                 </Group>
242            </Transform>
243 
          <!-- ROUTE information for RedPawn7 node:  [from RedPawn7PathInterpolator.value_changed to set_rotation ] [from RedPawn7PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn7translation='2 0 -3'>
244                 <Group USE='redpawn'/>
245 
               <!-- ROUTE information for RedPawn7TouchSensor node:  [from isOver to REDPAWN7CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn7TouchSensor'/>
246 
               <!-- ROUTE information for REDPAWN7CLOCK node:  [from RedPawn7TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn7PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN7CLOCKcycleInterval='4enabled='falseloop='true'/>
247 
               <!-- ROUTE information for RedPawn7PathInterpolator node:  [from REDPAWN7CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn7.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn7PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
248 
               <!-- ROUTE information for RedPawn7PlaneSensor node:  [from translation_changed to RedPawn7.set_translation ] -->
               <PlaneSensor DEF='RedPawn7PlaneSensormaxPosition='3 4minPosition='-4 -4offset='2 1 -1'/>
249                 <Group>
250                      < ROUTE  fromNode='RedPawn7TouchSensor' fromField='isOver' toNode='REDPAWN7CLOCK' toField='set_enabled'/>
251                      < ROUTE  fromNode='REDPAWN7CLOCK' fromField='fraction_changed' toNode='RedPawn7PathInterpolator' toField='set_fraction'/>
252                      < ROUTE  fromNode='RedPawn7PathInterpolator' fromField='value_changed' toNode='RedPawn7' toField='set_rotation'/>
253                 </Group>
254                 <Group>
255                      < ROUTE  fromNode='RedPawn7PlaneSensor' fromField='translation_changed' toNode='RedPawn7' toField='set_translation'/>
256                 </Group>
257            </Transform>
258 
          <!-- ROUTE information for RedPawn8 node:  [from RedPawn8PathInterpolator.value_changed to set_rotation ] [from RedPawn8PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedPawn8translation='3 0 -3'>
259                 <Group USE='redpawn'/>
260 
               <!-- ROUTE information for RedPawn8TouchSensor node:  [from isOver to REDPAWN8CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedPawn8TouchSensor'/>
261 
               <!-- ROUTE information for REDPAWN8CLOCK node:  [from RedPawn8TouchSensor.isOver to set_enabled ] [from fraction_changed to RedPawn8PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDPAWN8CLOCKcycleInterval='4enabled='falseloop='true'/>
262 
               <!-- ROUTE information for RedPawn8PathInterpolator node:  [from REDPAWN8CLOCK.fraction_changed to set_fraction ] [from value_changed to RedPawn8.set_rotation ] -->
               <OrientationInterpolator DEF='RedPawn8PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
263 
               <!-- ROUTE information for RedPawn8PlaneSensor node:  [from translation_changed to RedPawn8.set_translation ] -->
               <PlaneSensor DEF='RedPawn8PlaneSensormaxPosition='3 4minPosition='-4 -4offset='3 0 -2'/>
264                 <Group>
265                      < ROUTE  fromNode='RedPawn8TouchSensor' fromField='isOver' toNode='REDPAWN8CLOCK' toField='set_enabled'/>
266                      < ROUTE  fromNode='REDPAWN8CLOCK' fromField='fraction_changed' toNode='RedPawn8PathInterpolator' toField='set_fraction'/>
267                      < ROUTE  fromNode='RedPawn8PathInterpolator' fromField='value_changed' toNode='RedPawn8' toField='set_rotation'/>
268                 </Group>
269                 <Group>
270                      < ROUTE  fromNode='RedPawn8PlaneSensor' fromField='translation_changed' toNode='RedPawn8' toField='set_translation'/>
271                 </Group>
272            </Transform>
273 
          <!-- ROUTE information for RedCastle1 node:  [from RedCastle1PathInterpolator.value_changed to set_rotation ] [from RedCastle1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedCastle1translation='-4 0 -4'>
274                 <Group>
275                      <Group USE='redpiecebase'/>
276                      <Group>
277                           <Transform translation='0 0.45 0'>
278                                <Shape>
279                                     <Box size='.3 .45 .3'/>
280                                     <Appearance USE='Red'/>
281                                </Shape>
282                           </Transform>
283                           <Transform rotation='0 1 0 0.52translation='0 0.45 0'>
284                                <Shape>
285                                     <Box size='.3 .45 .3'/>
286                                     <Appearance USE='Red'/>
287                                </Shape>
288                           </Transform>
289                           <Transform rotation='0 1 0 1.04translation='0 0.45 0'>
290                                <Shape>
291                                     <Box size='.3 .45 .3'/>
292                                     <Appearance USE='Red'/>
293                                </Shape>
294                           </Transform>
295                      </Group>
296                 </Group>
297 
               <!-- ROUTE information for RedCastle1TouchSensor node:  [from isOver to REDCASTLE1CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedCastle1TouchSensor'/>
298 
               <!-- ROUTE information for REDCASTLE1CLOCK node:  [from RedCastle1TouchSensor.isOver to set_enabled ] [from fraction_changed to RedCastle1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDCASTLE1CLOCKcycleInterval='4enabled='falseloop='true'/>
299 
               <!-- ROUTE information for RedCastle1PathInterpolator node:  [from REDCASTLE1CLOCK.fraction_changed to set_fraction ] [from value_changed to RedCastle1.set_rotation ] -->
               <OrientationInterpolator DEF='RedCastle1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
300 
               <!-- ROUTE information for RedCastle1PlaneSensor node:  [from translation_changed to RedCastle1.set_translation ] -->
               <PlaneSensor DEF='RedCastle1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-4 3 -4'/>
301                 <Group>
302                      < ROUTE  fromNode='RedCastle1TouchSensor' fromField='isOver' toNode='REDCASTLE1CLOCK' toField='set_enabled'/>
303                      < ROUTE  fromNode='REDCASTLE1CLOCK' fromField='fraction_changed' toNode='RedCastle1PathInterpolator' toField='set_fraction'/>
304                      < ROUTE  fromNode='RedCastle1PathInterpolator' fromField='value_changed' toNode='RedCastle1' toField='set_rotation'/>
305                 </Group>
306                 <Group>
307                      < ROUTE  fromNode='RedCastle1PlaneSensor' fromField='translation_changed' toNode='RedCastle1' toField='set_translation'/>
308                 </Group>
309            </Transform>
310 
          <!-- ROUTE information for RedKnight1 node:  [from RedKnight1PathInterpolator.value_changed to set_rotation ] [from RedKnight1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedKnight1translation='-3 0 -4'>
311                 <Group>
312                      <Group USE='redpiecebase'/>
313                      <Transform translation='0 0.45 0'>
314                           <Shape>
315                                <Cylinder height='0.45radius='0.125'/>
316                                <Appearance USE='Red'/>
317                           </Shape>
318                      </Transform>
319                      <Transform rotation='1 0 0 5.27translation='0 0.55 0.075'>
320                           <Shape>
321                                <Cone bottomRadius='0.1height='0.4'/>
322                                <Appearance USE='Red'/>
323                           </Shape>
324                      </Transform>
325                 </Group>
326 
               <!-- ROUTE information for RedKnight1TouchSensor node:  [from isOver to REDKNIGHT1CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedKnight1TouchSensor'/>
327 
               <!-- ROUTE information for REDKNIGHT1CLOCK node:  [from RedKnight1TouchSensor.isOver to set_enabled ] [from fraction_changed to RedKnight1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDKNIGHT1CLOCKcycleInterval='4enabled='falseloop='true'/>
328 
               <!-- ROUTE information for RedKnight1PathInterpolator node:  [from REDKNIGHT1CLOCK.fraction_changed to set_fraction ] [from value_changed to RedKnight1.set_rotation ] -->
               <OrientationInterpolator DEF='RedKnight1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
329 
               <!-- ROUTE information for RedKnight1PlaneSensor node:  [from translation_changed to RedKnight1.set_translation ] -->
               <PlaneSensor DEF='RedKnight1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-2 0 -2'/>
330                 <Group>
331                      < ROUTE  fromNode='RedKnight1TouchSensor' fromField='isOver' toNode='REDKNIGHT1CLOCK' toField='set_enabled'/>
332                      < ROUTE  fromNode='REDKNIGHT1CLOCK' fromField='fraction_changed' toNode='RedKnight1PathInterpolator' toField='set_fraction'/>
333                      < ROUTE  fromNode='RedKnight1PathInterpolator' fromField='value_changed' toNode='RedKnight1' toField='set_rotation'/>
334                 </Group>
335                 <Group>
336                      < ROUTE  fromNode='RedKnight1PlaneSensor' fromField='translation_changed' toNode='RedKnight1' toField='set_translation'/>
337                 </Group>
338            </Transform>
339 
          <!-- ROUTE information for RedBishop1 node:  [from RedBishop1PathInterpolator.value_changed to set_rotation ] [from RedBishop1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedBishop1translation='-2 0 -4'>
340                 <Group>
341                      <Group USE='redpiecebase'/>
342                      <Transform translation='0 0.45 0'>
343                           <Shape>
344                                <Cone bottomRadius='.15height='.5'/>
345                                <Appearance USE='Red'/>
346                           </Shape>
347                      </Transform>
348                 </Group>
349 
               <!-- ROUTE information for RedBishop1TouchSensor node:  [from isOver to REDBISHOP1CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedBishop1TouchSensor'/>
350 
               <!-- ROUTE information for REDBISHOP1CLOCK node:  [from RedBishop1TouchSensor.isOver to set_enabled ] [from fraction_changed to RedBishop1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDBISHOP1CLOCKcycleInterval='4enabled='falseloop='true'/>
351 
               <!-- ROUTE information for RedBishop1PathInterpolator node:  [from REDBISHOP1CLOCK.fraction_changed to set_fraction ] [from value_changed to RedBishop1.set_rotation ] -->
               <OrientationInterpolator DEF='RedBishop1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
352 
               <!-- ROUTE information for RedBishop1PlaneSensor node:  [from translation_changed to RedBishop1.set_translation ] -->
               <PlaneSensor DEF='RedBishop1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='0 -4 -2'/>
353                 <Group>
354                      < ROUTE  fromNode='RedBishop1TouchSensor' fromField='isOver' toNode='REDBISHOP1CLOCK' toField='set_enabled'/>
355                      < ROUTE  fromNode='REDBISHOP1CLOCK' fromField='fraction_changed' toNode='RedBishop1PathInterpolator' toField='set_fraction'/>
356                      < ROUTE  fromNode='RedBishop1PathInterpolator' fromField='value_changed' toNode='RedBishop1' toField='set_rotation'/>
357                 </Group>
358                 <Group>
359                      < ROUTE  fromNode='RedBishop1PlaneSensor' fromField='translation_changed' toNode='RedBishop1' toField='set_translation'/>
360                 </Group>
361            </Transform>
362 
          <!-- ROUTE information for RedKing node:  [from RedKingPathInterpolator.value_changed to set_rotation ] [from RedKingPlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedKingtranslation='-1 0 -4'>
363                 <Group>
364                      <Group USE='redpiecebase'/>
365                      <Transform translation='0 0.4 0'>
366                           <Shape>
367                                <Cone bottomRadius='.10height='.25'/>
368                                <Appearance USE='Red'/>
369                           </Shape>
370                      </Transform>
371                      <Transform scale='.035 .035 .035translation='0 0.4 0'>
372 
                         <!-- Shape RedBolt is a DEF node that has 11 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11 -->
                         <Shape DEF='RedBolt'>
373                                <IndexedFaceSet convex='falsecoordIndex='0 1 2 3 4 5 6 -1 0 12 11 10 9 8 7 -1 0 7 1 -1 1 7 8 2 -1 2 8 9 3 -1 3 9 10 4 -1 4 10 11 5 -1 5 11 12 6 -1 6 12 0'>
374                                     <Coordinate point='0.0 0.0 0.0 5.5 5.0 0.88 4.0 5.5 0.968 7.0 8.0 1.408 4.0 9.0 1.584 1.0 5.0 0.88 2.5 4.5 0.792 5.5 5.0 -0.88 4.0 5.5 -0.968 7.0 8.0 -1.408 4.0 9.0 -1.584 1.0 5.0 -0.88 2.5 4.5 -0.792'/>
375                                </IndexedFaceSet>
376                                <Appearance USE='Red'/>
377                           </Shape>
378                           <Transform rotation='0 1 0 45'>
379                                <Shape USE='RedBolt'/>
380                           </Transform>
381                           <Transform rotation='0 1 0 90'>
382                                <Shape USE='RedBolt'/>
383                           </Transform>
384                           <Transform rotation='0 1 0 135'>
385                                <Shape USE='RedBolt'/>
386                           </Transform>
387                           <Transform rotation='0 1 0 180'>
388                                <Shape USE='RedBolt'/>
389                           </Transform>
390                           <Transform rotation='0 1 0 225'>
391                                <Shape USE='RedBolt'/>
392                           </Transform>
393                      </Transform>
394                      <Transform translation='0 .8 0'>
395                           <Group>
396                                <Shape>
397                                     <Box size='.25 .02 .02'/>
398                                     <Appearance USE='Red'/>
399                                </Shape>
400                                <Shape>
401                                     <Box size='.02 .25 .02'/>
402                                     <Appearance USE='Red'/>
403                                </Shape>
404                                <Shape>
405                                     <Box size='.02 .02 .25'/>
406                                     <Appearance USE='Red'/>
407                                </Shape>
408                           </Group>
409                      </Transform>
410                 </Group>
411 
               <!-- ROUTE information for RedKingTouchSensor node:  [from isOver to REDKINGCLOCK.set_enabled ] -->
               <TouchSensor DEF='RedKingTouchSensor'/>
412 
               <!-- ROUTE information for REDKINGCLOCK node:  [from RedKingTouchSensor.isOver to set_enabled ] [from fraction_changed to RedKingPathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDKINGCLOCKcycleInterval='4enabled='falseloop='true'/>
413 
               <!-- ROUTE information for RedKingPathInterpolator node:  [from REDKINGCLOCK.fraction_changed to set_fraction ] [from value_changed to RedKing.set_rotation ] -->
               <OrientationInterpolator DEF='RedKingPathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
414 
               <!-- ROUTE information for RedKingPlaneSensor node:  [from translation_changed to RedKing.set_translation ] -->
               <PlaneSensor DEF='RedKingPlaneSensormaxPosition='3 4minPosition='-4 -4offset='-1 1 -4'/>
415                 <Group>
416                      < ROUTE  fromNode='RedKingTouchSensor' fromField='isOver' toNode='REDKINGCLOCK' toField='set_enabled'/>
417                      < ROUTE  fromNode='REDKINGCLOCK' fromField='fraction_changed' toNode='RedKingPathInterpolator' toField='set_fraction'/>
418                      < ROUTE  fromNode='RedKingPathInterpolator' fromField='value_changed' toNode='RedKing' toField='set_rotation'/>
419                 </Group>
420                 <Group>
421                      < ROUTE  fromNode='RedKingPlaneSensor' fromField='translation_changed' toNode='RedKing' toField='set_translation'/>
422                 </Group>
423            </Transform>
424 
          <!-- ROUTE information for RedQueen node:  [from RedQueenPathInterpolator.value_changed to set_rotation ] [from RedQueenPlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedQueentranslation='0 0 -4'>
425                 <Group>
426                      <Group USE='redpiecebase'/>
427                      <Transform translation='0 0.4 0'>
428                           <Shape>
429                                <Cone bottomRadius='.10height='.25'/>
430                                <Appearance USE='Red'/>
431                           </Shape>
432                      </Transform>
433                      <Transform scale='.035 .035 .035translation='0 0.4 0'>
434                           <Shape USE='RedBolt'/>
435                           <Transform rotation='0 1 0 45'>
436                                <Shape USE='RedBolt'/>
437                           </Transform>
438                           <Transform rotation='0 1 0 90'>
439                                <Shape USE='RedBolt'/>
440                           </Transform>
441                           <Transform rotation='0 1 0 135'>
442                                <Shape USE='RedBolt'/>
443                           </Transform>
444                           <Transform rotation='0 1 0 180'>
445                                <Shape USE='RedBolt'/>
446                           </Transform>
447                           <Transform rotation='0 1 0 225'>
448                                <Shape USE='RedBolt'/>
449                           </Transform>
450                      </Transform>
451                 </Group>
452 
               <!-- ROUTE information for RedQueenTouchSensor node:  [from isOver to REDQUEENCLOCK.set_enabled ] -->
               <TouchSensor DEF='RedQueenTouchSensor'/>
453 
               <!-- ROUTE information for REDQUEENCLOCK node:  [from RedQueenTouchSensor.isOver to set_enabled ] [from fraction_changed to RedQueenPathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDQUEENCLOCKcycleInterval='4enabled='falseloop='true'/>
454 
               <!-- ROUTE information for RedQueenPathInterpolator node:  [from REDQUEENCLOCK.fraction_changed to set_fraction ] [from value_changed to RedQueen.set_rotation ] -->
               <OrientationInterpolator DEF='RedQueenPathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
455 
               <!-- ROUTE information for RedQueenPlaneSensor node:  [from translation_changed to RedQueen.set_translation ] -->
               <PlaneSensor DEF='RedQueenPlaneSensormaxPosition='3 4minPosition='-4 -4offset='0 3 3'/>
456                 <Group>
457                      < ROUTE  fromNode='RedQueenTouchSensor' fromField='isOver' toNode='REDQUEENCLOCK' toField='set_enabled'/>
458                      < ROUTE  fromNode='REDQUEENCLOCK' fromField='fraction_changed' toNode='RedQueenPathInterpolator' toField='set_fraction'/>
459                      < ROUTE  fromNode='RedQueenPathInterpolator' fromField='value_changed' toNode='RedQueen' toField='set_rotation'/>
460                 </Group>
461                 <Group>
462                      < ROUTE  fromNode='RedQueenPlaneSensor' fromField='translation_changed' toNode='RedQueen' toField='set_translation'/>
463                 </Group>
464            </Transform>
465 
          <!-- ROUTE information for RedBishop2 node:  [from RedBishop2PathInterpolator.value_changed to set_rotation ] [from RedBishop2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedBishop2translation='1 0 -4'>
466                 <Group>
467                      <Group USE='redpiecebase'/>
468                      <Transform translation='0 0.45 0'>
469                           <Shape>
470                                <Cone bottomRadius='.15height='.5'/>
471                                <Appearance>
472                                     <Material diffuseColor='1 .25 .25'/>
473                                </Appearance>
474                           </Shape>
475                      </Transform>
476                 </Group>
477 
               <!-- ROUTE information for RedBishop2TouchSensor node:  [from isOver to REDBISHOP2CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedBishop2TouchSensor'/>
478 
               <!-- ROUTE information for REDBISHOP2CLOCK node:  [from RedBishop2TouchSensor.isOver to set_enabled ] [from fraction_changed to RedBishop2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDBISHOP2CLOCKcycleInterval='4enabled='falseloop='true'/>
479 
               <!-- ROUTE information for RedBishop2PathInterpolator node:  [from REDBISHOP2CLOCK.fraction_changed to set_fraction ] [from value_changed to RedBishop2.set_rotation ] -->
               <OrientationInterpolator DEF='RedBishop2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
480 
               <!-- ROUTE information for RedBishop2PlaneSensor node:  [from translation_changed to RedBishop2.set_translation ] -->
               <PlaneSensor DEF='RedBishop2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='0 4 -2'/>
481                 <Group>
482                      < ROUTE  fromNode='RedBishop2TouchSensor' fromField='isOver' toNode='REDBISHOP2CLOCK' toField='set_enabled'/>
483                      < ROUTE  fromNode='REDBISHOP2CLOCK' fromField='fraction_changed' toNode='RedBishop2PathInterpolator' toField='set_fraction'/>
484                      < ROUTE  fromNode='RedBishop2PathInterpolator' fromField='value_changed' toNode='RedBishop2' toField='set_rotation'/>
485                 </Group>
486                 <Group>
487                      < ROUTE  fromNode='RedBishop2PlaneSensor' fromField='translation_changed' toNode='RedBishop2' toField='set_translation'/>
488                 </Group>
489            </Transform>
490 
          <!-- ROUTE information for RedKnight2 node:  [from RedKnight2PathInterpolator.value_changed to set_rotation ] [from RedKnight2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedKnight2translation='2 0 -4'>
491                 <Group>
492                      <Group USE='redpiecebase'/>
493                      <Transform translation='0 0.45 0'>
494                           <Shape>
495                                <Cylinder height='0.45radius='0.125'/>
496                                <Appearance USE='Red'/>
497                           </Shape>
498                      </Transform>
499                      <Transform rotation='1 0 0 5.27translation='0 0.55 0.075'>
500                           <Shape>
501                                <Cone bottomRadius='0.1height='0.4'/>
502                                <Appearance USE='Red'/>
503                           </Shape>
504                      </Transform>
505                 </Group>
506 
               <!-- ROUTE information for RedKnight2TouchSensor node:  [from isOver to REDKNIGHT2CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedKnight2TouchSensor'/>
507 
               <!-- ROUTE information for REDKNIGHT2CLOCK node:  [from RedKnight2TouchSensor.isOver to set_enabled ] [from fraction_changed to RedKnight2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDKNIGHT2CLOCKcycleInterval='4enabled='falseloop='true'/>
508 
               <!-- ROUTE information for RedKnight2PathInterpolator node:  [from REDKNIGHT2CLOCK.fraction_changed to set_fraction ] [from value_changed to RedKnight2.set_rotation ] -->
               <OrientationInterpolator DEF='RedKnight2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
509 
               <!-- ROUTE information for RedKnight2PlaneSensor node:  [from translation_changed to RedKnight2.set_translation ] -->
               <PlaneSensor DEF='RedKnight2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='0 0 -2'/>
510                 <Group>
511                      < ROUTE  fromNode='RedKnight2TouchSensor' fromField='isOver' toNode='REDKNIGHT2CLOCK' toField='set_enabled'/>
512                      < ROUTE  fromNode='REDKNIGHT2CLOCK' fromField='fraction_changed' toNode='RedKnight2PathInterpolator' toField='set_fraction'/>
513                      < ROUTE  fromNode='RedKnight2PathInterpolator' fromField='value_changed' toNode='RedKnight2' toField='set_rotation'/>
514                 </Group>
515                 <Group>
516                      < ROUTE  fromNode='RedKnight2PlaneSensor' fromField='translation_changed' toNode='RedKnight2' toField='set_translation'/>
517                 </Group>
518            </Transform>
519 
          <!-- ROUTE information for RedCastle2 node:  [from RedCastle2PathInterpolator.value_changed to set_rotation ] [from RedCastle2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='RedCastle2translation='3 0 -4'>
520                 <Group>
521                      <Group USE='redpiecebase'/>
522                      <Group>
523                           <Transform translation='0 0.45 0'>
524                                <Shape>
525                                     <Box size='.3 .45 .3'/>
526                                     <Appearance>
527                                          <Material diffuseColor='1 .25 .25'/>
528                                     </Appearance>
529                                </Shape>
530                           </Transform>
531                           <Transform rotation='0 1 0 0.52translation='0 0.45 0'>
532                                <Shape>
533                                     <Box size='.3 .45 .3'/>
534                                     <Appearance>
535                                          <Material diffuseColor='1 .25 .25'/>
536                                     </Appearance>
537                                </Shape>
538                           </Transform>
539                           <Transform rotation='0 1 0 1.04translation='0 0.45 0'>
540                                <Shape>
541                                     <Box size='.3 .45 .3'/>
542                                     <Appearance>
543                                          <Material diffuseColor='1 .25 .25'/>
544                                     </Appearance>
545                                </Shape>
546                           </Transform>
547                      </Group>
548                 </Group>
549 
               <!-- ROUTE information for RedCastle2TouchSensor node:  [from isOver to REDCASTLE2CLOCK.set_enabled ] -->
               <TouchSensor DEF='RedCastle2TouchSensor'/>
550 
               <!-- ROUTE information for REDCASTLE2CLOCK node:  [from RedCastle2TouchSensor.isOver to set_enabled ] [from fraction_changed to RedCastle2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='REDCASTLE2CLOCKcycleInterval='4enabled='falseloop='true'/>
551 
               <!-- ROUTE information for RedCastle2PathInterpolator node:  [from REDCASTLE2CLOCK.fraction_changed to set_fraction ] [from value_changed to RedCastle2.set_rotation ] -->
               <OrientationInterpolator DEF='RedCastle2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
552 
               <!-- ROUTE information for RedCastle2PlaneSensor node:  [from translation_changed to RedCastle2.set_translation ] -->
               <PlaneSensor DEF='RedCastle2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='3 -4 -4'/>
553                 <Group>
554                      < ROUTE  fromNode='RedCastle2TouchSensor' fromField='isOver' toNode='REDCASTLE2CLOCK' toField='set_enabled'/>
555                      < ROUTE  fromNode='REDCASTLE2CLOCK' fromField='fraction_changed' toNode='RedCastle2PathInterpolator' toField='set_fraction'/>
556                      < ROUTE  fromNode='RedCastle2PathInterpolator' fromField='value_changed' toNode='RedCastle2' toField='set_rotation'/>
557                 </Group>
558                 <Group>
559                      < ROUTE  fromNode='RedCastle2PlaneSensor' fromField='translation_changed' toNode='RedCastle2' toField='set_translation'/>
560                 </Group>
561            </Transform>
562 
          <!-- ROUTE information for BluePawn1 node:  [from BluePawn1PathInterpolator.value_changed to set_rotation ] [from BluePawn1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn1translation='-4 0 2'>
563 
               <!-- Group aquapawn is a DEF node that has 7 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7 -->
               <Group DEF='aquapawn'>
564                      <Transform translation='0 .415 0'>
565                           <Transform>
566                                <Shape>
567                                     <Sphere radius='.1875'/>
568 
                                   <!-- Appearance Aqua is a DEF node that has 19 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 -->
                                   <Appearance DEF='Aqua'>
569                                          <Material diffuseColor='.25 1 1'/>
570                                     </Appearance>
571                                </Shape>
572                           </Transform>
573                      </Transform>
574 
                    <!-- Group bluepiecebase 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 -->
                    <Group DEF='bluepiecebase'>
575                           <Transform translation='0 0.04 0'>
576                                <Shape>
577                                     <Cylinder height='.0625radius='.1875'/>
578                                </Shape>
579                           </Transform>
580                           <Transform DEF='bluepieceposttranslation='0 .165 0'>
581                                <Shape>
582                                     <Cylinder height='.25radius='.0825'/>
583                                     <Appearance USE='Aqua'/>
584                                </Shape>
585                           </Transform>
586                      </Group>
587                 </Group>
588 
               <!-- ROUTE information for BluePawn1TouchSensor node:  [from isOver to BLUEPAWN1CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn1TouchSensor'/>
589 
               <!-- ROUTE information for BLUEPAWN1CLOCK node:  [from BluePawn1TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN1CLOCKcycleInterval='4enabled='falseloop='true'/>
590 
               <!-- ROUTE information for BluePawn1PathInterpolator node:  [from BLUEPAWN1CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn1.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
591 
               <!-- ROUTE information for BluePawn1PlaneSensor node:  [from translation_changed to BluePawn1.set_translation ] -->
               <PlaneSensor DEF='BluePawn1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-4 1 2'/>
592                 <Group>
593                      < ROUTE  fromNode='BluePawn1TouchSensor' fromField='isOver' toNode='BLUEPAWN1CLOCK' toField='set_enabled'/>
594                      < ROUTE  fromNode='BLUEPAWN1CLOCK' fromField='fraction_changed' toNode='BluePawn1PathInterpolator' toField='set_fraction'/>
595                      < ROUTE  fromNode='BluePawn1PathInterpolator' fromField='value_changed' toNode='BluePawn1' toField='set_rotation'/>
596                 </Group>
597                 <Group>
598                      < ROUTE  fromNode='BluePawn1PlaneSensor' fromField='translation_changed' toNode='BluePawn1' toField='set_translation'/>
599                 </Group>
600            </Transform>
601 
          <!-- ROUTE information for BluePawn2 node:  [from BluePawn2PathInterpolator.value_changed to set_rotation ] [from BluePawn2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn2translation='-3 0 2'>
602                 <Group USE='aquapawn'/>
603 
               <!-- ROUTE information for BluePawn2TouchSensor node:  [from isOver to BLUEPAWN2CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn2TouchSensor'/>
604 
               <!-- ROUTE information for BLUEPAWN2CLOCK node:  [from BluePawn2TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN2CLOCKcycleInterval='4enabled='falseloop='true'/>
605 
               <!-- ROUTE information for BluePawn2PathInterpolator node:  [from BLUEPAWN2CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn2.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
606 
               <!-- ROUTE information for BluePawn2PlaneSensor node:  [from translation_changed to BluePawn2.set_translation ] -->
               <PlaneSensor DEF='BluePawn2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-3 1 1'/>
607                 <Group>
608                      < ROUTE  fromNode='BluePawn2TouchSensor' fromField='isOver' toNode='BLUEPAWN2CLOCK' toField='set_enabled'/>
609                      < ROUTE  fromNode='BLUEPAWN2CLOCK' fromField='fraction_changed' toNode='BluePawn2PathInterpolator' toField='set_fraction'/>
610                      < ROUTE  fromNode='BluePawn2PathInterpolator' fromField='value_changed' toNode='BluePawn2' toField='set_rotation'/>
611                 </Group>
612                 <Group>
613                      < ROUTE  fromNode='BluePawn2PlaneSensor' fromField='translation_changed' toNode='BluePawn2' toField='set_translation'/>
614                 </Group>
615            </Transform>
616 
          <!-- ROUTE information for BluePawn3 node:  [from BluePawn3PathInterpolator.value_changed to set_rotation ] [from BluePawn3PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn3translation='-2 0 2'>
617                 <Group USE='aquapawn'/>
618 
               <!-- ROUTE information for BluePawn3TouchSensor node:  [from isOver to BLUEPAWN3CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn3TouchSensor'/>
619 
               <!-- ROUTE information for BLUEPAWN3CLOCK node:  [from BluePawn3TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn3PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN3CLOCKcycleInterval='4enabled='falseloop='true'/>
620 
               <!-- ROUTE information for BluePawn3PathInterpolator node:  [from BLUEPAWN3CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn3.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn3PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
621 
               <!-- ROUTE information for BluePawn3PlaneSensor node:  [from translation_changed to BluePawn3.set_translation ] -->
               <PlaneSensor DEF='BluePawn3PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-2 2 2'/>
622                 <Group>
623                      < ROUTE  fromNode='BluePawn3TouchSensor' fromField='isOver' toNode='BLUEPAWN3CLOCK' toField='set_enabled'/>
624                      < ROUTE  fromNode='BLUEPAWN3CLOCK' fromField='fraction_changed' toNode='BluePawn3PathInterpolator' toField='set_fraction'/>
625                      < ROUTE  fromNode='BluePawn3PathInterpolator' fromField='value_changed' toNode='BluePawn3' toField='set_rotation'/>
626                 </Group>
627                 <Group>
628                      < ROUTE  fromNode='BluePawn3PlaneSensor' fromField='translation_changed' toNode='BluePawn3' toField='set_translation'/>
629                 </Group>
630            </Transform>
631 
          <!-- ROUTE information for BluePawn4 node:  [from BluePawn4PathInterpolator.value_changed to set_rotation ] [from BluePawn4PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn4translation='-1 0 2'>
632                 <Group USE='aquapawn'/>
633 
               <!-- ROUTE information for BluePawn4TouchSensor node:  [from isOver to BLUEPAWN4CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn4TouchSensor'/>
634 
               <!-- ROUTE information for BLUEPAWN4CLOCK node:  [from BluePawn4TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn4PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN4CLOCKcycleInterval='4enabled='falseloop='true'/>
635 
               <!-- ROUTE information for BluePawn4PathInterpolator node:  [from BLUEPAWN4CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn4.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn4PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
636 
               <!-- ROUTE information for BluePawn4PlaneSensor node:  [from translation_changed to BluePawn4.set_translation ] -->
               <PlaneSensor DEF='BluePawn4PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-1 1 2'/>
637                 <Group>
638                      < ROUTE  fromNode='BluePawn4TouchSensor' fromField='isOver' toNode='BLUEPAWN4CLOCK' toField='set_enabled'/>
639                      < ROUTE  fromNode='BLUEPAWN4CLOCK' fromField='fraction_changed' toNode='BluePawn4PathInterpolator' toField='set_fraction'/>
640                      < ROUTE  fromNode='BluePawn4PathInterpolator' fromField='value_changed' toNode='BluePawn4' toField='set_rotation'/>
641                 </Group>
642                 <Group>
643                      < ROUTE  fromNode='BluePawn4PlaneSensor' fromField='translation_changed' toNode='BluePawn4' toField='set_translation'/>
644                 </Group>
645            </Transform>
646 
          <!-- ROUTE information for BluePawn5 node:  [from BluePawn5PathInterpolator.value_changed to set_rotation ] [from BluePawn5PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn5translation='0 0 2'>
647                 <Group USE='aquapawn'/>
648 
               <!-- ROUTE information for BluePawn5TouchSensor node:  [from isOver to BLUEPAWN5CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn5TouchSensor'/>
649 
               <!-- ROUTE information for BLUEPAWN5CLOCK node:  [from BluePawn5TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn5PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN5CLOCKcycleInterval='4enabled='falseloop='true'/>
650 
               <!-- ROUTE information for BluePawn5PathInterpolator node:  [from BLUEPAWN5CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn5.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn5PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
651 
               <!-- ROUTE information for BluePawn5PlaneSensor node:  [from translation_changed to BluePawn5.set_translation ] -->
               <PlaneSensor DEF='BluePawn5PlaneSensormaxPosition='3 4minPosition='-4 -4offset='0 -1 1'/>
652                 <Group>
653                      < ROUTE  fromNode='BluePawn5TouchSensor' fromField='isOver' toNode='BLUEPAWN5CLOCK' toField='set_enabled'/>
654                      < ROUTE  fromNode='BLUEPAWN5CLOCK' fromField='fraction_changed' toNode='BluePawn5PathInterpolator' toField='set_fraction'/>
655                      < ROUTE  fromNode='BluePawn5PathInterpolator' fromField='value_changed' toNode='BluePawn5' toField='set_rotation'/>
656                 </Group>
657                 <Group>
658                      < ROUTE  fromNode='BluePawn5PlaneSensor' fromField='translation_changed' toNode='BluePawn5' toField='set_translation'/>
659                 </Group>
660            </Transform>
661 
          <!-- ROUTE information for BluePawn6 node:  [from BluePawn6PathInterpolator.value_changed to set_rotation ] [from BluePawn6PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn6translation='1 0 2'>
662                 <Group USE='aquapawn'/>
663 
               <!-- ROUTE information for BluePawn6TouchSensor node:  [from isOver to BLUEPAWN6CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn6TouchSensor'/>
664 
               <!-- ROUTE information for BLUEPAWN6CLOCK node:  [from BluePawn6TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn6PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN6CLOCKcycleInterval='4enabled='falseloop='true'/>
665 
               <!-- ROUTE information for BluePawn6PathInterpolator node:  [from BLUEPAWN6CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn6.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn6PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
666 
               <!-- ROUTE information for BluePawn6PlaneSensor node:  [from translation_changed to BluePawn6.set_translation ] -->
               <PlaneSensor DEF='BluePawn6PlaneSensormaxPosition='3 4minPosition='-4 -4offset='1 1 1'/>
667                 <Group>
668                      < ROUTE  fromNode='BluePawn6TouchSensor' fromField='isOver' toNode='BLUEPAWN6CLOCK' toField='set_enabled'/>
669                      < ROUTE  fromNode='BLUEPAWN6CLOCK' fromField='fraction_changed' toNode='BluePawn6PathInterpolator' toField='set_fraction'/>
670                      < ROUTE  fromNode='BluePawn6PathInterpolator' fromField='value_changed' toNode='BluePawn6' toField='set_rotation'/>
671                 </Group>
672                 <Group>
673                      < ROUTE  fromNode='BluePawn6PlaneSensor' fromField='translation_changed' toNode='BluePawn6' toField='set_translation'/>
674                 </Group>
675            </Transform>
676 
          <!-- ROUTE information for BluePawn7 node:  [from BluePawn7PathInterpolator.value_changed to set_rotation ] [from BluePawn7PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn7translation='2 0 2'>
677                 <Group USE='aquapawn'/>
678 
               <!-- ROUTE information for BluePawn7TouchSensor node:  [from isOver to BLUEPAWN7CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn7TouchSensor'/>
679 
               <!-- ROUTE information for BLUEPAWN7CLOCK node:  [from BluePawn7TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn7PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN7CLOCKcycleInterval='4enabled='falseloop='true'/>
680 
               <!-- ROUTE information for BluePawn7PathInterpolator node:  [from BLUEPAWN7CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn7.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn7PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
681 
               <!-- ROUTE information for BluePawn7PlaneSensor node:  [from translation_changed to BluePawn7.set_translation ] -->
               <PlaneSensor DEF='BluePawn7PlaneSensormaxPosition='3 4minPosition='-4 -4offset='2 1 2'/>
682                 <Group>
683                      < ROUTE  fromNode='BluePawn7TouchSensor' fromField='isOver' toNode='BLUEPAWN7CLOCK' toField='set_enabled'/>
684                      < ROUTE  fromNode='BLUEPAWN7CLOCK' fromField='fraction_changed' toNode='BluePawn7PathInterpolator' toField='set_fraction'/>
685                      < ROUTE  fromNode='BluePawn7PathInterpolator' fromField='value_changed' toNode='BluePawn7' toField='set_rotation'/>
686                 </Group>
687                 <Group>
688                      < ROUTE  fromNode='BluePawn7PlaneSensor' fromField='translation_changed' toNode='BluePawn7' toField='set_translation'/>
689                 </Group>
690            </Transform>
691 
          <!-- ROUTE information for BluePawn8 node:  [from BluePawn8PathInterpolator.value_changed to set_rotation ] [from BluePawn8PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BluePawn8translation='3 0 2'>
692                 <Group USE='aquapawn'/>
693 
               <!-- ROUTE information for BluePawn8TouchSensor node:  [from isOver to BLUEPAWN8CLOCK.set_enabled ] -->
               <TouchSensor DEF='BluePawn8TouchSensor'/>
694 
               <!-- ROUTE information for BLUEPAWN8CLOCK node:  [from BluePawn8TouchSensor.isOver to set_enabled ] [from fraction_changed to BluePawn8PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEPAWN8CLOCKcycleInterval='4enabled='falseloop='true'/>
695 
               <!-- ROUTE information for BluePawn8PathInterpolator node:  [from BLUEPAWN8CLOCK.fraction_changed to set_fraction ] [from value_changed to BluePawn8.set_rotation ] -->
               <OrientationInterpolator DEF='BluePawn8PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
696 
               <!-- ROUTE information for BluePawn8PlaneSensor node:  [from translation_changed to BluePawn8.set_translation ] -->
               <PlaneSensor DEF='BluePawn8PlaneSensormaxPosition='3 4minPosition='-4 -4offset='3 1 2'/>
697                 <Group>
698                      < ROUTE  fromNode='BluePawn8TouchSensor' fromField='isOver' toNode='BLUEPAWN8CLOCK' toField='set_enabled'/>
699                      < ROUTE  fromNode='BLUEPAWN8CLOCK' fromField='fraction_changed' toNode='BluePawn8PathInterpolator' toField='set_fraction'/>
700                      < ROUTE  fromNode='BluePawn8PathInterpolator' fromField='value_changed' toNode='BluePawn8' toField='set_rotation'/>
701                 </Group>
702                 <Group>
703                      < ROUTE  fromNode='BluePawn8PlaneSensor' fromField='translation_changed' toNode='BluePawn8' toField='set_translation'/>
704                 </Group>
705            </Transform>
706 
          <!-- ROUTE information for BlueCastle1 node:  [from BlueCastle1PathInterpolator.value_changed to set_rotation ] [from BlueCastle1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueCastle1translation='-4 0 3'>
707                 <Group>
708                      <Group USE='bluepiecebase'/>
709                      <Group>
710                           <Transform translation='0 0.45 0'>
711                                <Shape>
712                                     <Box size='.3 .45 .3'/>
713                                     <Appearance USE='Aqua'/>
714                                </Shape>
715                           </Transform>
716                           <Transform rotation='0 1 0 0.52translation='0 0.45 0'>
717                                <Shape>
718                                     <Box size='.3 .45 .3'/>
719                                     <Appearance USE='Aqua'/>
720                                </Shape>
721                           </Transform>
722                           <Transform rotation='0 1 0 1.04translation='0 0.45 0'>
723                                <Shape>
724                                     <Box size='.3 .45 .3'/>
725                                     <Appearance USE='Aqua'/>
726                                </Shape>
727                           </Transform>
728                      </Group>
729                 </Group>
730 
               <!-- ROUTE information for BlueCastle1TouchSensor node:  [from isOver to BLUECASTLE1CLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueCastle1TouchSensor'/>
731 
               <!-- ROUTE information for BLUECASTLE1CLOCK node:  [from BlueCastle1TouchSensor.isOver to set_enabled ] [from fraction_changed to BlueCastle1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUECASTLE1CLOCKcycleInterval='4enabled='falseloop='true'/>
732 
               <!-- ROUTE information for BlueCastle1PathInterpolator node:  [from BLUECASTLE1CLOCK.fraction_changed to set_fraction ] [from value_changed to BlueCastle1.set_rotation ] -->
               <OrientationInterpolator DEF='BlueCastle1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
733 
               <!-- ROUTE information for BlueCastle1PlaneSensor node:  [from translation_changed to BlueCastle1.set_translation ] -->
               <PlaneSensor DEF='BlueCastle1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-4 4 3'/>
734                 <Group>
735                      < ROUTE  fromNode='BlueCastle1TouchSensor' fromField='isOver' toNode='BLUECASTLE1CLOCK' toField='set_enabled'/>
736                      < ROUTE  fromNode='BLUECASTLE1CLOCK' fromField='fraction_changed' toNode='BlueCastle1PathInterpolator' toField='set_fraction'/>
737                      < ROUTE  fromNode='BlueCastle1PathInterpolator' fromField='value_changed' toNode='BlueCastle1' toField='set_rotation'/>
738                 </Group>
739                 <Group>
740                      < ROUTE  fromNode='BlueCastle1PlaneSensor' fromField='translation_changed' toNode='BlueCastle1' toField='set_translation'/>
741                 </Group>
742            </Transform>
743 
          <!-- ROUTE information for BlueKnight1 node:  [from BlueKnight1PathInterpolator.value_changed to set_rotation ] [from BlueKnight1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueKnight1translation='-3 0 3'>
744                 <Group>
745                      <Group USE='bluepiecebase'/>
746                      <Transform translation='0 0.45 0'>
747                           <Shape>
748                                <Cylinder height='0.45radius='0.125'/>
749                                <Appearance USE='Aqua'/>
750                           </Shape>
751                      </Transform>
752                      <Transform rotation='-1 0 0 5.27translation='0 0.55 -0.075'>
753                           <Shape>
754                                <Cone bottomRadius='0.1height='0.4'/>
755                                <Appearance USE='Aqua'/>
756                           </Shape>
757                      </Transform>
758                 </Group>
759 
               <!-- ROUTE information for BlueKnight1TouchSensor node:  [from isOver to BLUEKNIGHT1CLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueKnight1TouchSensor'/>
760 
               <!-- ROUTE information for BLUEKNIGHT1CLOCK node:  [from BlueKnight1TouchSensor.isOver to set_enabled ] [from fraction_changed to BlueKnight1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEKNIGHT1CLOCKcycleInterval='4enabled='falseloop='true'/>
761 
               <!-- ROUTE information for BlueKnight1PathInterpolator node:  [from BLUEKNIGHT1CLOCK.fraction_changed to set_fraction ] [from value_changed to BlueKnight1.set_rotation ] -->
               <OrientationInterpolator DEF='BlueKnight1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
762 
               <!-- ROUTE information for BlueKnight1PlaneSensor node:  [from translation_changed to BlueKnight1.set_translation ] -->
               <PlaneSensor DEF='BlueKnight1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-4 0 1'/>
763                 <Group>
764                      < ROUTE  fromNode='BlueKnight1TouchSensor' fromField='isOver' toNode='BLUEKNIGHT1CLOCK' toField='set_enabled'/>
765                      < ROUTE  fromNode='BLUEKNIGHT1CLOCK' fromField='fraction_changed' toNode='BlueKnight1PathInterpolator' toField='set_fraction'/>
766                      < ROUTE  fromNode='BlueKnight1PathInterpolator' fromField='value_changed' toNode='BlueKnight1' toField='set_rotation'/>
767                 </Group>
768                 <Group>
769                      < ROUTE  fromNode='BlueKnight1PlaneSensor' fromField='translation_changed' toNode='BlueKnight1' toField='set_translation'/>
770                 </Group>
771            </Transform>
772 
          <!-- ROUTE information for BlueBishop1 node:  [from BlueBishop1PathInterpolator.value_changed to set_rotation ] [from BlueBishop1PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueBishop1translation='-2 0 3'>
773                 <Group>
774                      <Group USE='bluepiecebase'/>
775                      <Group>
776                           <Transform translation='0 0.45 0'>
777                                <Shape>
778                                     <Cone bottomRadius='.15height='.5'/>
779                                     <Appearance USE='Aqua'/>
780                                </Shape>
781                           </Transform>
782                      </Group>
783                 </Group>
784 
               <!-- ROUTE information for BlueBishop1TouchSensor node:  [from isOver to BLUEBISHOP1CLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueBishop1TouchSensor'/>
785 
               <!-- ROUTE information for BLUEBISHOP1CLOCK node:  [from BlueBishop1TouchSensor.isOver to set_enabled ] [from fraction_changed to BlueBishop1PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEBISHOP1CLOCKcycleInterval='4enabled='falseloop='true'/>
786 
               <!-- ROUTE information for BlueBishop1PathInterpolator node:  [from BLUEBISHOP1CLOCK.fraction_changed to set_fraction ] [from value_changed to BlueBishop1.set_rotation ] -->
               <OrientationInterpolator DEF='BlueBishop1PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
787 
               <!-- ROUTE information for BlueBishop1PlaneSensor node:  [from translation_changed to BlueBishop1.set_translation ] -->
               <PlaneSensor DEF='BlueBishop1PlaneSensormaxPosition='3 4minPosition='-4 -4offset='-2 3 0'/>
788                 <Group>
789                      < ROUTE  fromNode='BlueBishop1TouchSensor' fromField='isOver' toNode='BLUEBISHOP1CLOCK' toField='set_enabled'/>
790                      < ROUTE  fromNode='BLUEBISHOP1CLOCK' fromField='fraction_changed' toNode='BlueBishop1PathInterpolator' toField='set_fraction'/>
791                      < ROUTE  fromNode='BlueBishop1PathInterpolator' fromField='value_changed' toNode='BlueBishop1' toField='set_rotation'/>
792                 </Group>
793                 <Group>
794                      < ROUTE  fromNode='BlueBishop1PlaneSensor' fromField='translation_changed' toNode='BlueBishop1' toField='set_translation'/>
795                 </Group>
796            </Transform>
797 
          <!-- ROUTE information for BlueKing node:  [from BlueKingPathInterpolator.value_changed to set_rotation ] [from BlueKingPlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueKingtranslation='-1 0 3'>
798                 <Group>
799                      <Group USE='bluepiecebase'/>
800                      <Transform translation='0 0.4 0'>
801                           <Shape>
802                                <Cone bottomRadius='.10height='.25'/>
803                                <Appearance USE='Aqua'/>
804                           </Shape>
805                      </Transform>
806                      <Transform scale='.035 .035 .035translation='0 0.4 0'>
807 
                         <!-- Shape BlueBolt is a DEF node that has 11 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11 -->
                         <Shape DEF='BlueBolt'>
808                                <IndexedFaceSet convex='falsecoordIndex='0 1 2 3 4 5 6 -1 0 12 11 10 9 8 7 -1 0 7 1 -1 1 7 8 2 -1 2 8 9 3 -1 3 9 10 4 -1 4 10 11 5 -1 5 11 12 6 -1 6 12 0'>
809                                     <Coordinate point='0.0 0.0 0.0 5.5 5.0 0.88 4.0 5.5 0.968 7.0 8.0 1.408 4.0 9.0 1.584 1.0 5.0 0.88 2.5 4.5 0.792 5.5 5.0 -0.88 4.0 5.5 -0.968 7.0 8.0 -1.408 4.0 9.0 -1.584 1.0 5.0 -0.88 2.5 4.5 -0.792'/>
810                                </IndexedFaceSet>
811                                <Appearance USE='Aqua'/>
812                           </Shape>
813                           <Transform rotation='0 1 0 45'>
814                                <Shape USE='BlueBolt'/>
815                           </Transform>
816                           <Transform rotation='0 1 0 90'>
817                                <Shape USE='BlueBolt'/>
818                           </Transform>
819                           <Transform rotation='0 1 0 135'>
820                                <Shape USE='BlueBolt'/>
821                           </Transform>
822                           <Transform rotation='0 1 0 180'>
823                                <Shape USE='BlueBolt'/>
824                           </Transform>
825                           <Transform rotation='0 1 0 225'>
826                                <Shape USE='BlueBolt'/>
827                           </Transform>
828                      </Transform>
829                      <Transform translation='0 .8 0'>
830                           <Group>
831                                <Shape>
832                                     <Appearance USE='Aqua'/>
833                                     <Box size='.25 .02 .02'/>
834                                </Shape>
835                                <Shape>
836                                     <Appearance USE='Aqua'/>
837                                     <Box size='.02 .25 .02'/>
838                                </Shape>
839                                <Shape>
840                                     <Appearance USE='Aqua'/>
841                                     <Box size='.02 .02 .25'/>
842                                </Shape>
843                           </Group>
844                      </Transform>
845                 </Group>
846 
               <!-- ROUTE information for BlueKingTouchSensor node:  [from isOver to BLUEKINGCLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueKingTouchSensor'/>
847 
               <!-- ROUTE information for BLUEKINGCLOCK node:  [from BlueKingTouchSensor.isOver to set_enabled ] [from fraction_changed to BlueKingPathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEKINGCLOCKcycleInterval='4enabled='falseloop='true'/>
848 
               <!-- ROUTE information for BlueKingPathInterpolator node:  [from BLUEKINGCLOCK.fraction_changed to set_fraction ] [from value_changed to BlueKing.set_rotation ] -->
               <OrientationInterpolator DEF='BlueKingPathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
849 
               <!-- ROUTE information for BlueKingPlaneSensor node:  [from translation_changed to BlueKing.set_translation ] -->
               <PlaneSensor DEF='BlueKingPlaneSensormaxPosition='3 4minPosition='-4 -4offset='-1 -1 3'/>
850                 <Group>
851                      < ROUTE  fromNode='BlueKingTouchSensor' fromField='isOver' toNode='BLUEKINGCLOCK' toField='set_enabled'/>
852                      < ROUTE  fromNode='BLUEKINGCLOCK' fromField='fraction_changed' toNode='BlueKingPathInterpolator' toField='set_fraction'/>
853                      < ROUTE  fromNode='BlueKingPathInterpolator' fromField='value_changed' toNode='BlueKing' toField='set_rotation'/>
854                 </Group>
855                 <Group>
856                      < ROUTE  fromNode='BlueKingPlaneSensor' fromField='translation_changed' toNode='BlueKing' toField='set_translation'/>
857                 </Group>
858            </Transform>
859 
          <!-- ROUTE information for BlueQueen node:  [from BlueQueenPathInterpolator.value_changed to set_rotation ] [from BlueQueenPlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueQueentranslation='0 0 3'>
860                 <Group>
861                      <Group USE='bluepiecebase'/>
862                      <Transform translation='0 0.4 0'>
863                           <Shape>
864                                <Cone bottomRadius='.10height='.25'/>
865                                <Appearance USE='Aqua'/>
866                           </Shape>
867                      </Transform>
868                      <Transform scale='.035 .035 .035translation='0 0.4 0'>
869                           <Shape USE='BlueBolt'/>
870                           <Transform rotation='0 1 0 45'>
871                                <Shape USE='BlueBolt'/>
872                           </Transform>
873                           <Transform rotation='0 1 0 90'>
874                                <Shape USE='BlueBolt'/>
875                           </Transform>
876                           <Transform rotation='0 1 0 135'>
877                                <Shape USE='BlueBolt'/>
878                           </Transform>
879                           <Transform rotation='0 1 0 180'>
880                                <Shape USE='BlueBolt'/>
881                           </Transform>
882                           <Transform rotation='0 1 0 225'>
883                                <Shape USE='BlueBolt'/>
884                           </Transform>
885                      </Transform>
886                 </Group>
887 
               <!-- ROUTE information for BlueQueenTouchSensor node:  [from isOver to BLUEQUEENCLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueQueenTouchSensor'/>
888 
               <!-- ROUTE information for BLUEQUEENCLOCK node:  [from BlueQueenTouchSensor.isOver to set_enabled ] [from fraction_changed to BlueQueenPathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEQUEENCLOCKcycleInterval='4enabled='falseloop='true'/>
889 
               <!-- ROUTE information for BlueQueenPathInterpolator node:  [from BLUEQUEENCLOCK.fraction_changed to set_fraction ] [from value_changed to BlueQueen.set_rotation ] -->
               <OrientationInterpolator DEF='BlueQueenPathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
890 
               <!-- ROUTE information for BlueQueenPlaneSensor node:  [from translation_changed to BlueQueen.set_translation ] -->
               <PlaneSensor DEF='BlueQueenPlaneSensormaxPosition='3 4minPosition='-4 -4offset='0 -4 -4'/>
891                 <Group>
892                      < ROUTE  fromNode='BlueQueenTouchSensor' fromField='isOver' toNode='BLUEQUEENCLOCK' toField='set_enabled'/>
893                      < ROUTE  fromNode='BLUEQUEENCLOCK' fromField='fraction_changed' toNode='BlueQueenPathInterpolator' toField='set_fraction'/>
894                      < ROUTE  fromNode='BlueQueenPathInterpolator' fromField='value_changed' toNode='BlueQueen' toField='set_rotation'/>
895                 </Group>
896                 <Group>
897                      < ROUTE  fromNode='BlueQueenPlaneSensor' fromField='translation_changed' toNode='BlueQueen' toField='set_translation'/>
898                 </Group>
899            </Transform>
900 
          <!-- ROUTE information for BlueBishop2 node:  [from BlueBishop2PathInterpolator.value_changed to set_rotation ] [from BlueBishop2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueBishop2translation='1 0 3'>
901                 <Group>
902                      <Group USE='bluepiecebase'/>
903                      <Transform translation='0 0.45 0'>
904                           <Shape>
905                                <Cone bottomRadius='.15height='.5'/>
906                                <Appearance USE='Aqua'/>
907                           </Shape>
908                      </Transform>
909                 </Group>
910 
               <!-- ROUTE information for BlueBishop2TouchSensor node:  [from isOver to BLUEBISHOP2CLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueBishop2TouchSensor'/>
911 
               <!-- ROUTE information for BLUEBISHOP2CLOCK node:  [from BlueBishop2TouchSensor.isOver to set_enabled ] [from fraction_changed to BlueBishop2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEBISHOP2CLOCKcycleInterval='4enabled='falseloop='true'/>
912 
               <!-- ROUTE information for BlueBishop2PathInterpolator node:  [from BLUEBISHOP2CLOCK.fraction_changed to set_fraction ] [from value_changed to BlueBishop2.set_rotation ] -->
               <OrientationInterpolator DEF='BlueBishop2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
913 
               <!-- ROUTE information for BlueBishop2PlaneSensor node:  [from translation_changed to BlueBishop2.set_translation ] -->
               <PlaneSensor DEF='BlueBishop2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='1 2 3'/>
914                 <Group>
915                      < ROUTE  fromNode='BlueBishop2TouchSensor' fromField='isOver' toNode='BLUEBISHOP2CLOCK' toField='set_enabled'/>
916                      < ROUTE  fromNode='BLUEBISHOP2CLOCK' fromField='fraction_changed' toNode='BlueBishop2PathInterpolator' toField='set_fraction'/>
917                      < ROUTE  fromNode='BlueBishop2PathInterpolator' fromField='value_changed' toNode='BlueBishop2' toField='set_rotation'/>
918                 </Group>
919                 <Group>
920                      < ROUTE  fromNode='BlueBishop2PlaneSensor' fromField='translation_changed' toNode='BlueBishop2' toField='set_translation'/>
921                 </Group>
922            </Transform>
923 
          <!-- ROUTE information for BlueKnight2 node:  [from BlueKnight2PathInterpolator.value_changed to set_rotation ] [from BlueKnight2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueKnight2translation='2 0 3'>
924                 <Group>
925                      <Group USE='bluepiecebase'/>
926                      <Transform translation='0 0.45 0'>
927                           <Shape>
928                                <Cylinder height='0.45radius='0.125'/>
929                                <Appearance USE='Aqua'/>
930                           </Shape>
931                      </Transform>
932                      <Transform rotation='-1 0 0 5.27translation='0 0.55 -0.075'>
933                           <Shape>
934                                <Cone bottomRadius='0.1height='0.4'/>
935                                <Appearance USE='Aqua'/>
936                           </Shape>
937                      </Transform>
938                 </Group>
939 
               <!-- ROUTE information for BlueKnight2TouchSensor node:  [from isOver to BLUEKNIGHT2CLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueKnight2TouchSensor'/>
940 
               <!-- ROUTE information for BLUEKNIGHT2CLOCK node:  [from BlueKnight2TouchSensor.isOver to set_enabled ] [from fraction_changed to BlueKnight2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEKNIGHT2CLOCKcycleInterval='4enabled='falseloop='true'/>
941 
               <!-- ROUTE information for BlueKnight2PathInterpolator node:  [from BLUEKNIGHT2CLOCK.fraction_changed to set_fraction ] [from value_changed to BlueKnight2.set_rotation ] -->
               <OrientationInterpolator DEF='BlueKnight2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
942 
               <!-- ROUTE information for BlueKnight2PlaneSensor node:  [from translation_changed to BlueKnight2.set_translation ] -->
               <PlaneSensor DEF='BlueKnight2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='1 0 1'/>
943                 <Group>
944                      < ROUTE  fromNode='BlueKnight2TouchSensor' fromField='isOver' toNode='BLUEKNIGHT2CLOCK' toField='set_enabled'/>
945                      < ROUTE  fromNode='BLUEKNIGHT2CLOCK' fromField='fraction_changed' toNode='BlueKnight2PathInterpolator' toField='set_fraction'/>
946                      < ROUTE  fromNode='BlueKnight2PathInterpolator' fromField='value_changed' toNode='BlueKnight2' toField='set_rotation'/>
947                 </Group>
948                 <Group>
949                      < ROUTE  fromNode='BlueKnight2PlaneSensor' fromField='translation_changed' toNode='BlueKnight2' toField='set_translation'/>
950                 </Group>
951            </Transform>
952 
          <!-- ROUTE information for BlueCastle2 node:  [from BlueCastle2PathInterpolator.value_changed to set_rotation ] [from BlueCastle2PlaneSensor.translation_changed to set_translation ] -->
          <Transform DEF='BlueCastle2translation='3 0 3'>
953                 <Group>
954                      <Group USE='bluepiecebase'/>
955                      <Group>
956                           <Transform translation='0 0.45 0'>
957                                <Shape>
958                                     <Box size='.3 .45 .3'/>
959                                     <Appearance USE='Aqua'/>
960                                </Shape>
961                           </Transform>
962                           <Transform rotation='0 1 0 0.52translation='0 0.45 0'>
963                                <Shape>
964                                     <Box size='.3 .45 .3'/>
965                                     <Appearance USE='Aqua'/>
966                                </Shape>
967                           </Transform>
968                           <Transform rotation='0 1 0 1.04translation='0 0.45 0'>
969                                <Shape>
970                                     <Box size='.3 .45 .3'/>
971                                     <Appearance USE='Aqua'/>
972                                </Shape>
973                           </Transform>
974                      </Group>
975                 </Group>
976 
               <!-- ROUTE information for BlueCastle2TouchSensor node:  [from isOver to BLUECASTLE2CLOCK.set_enabled ] -->
               <TouchSensor DEF='BlueCastle2TouchSensor'/>
977 
               <!-- ROUTE information for BLUECASTLE2CLOCK node:  [from BlueCastle2TouchSensor.isOver to set_enabled ] [from fraction_changed to BlueCastle2PathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUECASTLE2CLOCKcycleInterval='4enabled='falseloop='true'/>
978 
               <!-- ROUTE information for BlueCastle2PathInterpolator node:  [from BLUECASTLE2CLOCK.fraction_changed to set_fraction ] [from value_changed to BlueCastle2.set_rotation ] -->
               <OrientationInterpolator DEF='BlueCastle2PathInterpolatorkey='0.0 0.50 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
979 
               <!-- ROUTE information for BlueCastle2PlaneSensor node:  [from translation_changed to BlueCastle2.set_translation ] -->
               <PlaneSensor DEF='BlueCastle2PlaneSensormaxPosition='3 4minPosition='-4 -4offset='3 -4 3'/>
980                 <Group>
981                      < ROUTE  fromNode='BlueCastle2TouchSensor' fromField='isOver' toNode='BLUECASTLE2CLOCK' toField='set_enabled'/>
982                      < ROUTE  fromNode='BLUECASTLE2CLOCK' fromField='fraction_changed' toNode='BlueCastle2PathInterpolator' toField='set_fraction'/>
983                      < ROUTE  fromNode='BlueCastle2PathInterpolator' fromField='value_changed' toNode='BlueCastle2' toField='set_rotation'/>
984                 </Group>
985                 <Group>
986                      < ROUTE  fromNode='BlueCastle2PlaneSensor' fromField='translation_changed' toNode='BlueCastle2' toField='set_translation'/>
987                 </Group>
988            </Transform>
989            <Viewpoint DEF='RedSidedescription='Red Sideorientation='-0 -1 -0.05 3.14position='0 2.5 -20'/>
990            <Viewpoint DEF='BlueSidedescription='Blue Sideposition='0 2.5 20'/>
991            <Viewpoint DEF='BlueLeftdescription='Blue on Left Sideorientation='-0.08 0.99 0.08 1.58position='15 1 0'/>
992            <Viewpoint DEF='RedLeftdescription='Red on Left Sideorientation='-0.08 -0.99 -0.08 1.58position='-15 1 0'/>
993            <Viewpoint DEF='Corner1description='Corner Blue Left Sideorientation='-0.08 -1 -0.04 0.79position='-15 2 15'/>
994            <Viewpoint DEF='Corner2description='Corner Blue Right Sideorientation='-0.08 1 0.04 0.79position='15 2 15'/>
995            <Viewpoint DEF='Corner3description='Corner Red Left Sideorientation='-0.01 1 0.04 2.36position='15 2 -15'/>
996            <Viewpoint DEF='Corner4description='Corner Red Right Sideorientation='-0.02 -1 -0.05 2.36position='-15 2 -15'/>
997            <Viewpoint DEF='TopAngle1description='Top Angle Blue Sideorientation='-1 -0 -0 0.46position='0 10 20'/>
998            <Viewpoint DEF='TopAngle2description='Top Angle Red Sideorientation='0 -0.97 -0.23 3.14position='0 10 -20'/>
999            <Viewpoint DEF='TopAngle3description='Top Angle Blue on Leftorientation='-0.22 0.95 0.22 1.62position='20 10 0'/>
1000            <Viewpoint DEF='TopAngle4description='Top Angle Red on Leftorientation='-0.22 -0.95 -0.22 1.62position='-20 10 0'/>
1001            <Viewpoint DEF='TopCorner1description='Top Corner Blue Left Sideorientation='-0.59 -0.77 -0.24 0.99position='-20 20 20'/>
1002            <Viewpoint DEF='TopCorner2description='Top Corner Blue Right Sideorientation='-0.59 0.77 0.24 0.99position='20 20 20'/>
1003            <Viewpoint DEF='TopCorner3description='Top Corner Red Left Sideorientation='-0.12 0.95 0.30 2.40position='20 20 -20'/>
1004            <Viewpoint DEF='TopCorner4description='Top Corner Red Right Sideorientation='-0.12 -0.95 -0.30 2.39position='-20 20 -20'/>
1005            <Viewpoint DEF='BottomAngle1description='Bottom Angle Blue Sideorientation='1 -0 0 0.79position='0 -20 20'/>
1006            <Viewpoint DEF='BottomAngle2description='Bottom Angle Red Sideorientation='0 -0.92 0.38 3.14position='0 -20 -20'/>
1007            <Viewpoint DEF='BottomAngle3description='Bottom Angle Blue on Leftorientation='0.36 0.86 -0.36 1.72position='20 -20 0'/>
1008            <Viewpoint DEF='BottomAngle4description='Bottom Angle Red on Leftorientation='0.36 -0.86 0.36 1.72position='-20 -20 0'/>
1009            <Viewpoint DEF='BottomCorner1description='Bottom Corner Blue Left Sideorientation='0.59 -0.77 0.24 0.99position='-20 -20 20'/>
1010            <Viewpoint DEF='BottomCorner2description='Bottom Corner Blue Right Sideorientation='0.59 0.77 -0.24 0.99position='20 -20 20'/>
1011            <Viewpoint DEF='BottomCorner3description='Bottom Corner Red Left Sideorientation='0.12 0.95 -0.3 2.4position='20 -20 -20'/>
1012            <Viewpoint DEF='BottomCorner4description='Bottom Corner Red Right Sideorientation='0.12 -0.95 0.3 2.39position='-20 -20 -20'/>
1013            <Background groundAngle='1.309 1.570796groundColor='0 0 0.1 0 0.1 0.3 0.3 0.3 0.6skyAngle='1.309 1.571skyColor='1 0 0.8 0.5 0 0.8 0 0 0.8'/>
1014            <Background DEF='BackgroundCyan-ishgroundAngle='1.309 1.570796groundColor='0.1 0.1 0 0.4 0.25 0.2 0.6 0.6 0.6skyAngle='1.309 1.571skyColor='0 0.2 0.7 0.0 0.5 1 1 1 1'/>
1015       </Scene>
1016  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: Aqua, aquapawn, BackgroundCyan-ish, BlueBishop1, BLUEBISHOP1CLOCK, BlueBishop1PathInterpolator, BlueBishop1PlaneSensor, BlueBishop1TouchSensor, BlueBishop2, BLUEBISHOP2CLOCK, BlueBishop2PathInterpolator, BlueBishop2PlaneSensor, BlueBishop2TouchSensor, BlueBolt, BlueCastle1, BLUECASTLE1CLOCK, BlueCastle1PathInterpolator, BlueCastle1PlaneSensor, BlueCastle1TouchSensor, BlueCastle2, BLUECASTLE2CLOCK, BlueCastle2PathInterpolator, BlueCastle2PlaneSensor, BlueCastle2TouchSensor, BlueKing, BLUEKINGCLOCK, BlueKingPathInterpolator, BlueKingPlaneSensor, BlueKingTouchSensor, BlueKnight1, BLUEKNIGHT1CLOCK, BlueKnight1PathInterpolator, BlueKnight1PlaneSensor, BlueKnight1TouchSensor, BlueKnight2, BLUEKNIGHT2CLOCK, BlueKnight2PathInterpolator, BlueKnight2PlaneSensor, BlueKnight2TouchSensor, BlueLeft, BluePawn1, BLUEPAWN1CLOCK, BluePawn1PathInterpolator, BluePawn1PlaneSensor, BluePawn1TouchSensor, BluePawn2, BLUEPAWN2CLOCK, BluePawn2PathInterpolator, BluePawn2PlaneSensor, BluePawn2TouchSensor, BluePawn3, BLUEPAWN3CLOCK, BluePawn3PathInterpolator, BluePawn3PlaneSensor, BluePawn3TouchSensor, BluePawn4, BLUEPAWN4CLOCK, BluePawn4PathInterpolator, BluePawn4PlaneSensor, BluePawn4TouchSensor, BluePawn5, BLUEPAWN5CLOCK, BluePawn5PathInterpolator, BluePawn5PlaneSensor, BluePawn5TouchSensor, BluePawn6, BLUEPAWN6CLOCK, BluePawn6PathInterpolator, BluePawn6PlaneSensor, BluePawn6TouchSensor, BluePawn7, BLUEPAWN7CLOCK, BluePawn7PathInterpolator, BluePawn7PlaneSensor, BluePawn7TouchSensor, BluePawn8, BLUEPAWN8CLOCK, BluePawn8PathInterpolator, BluePawn8PlaneSensor, BluePawn8TouchSensor, bluepiecebase, bluepiecepost, BlueQueen, BLUEQUEENCLOCK, BlueQueenPathInterpolator, BlueQueenPlaneSensor, BlueQueenTouchSensor, BlueSide, BlueSquare, board, BottomAngle1, BottomAngle2, BottomAngle3, BottomAngle4, BottomCorner1, BottomCorner2, BottomCorner3, BottomCorner4, chesspiecebase, Corner1, Corner2, Corner3, Corner4, GreenSquare, Red, RedBishop1, REDBISHOP1CLOCK, RedBishop1PathInterpolator, RedBishop1PlaneSensor, RedBishop1TouchSensor, RedBishop2, REDBISHOP2CLOCK, RedBishop2PathInterpolator, RedBishop2PlaneSensor, RedBishop2TouchSensor, RedBolt, RedCastle1, REDCASTLE1CLOCK, RedCastle1PathInterpolator, RedCastle1PlaneSensor, RedCastle1TouchSensor, RedCastle2, REDCASTLE2CLOCK, RedCastle2PathInterpolator, RedCastle2PlaneSensor, RedCastle2TouchSensor, RedKing, REDKINGCLOCK, RedKingPathInterpolator, RedKingPlaneSensor, RedKingTouchSensor, RedKnight1, REDKNIGHT1CLOCK, RedKnight1PathInterpolator, RedKnight1PlaneSensor, RedKnight1TouchSensor, RedKnight2, REDKNIGHT2CLOCK, RedKnight2PathInterpolator, RedKnight2PlaneSensor, RedKnight2TouchSensor, RedLeft, redpawn, RedPawn1, REDPAWN1CLOCK, RedPawn1PathInterpolator, RedPawn1PlaneSensor, RedPawn1TouchSensor, RedPawn2, REDPAWN2CLOCK, RedPawn2PathInterpolator, RedPawn2PlaneSensor, RedPawn2TouchSensor, RedPawn3, REDPAWN3CLOCK, RedPawn3PathInterpolator, RedPawn3PlaneSensor, RedPawn3TouchSensor, RedPawn4, REDPAWN4CLOCK, RedPawn4PathInterpolator, RedPawn4PlaneSensor, RedPawn4TouchSensor, RedPawn5, REDPAWN5CLOCK, RedPawn5PathInterpolator, RedPawn5PlaneSensor, RedPawn5TouchSensor, RedPawn6, REDPAWN6CLOCK, RedPawn6PathInterpolator, RedPawn6PlaneSensor, RedPawn6TouchSensor, RedPawn7, REDPAWN7CLOCK, RedPawn7PathInterpolator, RedPawn7PlaneSensor, RedPawn7TouchSensor, RedPawn8, REDPAWN8CLOCK, RedPawn8PathInterpolator, RedPawn8PlaneSensor, RedPawn8TouchSensor, redpiecebase, redpiecepost, RedQueen, REDQUEENCLOCK, RedQueenPathInterpolator, RedQueenPlaneSensor, RedQueenTouchSensor, RedSide, Row1, Row2, TopAngle1, TopAngle2, TopAngle3, TopAngle4, TopCorner1, TopCorner2, TopCorner3, TopCorner4, X_Plane

Index for Viewpoint nodes: BlueLeft, BlueSide, BottomAngle1, BottomAngle2, BottomAngle3, BottomAngle4, BottomCorner1, BottomCorner2, BottomCorner3, BottomCorner4, Corner1, Corner2, Corner3, Corner4, RedLeft, RedSide, TopAngle1, TopAngle2, TopAngle3, TopAngle4, TopCorner1, TopCorner2, TopCorner3, TopCorner4
-->
X3D Tooltips element index: Appearance, Background, Box, Cone, Coordinate, Cylinder, Group, head, IndexedFaceSet, Material, meta, OrientationInterpolator, PlaneSensor, ROUTE, Scene, Shape, Sphere, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

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

BlueBishop1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEBISHOP1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEBISHOP1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueBishop1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueBishop1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueBishop1
Transform
set_rotation
SFRotation

BlueBishop2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEBISHOP2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEBISHOP2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueBishop2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueBishop2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueBishop2
Transform
set_rotation
SFRotation

BlueCastle1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUECASTLE1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUECASTLE1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueCastle1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueCastle1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueCastle1
Transform
set_rotation
SFRotation

BlueCastle2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUECASTLE2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUECASTLE2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueCastle2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueCastle2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueCastle2
Transform
set_rotation
SFRotation

BlueKingTouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEKINGCLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEKINGCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueKingPathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueKingPathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueKing
Transform
set_rotation
SFRotation

BlueKnight1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEKNIGHT1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEKNIGHT1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueKnight1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueKnight1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueKnight1
Transform
set_rotation
SFRotation

BlueKnight2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEKNIGHT2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEKNIGHT2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueKnight2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueKnight2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueKnight2
Transform
set_rotation
SFRotation

BluePawn1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn1
Transform
set_rotation
SFRotation

BluePawn2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn2
Transform
set_rotation
SFRotation

BluePawn3TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN3CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN3CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn3PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn3PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn3
Transform
set_rotation
SFRotation

BluePawn4TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN4CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN4CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn4PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn4PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn4
Transform
set_rotation
SFRotation

BluePawn5TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN5CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN5CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn5PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn5PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn5
Transform
set_rotation
SFRotation

BluePawn6TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN6CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN6CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn6PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn6PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn6
Transform
set_rotation
SFRotation

BluePawn7TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN7CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN7CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn7PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn7PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn7
Transform
set_rotation
SFRotation

BluePawn8TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEPAWN8CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEPAWN8CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BluePawn8PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BluePawn8PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BluePawn8
Transform
set_rotation
SFRotation

BlueQueenTouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
BLUEQUEENCLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
BLUEQUEENCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueQueenPathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
BlueQueenPathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BlueQueen
Transform
set_rotation
SFRotation

RedBishop1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDBISHOP1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDBISHOP1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedBishop1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedBishop1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedBishop1
Transform
set_rotation
SFRotation

RedBishop2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDBISHOP2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDBISHOP2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedBishop2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedBishop2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedBishop2
Transform
set_rotation
SFRotation

RedCastle1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDCASTLE1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDCASTLE1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedCastle1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedCastle1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedCastle1
Transform
set_rotation
SFRotation

RedCastle2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDCASTLE2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDCASTLE2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedCastle2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedCastle2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedCastle2
Transform
set_rotation
SFRotation

RedKingTouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDKINGCLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDKINGCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedKingPathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedKingPathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedKing
Transform
set_rotation
SFRotation

RedKnight1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDKNIGHT1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDKNIGHT1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedKnight1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedKnight1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedKnight1
Transform
set_rotation
SFRotation

RedKnight2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDKNIGHT2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDKNIGHT2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedKnight2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedKnight2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedKnight2
Transform
set_rotation
SFRotation

RedPawn1TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN1CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN1CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn1PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn1PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn1
Transform
set_rotation
SFRotation

RedPawn2TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN2CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN2CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn2PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn2PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn2
Transform
set_rotation
SFRotation

RedPawn3TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN3CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN3CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn3PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn3PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn3
Transform
set_rotation
SFRotation

RedPawn4TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN4CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN4CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn4PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn4PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn4
Transform
set_rotation
SFRotation

RedPawn5TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN5CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN5CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn5PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn5PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn5
Transform
set_rotation
SFRotation

RedPawn6TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN6CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN6CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn6PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn6PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn6
Transform
set_rotation
SFRotation

RedPawn7TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN7CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN7CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn7PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn7PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn7
Transform
set_rotation
SFRotation

RedPawn8TouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDPAWN8CLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDPAWN8CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedPawn8PathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedPawn8PathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedPawn8
Transform
set_rotation
SFRotation

RedQueenTouchSensor
TouchSensor
isOver
SFBool

ROUTE
event to
(1)
REDQUEENCLOCK
TimeSensor
set_enabled
SFBool
then
 
 
 
REDQUEENCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
RedQueenPathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RedQueenPathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
RedQueen
Transform
set_rotation
SFRotation

BlueBishop1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueBishop1
Transform
set_translation
SFVec3f

BlueBishop2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueBishop2
Transform
set_translation
SFVec3f

BlueCastle1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueCastle1
Transform
set_translation
SFVec3f

BlueCastle2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueCastle2
Transform
set_translation
SFVec3f

BlueKingPlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueKing
Transform
set_translation
SFVec3f

BlueKnight1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueKnight1
Transform
set_translation
SFVec3f

BlueKnight2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueKnight2
Transform
set_translation
SFVec3f

BluePawn1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn1
Transform
set_translation
SFVec3f

BluePawn2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn2
Transform
set_translation
SFVec3f

BluePawn3PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn3
Transform
set_translation
SFVec3f

BluePawn4PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn4
Transform
set_translation
SFVec3f

BluePawn5PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn5
Transform
set_translation
SFVec3f

BluePawn6PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn6
Transform
set_translation
SFVec3f

BluePawn7PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn7
Transform
set_translation
SFVec3f

BluePawn8PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BluePawn8
Transform
set_translation
SFVec3f

BlueQueenPlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
BlueQueen
Transform
set_translation
SFVec3f

RedBishop1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedBishop1
Transform
set_translation
SFVec3f

RedBishop2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedBishop2
Transform
set_translation
SFVec3f

RedCastle1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedCastle1
Transform
set_translation
SFVec3f

RedCastle2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedCastle2
Transform
set_translation
SFVec3f

RedKingPlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedKing
Transform
set_translation
SFVec3f

RedKnight1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedKnight1
Transform
set_translation
SFVec3f

RedKnight2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedKnight2
Transform
set_translation
SFVec3f

RedPawn1PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn1
Transform
set_translation
SFVec3f

RedPawn2PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn2
Transform
set_translation
SFVec3f

RedPawn3PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn3
Transform
set_translation
SFVec3f

RedPawn4PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn4
Transform
set_translation
SFVec3f

RedPawn5PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn5
Transform
set_translation
SFVec3f

RedPawn6PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn6
Transform
set_translation
SFVec3f

RedPawn7PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn7
Transform
set_translation
SFVec3f

RedPawn8PlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedPawn8
Transform
set_translation
SFVec3f

RedQueenPlaneSensor
PlaneSensor
translation_changed
SFVec3f

ROUTE
event to
(1)
RedQueen
Transform
set_translation
SFVec3f
Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chess8LevelsIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chess8Levels.x3d -->

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

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