X3D Model Documentation: IntegerTriggerPumpHouse.x3d go to online X3D Example Archives model page

  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='Interactive' version='3.3'  xmlns:xsd='https://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'>
  4       <head>
  5            <meta name='title' content=' IntegerTriggerPumpHouse.x3d '/>
  6            <meta name='description' content='An IntegerTrigger node controls the display of colored cones near the pump house.'/>
  7            <meta name='creator' content='Todd Gagnon and Mark A. Boyd'/>
  8            <meta name='translator' content=' Xeena VRML importer, X3D-Edit 3.1, https://www.web3d.org/x3d/content/README.X3D-Edit.html '/>
  9            <meta name='created' content='8 June 1998'/>
 10            <meta name='translated' content='20 December 2002'/>
 11            <meta name='modified' content='20 October 2019'/>
 12            <meta name=' warning ' content=' needs debugging '/>
 13            <meta name='reference' content=' KelpTank.x3d '/>
 14            <meta name='reference' content=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/PumpHouse.x3d '/>
 15            <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/IntegerTriggerPumpHouse.x3d '/>
 16            <meta name='generator' content='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 17            <meta name='generator' content=' Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html '/>
 18            <meta name='license' content='../license.html'/>
 19       </head>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: b1, CylinderRod, EyeCandy, Filter1, Filter2, Filter3, PistonClock, PistonPath, PistonTransform, PumpHouseAppearance, PumpTouched, Rocker1Path, Rocker1Rotation, Rocker2Path, Rocker2Rotation, RockerArm1, RockerArm2, Rotator, Switcher, Timer, Touch1, Touch2, Touch3

Index for Viewpoint node: Viewpoint_1

