X3D Model Documentation: PhysicsBasedExplosionPrototype.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='titlecontent='PhysicsBasedExplosionPrototype.x3d'/>
  6            <meta name='descriptioncontent="A physics-based explosion model for 1/3 ton of TNT from the US Army's TNT Equivalency Model for modeling the attack on the USS COLE by Al-Qaida. Takes an input time as trigger parameter. Rings correspond to levels of damage on steel(unclass levels for representation purposes)."/>
  7            <meta name='creatorcontent='James Harney'/>
  8            <meta name='createdcontent='13 October 2001'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='referencecontent='http://www.foia.navy.mil/usscole/index.html'/>
 11            <meta name='referencecontent='http//www.fas.org/man/dod-101/navy/docs/es310/warheads/Warheads.htm'/>
 12            <meta name='referencecontent='http//www.fas.org/man/dod-101/navy/docs/es310/dam_crit/dam_crit.htm'/>
 13            <meta name='referencecontent='http//www.eqe.com/publications/revf94/blast.htm'/>
 14            <meta name='referencecontent='http//www.siggraph.org/education/materials/HyperGraph/animation/particle.htm'/>
 15            <meta name='subjectcontent='TNT Equivalency Based Explosion, VRML X3D'/>
 16            <meta name='identifiercontent='https://savage.nps.edu/Savage/Scenarios/UssColeTerroristAttack/PhysicsBasedExplosionPrototype.x3d'/>
 17            <meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
 18            <meta name='licensecontent='../../license.html'/>
 19       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: Explode, ExplosionClock, InnerRing, InnerRingInterp, InnerRingTrans, MiddleRing, MiddleRingInterp, MiddleRingTrans, OuterClock, OuterRing, OuterRingInterp, OuterRingTrans, TransInterp

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: TNTBasedExplosion
-->
 20       <Scene>
 21            <WorldInfo title='PhysicsBasedExplosionPrototype.x3d'/>
 22            <ProtoDeclare name='TNTBasedExplosionappinfo='Physics-based explosion model'>
 23                 <ProtoInterface>
 24                      <field name='startExplosiontype='SFTimeaccessType='inputOnly'/>
 25                 </ProtoInterface>
 26                 <ProtoBody>
 27                      <Group>
 28                           <Group>
 29 
                              <!-- ROUTE information for InnerRingTrans node:  [from TransInterp.value_changed to translation ] -->
                              <Transform DEF='InnerRingTrans'>
 30 
                                   <!-- ROUTE information for InnerRing node:  [from InnerRingInterp.value_changed to set_scale ] -->
                                   <Transform DEF='InnerRingscale='.01 .01 .01'>
 31                                          <Shape>
 32                                               <Sphere/>
 33                                               <Appearance>
 34                                                    <Material diffuseColor='.9333 .9333 0shininess='1'/>
 35                                               </Appearance>
 36                                          </Shape>
 37                                     </Transform>
 38                                </Transform>
 39 
                              <!-- ROUTE information for MiddleRingTrans node:  [from TransInterp.value_changed to translation ] -->
                              <Transform DEF='MiddleRingTrans'>
 40 
                                   <!-- ROUTE information for MiddleRing node:  [from MiddleRingInterp.value_changed to set_scale ] -->
                                   <Transform DEF='MiddleRingscale='.01 .01 .01'>
 41                                          <Shape>
 42                                               <Sphere/>
 43                                               <Appearance>
 44                                                    <Material diffuseColor='1 .2 0shininess='1transparency='.5'/>
 45                                               </Appearance>
 46                                          </Shape>
 47                                     </Transform>
 48                                </Transform>
 49 
                              <!-- ROUTE information for OuterRingTrans node:  [from TransInterp.value_changed to translation ] -->
                              <Transform DEF='OuterRingTrans'>
 50 
                                   <!-- ROUTE information for OuterRing node:  [from OuterRingInterp.value_changed to set_scale ] -->
                                   <Transform DEF='OuterRingscale='.01 .01 .01'>
 51                                          <Shape>
 52                                               <Sphere/>
 53                                               <Appearance>
 54                                                    <Material diffuseColor='.8 .8 .8shininess='.2transparency='.8'/>
 55                                               </Appearance>
 56                                          </Shape>
 57                                     </Transform>
 58                                </Transform>
 59                                <Sound maxBack='50000maxFront='50000'>
 60 
                                   <!-- ROUTE information for Explode node:  [from ExplosionClock.startTime to startTime ] -->
                                   <AudioClip DEF='Explodedescription='Explode!'   url=' "../../Scenarios/UssColeTerroristAttack/EXP03.wav" "EXP03.wav" "https://savage.nps.edu/Savage/Scenarios/UssColeTerroristAttack/EXP03.wav" '/>
 61                                </Sound>
 62                           </Group>
 63 
                         <!-- ROUTE information for ExplosionClock node:  [from startTime to OuterClock.startTime ] [from fraction_changed to InnerRingInterp.set_fraction ] [from fraction_changed to MiddleRingInterp.set_fraction ] [from startTime to Explode.startTime ] [from fraction_changed to TransInterp.set_fraction ] -->
                         <TimeSensor DEF='ExplosionClockcycleInterval='3'>
 64                                <IS>
 65                                     <connect nodeField='startTimeprotoField='startExplosion'/>
 66                                </IS>
 67                           </TimeSensor>
 68 
                         <!-- ROUTE information for OuterClock node:  [from ExplosionClock.startTime to startTime ] [from fraction_changed to OuterRingInterp.set_fraction ] -->
                         <TimeSensor DEF='OuterClockcycleInterval='10'/>
 69                           <!-- The explosion rings are based on the effects of approximately 1/3 ton of TNT. -->
 70 
                         <!-- ROUTE information for InnerRingInterp node:  [from ExplosionClock.fraction_changed to set_fraction ] [from value_changed to InnerRing.set_scale ] -->
                         <PositionInterpolator DEF='InnerRingInterpkey='0 0.1 1keyValue='0.01 0.01 0.01 9.975 9.975 9.975 0.01 0.01 0.01'/>
 71 
                         <!-- ROUTE information for MiddleRingInterp node:  [from ExplosionClock.fraction_changed to set_fraction ] [from value_changed to MiddleRing.set_scale ] -->
                         <PositionInterpolator DEF='MiddleRingInterpkey='0 0.1 1keyValue='0.01 0.01 0.01 12.635 12.635 12.635 0.01 0.01 0.01'/>
 72 
                         <!-- ROUTE information for OuterRingInterp node:  [from OuterClock.fraction_changed to set_fraction ] [from value_changed to OuterRing.set_scale ] -->
                         <PositionInterpolator DEF='OuterRingInterpkey='0 0.2 1keyValue='0.01 0.01 0.01 13.965 13.965 13.965 0.01 0.01 0.01'/>
 73 
                         <!-- ROUTE information for TransInterp node:  [from ExplosionClock.fraction_changed to set_fraction ] [from value_changed to InnerRingTrans.translation ] [from value_changed to MiddleRingTrans.translation ] [from value_changed to OuterRingTrans.translation ] -->
                         <PositionInterpolator DEF='TransInterpkey='0 1keyValue='0 0 0 0 4 1'/>
 74                      </Group>
 75                      < ROUTE  fromNode='ExplosionClock' fromField='startTime' toNode='OuterClock' toField='startTime'/>
 76                      < ROUTE  fromNode='ExplosionClock' fromField='fraction_changed' toNode='InnerRingInterp' toField='set_fraction'/>
 77                      < ROUTE  fromNode='ExplosionClock' fromField='fraction_changed' toNode='MiddleRingInterp' toField='set_fraction'/>
 78                      < ROUTE  fromNode='OuterClock' fromField='fraction_changed' toNode='OuterRingInterp' toField='set_fraction'/>
 79                      < ROUTE  fromNode='InnerRingInterp' fromField='value_changed' toNode='InnerRing' toField='set_scale'/>
 80                      < ROUTE  fromNode='MiddleRingInterp' fromField='value_changed' toNode='MiddleRing' toField='set_scale'/>
 81                      < ROUTE  fromNode='OuterRingInterp' fromField='value_changed' toNode='OuterRing' toField='set_scale'/>
 82                      < ROUTE  fromNode='ExplosionClock' fromField='startTime' toNode='Explode' toField='startTime'/>
 83                      < ROUTE  fromNode='ExplosionClock' fromField='fraction_changed' toNode='TransInterp' toField='set_fraction'/>
 84                      < ROUTE  fromNode='TransInterp' fromField='value_changed' toNode='InnerRingTrans' toField='translation'/>
 85                      < ROUTE  fromNode='TransInterp' fromField='value_changed' toNode='MiddleRingTrans' toField='translation'/>
 86                      < ROUTE  fromNode='TransInterp' fromField='value_changed' toNode='OuterRingTrans' toField='translation'/>
 87                 </ProtoBody>
 88            </ProtoDeclare>
 89            <NavigationInfo speed='10type='"FLY" "EXAMINE" "ANY"visibilityLimit='7000'/>
 90            <Background groundAngle='1.309groundColor='0.2 0.2 0.8 .2 .2 1.0skyAngle='1.309 1.571skyColor='0.0 0.2 0.7 0.0 0.5 1.0 1.0 1.0 1.0'/>
 91            <Viewpoint description='Watch the Explosionposition='0 0 12'/>
 92            <Anchor description='Example useparameter='"target=_blank"'   url=' "PhysicsBasedExplosionExample.x3d" "https://savage.nps.edu/Savage/Scenarios/UssColeTerroristAttack/PhysicsBasedExplosionExample.x3d" "PhysicsBasedExplosionExample.wrl" "https://savage.nps.edu/Savage/Scenarios/UssColeTerroristAttack/PhysicsBasedExplosionExample.wrl" '>
 93                 <Shape>
 94                      <Appearance>
 95                           <Material diffuseColor='0.8 0.4 0'/>
 96                      </Appearance>
 97                      <Text string='"PhysicsBasedExplosionPrototype.x3d" "is a Prototype declaration file." "" "For an example scene using the node" "click this text and view" "PhysicsBasedExplosionExample"'>
 98                           <FontStyle justify='"MIDDLE" "MIDDLE"size='0.8'/>
 99                      </Text>
