X3D Model Documentation: Track.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=' Track.x3d '/>
  6            <meta name='descriptioncontent='AAAV Tracks and Road Wheels'/>
  7            <meta name='creatorcontent='William Geissler'/>
  8            <meta name='createdcontent='31 January 2001'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/AmphibiousVehicles/AAAV/Track.x3d '/>
 11            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 12            <meta name='licensecontent='../../license.html'/>
 13       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: CircleTrack, CLOCK, Front, Horizontal, Hub, Pivot1, Pivot1High, Pivot2, Pivot2High, PIVOTPATH1, PIVOTPATH2, Rear, Rim, RoadWheel, RoadWheels, SingleTrack, Track, TRACKPATH, TrackSensor, Wheel, WHEELPATH

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3
-->
 14       <Scene>
 15            <WorldInfo info='"AAAV Track and Road Wheels"title='Track'/>
 16            <Viewpoint description='Front Tracks Vieworientation='0 0 -1 0position='0 1 15'/>
 17            <Viewpoint description='Lower Rear Tracks Vieworientation='0 1 0 3.14position='0 0 -15'/>
 18            <Viewpoint description='Port Side Vieworientation='0 1 0 1.57position='15 4 0'/>
 19            <Transform translation='3.5 0 4.8'>
 20 
               <!-- Group Track is a DEF node that has 1 USE node: USE_1 -->
               <Group DEF='Track'>
 21 
                    <!-- Transform Horizontal is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5
                    <!-- ROUTE information for Horizontal node:  [from TRACKPATH.value_changed to set_translation ] -->
                    <Transform DEF='Horizontal'>
 22 
                         <!-- Group SingleTrack is a DEF node that has 13 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 -->
                         <Group DEF='SingleTrack'>
 23                                <Shape>
 24                                     <Box size='1 .05 .3'/>
 25                                     <Appearance>
 26                                          <Material diffuseColor='0.4 0.4 0.4'/>
 27                                     </Appearance>
 28                                </Shape>
 29                                <Transform translation='-0.25 -0.05 0.0'>
 30                                     <Shape>
 31                                          <Box size='.35 .05 .2'/>
 32                                          <Appearance>
 33                                               <Material diffuseColor='.2 .2 .2'/>
 34                                          </Appearance>
 35                                     </Shape>
 36                                </Transform>
 37                                <Transform translation='0.25 -0.05 0.0'>
 38                                     <Shape>
 39                                          <Box size='.35 .05 .2'/>
 40                                          <Appearance>
 41                                               <Material diffuseColor='.2 .2 .2'/>
 42                                          </Appearance>
 43                                     </Shape>
 44                                </Transform>
 45                                <Transform translation='0.0 0.075 0.0'>
 46                                     <Shape>
 47                                          <Box size='.1 .1 .4'/>
 48                                          <Appearance>
 49                                               <Material diffuseColor='0.6 0.6 0.6'/>
 50                                          </Appearance>
 51                                     </Shape>
 52                                </Transform>
 53                                <Transform rotation='0 0 1 1.57translation='0.0 0.075 0.2'>
 54                                     <Shape>
 55                                          <Cylinder height='.12radius='.06'/>
 56                                          <Appearance>
 57                                               <Material diffuseColor='0.4 0.4 0.4'/>
 58                                          </Appearance>
 59                                     </Shape>
 60                                </Transform>
 61                           </Group>
 62                           <Transform translation='0.0 0.0 -0.4'>
 63                                <Group USE='SingleTrack'/>
 64                           </Transform>
 65                           <Transform translation='0.0 0.0 -0.8'>
 66                                <Group USE='SingleTrack'/>
 67                           </Transform>
 68                           <Transform translation='0.0 0.0 -1.2'>
 69                                <Group USE='SingleTrack'/>
 70                           </Transform>
 71                           <Transform translation='0.0 0.0 -1.6'>
 72                                <Group USE='SingleTrack'/>
 73                           </Transform>
 74                           <Transform translation='0.0 0.0 -2.0'>
 75                                <Group USE='SingleTrack'/>
 76                           </Transform>
 77                           <!-- CLOCK TimeSensor node controls speed of all track movement. -->
 78 
                         <!-- ROUTE information for CLOCK node:  [from TrackSensor.isOver to set_enabled ] [from fraction_changed to TRACKPATH.set_fraction ] [from fraction_changed to PIVOTPATH1.set_fraction ] [from fraction_changed to PIVOTPATH2.set_fraction ] [from fraction_changed to WHEELPATH.set_fraction ] -->
                         <TimeSensor DEF='CLOCKcycleInterval='.5enabled='falseloop='true'/>
 79                           <!-- TRACKPATH node moves SingleTrack along flat path. -->
 80 
                         <!-- ROUTE information for TRACKPATH node:  [from CLOCK.fraction_changed to set_fraction ] [from value_changed to Horizontal.set_translation ] -->
                         <PositionInterpolator DEF='TRACKPATHkey='0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.99keyValue='0.0 0.0 0.00 0.0 0.0 -0.04 0.0 0.0 -0.08 0.0 0.0 -0.12 0.0 0.0 -0.16 0.0 0.0 -0.20 0.0 0.0 -0.24 0.0 0.0 -0.28 0.0 0.0 -0.32 0.0 0.0 -0.36 0.0 0.0 -0.40'/>
 81                      </Transform>
 82                      <Transform translation='0.0 0.0 -2.4'>
 83                           <Transform USE='Horizontal'/>
 84                      </Transform>
 85                      <Transform translation='0.0 0.0 -4.8'>
 86                           <Transform USE='Horizontal'/>
 87                      </Transform>
 88                      <Transform translation='0.0 0.0 -7.2'>
 89                           <Transform USE='Horizontal'/>
 90                      </Transform>
 91 
                    <!-- ROUTE information for Pivot1 node:  [from PIVOTPATH1.value_changed to set_rotation ] -->
                    <Transform DEF='Pivot1center='0 1 0translation='0.0 0.0 -9.5'>
 92                           <Group USE='SingleTrack'/>
 93                           <!-- PIVOTPATH1 nodes moves SingleTrack along 30 deg curve. -->
 94 
                         <!-- ROUTE information for PIVOTPATH1 node:  [from CLOCK.fraction_changed to set_fraction ] [from value_changed to Pivot1.set_rotation ] [from value_changed to Pivot1High.set_rotation ] -->
                         <OrientationInterpolator DEF='PIVOTPATH1key='0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.99keyValue='1 0 0 0.000 1 0 0 0.052 1 0 0 0.104 1 0 0 0.156 1 0 0 0.208 1 0 0 0.260 1 0 0 0.312 1 0 0 0.364 1 0 0 0.416 1 0 0 0.468 1 0 0 0.520'/>
 95                      </Transform>
 96 
                    <!-- ROUTE information for Pivot2 node:  [from PIVOTPATH2.value_changed to set_rotation ] -->
                    <Transform DEF='Pivot2center='0 1 0'>
 97                           <Group USE='SingleTrack'/>
 98                           <!-- PIVOTPATH2 nodes moves SingleTrack along -30 deg curve. -->
 99 
                         <!-- ROUTE information for PIVOTPATH2 node:  [from CLOCK.fraction_changed to set_fraction ] [from value_changed to Pivot2.set_rotation ] [from value_changed to Pivot2High.set_rotation ] -->
                         <OrientationInterpolator DEF='PIVOTPATH2key='0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.99keyValue='1 0 0 -0.520 1 0 0 -0.468 1 0 0 -0.416 1 0 0 -0.364 1 0 0 -0.312 1 0 0 -0.260 1 0 0 -0.208 1 0 0 -0.156 1 0 0 -0.104 1 0 0 -0.052 1 0 0 0.0'/>