-->
 20       <Scene>
 21            <WorldInfo title='IntegerTriggerPumpHouse.x3d'/>
 22            <Background skyColor='1 1 1'/>
 23            <Viewpoint description='Book View' orientation='-0.969 0.239 0.056 0.13' position='1.66 1.34 5.95'/>
 24            <Group>
 25                 <Transform scale='0.91 0.6 0.3' translation='0.8 -0.65 0.5'>
 26                      <Shape>
 27                           <Appearance>
 28                                <Material diffuseColor='0.749 0.694 0.651'/>
 29                           </Appearance>
 30                           <Cylinder bottom='false' top='false'/>
 31                      </Shape>
 32                 </Transform>
 33                 <Group>
 34                      <Shape>
 35 
                         <!-- Appearance PumpHouseAppearance is a DEF node that has 6 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6 -->
                         <Appearance DEF='PumpHouseAppearance'>
 36                                <Material diffuseColor='0.82 0.78 0.74'/>
 37                           </Appearance>
 38                           <IndexedFaceSet coordIndex='0 1 5 4 -1 5 1 2 6 -1 6 2 3 7 -1 3 0 4 7 -1 1 12 13 2 -1 2 13 14 -1 12 15 16 13 -1 15 0 3 16 -1 16 3 17 -1 9 5 6 10 -1 8 9 10 11 -1 4 8 11 7 -1 4 5 9 8 -1 11 10 6 7 -1 3 2 14 17 -1 13 16 17 14 -1'>
 39                                <Coordinate point='0.0 0.0 0.0 2.0 0.0 0.0 2.0 1.75 0.0 0.0 1.75 0.0 0.625 0.75 0.0 1.0 0.75 0.0 1.0 1.6 0.0 0.625 1.6 0.0 0.625 0.75 -0.65 1.0 0.75 -0.65 1.0 1.6 -0.65 0.625 1.6 -0.65 2.0 0.0 -2.7 2.0 1.75 -2.7 2.0 2.5 -1.0 0.0 0.0 -2.7 0.0 1.75 -2.7 0.0 2.5 -1.0'/>
 40                           </IndexedFaceSet>
 41                      </Shape>
 42 
                    <!-- ROUTE information for PumpTouched node:  [this TouchSensor node is an author-provided hint for peer geometry] -->
                    <TouchSensor DEF='PumpTouched' description='touch to activate'/>
 43                 </Group>
 44            </Group>
 45            <Group>
 46                 <Transform scale='0.5 0.5 0.5' translation='1.0 1.1 -1.5'>
 47 
                    <!-- ROUTE information for PistonTransform node:  [from PistonPath.value_changed to set_translation ] -->
                    <Transform DEF='PistonTransform'>
 48                           <Transform scale='1.8 1.2 0.6' translation='0.0 -0.2 0.0'>
 49                                <Shape>
 50                                     <Appearance>
 51                                          <Material diffuseColor='0.427 0.427 0.42'/>
 52                                     </Appearance>
 53                                     <Cylinder height='1.0' radius='0.98'/>
 54                                </Shape>
 55                           </Transform>
 56 
                         <!-- Transform CylinderRod is a DEF node that has 1 USE node: USE_1 -->
                         <Transform DEF='CylinderRod' rotation='0.0 0.0 -1.0 0.523599' translation='-0.25 0.75 0.0'>
 57                                <Shape>
 58                                     <Appearance USE='PumpHouseAppearance'/>
 59                                     <Cylinder height='1.0' radius='0.1'/>
 60                                </Shape>
 61                           </Transform>
 62                           <Transform rotation='0.0 0.0 1.0 1.047198' translation='1.0 0.6 0.0'>
 63                                <Transform USE='CylinderRod'/>
 64                           </Transform>
 65                           <Transform translation='0.0 1.2 0.0'>
 66                                <Shape>
 67                                     <Appearance USE='PumpHouseAppearance'/>
 68                                     <Sphere radius='0.15'/>
 69                                </Shape>
 70                           </Transform>
 71 
                         <!-- ROUTE information for RockerArm1 node:  [from Rocker1Path.value_changed to set_translation ] [from Rocker1Rotation.value_changed to set_rotation ] -->
                         <Transform DEF='RockerArm1' center='0.0 -0.4 0.0'>
 72                                <Shape>
 73                                     <Appearance USE='PumpHouseAppearance'/>
 74                                     <Cylinder height='1.8' radius='0.1'/>
 75                                </Shape>
 76                                <Transform translation='0.0 0.95 0.0'>
 77                                     <Shape>
 78                                          <Appearance USE='PumpHouseAppearance'/>
 79                                          <Sphere radius='0.15'/>
 80                                     </Shape>
 81                                </Transform>
 82 
                              <!-- ROUTE information for Rocker1Path node:  [from PistonClock.fraction_changed to set_fraction ] [from value_changed to RockerArm1.set_translation ] -->
                              <PositionInterpolator DEF='Rocker1Path' key='0.0 0.3 0.32 0.5 0.75 1.0' keyValue='0.0 2.0 -0.25 0.0 1.8 -0.35 0.0 1.8 -0.35 0.0 2.0 -0.25 0.0 2.0 -0.12 0.0 2.0 -0.25'/>
 83 
                              <!-- ROUTE information for Rocker1Rotation node:  [from PistonClock.fraction_changed to set_fraction ] [from value_changed to RockerArm1.set_rotation ] -->
                              <OrientationInterpolator DEF='Rocker1Rotation' key='0.0 0.3 0.32 0.5 0.75 1.0' keyValue='-1.0 0.0 0.0 0.523599 -1.0 0.0 0.0 1.0471976 -1.0 0.0 0.0 1.0471976 -1.0 0.0 0.0 0.523599 -1.0 0.0 0.0 0.2617994 -1.0 0.0 0.0 0.523599'/>
 84                           </Transform>
 85 
                         <!-- ROUTE information for RockerArm2 node:  [from Rocker2Path.value_changed to set_translation ] [from Rocker2Rotation.value_changed to set_rotation ] -->
                         <Transform DEF='RockerArm2' center='0.0 0.7 0.0'>
 86                                <Shape>
 87                                     <Appearance USE='PumpHouseAppearance'/>
 88                                     <Cylinder height='1.8' radius='0.1'/>
 89                                </Shape>
 90                                <Transform translation='0.0 -0.95 0.0'>
 91                                     <Shape>
 92                                          <Appearance USE='PumpHouseAppearance'/>
 93                                          <Sphere radius='0.15'/>
 94                                     </Shape>
 95                                </Transform>
 96 
                              <!-- ROUTE information for Rocker2Path node:  [from PistonClock.fraction_changed to set_fraction ] [from value_changed to RockerArm2.set_translation ] -->
                              <PositionInterpolator DEF='Rocker2Path' key='0.0 0.3 0.32 0.5 0.75 1.0' keyValue='0.0 1.95 -1.0 0.0 1.2 -1.6 0.0 1.2 -1.6 0.0 1.95 -1.0 0.0 2.2 -0.65 0.0 1.95 -1.0'/>
 97 
                              <!-- ROUTE information for Rocker2Rotation node:  [from PistonClock.fraction_changed to set_fraction ] [from value_changed to RockerArm2.set_rotation ] -->
                              <OrientationInterpolator DEF='Rocker2Rotation' key='0.0 0.3 0.32 0.5 0.75 1.0' keyValue='1.0 0.0 0.0 0.523599 1.0 0.0 0.0 0.4 1.0 0.0 0.0 0.4 1.0 0.0 0.0 0.523599 1.0 0.0 0.0 1.570796 1.0 0.0 0.0 0.523599'/>
 98                           </Transform>
 99                      </Transform>
