#X3D V3.0 utf8 PROFILE Immersive # [X3D] version=3.0 # [X3D] noNamespaceSchemaLocation=https://www.web3d.org/specifications/x3d-3.0.xsd # X3D-to-ClassicVRML XSL translation autogenerated by X3dToClassicVrmlEncoding.xslt and X3dToVrml97.xslt # https://www.web3d.org/x3d/content/X3dToClassicVrmlEncoding.xslt # https://www.web3d.org/x3d/content/X3dToVrml97.xslt # Transformation using XSLT processor: Saxonica # head COMPONENT Interpolation:3 META "title" "Skirt.x3d" META "description" "Animated Skirt for LCAC which animates using a Vector2FloatArray Interpolator - click geometry to activate animation loop." META "creator" "Jeff Weekley, Don Brutzman and Jane Wu" META "created" "15 July 2001" META "modified" "20 October 2019" META "reference" "https://www.web3d.org/technicalinfo/specifications/vrml97/part1/concepts.html#4.6.8" META "reference" "https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#CoordinateInterpolator" META "reference" "https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#Extrusion" META "subject" "Skirt" META "identifier" "https://savage.nps.edu/Savage/AmphibiousVehicles/LCAC/Skirt.x3d" META "generator" "X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit" META "license" "../../license.html" # [Scene] ========== ========== ========== WorldInfo { title "Skirt.x3d" } Background { skyColor [ 0.25 0.4 0.85 ] } # ====================================== Viewpoint { description "Click to inflate/deflate skirt" orientation 1 0 0 0.5 position 15 -15 30 } DEF Clock TimeSensor { cycleInterval 5 enabled FALSE loop TRUE } DEF InterpolateCrossSection CoordinateInterpolator2D { key [ 0 0.4 0.5 0.9 1 ] keyValue [ 0 2 -0.05 1.8 -0.05 1.6 -0.0625 1.4 -0.1 1.2 -0.125 1 -0.2 0.8 -0.25 0.6 -0.2625 0.4 -0.275 0.3 -0.225 0.2 -0.15 0.1 -0.075 0.05 0 0 0 0 0 2 -0.2 2 -1.2 1 -1.2 0.9 -1.3 0.85 -1.4 0.8 -1.5 0.7 -1.55 0.5 -1.6 0.4 -1.55 0.2 -1.475 0.1 -1.39 0 0 0 0 0 0 2 -0.2 2 -1.2 1 -1.2 0.9 -1.3 0.85 -1.4 0.8 -1.5 0.7 -1.55 0.5 -1.6 0.4 -1.55 0.2 -1.475 0.1 -1.39 0 0 0 0 2 -0.05 1.8 -0.05 1.6 -0.0625 1.4 -0.1 1.2 -0.125 1 -0.2 0.8 -0.25 0.6 -0.2625 0.4 -0.275 0.3 -0.225 0.2 -0.15 0.1 -0.075 0.05 0 0 0 2 -0.05 1.8 -0.05 1.6 -0.0625 1.4 -0.1 1.2 -0.125 1 -0.2 0.8 -0.25 0.6 -0.2625 0.4 -0.275 0.3 -0.225 0.2 -0.15 0.1 -0.075 0.05 0 0 ] } ROUTE Clock.fraction_changed TO InterpolateCrossSection.set_fraction Group { children [ Shape { geometry DEF AnimatedCrossSectionExtrusion Extrusion { convex FALSE creaseAngle 3.14 crossSection [ 0 2 -0.05 1.8 -0.05 1.6 -0.0625 1.4 -0.1 1.2 -0.125 1 -0.2 0.8 -0.25 0.6 -0.2625 0.4 -0.275 0.3 -0.225 0.2 -0.15 0.1 -0.075 0.05 0 0 ] scale [ 1.66 1.66 1.5 1.5 1.25 1.25 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1.25 1.25 1.5 1.5 1.66 1.66 ] solid FALSE spine [ 0 0 0 0 6 0 0 7 0 1 7.225 0 29.4 7.225 0 30.1 7 0 30.1 0 0 30.1 -7 0 29.4 -7.225 0 1 -7.225 0 0 -7 0 0 -6 0 0 0 0 ] } appearance Appearance { material Material { diffuseColor 0.05 0.075 0.15 shininess 0.125 specularColor 0.4 0.45 0.45 } } } DEF Toucher TouchSensor { description "touch skirt to inflate/deflate" } # also reset clock to restart ] ROUTE Toucher.isActive TO Clock.enabled ROUTE Toucher.touchTime TO Clock.startTime } ROUTE InterpolateCrossSection.value_changed TO AnimatedCrossSectionExtrusion.set_crossSection