X3D Model Documentation: MultipleTimerExplodingBuildingExample.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='title' content='MultipleTimerExplodingBuildingExample.x3d'/>
  6            <meta name='description' content='A simple exploding structure, experimenting with the "Hello World" of explosions - click on the silver chimney to trigger the explosion.'/>
  7            <meta name='creator' content='Don Brutzman'/>
  8            <meta name='created' content='28 September 2002'/>
  9            <meta name='modified' content='28 November 2019'/>
 10            <meta name='Image' content='MultipleTimerExplodingBuildingExampleIntermediateAnimation.png'/>
 11            <meta name='MovingImage' content='MultipleTimerExplodingBuildingVideo.mov'/>
 12            <meta name='reference' content='Exploding building schematic layout diagram:'/>
 13            <meta name='reference' content='ExplodingBuildingLayout.pdf'/>
 14            <meta name='reference' content='ExplodingBuildingLargeExample.wrl'/>
 15            <meta name='reference' content='Rotation calculations performed using the Dizzy utility from Vapour Technologies by James Smith.'/>
 16            <meta name='reference' content='http://www.vapourtech.com'/>
 17            <meta name='reference' content='DIS-Java-VRML Working Group'/>
 18            <meta name='reference' content='https://www.web3d.org/WorkingGroups/vrtp/dis-java-vrml'/>
 19            <meta name='identifier' content='https://savage.nps.edu/Savage/Tools/Explosions/MultipleTimerExplodingBuildingExample.x3d'/>
 20            <meta name='generator' content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 21            <meta name='license' content='../../license.html'/>
 22       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: CoordinateAxes, FirstFloorCeiling, FirstFloorWallEast, FirstFloorWallMaterial, FirstFloorWallNorth, FirstFloorWallSouth, FirstFloorWallWest, Floor, FloorMaterial, LongWall, RootEspduTransform, SecondFloorCeiling, SecondFloorWallEast, SecondFloorWallMaterial, SecondFloorWallNorth, SecondFloorWallSouth, SecondFloorWallWest, ShortWall, SmokeStack, SmokeStackTouch

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: Exploder
-->
 23       <Scene>
 24            <WorldInfo title='MultipleTimerExplodingBuildingExample.x3d'/>
 25            <ExternProtoDeclare name='Exploder' appinfo='Prototype to explode different pieces and parts in different ways.'   url=' "MultipleTimerExplodingBuildingPrototype.x3d#Exploder" "https://savage.nps.edu/Savage/Tools/Explosions/MultipleTimerExplodingBuildingPrototype.x3d#Exploder" "MultipleTimerExplodingBuildingPrototype.wrl#Exploder" "https://savage.nps.edu/Savage/Tools/Explosions/MultipleTimerExplodingBuildingPrototype.wrl#Exploder" '>
 26                 <field name='geometry' type='SFNode' accessType='initializeOnly'
                appinfo='geometry node, to be used inside a Shape'/>
 27                 <field name='material' type='SFNode' accessType='initializeOnly'
                appinfo='Material node for this geometry, to be used inside a Shape'/>
 28                 <field name='initialPosition' type='SFVec3f' accessType='initializeOnly'
                appinfo='starting point'/>
 29                 <field name='finalPosition' type='SFVec3f' accessType='initializeOnly'
                appinfo='finish point'/>
 30                 <field name='initialOrientation' type='SFRotation' accessType='initializeOnly'
                appinfo='starting point orientation'/>
 31                 <field name='finalOrientation' type='SFRotation' accessType='initializeOnly'
                appinfo='finish point orientation'/>
 32                 <field name='set_fraction' type='SFFloat' accessType='inputOnly'
                appinfo='animation input'/>
 33                 <field name='startTime' type='SFTime' accessType='inputOutput'
                appinfo='animation trigger'/>
 34            </ExternProtoDeclare>
 35            <!-- ==================== -->
 36            <!-- Root Transform will be replaced by EspduTransfor when ready to network -->
 37            <Transform DEF='RootEspduTransform'>
 38                 <Viewpoint description='Hello Exploding Building' orientation='1 0 0 -0.3' position='1 20 50'/>
 39                 <DirectionalLight direction='-0.57735 -0.57735 0.57735'/>
 40                 <Transform scale='10 10 10'>
 41                      <Inline DEF='CoordinateAxes'   url=' "../../../Savage/Tools/Authoring/CoordinateAxes.x3d" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../../Savage/Tools/Authoring/CoordinateAxes.wrl" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" '/>
 42                 </Transform>
 43                 <Shape>
 44 
                    <!-- Box Floor is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                    <Box DEF='Floor' size='14 0.1 8'/>
 45                      <Appearance>
 46 
                         <!-- Material FloorMaterial is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                         <Material DEF='FloorMaterial' diffuseColor='0 0.3 0.3' transparency='0.3'/>
 47                      </Appearance>
 48                 </Shape>
 49 
               <!-- ROUTE information for FirstFloorCeiling node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='FirstFloorCeiling'>
 50                      <fieldValue name='geometry'>
 51                           <Box USE='Floor'/>
 52                      </fieldValue>
 53                      <fieldValue name='material'>
 54                           <Material USE='FloorMaterial'/>
 55                      </fieldValue>
 56                      <fieldValue name='initialPosition' value='0 3 0'/>
 57                      <fieldValue name='finalPosition' value='14 0.05 14'/>
 58                      <fieldValue name='finalOrientation' value='0.48 0 0.88 3.14'/>
 59                 </ProtoInstance>
 60 
               <!-- ROUTE information for FirstFloorWallEast node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='FirstFloorWallEast'>
 61                      <fieldValue name='geometry'>
 62 
                         <!-- Box LongWall is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                         <Box DEF='LongWall' size='14 3 0.1'/>
 63                      </fieldValue>
 64                      <fieldValue name='material'>
 65 
                         <!-- Material FirstFloorWallMaterial is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                         <Material DEF='FirstFloorWallMaterial' diffuseColor='0.4 0.4 0' transparency='0.3'/>
 66                      </fieldValue>
 67                      <fieldValue name='initialPosition' value='0 1.5 3.95'/>
 68                      <fieldValue name='finalPosition' value='0 0.05 10'/>
 69                      <fieldValue name='finalOrientation' value='0.96 0.2 -0.19 1.61'/>
 70                 </ProtoInstance>
 71 
               <!-- ROUTE information for FirstFloorWallNorth node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='FirstFloorWallNorth'>
 72                      <fieldValue name='geometry'>
 73 
                         <!-- Box ShortWall is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                         <Box DEF='ShortWall' size='0.1 3 8'/>
 74                      </fieldValue>
 75                      <fieldValue name='material'>
 76                           <Material USE='FirstFloorWallMaterial'/>
 77                      </fieldValue>
 78                      <fieldValue name='initialPosition' value='7 1.5 0'/>
 79                      <fieldValue name='finalPosition' value='15 0.05 2'/>
 80                      <fieldValue name='finalOrientation' value='0 0 1 -1.57'/>
 81                 </ProtoInstance>
 82 
               <!-- ROUTE information for FirstFloorWallWest node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='FirstFloorWallWest'>
 83                      <fieldValue name='geometry'>
 84                           <Box USE='LongWall'/>
 85                      </fieldValue>
 86                      <fieldValue name='material'>
 87                           <Material USE='FirstFloorWallMaterial'/>
 88                      </fieldValue>
 89                      <fieldValue name='initialPosition' value='0 1.5 -3.95'/>
 90                      <fieldValue name='finalPosition' value='0 0.05 -12'/>
 91                      <fieldValue name='finalOrientation' value='0.96 0.2 -0.19 1.61'/>
 92                 </ProtoInstance>
 93 
               <!-- ROUTE information for FirstFloorWallSouth node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='FirstFloorWallSouth'>
 94                      <fieldValue name='geometry'>
 95                           <Box USE='ShortWall'/>
 96                      </fieldValue>
 97                      <fieldValue name='material'>
 98                           <Material USE='FirstFloorWallMaterial'/>
 99                      </fieldValue>