100 
                    <!-- ROUTE information for PistonClock node:  [from fraction_changed to PistonPath.set_fraction ] [from fraction_changed to Rocker1Path.set_fraction ] [from fraction_changed to Rocker1Rotation.set_fraction ] [from fraction_changed to Rocker2Path.set_fraction ] [from fraction_changed to Rocker2Rotation.set_fraction ] -->
                    <TimeSensor DEF='PistonClock' cycleInterval='5.5' loop='true' enabled='true'/>
101 
                    <!-- ROUTE information for PistonPath node:  [from PistonClock.fraction_changed to set_fraction ] [from value_changed to PistonTransform.set_translation ] -->
                    <PositionInterpolator DEF='PistonPath' key='0.0 0.3 0.32 0.5 0.75 1.0' keyValue='-0.4 -2.3 4.0 -0.4 -1.5 4.0 -0.4 -1.5 4.0 -0.4 -2.3 4.0 -0.4 -3.3 4.0 -0.4 -2.3 4.0'/>
102 
                    <!-- ROUTE information for Timer node:  [from fraction_changed to Rotator.set_fraction ] -->
                    <TimeSensor DEF='Timer' cycleInterval='2' loop='true' startTime='1' enabled='true'/>
103 
                    <!-- ROUTE information for Rotator node:  [from Timer.fraction_changed to set_fraction ] [from value_changed to EyeCandy.rotation ] -->
                    <OrientationInterpolator DEF='Rotator' key='0 .33 .67 1' keyValue='0 0 1 0 0 0 1 2 0 0 1 4 0 0 1 6.28'/>
104 
                    <!-- ROUTE information for Filter1 node:  [from Touch1.isActive to set_boolean ] [from triggerValue to Switcher.whichChoice ] -->
                    <IntegerTrigger DEF='Filter1' integerKey='1'/>
105 
                    <!-- ROUTE information for Filter2 node:  [from Touch2.isActive to set_boolean ] [from triggerValue to Switcher.whichChoice ] -->
                    <IntegerTrigger DEF='Filter2' integerKey='2'/>
106 
                    <!-- ROUTE information for Filter3 node:  [from Touch3.isActive to set_boolean ] [from triggerValue to Switcher.whichChoice ] -->
                    <IntegerTrigger DEF='Filter3' integerKey='0'/>
107                      <Transform translation='3 2 4'>
108 
                         <!-- ROUTE information for EyeCandy node:  [from Rotator.value_changed to rotation ] -->
                         <Transform DEF='EyeCandy'>
