| 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='HotAirBalloon.x3d'/> |
| 6 | <meta name='creator' content='Mike Hunsberger'/> |
| 7 | <meta name='description' content='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='created' content='3 September 2000'/> |
| 9 | <meta name='modified' content='20 October 2019'/> |
| 10 | <meta name='identifier' content='https://savage.nps.edu/Savage/AircraftMiscellaneous/Balloon/HotAirBalloon.x3d'/> |
| 11 | <meta name='license' content='../../license.html'/> |
| 12 | </head> |
| 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.758' translation='10 5 0'> |
| 19 | <Viewpoint description='Wide Angle' orientation='1 0 0 -0.3' position='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='.7' radius='.2' top='false'/> |
| 37 | </Shape> |
| 38 | </Transform> |
| 39 | <Shape> |
| 40 | <Appearance> |
| 41 | <Material diffuseColor='1 0 1'/> |
| 42 | </Appearance> |
| 43 | <Extrusion beginCap='false' creaseAngle='1.57' crossSection='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.00' scale='.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.4' solid='false' spine='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 0' emissiveColor='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 0' emissiveColor='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 0' emissiveColor='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 0' emissiveColor='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='.7' radius='.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='FireClock' cycleInterval='4' loop='true'/> |
| 100 |
<!-- ROUTE information for FirePath node:
[from FireClock.fraction_changed to set_fraction
]
[from value_changed to Fire.set_translation
]
-->
<PositionInterpolator DEF='FirePath' key='0 .05 .7 .75' keyValue='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='BalloonClock' cycleInterval='20' loop='true'/> |
| 102 |
<!-- ROUTE information for BalloonPath node:
[from BalloonClock.fraction_changed to set_fraction
]
[from value_changed to Balloon.set_translation
]
-->
<PositionInterpolator DEF='BalloonPath' key='0 .1 .15 .2 .25 .3 .5 1' keyValue='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 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 |
BalloonPath
PositionInterpolator set_fraction SFFloat |
then
|
BalloonPath
PositionInterpolator value_changed SFVec3f |
Balloon
Transform set_translation SFVec3f |
|
FireClock
TimeSensor fraction_changed SFFloat |
FirePath
PositionInterpolator set_fraction SFFloat |
then
|
FirePath
PositionInterpolator value_changed SFVec3f |
Fire
Transform set_translation SFVec3f |
<!--
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)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->