100                      <fieldValue name='initialPosition' value='-7 1.5 0'/>
101                      <fieldValue name='finalPosition' value='-10 0.05 1'/>
102                      <fieldValue name='finalOrientation' value='-0.32 -0.32 0.89 1.69'/>
103                 </ProtoInstance>
104 
               <!-- ROUTE information for SecondFloorCeiling node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='SecondFloorCeiling'>
105                      <fieldValue name='geometry'>
106                           <Box USE='Floor'/>
107                      </fieldValue>
108                      <fieldValue name='material'>
109                           <Material USE='FloorMaterial'/>
110                      </fieldValue>
111                      <fieldValue name='initialPosition' value='0 6 0'/>
112                      <fieldValue name='finalPosition' value='-12 0.05 -10'/>
113                      <fieldValue name='finalOrientation' value='0.84 0 0.54 3.14'/>
114                 </ProtoInstance>
115 
               <!-- ROUTE information for SecondFloorWallEast node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='SecondFloorWallEast'>
116                      <fieldValue name='geometry'>
117                           <Box USE='LongWall'/>
118                      </fieldValue>
119                      <fieldValue name='material'>
120 
                         <!-- Material SecondFloorWallMaterial is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                         <Material DEF='SecondFloorWallMaterial' diffuseColor='0.8 0.8 0' transparency='0.3'/>