109 
                              <!-- ROUTE information for Switcher node:  [from Filter1.triggerValue to whichChoice ] [from Filter2.triggerValue to whichChoice ] [from Filter3.triggerValue to whichChoice ] -->
                              <Switch DEF='Switcher' whichChoice='0'>
110                                     <Transform rotation='0 0 1 3.14' translation='0 -1.5 .5'>
111                                          <Shape>
112                                               <Appearance>
113                                                    <Material diffuseColor='1 0 0'/>
114                                               </Appearance>
115 
                                             <!-- Cone b1 is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                             <Cone DEF='b1' bottomRadius='.5' height='1'/>
116                                          </Shape>
117 
                                        <!-- ROUTE information for Touch1 node:  [from isActive to Filter1.set_boolean ] -->
                                        <TouchSensor DEF='Touch1' description='touch to activate'/>
118                                     </Transform>
119                                     <Transform rotation='0 0 1 -1.05' translation='1.3 .75 0'>
120                                          <Shape>
121                                               <Appearance>
122                                                    <Material diffuseColor='0 1 1'/>
123                                               </Appearance>
124                                               <Cone USE='b1'/>
125                                          </Shape>
126 
                                        <!-- ROUTE information for Touch2 node:  [from isActive to Filter2.set_boolean ] -->
                                        <TouchSensor DEF='Touch2' description='touch to activate'/>
127                                     </Transform>
128                                     <Transform rotation='0 0 1 1.05' translation='-1.3 .75 -.5'>
129                                          <Shape>
130                                               <Appearance>
131                                                    <Material diffuseColor='1 1 0'/>
132                                               </Appearance>
133                                               <Cone USE='b1'/>
134                                          </Shape>
135 
                                        <!-- ROUTE information for Touch3 node:  [from isActive to Filter3.set_boolean ] -->
                                        <TouchSensor DEF='Touch3' description='touch to activate'/>
136                                     </Transform>
137                                </Switch>
138                           </Transform>
139                      </Transform>
140                 </Transform>
141            </Group>
142            < ROUTE  fromNode='Touch1' fromField='isActive' toNode='Filter1' toField='set_boolean'/>
143            < ROUTE  fromNode='Touch2' fromField='isActive' toNode='Filter2' toField='set_boolean'/>
144            < ROUTE  fromNode='Touch3' fromField='isActive' toNode='Filter3' toField='set_boolean'/>
145            < ROUTE  fromNode='Filter1' fromField='triggerValue' toNode='Switcher' toField='whichChoice'/>
146            < ROUTE  fromNode='Filter2' fromField='triggerValue' toNode='Switcher' toField='whichChoice'/>
147            < ROUTE  fromNode='Filter3' fromField='triggerValue' toNode='Switcher' toField='whichChoice'/>
148            < ROUTE  fromNode='Timer' fromField='fraction_changed' toNode='Rotator' toField='set_fraction'/>
149            < ROUTE  fromNode='Rotator' fromField='value_changed' toNode='EyeCandy' toField='rotation'/>
150            < ROUTE  fromNode='PistonClock' fromField='fraction_changed' toNode='PistonPath' toField='set_fraction'/>
151            < ROUTE  fromNode='PistonPath' fromField='value_changed' toNode='PistonTransform' toField='set_translation'/>
152            < ROUTE  fromNode='PistonClock' fromField='fraction_changed' toNode='Rocker1Path' toField='set_fraction'/>
153            < ROUTE  fromNode='Rocker1Path' fromField='value_changed' toNode='RockerArm1' toField='set_translation'/>
154            < ROUTE  fromNode='PistonClock' fromField='fraction_changed' toNode='Rocker1Rotation' toField='set_fraction'/>
155            < ROUTE  fromNode='Rocker1Rotation' fromField='value_changed' toNode='RockerArm1' toField='set_rotation'/>
156            < ROUTE  fromNode='PistonClock' fromField='fraction_changed' toNode='Rocker2Path' toField='set_fraction'/>
157            < ROUTE  fromNode='Rocker2Path' fromField='value_changed' toNode='RockerArm2' toField='set_translation'/>
158            < ROUTE  fromNode='PistonClock' fromField='fraction_changed' toNode='Rocker2Rotation' toField='set_fraction'/>
159            < ROUTE  fromNode='Rocker2Rotation' fromField='value_changed' toNode='RockerArm2' toField='set_rotation'/>
160       </Scene>
161  </X3D>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: b1, CylinderRod, EyeCandy, Filter1, Filter2, Filter3, PistonClock, PistonPath, PistonTransform, PumpHouseAppearance, PumpTouched, Rocker1Path, Rocker1Rotation, Rocker2Path, Rocker2Rotation, RockerArm1, RockerArm2, Rotator, Switcher, Timer, Touch1, Touch2, Touch3

