X3D Model Documentation: HotAirBalloon.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='HotAirBalloon.x3d'/>
  6            <meta name='creatorcontent='Mike Hunsberger'/>
  7            <meta name='descriptioncontent='Hot Air Balloon that fires and lifts off from the pad. The balloon is built by scaling a circle around a straight spline.'/>
  8            <meta name='createdcontent='3 September 2000'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='identifiercontent='https://savage.nps.edu/Savage/AircraftMiscellaneous/Balloon/HotAirBalloon.x3d'/>
 11            <meta name='licensecontent='../../license.html'/>
 12       </head>
<!--

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

<!-- to top Index for DEF nodes: Balloon, BalloonClock, BalloonPath, Fire, FireClock, FirePath

Index for Viewpoint node: Viewpoint_1
-->
 13       <Scene>
 14            <!-- Computational cost of Extrusion compared to IndexedFaceSet: quicker to download, takes time to calculate polygonal faces and normals during initial loading, equally fast at run time. -->
 15            <!-- Authoring capabilities of Extrusion compared to IndexedFaceSet: can be more complicated to express, but also can provide great detail with much less effort. -->
 16            <!-- First position and rotate viewpoint into positive-X-Y-Z octant using a Transform -->
 17            <WorldInfo title='HotAirBalloon.x3d'/>
 18            <Transform rotation='0 1 0 0.758translation='10 5 0'>
 19                 <Viewpoint description='Wide Angleorientation='1 0 0 -0.3position='0 10 25'/>
 20            </Transform>
 21 
          <!-- ROUTE information for Balloon node:  [from BalloonPath.value_changed to set_translation ] -->
          <Transform DEF='Balloon'>
 22                 <Group>
 23                      <Transform translation='0 -1 0'>
 24                           <Shape>
 25                                <Appearance>
 26                                     <Material diffuseColor='.8 .8 .8'/>
 27                                </Appearance>
 28                                <Box size='.85 .85 .85'/>
 29                           </Shape>
 30                      </Transform>
 31                      <Transform translation='0 -.65 0'>
 32                           <Shape>
 33                                <Appearance>
 34                                     <Material diffuseColor='.8 .8 .8'/>
 35                                </Appearance>
 36                                <Cylinder height='.7radius='.2top='false'/>
 37                           </Shape>
 38                      </Transform>
 39                      <Shape>
 40                           <Appearance>
 41                                <Material diffuseColor='1 0 1'/>
 42                           </Appearance>
 43                           <Extrusion beginCap='falsecreaseAngle='1.57crossSection='1.00 0.00 0.92 -0.38 0.71 -0.71 0.38 -0.92 0.00 -1.00 -0.38 -0.92 -0.71 -0.71 -0.92 -0.38 -1.00 -0.00 -0.92 0.38 -0.71 0.71 -0.38 0.92 0.00 1.00 0.38 0.92 0.71 0.71 0.92 0.38 1.00 0.00scale='.6 .6 1.0 1.0 1.3 1.3 1.5 1.5 1.7 1.7 1.9 1.9 2.15 2.15 2.35 2.35 2.4 2.4 2.32 2.32 2.2 2.2 1.85 1.85 1.5 1.5 0.4 0.4solid='falsespine='0.0 0.0 0.0 0.0 0.4 0.0 0.0 0.8 0.0 0.0 1.2 0.0 0.0 1.6 0.0 0.0 2.0 0.0 0.0 2.4 0.0 0.0 2.8 0.0 0.0 3.2 0.0 0.0 3.6 0.0 0.0 4.0 0.0 0.0 4.4 0.0 0.0 4.8 0.0 0.0 5.2 0.0'/>
 44                      </Shape>
 45                      <Transform>
 46                           <Group>
 47                                <Shape>
 48                                     <Appearance>
 49                                          <Material diffuseColor='1 0 0emissiveColor='1 0 0'/>
 50                                     </Appearance>
 51                                     <IndexedLineSet coordIndex='0 1'>
 52                                          <Coordinate point='.4 -.85 .4 .45 0 .45'/>
 53                                     </IndexedLineSet>
 54                                </Shape>
 55                                <Shape>
 56                                     <Appearance>
 57                                          <Material diffuseColor='1 0 0emissiveColor='1 0 0'/>
 58                                     </Appearance>
 59                                     <IndexedLineSet coordIndex='0 1'>
 60                                          <Coordinate point='-.4 -.85 .4 -.45 0 .45'/>
 61                                     </IndexedLineSet>
 62                                </Shape>
 63                                <Shape>
 64                                     <Appearance>
 65                                          <Material diffuseColor='1 0 0emissiveColor='1 0 0'/>
 66                                     </Appearance>
 67                                     <IndexedLineSet coordIndex='0 1'>
 68                                          <Coordinate point='.4 -.85 -.4 .45 0 -.45'/>
 69                                     </IndexedLineSet>
 70                                </Shape>
 71                                <Shape>
 72                                     <Appearance>
 73                                          <Material diffuseColor='1 0 0emissiveColor='1 0 0'/>
 74                                     </Appearance>
 75                                     <IndexedLineSet coordIndex='0 1'>
 76                                          <Coordinate point='-.4 -.85 -.4 -.45 0 -.45'/>
 77                                     </IndexedLineSet>
 78                                </Shape>
 79                           </Group>
 80                      </Transform>
 81 
                    <!-- ROUTE information for Fire node:  [from FirePath.value_changed to set_translation ] -->
                    <Transform DEF='Fire'>
 82                           <Shape>
 83                                <Appearance>
 84                                     <Material diffuseColor='.8 .8 .0'/>
 85                                </Appearance>
 86                                <Cylinder height='.7radius='.18'/>
 87                           </Shape>
 88                      </Transform>
 89                 </Group>
 90            </Transform>
 91            <Transform translation='0 -2 0'>
 92                 <Shape>
 93                      <Appearance>
 94                           <Material/>
 95                      </Appearance>
 96                      <Box size='20 .1 20'/>
 97                 </Shape>
 98            </Transform>
 99 
          <!-- ROUTE information for FireClock node:  [from fraction_changed to FirePath.set_fraction ] -->
          <TimeSensor DEF='FireClockcycleInterval='4loop='true'/>