100                      </Transform>
101                      <Transform DEF='Frontrotation='1 0 0 -0.524translation='0 1.3 2.5'>
102                           <Transform USE='Horizontal'/>
103                      </Transform>
104                      <Transform DEF='Rearrotation='1 0 0 0.524translation='0 .08 -9.9'>
105                           <Transform USE='Horizontal'/>
106                      </Transform>
107 
                    <!-- ROUTE information for Pivot2High node:  [from PIVOTPATH2.value_changed to set_rotation ] -->
                    <Transform DEF='Pivot2Highcenter='0 1 0translation='0 1 2.1'>
108 
                         <!-- Group CircleTrack is a DEF node that has 1 USE node: USE_1 -->
                         <Group DEF='CircleTrack'>
109                                <Transform rotation='1 0 0 -0.524translation='0.0 0.307 0.4'>
110                                     <Group USE='SingleTrack'/>
111                                </Transform>
112                                <Transform rotation='1 0 0 -1.05translation='0.0 0.6 0.69'>
113                                     <Group USE='SingleTrack'/>
114                                </Transform>
115                                <Transform rotation='1 0 0 -1.57translation='0.0 1.0 0.8'>
116                                     <Group USE='SingleTrack'/>
117                                </Transform>
118                                <Transform rotation='1 0 0 -2.09translation='0.0 1.4 0.69'>
119                                     <Group USE='SingleTrack'/>
120                                </Transform>
121                                <Transform rotation='1 0 0 -2.62translation='0.0 1.69 0.4'>
122                                     <Group USE='SingleTrack'/>
123                                </Transform>
124                                <Transform rotation='1 0 0 -3.14translation='0.0 1.8 0.0'>
125                                     <Group USE='SingleTrack'/>
126                                </Transform>
127                           </Group>
128                      </Transform>
129 
                    <!-- ROUTE information for Pivot1High node:  [from PIVOTPATH1.value_changed to set_rotation ] -->
                    <Transform DEF='Pivot1Highcenter='0 1 0translation='0 1 -11.6'>