100                 </Shape>
101            </Anchor>
102       </Scene>
103  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: Explode, ExplosionClock, InnerRing, InnerRingInterp, InnerRingTrans, MiddleRing, MiddleRingInterp, MiddleRingTrans, OuterClock, OuterRing, OuterRingInterp, OuterRingTrans, TransInterp

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: TNTBasedExplosion
-->
X3D Tooltips element index: Anchor, Appearance, AudioClip, Background, connect, field, FontStyle, Group, head, IS, Material, meta, NavigationInfo, PositionInterpolator, ProtoBody, ProtoDeclare, ProtoInterface, ROUTE, Scene, Shape, Sound, Sphere, Text, TimeSensor, Transform, Viewpoint, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table entries with 12 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.

ExplosionClock
TimeSensor
startTime
SFTime

ROUTE
event to
(1)
OuterClock
TimeSensor
startTime
SFTime
then
 
 
 
OuterClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
OuterRingInterp
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
OuterRingInterp
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(3)
OuterRing
Transform
set_scale
SFVec3f
ExplosionClock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(2)
InnerRing
Transform
set_scale
SFVec3f
ExplosionClock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(2)
MiddleRing
Transform
set_scale
SFVec3f
ExplosionClock
TimeSensor
startTime
SFTime

ROUTE
event to
(1)
Explode
AudioClip
startTime
SFTime
ExplosionClock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(2)
InnerRingTrans
Transform
translation
SFVec3f
  then
 
 
 
TransInterp
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
MiddleRingTrans
Transform
translation
SFVec3f
  then
 
 
 
TransInterp
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
OuterRingTrans
Transform
translation
SFVec3f

line 92
Anchor
description='Example use' 
User-interaction hint for this node. 

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/Scenarios/UssColeTerroristAttack/PhysicsBasedExplosionPrototypeIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/Scenarios/UssColeTerroristAttack/PhysicsBasedExplosionPrototype.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoDeclare name='ProtoName'> <field name='fieldName'/> </ProtoDeclare> -->

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