100 
          <!-- ROUTE information for FirePath node:  [from FireClock.fraction_changed to set_fraction ] [from value_changed to Fire.set_translation ] -->
          <PositionInterpolator DEF='FirePathkey='0 .05 .7 .75keyValue='0 -.7 0 0 0 0 0 0 0 0 -.7 0'/>
101 
          <!-- ROUTE information for BalloonClock node:  [from fraction_changed to BalloonPath.set_fraction ] -->
          <TimeSensor DEF='BalloonClockcycleInterval='20loop='true'/>
102 
          <!-- ROUTE information for BalloonPath node:  [from BalloonClock.fraction_changed to set_fraction ] [from value_changed to Balloon.set_translation ] -->
          <PositionInterpolator DEF='BalloonPathkey='0 .1 .15 .2 .25 .3 .5 1keyValue='0 0 0 0 0 0 0 .5 0 0 1 0 0 2 0 0 4 0 0 12 0 0 28 0'/>
103            < ROUTE  fromNode='FireClock' fromField='fraction_changed' toNode='FirePath' toField='set_fraction'/>
104            < ROUTE  fromNode='FirePath' fromField='value_changed' toNode='Fire' toField='set_translation'/>
105            < ROUTE  fromNode='BalloonClock' fromField='fraction_changed' toNode='BalloonPath' toField='set_fraction'/>
106            < ROUTE  fromNode='BalloonPath' fromField='value_changed' toNode='Balloon' toField='set_translation'/>
107       </Scene>
108  </X3D>
<!--

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

<!-- to top Index for DEF nodes: Balloon, BalloonClock, BalloonPath, Fire, FireClock, FirePath

Index for Viewpoint node: Viewpoint_1
-->
X3D Tooltips element index: Appearance, Box, Coordinate, Cylinder, Extrusion, Group, head, IndexedLineSet, Material, meta, PositionInterpolator, ROUTE, Scene, Shape, TimeSensor, Transform, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

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

BalloonClock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(2)
Balloon
Transform
set_translation
SFVec3f

FireClock
TimeSensor
fraction_changed
SFFloat

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

ROUTE
event to
(2)
Fire
Transform
set_translation
SFVec3f
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/AircraftMiscellaneous/Balloon/HotAirBalloonIndex.html -->
<!-- Version control at
https://gitlab.nps.edu/Savage/Savage/AircraftMiscellaneous/Balloon/HotAirBalloon.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. -->