130                           <Transform rotation='0 1 0 3.14'>
131                                <Group USE='CircleTrack'/>
132                           </Transform>
133                      </Transform>
134                      <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 0.7 0'>
135 
                         <!-- Transform RoadWheel 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
                         <!-- ROUTE information for RoadWheel node:  [from WHEELPATH.value_changed to set_rotation ] -->
                         <Transform DEF='RoadWheel'>
136                                <Group>
137                                     <Shape DEF='Hub'>
138                                          <Cylinder height='0.4radius='.15'/>
139                                          <Appearance>
140                                               <Material diffuseColor='0.2 0.2 0'/>
141                                          </Appearance>
142                                     </Shape>
143                                     <Shape DEF='Wheel'>
144                                          <Cylinder height='.1radius='0.9side='false'/>
145                                          <Appearance>
146                                               <Material diffuseColor='0.4 0.4 0'/>
147                                          </Appearance>
148                                     </Shape>
149                                     <Shape DEF='Rim'>
150                                          <Appearance>
151                                               <Material diffuseColor='0.2 0.2 0'/>
152                                          </Appearance>
153                                          <Extrusion ccw='falsecreaseAngle='0.785crossSection='1.00 0.00 0.92 0.38 0.71 0.71 0.38 0.92 0.00 1.00 -0.38 0.92 -0.71 0.71 -0.92 0.38 -1.00 0.00 -0.92 -0.38 -0.71 -0.71 -0.38 -0.92 0.00 -1.00 0.38 -0.92 0.71 -0.71 0.92 -0.38 1.00 0.00 0.80 0.00 0.74 -0.31 0.57 -0.57 0.31 -0.74 0.00 -0.80 -0.31 -0.74 -0.57 -0.57 -0.74 -0.31 -0.80 0.00 -0.74 0.31 -0.57 0.57 -0.31 0.74 0.00 0.80 0.31 0.74 0.57 0.57 0.74 0.31 0.80 0.00spine='0.0 -0.2 0.0 0.0 0.2 0.0'/>
154                                     </Shape>
155                                </Group>
156                                <!-- WHEELPATH node rotates RoadWheel 30 deg. -->
157 
                              <!-- ROUTE information for WHEELPATH node:  [from CLOCK.fraction_changed to set_fraction ] [from value_changed to RoadWheel.set_rotation ] -->
                              <OrientationInterpolator DEF='WHEELPATHkey='0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.99keyValue='0 1 0 0.000 0 1 0 0.052 0 1 0 0.104 0 1 0 0.156 0 1 0 0.208 0 1 0 0.260 0 1 0 0.312 0 1 0 0.364 0 1 0 0.416 0 1 0 0.468 0 1 0 0.520'/>
