1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
|
3 | <X3D profile='Immersive' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'> |
4 | <head> |
5 | <meta name='title' content='BoxSwitch.x3d'/> |
6 | <meta name='creator' content='Don Brutzman'/> |
7 | <meta name='created' content='30 December 2015'/> |
8 | <meta name='modified' content='6 September 2024'/> |
9 | <meta name='description' content='Demonstrate simple Switch animation by sequencing through a set of Box nodes that are each covered by a different ImageTexture.'/> |
10 | <meta name='Image' content='CubeWithLabeledSidesViewpointSequencer.png'/> |
11 | <meta name='MovingImage' content='BoxSwitch.mp4'/> |
12 | <meta name='reference' content='../GeometricShapes/CubeWithLabeledSides.x3d'/> |
13 | <meta name='drawing' content='../GeometricShapes/images/CubeSideImages.pdf'/> |
14 | <meta name='drawing' content='../GeometricShapes/images/CubeSideImages.vsd'/> |
15 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Animation/BoxSwitch.x3d'/> |
16 | <meta name='generator' content='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/> |
17 | <meta name='license' content='../license.html'/> |
18 | </head> |
19 | <Scene> |
20 | <WorldInfo title='BoxSwitch.x3d'/> |
21 | <Background skyColor='0.8 0.8 0.9'/> |
22 | <NavigationInfo/> |
23 |
<!-- ROUTE information for BoxSwitcher node:
[from Sequencer.value_changed to whichChoice
]
-->
<Switch DEF='BoxSwitcher' whichChoice='-1'> |
24 | <Shape> |
25 | |
26 | <Appearance> |
27 | <ImageTexture url=' "../GeometricShapes/images/RedImage.png " "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/RedImage.png " '/> |
28 | </Appearance> |
29 | </Shape> |
30 | <Shape> |
31 | <Box USE='UnitBox'/> |
32 | <Appearance> |
33 | <ImageTexture url=' "../GeometricShapes/images/GreenImage.png " "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/GreenImage.png " '/> |
34 | </Appearance> |
35 | </Shape> |
36 | <Shape> |
37 | <Box USE='UnitBox'/> |
38 | <Appearance> |
39 | <ImageTexture url=' "../GeometricShapes/images/TurquoiseImage.png " "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/TurquoiseImage.png " '/> |
40 | </Appearance> |
41 | </Shape> |
42 | <Shape> |
43 | <Box USE='UnitBox'/> |
44 | <Appearance> |
45 | <ImageTexture url=' "../GeometricShapes/images/YellowImage.png " "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/YellowImage.png " '/> |
46 | </Appearance> |
47 | </Shape> |
48 | <Shape> |
49 | <Box USE='UnitBox'/> |
50 | <Appearance> |
51 | <ImageTexture url=' "../GeometricShapes/images/WhiteImage.png " "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/WhiteImage.png " '/> |
52 | </Appearance> |
53 | </Shape> |
54 | <Shape> |
55 | <Box USE='UnitBox'/> |
56 | <Appearance> |
57 | <ImageTexture url=' "../GeometricShapes/images/GreyImage.png " "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/GeometricShapes/images/GreyImage.png " '/> |
58 | </Appearance> |
59 | </Shape> |
60 | </Switch> |
61 | <!-- Animated Box --> |
62 |
<!-- ROUTE information for Clock node:
[from fraction_changed to Sequencer.set_fraction
]
[from fraction_changed to CircularPathPositionInterpolator.set_fraction
]
[from fraction_changed to CenterFacingOrientationInterpolator.set_fraction
]
-->
<TimeSensor DEF='Clock' cycleInterval='12' loop='true'/> |
63 |
<!-- ROUTE information for Sequencer node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to BoxSwitcher.whichChoice
]
-->
<IntegerSequencer DEF='Sequencer' key='0 0.1667 0.3333 0.5 0.6667 0.8333 1' keyValue='0 1 2 3 4 5 0'/> |
64 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='Sequencer' toField='set_fraction'/> |
65 | < ROUTE fromNode='Sequencer' fromField='value_changed' toNode='BoxSwitcher' toField='whichChoice'/> |
66 |
<!-- ROUTE information for OrbitingView node:
[from CircularPathPositionInterpolator.value_changed to position
]
[from CenterFacingOrientationInterpolator.value_changed to orientation
]
-->
<Viewpoint DEF='OrbitingView' description='Orbiting view' orientation='0 1 0 -1.57' position='-8 0 0'/> |
67 | <!-- Animated Viewpoint, orbiting about the origin --> |
68 |
<!-- ROUTE information for CircularPathPositionInterpolator node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to OrbitingView.position
]
-->
<PositionInterpolator DEF='CircularPathPositionInterpolator' key='0 0.02778 0.05556 0.08333 0.11111 0.13889 0.16667 0.19444 0.22222 0.25 0.27778 0.30556 0.33333 0.36111 0.38889 0.41667 0.44444 0.47222 0.5 0.52778 0.55556 0.58333 0.61111 0.63889 0.66667 0.69444 0.72222 0.75 0.77778 0.80556 0.83333 0.86111 0.88889 0.91667 0.94444 0.97222 1' keyValue='0 0 8 1.389 0 7.878 2.736 0 7.518 4 0 6.928 5.142 0 6.128 6.128 0 5.142 6.928 0 4 7.518 0 2.736 7.878 0 1.389 8 0 0 7.878 0 -1.389 7.518 0 -2.736 6.928 0 -4 6.128 0 -5.142 5.142 0 -6.128 4 0 -6.928 2.736 0 -7.518 1.389 0 -7.878 0 0 -8 -1.389 0 -7.878 -2.736 0 -7.518 -4 0 -6.928 -5.142 0 -6.128 -6.128 0 -5.142 -6.928 0 -4 -7.518 0 -2.736 -7.878 0 -1.389 -8 0 -0 -7.878 0 1.389 -7.518 0 2.736 -6.928 0 4 -6.128 0 5.142 -5.142 0 6.128 -4 0 6.928 -2.736 0 7.518 -1.389 0 7.878 0 0 8'/> |
69 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='CircularPathPositionInterpolator' toField='set_fraction'/> |
70 | < ROUTE fromNode='CircularPathPositionInterpolator' fromField='value_changed' toNode='OrbitingView' toField='position'/> |
71 |
<!-- ROUTE information for CenterFacingOrientationInterpolator node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to OrbitingView.orientation
]
-->
<OrientationInterpolator DEF='CenterFacingOrientationInterpolator' key='0 0.3333 0.6667 1' keyValue='0 1 0 0 0 1 0 2.094395 0 1 0 4.18879 0 1 0 0'/> |
72 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='CenterFacingOrientationInterpolator' toField='set_fraction'/> |
73 | < ROUTE fromNode='CenterFacingOrientationInterpolator' fromField='value_changed' toNode='OrbitingView' toField='orientation'/> |
74 | <!-- Additional Viewpoints --> |
75 | <Viewpoint description='Front view' orientation='0 1 0 1.57' position='8 0 0'/> |
76 | <Viewpoint description='Back view' orientation='0 1 0 -1.57' position='-8 0 0'/> |
77 | <Viewpoint description='Left view' position='0 0 8'/> |
78 | <Viewpoint description='Right view' orientation='0 1 0 3.1416' position='0 0 -8'/> |
79 | <Viewpoint description='Top view' orientation='1 0 0 -1.57' position='0 8 0'/> |
80 | <Viewpoint description='Bottom view' orientation='1 0 0 1.57' position='0 -8 0'/> |
81 | </Scene> |
82 | </X3D> |
Event Graph ROUTE Table with 6 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.
Clock
TimeSensor fraction_changed SFFloat |
Sequencer
IntegerSequencer set_fraction SFFloat |
then
|
Sequencer
IntegerSequencer value_changed SFInt32 |
BoxSwitcher
Switch whichChoice SFInt32 |
||
Clock
TimeSensor fraction_changed SFFloat |
CircularPathPositionInterpolator
PositionInterpolator set_fraction SFFloat |
then
|
CircularPathPositionInterpolator
PositionInterpolator value_changed SFVec3f |
OrbitingView
Viewpoint position SFVec3f |
||
Clock
TimeSensor fraction_changed SFFloat |
CenterFacingOrientationInterpolator
OrientationInterpolator set_fraction SFFloat |
then
|
CenterFacingOrientationInterpolator
OrientationInterpolator value_changed SFRotation |
OrbitingView
Viewpoint orientation SFRotation |
<!--
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)
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->