X3D Model Documentation: BoxSwitch.x3d

  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='titlecontent='BoxSwitch.x3d'/>
  6            <meta name='creatorcontent='Don Brutzman'/>
  7            <meta name='createdcontent='30 December 2015'/>
  8            <meta name='modifiedcontent='6 September 2024'/>
  9            <meta name='descriptioncontent='Demonstrate simple Switch animation by sequencing through a set of Box nodes that are each covered by a different ImageTexture.'/>
 10            <meta name='Imagecontent='CubeWithLabeledSidesViewpointSequencer.png'/>
 11            <meta name='MovingImagecontent='BoxSwitch.mp4'/>
 12            <meta name='referencecontent='../GeometricShapes/CubeWithLabeledSides.x3d'/>
 13            <meta name='drawingcontent='../GeometricShapes/images/CubeSideImages.pdf'/>
 14            <meta name='drawingcontent='../GeometricShapes/images/CubeSideImages.vsd'/>
 15            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Animation/BoxSwitch.x3d'/>
 16            <meta name='generatorcontent='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
 17            <meta name='licensecontent='../license.html'/>
 18       </head>
<!--

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

<!-- to top Index for DEF nodes: BoxSwitcher, CenterFacingOrientationInterpolator, CircularPathPositionInterpolator, Clock, OrbitingView, Sequencer, UnitBox

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, OrbitingView
-->
 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='BoxSwitcherwhichChoice='-1'>
 24                 <Shape>
 25 
                    <!-- Box UnitBox is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 -->
                    <Box DEF='UnitBox'/>
 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='ClockcycleInterval='12loop='true'/>
 63 
          <!-- ROUTE information for Sequencer node:  [from Clock.fraction_changed to set_fraction ] [from value_changed to BoxSwitcher.whichChoice ] -->
          <IntegerSequencer DEF='Sequencerkey='0 0.1667 0.3333 0.5 0.6667 0.8333 1keyValue='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='OrbitingViewdescription='Orbiting vieworientation='0 1 0 -1.57position='-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='CircularPathPositionInterpolatorkey='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 1keyValue='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='CenterFacingOrientationInterpolatorkey='0 0.3333 0.6667 1keyValue='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 vieworientation='0 1 0 1.57position='8 0 0'/>
 76            <Viewpoint description='Back vieworientation='0 1 0 -1.57position='-8 0 0'/>
 77            <Viewpoint description='Left viewposition='0 0 8'/>
 78            <Viewpoint description='Right vieworientation='0 1 0 3.1416position='0 0 -8'/>
 79            <Viewpoint description='Top vieworientation='1 0 0 -1.57position='0 8 0'/>
 80            <Viewpoint description='Bottom vieworientation='1 0 0 1.57position='0 -8 0'/>
 81       </Scene>
 82  </X3D>
<!--

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

<!-- to top Index for DEF nodes: BoxSwitcher, CenterFacingOrientationInterpolator, CircularPathPositionInterpolator, Clock, OrbitingView, Sequencer, UnitBox

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, OrbitingView
-->
X3D Tooltips element index: Appearance, Background, Box, head, ImageTexture, IntegerSequencer, meta, NavigationInfo, OrientationInterpolator, PositionInterpolator, ROUTE, Scene, Shape, Switch, TimeSensor, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

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

ROUTE
event to
(1)
Sequencer
IntegerSequencer
set_fraction
SFFloat
then
 
 
 
Sequencer
IntegerSequencer
value_changed
SFInt32

ROUTE
event to
(2)
BoxSwitcher
Switch
whichChoice
SFInt32
Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
CircularPathPositionInterpolator
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
CircularPathPositionInterpolator
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
OrbitingView
Viewpoint
position
SFVec3f
Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
CenterFacingOrientationInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
CenterFacingOrientationInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
OrbitingView
Viewpoint
orientation
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/X3dForAdvancedModeling/Animation/BoxSwitchIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/Animation/BoxSwitch.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. -->