158                           </Transform>
159                      </Transform>
160                      <Transform DEF='RoadWheels'>
161                           <Group>
162                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 0.7 -1.6'>
163                                     <Transform USE='RoadWheel'/>
164                                </Transform>
165                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 0.7 -3.2'>
166                                     <Transform USE='RoadWheel'/>
167                                </Transform>
168                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 0.7 -4.8'>
169                                     <Transform USE='RoadWheel'/>
170                                </Transform>
171                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 0.7 -6.4'>
172                                     <Transform USE='RoadWheel'/>
173                                </Transform>
174                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 0.7 -8.0'>
175                                     <Transform USE='RoadWheel'/>
176                                </Transform>
177                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 0.7 -9.6'>
178                                     <Transform USE='RoadWheel'/>
179                                </Transform>
180                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 2.0 2.1'>
181                                     <Transform USE='RoadWheel'/>
182                                </Transform>
183                                <Transform rotation='0 0 1 -1.57scale='0.7 0.7 0.7translation='0 2.0 -11.7'>
184                                     <Transform USE='RoadWheel'/>
185                                </Transform>
186                           </Group>
187                      </Transform>
188                      <!-- TrackSensor node moves Track node if cursor over shapes. -->
189 
                    <!-- ROUTE information for TrackSensor node:  [from isOver to CLOCK.set_enabled ] -->
                    <TouchSensor DEF='TrackSensordescription='point to move track'/>
190                 </Group>
191            </Transform>
192            <Transform translation='-3.5 0 4.8'>
193                 <Group USE='Track'/>
194            </Transform>
195            <!-- TrackSensor Route node sets path from TouchSensor to CLOCK. -->
196            < ROUTE  fromNode='TrackSensor' fromField='isOver' toNode='CLOCK' toField='set_enabled'/>
197            <!-- CLOCK Route nodes sets path from TimeSensor to other ROUTES. -->
198            < ROUTE  fromNode='CLOCK' fromField='fraction_changed' toNode='TRACKPATH' toField='set_fraction'/>
199            < ROUTE  fromNode='CLOCK' fromField='fraction_changed' toNode='PIVOTPATH1' toField='set_fraction'/>
200            < ROUTE  fromNode='CLOCK' fromField='fraction_changed' toNode='PIVOTPATH2' toField='set_fraction'/>
201            < ROUTE  fromNode='CLOCK' fromField='fraction_changed' toNode='WHEELPATH' toField='set_fraction'/>
202            <!-- PATH ROUTE nodes finish path from TimeSensor to moving shapes. -->
203            < ROUTE  fromNode='TRACKPATH' fromField='value_changed' toNode='Horizontal' toField='set_translation'/>
204            < ROUTE  fromNode='PIVOTPATH1' fromField='value_changed' toNode='Pivot1' toField='set_rotation'/>
205            < ROUTE  fromNode='PIVOTPATH1' fromField='value_changed' toNode='Pivot1High' toField='set_rotation'/>
206            < ROUTE  fromNode='PIVOTPATH2' fromField='value_changed' toNode='Pivot2' toField='set_rotation'/>
207            < ROUTE  fromNode='PIVOTPATH2' fromField='value_changed' toNode='Pivot2High' toField='set_rotation'/>
208            < ROUTE  fromNode='WHEELPATH' fromField='value_changed' toNode='RoadWheel' toField='set_rotation'/>
209       </Scene>
210  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: CircleTrack, CLOCK, Front, Horizontal, Hub, Pivot1, Pivot1High, Pivot2, Pivot2High, PIVOTPATH1, PIVOTPATH2, Rear, Rim, RoadWheel, RoadWheels, SingleTrack, Track, TRACKPATH, TrackSensor, Wheel, WHEELPATH

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3
-->
X3D Tooltips element index: Appearance, Box, Cylinder, Extrusion, Group, head, Material, meta, OrientationInterpolator, PositionInterpolator, ROUTE, Scene, Shape, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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

TrackSensor
TouchSensor
isOver
SFBool

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

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

ROUTE
event to
(3)
Horizontal
Transform
set_translation
SFVec3f
  then
 
 
 
CLOCK
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
Pivot1
Transform
set_rotation
SFRotation
  then
 
 
 
PIVOTPATH1
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
Pivot1High
Transform
set_rotation
SFRotation
  then
 
 
 
CLOCK
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
Pivot2
Transform
set_rotation
SFRotation
  then
 
 
 
PIVOTPATH2
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
Pivot2High
Transform
set_rotation
SFRotation
  then
 
 
 
CLOCK
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(3)
RoadWheel
Transform
set_rotation
SFRotation


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

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/AmphibiousVehicles/AAAV/TrackIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/AmphibiousVehicles/AAAV/Track.x3d -->

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

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