Index for Viewpoint node: Viewpoint_1

-->

X3D Tooltips element index: to top Appearance, Background, Cone, Coordinate, Cylinder, Group, head, IndexedFaceSet, IntegerTrigger, Material, meta, OrientationInterpolator, PositionInterpolator, ROUTE, Scene, Shape, Sphere, Switch, 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 10 ROUTE connections and 4 TouchSensor hover hints, showing X3D event-model relationships for this scene.

Each row with a ROUTE statement shows an event cascade that may occur during a single timestamp interval between frame renderings, performed as part of the X3D execution model.

PistonClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
PistonPath
PositionInterpolator
set_fraction
SFFloat
then
from
same
node
PistonPath
PositionInterpolator
value_changed
SFVec3f
→
ROUTE
event to
(2)
PistonTransform
Transform
set_translation
SFVec3f
PistonClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
Rocker1Path
PositionInterpolator
set_fraction
SFFloat
then
from
same
node
Rocker1Path
PositionInterpolator
value_changed
SFVec3f
→
ROUTE
event to
(2)
RockerArm1
Transform
set_translation
SFVec3f
PistonClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
Rocker1Rotation
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
Rocker1Rotation
OrientationInterpolator
value_changed
SFRotation
→
ROUTE
event to
(2)
RockerArm1
Transform
set_rotation
SFRotation
PistonClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
Rocker2Path
PositionInterpolator
set_fraction
SFFloat
then
from
same
node
Rocker2Path
PositionInterpolator
value_changed
SFVec3f
→
ROUTE
event to
(2)
RockerArm2
Transform
set_translation
SFVec3f
PistonClock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
Rocker2Rotation
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
Rocker2Rotation
OrientationInterpolator
value_changed
SFRotation
→
ROUTE
event to
(2)
RockerArm2
Transform
set_rotation
SFRotation

Timer
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
Rotator
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
Rotator
OrientationInterpolator
value_changed
SFRotation
→
ROUTE
event to
(2)
EyeCandy
Transform
rotation
SFRotation

PumpTouched
TouchSensor
description='touch to activate' 
This TouchSensor node is an author-provided hover hint for peer geometry.
No direct ROUTE connection found for events to/from this node. 

Touch1
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
Filter1
IntegerTrigger
set_boolean
SFBool
then
from
same
node
Filter1
IntegerTrigger
triggerValue
SFInt32
→
ROUTE
event to
(2)
Switcher
Switch
whichChoice
SFInt32

Touch2
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
Filter2
IntegerTrigger
set_boolean
SFBool
then
from
same
node
Filter2
IntegerTrigger
triggerValue
SFInt32
→
ROUTE
event to
(2)
Switcher
Switch
whichChoice
SFInt32

Touch3
TouchSensor
isActive
SFBool
→
ROUTE
event to
(1)
Filter3
IntegerTrigger
set_boolean
SFBool
then
from
same
node
Filter3
IntegerTrigger
triggerValue
SFInt32
→
ROUTE
event to
(2)
Switcher
Switch
whichChoice
SFInt32

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

-->
go to online X3D Example Archives model page <!-- Online at
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/IntegerTriggerPumpHouseIndex.html -->
<!-- SourceForge version control Version control at    
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/IntegerTriggerPumpHouse.x3d -->

<!-- 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)
-->

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