121                      </fieldValue>
122                      <fieldValue name='initialPosition' value='0 4.5 3.95'/>
123                      <fieldValue name='finalPosition' value='5 0.05 20'/>
124                      <fieldValue name='finalOrientation' value='0.89 -0.32 0.32 1.69'/>
125                 </ProtoInstance>
126 
               <!-- ROUTE information for SecondFloorWallNorth node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='SecondFloorWallNorth'>
127                      <fieldValue name='geometry'>
128                           <Box USE='ShortWall'/>
129                      </fieldValue>
130                      <fieldValue name='material'>
131                           <Material USE='SecondFloorWallMaterial'/>
132                      </fieldValue>
133                      <fieldValue name='initialPosition' value='7 4.5 0'/>
134                      <fieldValue name='finalPosition' value='22 0.05 -6'/>
135                      <fieldValue name='finalOrientation' value='-0.32 -0.32 0.89 1.69'/>
136                 </ProtoInstance>
137 
               <!-- ROUTE information for SecondFloorWallWest node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='SecondFloorWallWest'>
138                      <fieldValue name='geometry'>
139                           <Box USE='LongWall'/>
140                      </fieldValue>
141                      <fieldValue name='material'>
142                           <Material USE='SecondFloorWallMaterial'/>
143                      </fieldValue>
144                      <fieldValue name='initialPosition' value='0 4.5 -3.95'/>
145                      <fieldValue name='finalPosition' value='5 0.05 -19'/>
146                      <fieldValue name='finalOrientation' value='0.96 0.2 -0.19 1.61'/>
147                 </ProtoInstance>
148 
               <!-- ROUTE information for SecondFloorWallSouth node:  [from SmokeStackTouch.touchTime to startTime ] -->
               <ProtoInstance name='Exploder' DEF='SecondFloorWallSouth'>
149                      <fieldValue name='geometry'>
150                           <Box USE='ShortWall'/>
151                      </fieldValue>
152                      <fieldValue name='material'>
153                           <Material USE='SecondFloorWallMaterial'/>
154                      </fieldValue>
155                      <fieldValue name='initialPosition' value='-7 4.5 0'/>
156                      <fieldValue name='finalPosition' value='-10 0.05 11'/>
157                      <fieldValue name='finalOrientation' value='-0.28 0.28 -0.92 1.66'/>
158                 </ProtoInstance>
159                 <Group>
160 
                    <!-- ROUTE information for SmokeStack node:  [from SmokeStackTouch.touchTime to startTime ] -->
                    <ProtoInstance name='Exploder' DEF='SmokeStack'>
