| 1 |
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
|
| 3 | <X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.2.xsd'> |
| 4 | <head> |
| 5 | <meta name='title' content=' Gimbals.x3d '/> |
| 6 | <meta name='description' content='Gimbals for user-driven roll pitch and yaw angle conversions, also shows conversion from X3D (VRML) to DIS coordinate system. Model inspiration by Bob McGhee.'/> |
| 7 | <meta name='creator' content='Eric Bachmann and Don Brutzman'/> |
| 8 | <meta name='created' content='1996'/> |
| 9 | <meta name='finished' content='19 April 1999'/> |
| 10 | <meta name='translator' content='Curtis Blais'/> |
| 11 | <meta name='translated' content='27 January 2001'/> |
| 12 | <meta name='modified' content='11 August 2025'/> |
| 13 |
<meta name='Image' content='GimbalsExampleX_ITE.png' />
|
| 14 |
<meta name='Image' content='GimbalsExampleF18.png' />
|
| 15 |
<meta name='Image' content='GimbalsExampleRocket.png' />
|
| 16 | <meta name='hint' content='Note that axis orientations are aligned with X3D Geospatial conventions'/> |
| 17 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/Gimbals.x3d '/> |
| 18 | <meta name='reference' content='https://www.web3d.org/WorkingGroups/vrtp/demo/gimbals/DisCoordinateSystemGimbals.wrl'/> |
| 19 | <meta name='generator' content='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
| 20 | <meta name='license' content='../license.html'/> |
| 21 | </head> |
| 22 | <Scene> |
| 23 | <WorldInfo title='Gimbals.x3d'/> |
| 24 | <Background groundAngle='1.309 1.570796' groundColor='0 0.3 1 0 0.3 1 0 0.3 1' skyAngle='1.309 1.571' skyColor='0 0.2 0.7 0 0.5 1 1 1 1'/> |
| 25 | <DirectionalLight color='0.5 0.4 0.0' direction='1 -.5 1'/> |
| 26 | <Group DEF='ViewpointGroup'> |
| 27 | <!-- have default Viewpoints precede model viewpoints for consistent navigation --> |
| 28 | <Viewpoint description='South to North' position='0 15 100'/> |
| 29 | <Viewpoint description='East to West' orientation='0 1 0 1.57079' position='120 20 0'/> |
| 30 | <Viewpoint description='North to South' orientation='0 1 0 -3.14159' position='0 20 -120'/> |
| 31 | <Viewpoint description='West to East' orientation='0 1 0 -1.57079' position='-120 20 0'/> |
| 32 | <Viewpoint description='Close Up' orientation='1 0 0 -.20136' position='0 30 50'/> |
| 33 | <Transform DEF='fromNEtoSW' rotation='0 1 0 0.7854' translation='30 40 30'> |
| 34 | <Viewpoint description='Northeast to SW' orientation='1 0 0 -0.45'/> |
| 35 | </Transform> |
| 36 | <Transform DEF='fromSWtoNE' rotation='0 1 0 -2.35619' translation='-25 5 -25'> |
| 37 | <Viewpoint description='Southwest to NE' orientation='1 0 0 0.35'/> |
| 38 | </Transform> |
| 39 | <Transform rotation='-1 0 0 1.57' translation='0 150 0'> |
| 40 | <Viewpoint description='Top Down' orientation='0 0 -1 1.57' position='0 0 0'/> |
| 41 | </Transform> |
| 42 | </Group> |
| 43 | <Transform DEF='SunInDistance' translation='-250 125 -250'> |
| 44 | <Shape> |
| 45 | <Appearance> |
| 46 | <Material DEF='SUN_MATERIAL' ambientIntensity='0' diffuseColor='1 0.871763 0' emissiveColor='1 0.871763 0' shininess='0.5' specularColor='1 1 1'/> |
| 47 | </Appearance> |
| 48 | <Sphere radius='5.0'/> |
| 49 | </Shape> |
| 50 | </Transform> |
| 51 | <Transform DEF='GlobalCoordinateAxes' translation='0 20 0'> |
| 52 | <Transform DEF='GlobalAxisLines'> |
| 53 | <Shape> |
| 54 | <Appearance> |
| 55 | |
| 56 | </Appearance> |
| 57 | <IndexedLineSet coordIndex='0 1 -1 2 3 -1 4 5 -1 6 7 -1 8 9 -1 10 11 -1'> |
| 58 | <Coordinate point='35 0 0 2 0 0 -35 0 0 -2 0 0 0 25 0 0 2 0 0 -25 0 0 -2 0 0 0 35 0 0 2 0 0 -35 0 0 -2'/> |
| 59 | </IndexedLineSet> |
| 60 | </Shape> |
| 61 | </Transform> |
| 62 | <Transform DEF='PositiveZAxisLabel' translation='0 -4.0 40'> |
| 63 | <Billboard axisOfRotation='0 0 0'> |
| 64 | <Transform scale='0.1 0.1 0.1'> |
| 65 | <Shape> |
| 66 | <Appearance> |
| 67 | <Material USE='COLOR1'/> |
| 68 | </Appearance> |
| 69 | <Text string='"South" "+Z X3D, -X DIS"'> |
| 70 | |
| 71 | </Text> |
| 72 | </Shape> |
| 73 | </Transform> |
| 74 | </Billboard> |
| 75 | </Transform> |
| 76 | <Transform DEF='PositiveXAxisLabel' translation='44 -4.0 0'> |
| 77 | <Billboard axisOfRotation='0 0 0'> |
| 78 | <Transform scale='0.1 0.1 0.1'> |
| 79 | <Shape> |
| 80 | <Appearance> |
| 81 | <Material USE='COLOR1'/> |
| 82 | </Appearance> |
| 83 | <Text string='"East" "+X X3D, +Y DIS"'> |
| 84 | <FontStyle USE='FONT1'/> |
| 85 | </Text> |
| 86 | </Shape> |
| 87 | </Transform> |
| 88 | </Billboard> |
| 89 | </Transform> |
| 90 | <Transform DEF='NegativeZAxisLabel' translation='-0.5 -4.0 -40'> |
| 91 | <Billboard axisOfRotation='0 0 0'> |
| 92 | <Transform scale='0.1 0.1 0.1'> |
| 93 | <Shape> |
| 94 | <Appearance> |
| 95 | <Material USE='COLOR1'/> |
| 96 | </Appearance> |
| 97 | <Text string='"North" "-Z X3D, +X DIS"'> |
| 98 | <FontStyle USE='FONT1'/> |
| 99 | </Text> |
| 100 | </Shape> |
| 101 | </Transform> |
| 102 | </Billboard> |
| 103 | </Transform> |
| 104 | <Transform DEF='NegativeXAxisLabel' translation='-44 -4.0 0'> |
| 105 | <Billboard axisOfRotation='0 0 0'> |
| 106 | <Transform scale='0.1 0.1 0.1'> |
| 107 | <Shape> |
| 108 | <Appearance> |
| 109 | <Material USE='COLOR1'/> |
| 110 | </Appearance> |
| 111 | <Text string='"West" "-X X3D, -Y DIS"'> |
| 112 | <FontStyle USE='FONT1'/> |
| 113 | </Text> |
| 114 | </Shape> |
| 115 | </Transform> |
| 116 | </Billboard> |
| 117 | </Transform> |
| 118 | <Transform DEF='PositiveYAxisLabel' translation='0 30 0'> |
| 119 | <Billboard axisOfRotation='0 0 0'> |
| 120 | <Transform scale='0.1 0.1 0.1'> |
| 121 | <Shape> |
| 122 | <Appearance> |
| 123 | <Material USE='COLOR1'/> |
| 124 | </Appearance> |
| 125 | <Text string='"Up" "+Y X3D, -Z DIS"'> |
| 126 | <FontStyle USE='FONT1'/> |
| 127 | </Text> |
| 128 | </Shape> |
| 129 | </Transform> |
| 130 | </Billboard> |
| 131 | </Transform> |
| 132 | <Transform DEF='NegativeYAxisLabel' translation='0 -28 0'> |
| 133 | <Billboard axisOfRotation='0 0 0'> |
| 134 | <Transform scale='0.1 0.1 0.1'> |
| 135 | <Shape> |
| 136 | <Appearance> |
| 137 | <Material USE='COLOR1'/> |
| 138 | </Appearance> |
| 139 | <Text string='"Down" "-Y X3D, +Z DIS"'> |
| 140 | <FontStyle USE='FONT1'/> |
| 141 | </Text> |
| 142 | </Shape> |
| 143 | </Transform> |
| 144 | </Billboard> |
| 145 | </Transform> |
| 146 | </Transform> |
| 147 | <Transform DEF='GimbalObjects' rotation='0 1 0 1.57' translation='0 20 0'> |
| 148 |
<!-- ROUTE information for AZIMUTH_TRANSFORM node:
[from AZIMUTH_SENSOR.rotation_changed to set_rotation
]
-->
<Transform DEF='AZIMUTH_TRANSFORM'> |
| 149 |
<!-- ROUTE information for AZIMUTH_SENSOR node:
[from rotation_changed to AZIMUTH_TRANSFORM.set_rotation
]
[from rotation_changed to CONSTRUCT_TRACE_STRING.set_azimuthRotation
]
-->
<CylinderSensor DEF='AZIMUTH_SENSOR' description='drag gimbal to change azimuth'/> |
| 150 | <Transform DEF='AzimuthGimbal' rotation='1 0 0 1.57079'> |
| 151 | <Transform DEF='AzimuthGimbalShape'> |
| 152 | <Shape> |
| 153 |
<!-- Appearance
AppearanceGimbals is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Appearance DEF='AppearanceGimbals'> |
| 154 | <Material diffuseColor='1 0.59 0.3'/> |
| 155 | </Appearance> |
| 156 | <Extrusion beginCap='false' convex='false' creaseAngle='1.57' crossSection='0.5 0 0.46 -0.19 0.355 -0.355 0.19 -0.46 0 -0.5 -0.19 -0.46 -0.355 -0.355 -0.46 -0.19 -0.5 0 -0.46 0.19 -0.355 0.355 -0.19 0.46 0 0.5 0.19 0.46 0.355 0.355 0.46 0.19 0.5 0' endCap='false' solid='false' spine='14 0 0 13.25 0 7.85 11.05 0 11.05 7.85 0 13.25 0 0 14 -7.85 0 13.25 -11.05 0 11.05 -13.25 0 7.85 -14 0 0 -13.25 0 -7.85 -11.05 0 -11.05 -7.85 0 -13.25 0 0 -14 7.85 0 -13.25 11.05 0 -11.05 13.25 0 -7.85 14 0 0'/> |
| 157 | </Shape> |
| 158 | <Transform rotation='0 0 1 1.57079' translation='12.75 0 0'> |
| 159 | |
| 160 | <Appearance USE='AppearanceGimbals'/> |
| 161 | <Cone bottomRadius='0.5' height='1.5'/> |
| 162 | </Shape> |
| 163 | </Transform> |
| 164 | <Transform rotation='0 0 1 -1.57079' translation='-12.75 0 0'> |
| 165 | <Shape USE='PinShape'/> |
| 166 | </Transform> |
| 167 | </Transform> |
| 168 | </Transform> |
| 169 | <Transform DEF='ElevationRollObjects' rotation='0 0 1 1.57'> |
| 170 |
<!-- ROUTE information for ELEVATION_TRANSFORM node:
[from ELEVATION_SENSOR.rotation_changed to set_rotation
]
-->
<Transform DEF='ELEVATION_TRANSFORM'> |
| 171 |
<!-- ROUTE information for ELEVATION_SENSOR node:
[from rotation_changed to ELEVATION_TRANSFORM.set_rotation
]
[from rotation_changed to CONSTRUCT_TRACE_STRING.set_elevationRotation
]
-->
<CylinderSensor DEF='ELEVATION_SENSOR' description='drag gimbal to change elevation'/> |
| 172 | <Transform DEF='ElevationGimbal' rotation='0 0 1 1.57079'> |
| 173 | <Transform DEF='ElevationGimbalShape'> |
| 174 | <Shape> |
| 175 | <Appearance USE='AppearanceGimbals'/> |
| 176 | <Extrusion beginCap='false' convex='false' creaseAngle='1.57' crossSection='0.5 0 0.46 -0.19 0.355 -0.355 0.19 -0.46 0 -0.5 -0.19 -0.46 -0.355 -0.355 -0.46 -0.19 -0.5 0 -0.46 0.19 -0.355 0.355 -0.19 0.46 0 0.5 0.19 0.46 0.355 0.355 0.46 0.19 0.5 0' endCap='false' solid='false' spine='12 0 0 11.25 0 5.85 9.05 0 9.05 5.85 0 11.25 0 0 12 -5.85 0 11.25 -9.05 0 9.05 -11.25 0 5.85 -12 0 0 -11.25 0 -5.85 -9.05 0 -9.05 -5.85 0 -11.25 0 0 -12 5.85 0 -11.25 9.05 0 -9.05 11.25 0 -5.85 12 0 0'/> |
| 177 | </Shape> |
| 178 | <Transform rotation='1 0 0 -1.57079' translation='0 0 10.75'> |
| 179 | <Shape USE='PinShape'/> |
| 180 | </Transform> |
| 181 | <Transform rotation='1 0 0 1.57079' translation='0 0 -10.75'> |
| 182 | <Shape USE='PinShape'/> |
| 183 | </Transform> |
| 184 | </Transform> |
| 185 | </Transform> |
| 186 | <Transform DEF='RollObjects' rotation='1 0 0 -1.57'> |
| 187 |
<!-- ROUTE information for ROLL_TRANSFORM node:
[from ROLL_SENSOR.rotation_changed to set_rotation
]
-->
<Transform DEF='ROLL_TRANSFORM'> |
| 188 |
<!-- ROUTE information for ROLL_SENSOR node:
[from rotation_changed to ROLL_TRANSFORM.set_rotation
]
[from rotation_changed to CONSTRUCT_TRACE_STRING.set_rollRotation
]
-->
<CylinderSensor DEF='ROLL_SENSOR' description='drag gimbal to change roll'/> |
| 189 | <Transform DEF='RollGimbal' rotation='1 0 0 1.57079'> |
| 190 | <Transform DEF='RollGimbalShape'> |
| 191 | <Shape> |
| 192 | <Appearance USE='AppearanceGimbals'/> |
| 193 | <Extrusion beginCap='false' convex='false' creaseAngle='1.57' crossSection='0.5 0 0.46 -0.19 0.355 -0.355 0.19 -0.46 0 -0.5 -0.19 -0.46 -0.355 -0.355 -0.46 -0.19 -0.5 0 -0.46 0.19 -0.355 0.355 -0.19 0.46 0 0.5 0.19 0.46 0.355 0.355 0.46 0.19 0.5 0' endCap='false' solid='false' spine='10 0 0 9.25 0 3.85 7.05 0 7.05 3.85 0 9.25 0 0 10 -3.85 0 9.25 -7.05 0 7.05 -9.25 0 3.85 -10 0 0 -9.25 0 -3.85 -7.05 0 -7.05 -3.85 0 -9.25 0 0 -10 3.85 0 -9.25 7.05 0 -7.05 9.25 0 -3.85 10 0 0'/> |
| 194 | </Shape> |
| 195 | </Transform> |
| 196 | <Transform rotation='0 0 1 -1.57'> |
| 197 | <Transform rotation='0 1 0 -1.57' scale='0.4 0.4 0.4'> |
| 198 | <Transform DEF='ScaleUpContainedObject' scale='6 6 6'> |
| 199 | <!-- note that default is in a different library, so each Inline goes online for url retrieval if needed --> |
| 200 | <Switch DEF='ModelChoice' whichChoice='0'> |
| 201 | <Transform scale='0.4 0.4 0.4'> |
| 202 | <Inline DEF='F18Superhornet' url=' "../../Savage/AircraftFixedWing/F18SuperhornetUnitedStates/F18.x3d" "https://savage.nps.edu/Savage/AircraftFixedWing/F18SuperhornetUnitedStates/F18.x3d" "../../Savage/AircraftFixedWing/F18SuperhornetUnitedStates/F18.wrl" "https://savage.nps.edu/Savage/AircraftFixedWing/F18SuperhornetUnitedStates/F18.wrl" '/> |
| 203 | </Transform> |
| 204 | <Inline DEF='ModelOrientation' url=' "../course/ModelOrientation.x3d" "https://www.web3d.org/x3d/content/examples/Basic/course/ModelOrientation.x3d" "../course/ModelOrientation.wrl" "https://www.web3d.org/x3d/content/examples/Basic/course/ModelOrientation.wrl" '/> |
| 205 | <!-- you can add your model here --> |
| 206 | </Switch> |
| 207 | </Transform> |
| 208 | <Transform DEF='LocalCoordinateAxes' scale='0.65 0.65 0.65'> |
| 209 | <Transform DEF='LocalAxisLines'> |
| 210 | <Shape> |
| 211 | |
| 212 | <Material diffuseColor='1 .8 0' emissiveColor='1 .8 0'/> |
| 213 | </Appearance> |
| 214 | <IndexedLineSet coordIndex='0 1 -1 2 3 -1 4 5 -1'> |
| 215 | <Coordinate point='25 0 0 -25 0 0 0 25 0 0 -25 0 0 0 25 0 0 -25'/> |
| 216 | </IndexedLineSet> |
| 217 | </Shape> |
| 218 | </Transform> |
| 219 | <Transform DEF='PositiveXLocal' translation='35 0 0'> |
| 220 | <Billboard axisOfRotation='0 0 0'> |
| 221 | <Transform scale='.1 .1 .1'> |
| 222 | <Shape> |
| 223 | <Appearance USE='AppearanceBodyAxes'/> |
| 224 | <Text string='"body +X nose"'> |
| 225 | |
| 226 | </Text> |
| 227 | </Shape> |
| 228 | </Transform> |
| 229 | </Billboard> |
| 230 | </Transform> |
| 231 | <Transform DEF='NegativeXLocal' translation='-35 0 0'> |
| 232 | <Billboard axisOfRotation='0 0 0'> |
| 233 | <Transform scale='.1 .1 .1'> |
| 234 | <Shape> |
| 235 | <Appearance USE='AppearanceBodyAxes'/> |
| 236 | <Text string='"body -X tail"'> |
| 237 | <FontStyle USE='FONT2'/> |
| 238 | </Text> |
| 239 | </Shape> |
| 240 | </Transform> |
| 241 | </Billboard> |
| 242 | </Transform> |
| 243 | <Transform DEF='PositiveZLocal' translation='0 -30 0'> |
| 244 | <Billboard axisOfRotation='0 0 0'> |
| 245 | <Transform scale='.1 .1 .1'> |
| 246 | <Shape> |
| 247 | <Appearance USE='AppearanceBodyAxes'/> |
| 248 | <Text string='"body -Y bottom"'> |
| 249 | <FontStyle USE='FONT2'/> |
| 250 | </Text> |
| 251 | </Shape> |
| 252 | </Transform> |
| 253 | </Billboard> |
| 254 | </Transform> |
| 255 | <Transform DEF='NegativeZLocal' translation='0 26 0'> |
| 256 | <Billboard axisOfRotation='0 0 0'> |
| 257 | <Transform scale='.1 .1 .1'> |
| 258 | <Shape> |
| 259 | <Appearance USE='AppearanceBodyAxes'/> |
| 260 | <Text string='"body +Y top"'> |
| 261 | <FontStyle USE='FONT2'/> |
| 262 | </Text> |
| 263 | </Shape> |
| 264 | </Transform> |
| 265 | </Billboard> |
| 266 | </Transform> |
| 267 | <Transform DEF='PositiveYLocal' translation='0 0 34'> |
| 268 | <Billboard axisOfRotation='0 0 0'> |
| 269 | <Transform scale='.1 .1 .1'> |
| 270 | <Shape> |
| 271 | <Appearance USE='AppearanceBodyAxes'/> |
| 272 | <Text string='"body +Z right"'> |
| 273 | <FontStyle USE='FONT2'/> |
| 274 | </Text> |
| 275 | </Shape> |
| 276 | </Transform> |
| 277 | </Billboard> |
| 278 | </Transform> |
| 279 | <Transform DEF='NegativeYLocal' translation='0 0 -34'> |
| 280 | <Billboard axisOfRotation='0 0 0'> |
| 281 | <Transform scale='.1 .1 .1'> |
| 282 | <Shape> |
| 283 | <Appearance USE='AppearanceBodyAxes'/> |
| 284 | <Text string='"body -Z left"'> |
| 285 | <FontStyle USE='FONT2'/> |
| 286 | </Text> |
| 287 | </Shape> |
| 288 | </Transform> |
| 289 | </Billboard> |
| 290 | </Transform> |
| 291 | </Transform> |
| 292 | </Transform> |
| 293 | </Transform> |
| 294 | </Transform> |
| 295 | </Transform> |
| 296 | </Transform> |
| 297 | </Transform> |
| 298 | </Transform> |
| 299 | </Transform> |
| 300 | </Transform> |
| 301 | <Transform DEF='RotationText' translation='0 -12 22'> |
| 302 | <Billboard axisOfRotation='0 0 0'> |
| 303 | <Shape> |
| 304 | <Appearance> |
| 305 | <Material diffuseColor='0 .8 .1' emissiveColor='0 .8 .1'/> |
| 306 | </Appearance> |
| 307 |
<!-- ROUTE information for TRACE_STRING node:
[from CONSTRUCT_TRACE_STRING.rotationMessage_changed to set_string
]
-->
<Text DEF='TRACE_STRING' string='"Drag gimbals for new rotation value"'> |
| 308 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='4'/> |
| 309 | </Text> |
| 310 | </Shape> |
| 311 | </Billboard> |
| 312 | </Transform> |
| 313 |
<!-- ROUTE information for CONSTRUCT_TRACE_STRING node:
[from ROLL_SENSOR.rotation_changed to set_rollRotation
]
[from ELEVATION_SENSOR.rotation_changed to set_elevationRotation
]
[from AZIMUTH_SENSOR.rotation_changed to set_azimuthRotation
]
[from rotationMessage_changed to TRACE_STRING.set_string
]
-->
<Script DEF='CONSTRUCT_TRACE_STRING' url=' "Gimbals.js" "https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/Gimbals.js" '> |
| 314 |
<field name='roll' type='SFFloat' value='0.0' accessType='initializeOnly'
appinfo='declared for persistence'/> |
| 315 |
<field name='elevation' type='SFFloat' value='0.0' accessType='initializeOnly'
appinfo='declared for persistence'/> |
| 316 |
<field name='azimuth' type='SFFloat' value='0.0' accessType='initializeOnly'
appinfo='declared for persistence'/> |
| 317 |
<field name='azimuth2' type='SFFloat' value='0.0' accessType='initializeOnly'
appinfo='declared for persistence'/> |
| 318 |
<field name='newRotation' type='SFRotation' value='0 1 0 0' accessType='inputOutput'
appinfo='declared for persistence'/> |
| 319 |
<field name='newRotationString' type='SFString' accessType='inputOutput'
appinfo='declared for persistence'/> |
| 320 | <field name='set_rollRotation' type='SFRotation' accessType='inputOnly'/> |
| 321 | <field name='set_elevationRotation' type='SFRotation' accessType='inputOnly'/> |
| 322 | <field name='set_azimuthRotation' type='SFRotation' accessType='inputOnly'/> |
| 323 | <field name='rotationMessage_changed' type='MFString' accessType='outputOnly'/> |
| 324 | </Script> |
| 325 | < ROUTE fromNode='ROLL_SENSOR' fromField='rotation_changed' toNode='ROLL_TRANSFORM' toField='set_rotation'/> |
| 326 | < ROUTE fromNode='ELEVATION_SENSOR' fromField='rotation_changed' toNode='ELEVATION_TRANSFORM' toField='set_rotation'/> |
| 327 | < ROUTE fromNode='AZIMUTH_SENSOR' fromField='rotation_changed' toNode='AZIMUTH_TRANSFORM' toField='set_rotation'/> |
| 328 | < ROUTE fromNode='ROLL_SENSOR' fromField='rotation_changed' toNode='CONSTRUCT_TRACE_STRING' toField='set_rollRotation'/> |
| 329 | < ROUTE fromNode='ELEVATION_SENSOR' fromField='rotation_changed' toNode='CONSTRUCT_TRACE_STRING' toField='set_elevationRotation'/> |
| 330 | < ROUTE fromNode='AZIMUTH_SENSOR' fromField='rotation_changed' toNode='CONSTRUCT_TRACE_STRING' toField='set_azimuthRotation'/> |
| 331 | < ROUTE fromNode='CONSTRUCT_TRACE_STRING' fromField='rotationMessage_changed' toNode='TRACE_STRING' toField='set_string'/> |
| 332 | </Scene> |
| 333 | </X3D> |
Event Graph ROUTE Table entries with 7 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.
|
AZIMUTH_SENSOR
CylinderSensor rotation_changed SFRotation |
AZIMUTH_TRANSFORM
Transform set_rotation SFRotation |
|||||
|
AZIMUTH_SENSOR
CylinderSensor rotation_changed SFRotation |
CONSTRUCT_TRACE_STRING
Script set_azimuthRotation SFRotation |
then
|
CONSTRUCT_TRACE_STRING
Script rotationMessage_changed MFString |
TRACE_STRING
Text set_string MFString |
|
ELEVATION_SENSOR
CylinderSensor rotation_changed SFRotation |
ELEVATION_TRANSFORM
Transform set_rotation SFRotation |
|||||
|
ELEVATION_SENSOR
CylinderSensor rotation_changed SFRotation |
CONSTRUCT_TRACE_STRING
Script set_elevationRotation SFRotation |
then
|
CONSTRUCT_TRACE_STRING
Script rotationMessage_changed MFString |
TRACE_STRING
Text set_string MFString |
|
ROLL_SENSOR
CylinderSensor rotation_changed SFRotation |
ROLL_TRANSFORM
Transform set_rotation SFRotation |
|||||
|
ROLL_SENSOR
CylinderSensor rotation_changed SFRotation |
CONSTRUCT_TRACE_STRING
Script set_rollRotation SFRotation |
then
|
CONSTRUCT_TRACE_STRING
Script rotationMessage_changed MFString |
TRACE_STRING
Text set_string MFString |
<!--
Color-coding legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->