#X3D V3.0 utf8 # X3D-to-ClassicVRML XSL translation autogenerated by X3dToVrml97.xslt # https://www.web3d.org/x3d/content/X3dToVrml97.xslt # Generated using XSLT processor: Saxonica PROFILE Immersive # [X3D] version=3.0 # [X3D] noNamespaceSchemaLocation=https://www.web3d.org/specifications/x3d-3.0.xsd # [head] META "title" "HotAirBalloon.x3d" META "creator" "Mike Hunsberger" META "description" "Hot Air Balloon that fires and lifts off from the pad. The balloon is built by scaling a circle around a straight spline." META "created" "3 September 2000" META "modified" "20 October 2019" META "identifier" "https://savage.nps.edu/Savage/AircraftMiscellaneous/Balloon/HotAirBalloon.x3d" META "license" "../../license.html" # [Scene] ========== ========== ========== NavigationInfo { type [ "EXAMINE" "ANY" ] } ### Default X3D NavigationInfo # 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. # Authoring capabilities of Extrusion compared to IndexedFaceSet: can be more complicated to express, but also can provide great detail with much less effort. # First position and rotate viewpoint into positive-X-Y-Z octant using a Transform WorldInfo { title "HotAirBalloon.x3d" } Transform { rotation 0 1 0 0.758 translation 10 5 0 children [ Viewpoint { description "Wide Angle" orientation 1 0 0 -0.3 position 0 10 25 } ] } DEF Balloon Transform { children [ Group { children [ Transform { translation 0 -1 0 children [ Shape { appearance Appearance { material Material { diffuseColor .8 .8 .8 } } geometry Box { size .85 .85 .85 } } ] } Transform { translation 0 -.65 0 children [ Shape { appearance Appearance { material Material { diffuseColor .8 .8 .8 } } geometry Cylinder { height .7 radius .2 top FALSE } } ] } Shape { appearance Appearance { material Material { diffuseColor 1 0 1 } } geometry 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 ] } } Transform { children [ Group { children [ Shape { appearance Appearance { material Material { diffuseColor 1 0 0 emissiveColor 1 0 0 } } geometry IndexedLineSet { coordIndex [ 0 1 ] coord Coordinate { point [ .4 -.85 .4 .45 0 .45 ] } } } Shape { appearance Appearance { material Material { diffuseColor 1 0 0 emissiveColor 1 0 0 } } geometry IndexedLineSet { coordIndex [ 0 1 ] coord Coordinate { point [ -.4 -.85 .4 -.45 0 .45 ] } } } Shape { appearance Appearance { material Material { diffuseColor 1 0 0 emissiveColor 1 0 0 } } geometry IndexedLineSet { coordIndex [ 0 1 ] coord Coordinate { point [ .4 -.85 -.4 .45 0 -.45 ] } } } Shape { appearance Appearance { material Material { diffuseColor 1 0 0 emissiveColor 1 0 0 } } geometry IndexedLineSet { coordIndex [ 0 1 ] coord Coordinate { point [ -.4 -.85 -.4 -.45 0 -.45 ] } } } ] } ] } DEF Fire Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .8 .8 .0 } } geometry Cylinder { height .7 radius .18 } } ] } ] } ] } Transform { translation 0 -2 0 children [ Shape { appearance Appearance { material Material { } } geometry Box { size 20 .1 20 } } ] } DEF FireClock TimeSensor { cycleInterval 4 loop TRUE } DEF FirePath PositionInterpolator { key [ 0 .05 .7 .75 ] keyValue [ 0 -.7 0 0 0 0 0 0 0 0 -.7 0 ] } DEF BalloonClock TimeSensor { cycleInterval 20 loop TRUE } DEF BalloonPath PositionInterpolator { 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 ] } ROUTE FireClock.fraction_changed TO FirePath.set_fraction ROUTE FirePath.value_changed TO Fire.set_translation ROUTE BalloonClock.fraction_changed TO BalloonPath.set_fraction ROUTE BalloonPath.value_changed TO Balloon.set_translation