161                           <fieldValue name='geometry'>
162                                <Cylinder bottom='false' height='9' radius='0.5'/>
163                           </fieldValue>
164                           <fieldValue name='material'>
165                                <Material diffuseColor='0.4 0.4 0.4' shininess='0.8'/>
166                           </fieldValue>
167                           <fieldValue name='initialPosition' value='-4 4.51 2'/>
168                           <fieldValue name='finalPosition' value='-15 0.4 2'/>
169                           <fieldValue name='finalOrientation' value='0 0 1 1.57'/>
170                      </ProtoInstance>
171 
172                 </Group>
173                 <Background skyColor='0.5 0.5 0.5'/>
174            </Transform>
175            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='FirstFloorCeiling' toField='startTime'/>
176            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='FirstFloorWallEast' toField='startTime'/>
177            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='FirstFloorWallNorth' toField='startTime'/>
178            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='FirstFloorWallWest' toField='startTime'/>
179            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='FirstFloorWallSouth' toField='startTime'/>
180            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='SecondFloorCeiling' toField='startTime'/>
181            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='SecondFloorWallEast' toField='startTime'/>
182            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='SecondFloorWallNorth' toField='startTime'/>
183            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='SecondFloorWallWest' toField='startTime'/>
184            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='SecondFloorWallSouth' toField='startTime'/>
185            < ROUTE  fromNode='SmokeStackTouch' fromField='touchTime' toNode='SmokeStack' toField='startTime'/>
186       </Scene>
187  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: CoordinateAxes, FirstFloorCeiling, FirstFloorWallEast, FirstFloorWallMaterial, FirstFloorWallNorth, FirstFloorWallSouth, FirstFloorWallWest, Floor, FloorMaterial, LongWall, RootEspduTransform, SecondFloorCeiling, SecondFloorWallEast, SecondFloorWallMaterial, SecondFloorWallNorth, SecondFloorWallSouth, SecondFloorWallWest, ShortWall, SmokeStack, SmokeStackTouch

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: Exploder
-->
X3D Tooltips element index: Appearance, Background, Box, Cylinder, DirectionalLight, ExternProtoDeclare, field, fieldValue, Group, head, Inline, Material, meta, ProtoInstance, ROUTE, Scene, Shape, 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.

This node has 11 outgoing ROUTEs, which is greater than $maxROUTEdepth=8
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
FirstFloorCeiling
ProtoInstance
startTime
SFTime
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
FirstFloorWallEast
ProtoInstance
startTime
SFTime
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
FirstFloorWallNorth
ProtoInstance
startTime
SFTime
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
FirstFloorWallWest
ProtoInstance
startTime
SFTime
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
FirstFloorWallSouth
ProtoInstance
startTime
SFTime
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
SecondFloorCeiling
ProtoInstance
startTime
SFTime
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
SecondFloorWallEast
ProtoInstance
startTime
SFTime
SmokeStackTouch
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
SecondFloorWallNorth
ProtoInstance
startTime
SFTime

      FirstFloorCeiling
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      FirstFloorWallEast
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      FirstFloorWallNorth
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      FirstFloorWallSouth
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      FirstFloorWallWest
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      SecondFloorCeiling
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      SecondFloorWallEast
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      SecondFloorWallNorth
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      SecondFloorWallSouth
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      SecondFloorWallWest
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      SmokeStack
ProtoInstance
Exploder
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

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://savage.nps.edu/Savage/Tools/Explosions/MultipleTimerExplodingBuildingExampleIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/Tools/Explosions/MultipleTimerExplodingBuildingExample.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)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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