#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 META "title" "OsaII.x3d" META "description" "Model of OSA-II missile boat." META "creator" "Scott Rosetti, LT USNR" META "created" "20 July 2003" META "modified" "20 October 2019" META "TODO" "fix Viewpoints, check coordinate systems" META "Image" "OsaIISilhoutteStbdSideWhiteBackground.png" META "Image" "OsaIISilhouttePortSideWhiteBackground.png" META "Image" "OsaIISilhoutteOverheadWhiteBackground.png" META "reviewed" "Jeffrey Weekley" META "reference" "OSA-II missile boat" META "reference" "http://faculty.nps.edu/brutzman/ShipsMilitary/DDGArleighBurkeUnitedStates/Propellers.x3d" META "subject" "Osa-II, missile boat, patrol craft, SAVAGE, X3D" META "identifier" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/OsaII.x3d" META "generator" "X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit" META "generator" "X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit" META "reference" "https://savage.nps.edu/Savage/Weapons/Missiles/HarpoonExample.x3d" META "reference" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/DDGArleighBurkeUnitedStates/water.x3d" META "license" "../../license.html" # [Scene] ========== ========== ========== WorldInfo { title "OsaII.x3d" } Background { skyColor [ 0 0.3 1 ] } # OSA-II missile boat EXTERNPROTO RGM-84D [ inputOnly SFBool STARTLAUNCH inputOnly SFTime THETIME ][ "../../Weapons/Missiles/HarpoonPrototype.x3d#RGM-84D" "https://savage.nps.edu/Savage/Weapons/Missiles/HarpoonPrototype.x3d#RGM-84D" "../../Weapons/Missiles/HarpoonPrototype.wrl#RGM-84D" "https://savage.nps.edu/Savage/Weapons/Missiles/HarpoonPrototype.wrl#RGM-84D" ] DEF OSA_II Transform { scale 3.86 3.86 3.86 children [ DEF FREEBOARD Transform { children [ Shape { geometry Extrusion { creaseAngle .75 crossSection [ 1 .4 -1 .4 -.8 -.1 .8 -.1 1 .4 ] orientation [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -.6 ] scale [ 1 1 1 1 1 1 1 1 1 1 .001 1.4 ] solid FALSE spine [ -5 0 0 -4.6 0 0 0 0 0 2 0 0 3 0 0 5 0 0 ] } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } # Extrusion modeling above water portion of hull ] } DEF HULL Transform { children [ Shape { geometry Extrusion { creaseAngle 1.5 crossSection [ -.8 -.1 -.7 -.3 0 -.5 .7 -.3 .8 -.1 -.8 -.1 ] orientation [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -.6 ] scale [ 1 1 1 1 1 1 1 1 1 1 .001 1.4 ] solid FALSE spine [ -5 0 0 -4.6 0 0 0 0 0 2 0 0 3 0 0 5 0 0 ] } appearance Appearance { material Material { diffuseColor 1 0 0 } } } # Extrusion modeling below-water portion of hull ] } DEF PILOT_HOUSE Transform { translation 0 0 .4 children [ Shape { geometry Extrusion { creaseAngle .5 crossSection [ .6 0 .6 .70 .55 .75 -.55 .75 -.6 .65 -.6 0 .6 0 ] orientation [ 0 0 0 0 1 0 0 .3 ] solid FALSE spine [ 1.5 0 0 2.5 0 0 ] } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } # Pilot House - the front-most superstructure that includes bridge ] } DEF AFT_HOUSING Transform { translation 0 0 .4 children [ Shape { geometry Extrusion { creaseAngle .5 crossSection [ .3 .5 -.3 .5 -.3 0 .3 0 .3 .5 ] orientation [ 0 0 0 0 1 0 0 -.3 ] solid FALSE spine [ -3.5 0 0 1.8 0 0 ] } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } # Aft superstructure that runs down most of vessel ] } DEF FRONT_WINDOWS Transform { rotation 0 1 0 -.3 children [ Transform { scale .005 .1 .05 translation 2.51 0 .18 children [ DEF WINDOW Shape { geometry Box { } appearance Appearance { material Material { diffuseColor 0 0 .6 transparency .75 } } } ] } Transform { scale .005 .1 .05 translation 2.51 .35 .18 children [ USE WINDOW ] } Transform { scale .005 .1 .05 translation 2.51 -.35 .18 children [ USE WINDOW ] } ] } DEF RIGHT_NO Transform { scale .5 .5 .5 translation 4 -.475 0 children [ Transform { rotation 0 0 1 .45 children [ Transform { rotation 1 0 0 1.8 children [ Shape { geometry Text { string [ "78" ] } appearance Appearance { material Material { diffuseColor 1 1 1 } } } ] } ] } ] } DEF LEFT_NO Transform { scale .5 .5 .5 translation 4.45 .315 .28 children [ Transform { rotation 0 0 1 -.45 children [ Transform { rotation 1 0 0 -1.8 children [ Transform { rotation 0 1 0 3.1416 children [ Shape { geometry Text { string [ "78" ] } appearance Appearance { material Material { diffuseColor 1 1 1 } } } ] } ] } ] } ] } DEF SIDE_WINDOWS Transform { children [ Transform { rotation 0 0 1 1.57 scale .005 .1 .05 translation 2.1 .6 .91 children [ USE WINDOW ] } Transform { rotation 0 0 1 1.57 scale .005 .1 .05 translation 2.1 -.6 .91 children [ USE WINDOW ] } Transform { rotation 0 0 1 1.57 scale .005 .1 .05 translation 1.8 .6 .91 children [ USE WINDOW ] } Transform { rotation 0 0 1 1.57 scale .005 .1 .05 translation 1.8 -.6 .91 children [ USE WINDOW ] } ] } DEF SIGNAL_HOUSE Transform { children [ Shape { geometry Extrusion { creaseAngle 1.5 crossSection [ .45 0 .45 1.4 -.45 1.4 -.45 0 .45 0 ] scale [ 1 .01 1 .8 1 1 1 1 ] solid FALSE spine [ .5 0 0 .75 0 0 1.3 0 0 1.7 0 0 ] } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } # Aft part of bridge by main mast ] } DEF LAUNCHER Transform { rotation 0 .16 1 -1.57 translation -3.2 -.65 .8 children [ # Styx launcher - Touch Missle cover to fire surface-to-surface missile Transform { children [ # Styx launcher DEF MISSILE Transform { scale .2 .2 .2 translation 0 1 0 children [ DEF MissileTouch TouchSensor { description "triggers missile launch" } DEF MissileClock TimeSensor { } DEF MissilePath PositionInterpolator { key [ 0.2 1.0 ] keyValue [ 0 .5 0 0 30 0 ] } DEF STYX Transform { rotation 0 0 1 1.570796 translation 0 -3 0 children [ RGM-84D { } ] } Transform { children [ Sound { source DEF MissileLaunch AudioClip { description "Missile launch audio" url [ "https://savage.nps.edu/Savage/Weapons/Missiles/MISSILE1.WAV" ] } } ] ROUTE MissileTouch.touchTime TO MissileLaunch.set_startTime } ] ROUTE MissileClock.fraction_changed TO MissilePath.set_fraction ROUTE MissilePath.value_changed TO MISSILE.set_translation ROUTE MissileTouch.touchTime TO MissileClock.startTime } DEF STYX_LAUNCHER Transform { children [ Inline { url [ "StyxMissileTube.x3d" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/StyxMissileTube.x3d" "StyxMissileTube.wrl" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/StyxMissileTube.wrl" ] } ] } ] } ] } Transform { translation 0 1.3 0 children [ DEF LAUNCHER2 Transform { rotation 0 .16 1 -1.57 translation -3.2 -.65 .8 children [ # Styx launcher Transform { children [ # Styx launcher DEF MISSILE2 Transform { scale .2 .2 .2 translation 0 1 0 children [ DEF MissileTouch2 TouchSensor { description "triggers missile launch" } DEF MissileClock2 TimeSensor { } DEF MissilePath2 PositionInterpolator { key [ 0.2 1.0 ] keyValue [ 0 .5 0 0 30 0 ] } USE STYX ] ROUTE MissileClock2.fraction_changed TO MissilePath2.set_fraction ROUTE MissilePath2.value_changed TO MISSILE2.set_translation ROUTE MissileTouch2.touchTime TO MissileClock2.startTime } USE STYX_LAUNCHER ] } ] } ] } Transform { translation 2.6 0 0 children [ DEF LAUNCHER3 Transform { rotation 0 .16 1 -1.57 translation -3.2 -.65 .8 children [ # Styx launcher Transform { children [ # Styx launcher DEF MISSILE3 Transform { scale .2 .2 .2 translation 0 1 0 children [ DEF MissileTouch3 TouchSensor { description "triggers missile launch" } DEF MissileClock3 TimeSensor { } DEF MissilePath3 PositionInterpolator { key [ 0.2 1.0 ] keyValue [ 0 .5 0 0 30 0 ] } USE STYX ] ROUTE MissileClock3.fraction_changed TO MissilePath3.set_fraction ROUTE MissilePath3.value_changed TO MISSILE3.set_translation ROUTE MissileTouch3.touchTime TO MissileClock3.startTime } USE STYX_LAUNCHER ] } ] } ] } Transform { translation 2.6 1.3 0 children [ DEF LAUNCHER4 Transform { rotation 0 .16 1 -1.57 translation -3.2 -.65 .8 children [ # Styx launcher Transform { children [ # Styx launcher DEF MISSILE4 Transform { scale .2 .2 .2 translation 0 1 0 children [ DEF MissileTouch4 TouchSensor { description "triggers missile launch" } DEF MissileClock4 TimeSensor { } DEF MissilePath4 PositionInterpolator { key [ 0.2 1.0 ] keyValue [ 0 .5 0 0 30 0 ] } USE STYX ] ROUTE MissileClock4.fraction_changed TO MissilePath4.set_fraction ROUTE MissilePath4.value_changed TO MISSILE4.set_translation ROUTE MissileTouch4.touchTime TO MissileClock4.startTime } USE STYX_LAUNCHER ] } ] } ] } DEF MAIN_MAST Transform { scale .075 .075 1 translation .7 0 0 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 4 3 1 1 ] solid FALSE spine [ 0 0 0 0 0 3 ] } } ] } DEF LAUNCHER_BASE Transform { scale .3 .15 .1 translation -1.2 -.65 .45 children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 } } geometry Box { } } ] } Transform { translation 0 1.3 0 children [ USE LAUNCHER_BASE ] } Transform { translation -2.55 1.3 0 children [ USE LAUNCHER_BASE ] } Transform { translation -2.55 0 0 children [ USE LAUNCHER_BASE ] } DEF GUN_MOUNT Transform { children [ # forward gun mount Inline { url [ "GunMount.wrl" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/GunMount.wrl" "GunMount.x3d" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/GunMount.x3d" ] } ] } Transform { rotation 0 0 1 3.14 translation -1.2 0 0 children [ # aft gun mount USE GUN_MOUNT ] } DEF AFT_RADAR Transform { translation -3 0 .8 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .2 .2 .2 .2 ] solid FALSE spine [ 0 0 0 0 0 .4 ] } } Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .3 .3 .3 .3 ] solid FALSE spine [ 0 0 .4 0 0 .45 ] } } Shape { appearance Appearance { material Material { diffuseColor .3 .3 .3 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .1 .1 .1 .1 ] solid FALSE spine [ 0 0 .45 0 0 .55 ] } } Transform { rotation 0 1 0 -1.3 translation .68 0 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .3 .3 .3 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .075 .075 .12 .12 .18 .18 .18 .18 .12 .12 .075 .075 ] solid FALSE spine [ 0 0 .55 0 0 .58 0 0 .65 0 0 .80 0 0 .87 0 0 .9 ] } } ] } Transform { scale .28 .28 .2 translation 0 0 .6 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ 1 0 0 .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 -.707 -.707 0 0 -1 0 .707 -.707 0 1 0 0 ] } } ] } Transform { children [ Transform { rotation 1 0 0 1.57 translation .27 0 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.27 0 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation 0 .27 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation 0 -.27 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation .19 .19 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.19 -.19 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.19 .19 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation .19 -.19 .5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } ] } # aft radar located near rear of ship on platform ] } DEF MAST_FWD_RADAR Transform { rotation 0 0 1 1.17 scale .6 .6 .6 translation 1.2 0 2.2 children [ Transform { scale .28 .28 .2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 ] } } ] } Transform { scale .28 .28 .2 translation 0 0 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 ] } } ] } Transform { scale .28 .28 .2 translation 0 0 .2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 ] } } ] } Transform { rotation 1 0 0 1.57 translation -.252 .098 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation 0 .28 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.28 0 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation .098 .2385 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.197 .197 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation .197 .197 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.098 .252 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation 0 0 .035 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cone { bottomRadius .05 height .08 } } ] } Transform { rotation 0 0 1 -1.21 translation -.04 .09 0 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Box { size .3 .03 .01 } } ] } DEF RadarPath OrientationInterpolator { key [ 0.0 0.50 1.0 ] keyValue [ 0.0 0.0 1.0 0.0 0.0 0.0 1.0 3.14 0.0 0.0 1.0 6.28 ] } DEF Clock TimeSensor { cycleInterval 4.0 loop TRUE } Transform { rotation 1 0 0 1.57 translation 0 0 -.03 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .03 radius .02 } } ] } # forward main mast radar...rotates on time sensor ] ROUTE Clock.fraction_changed TO RadarPath.set_fraction ROUTE RadarPath.value_changed TO MAST_FWD_RADAR.set_rotation } DEF MAST_FWD_BEAM Transform { scale .8 .06 .02 translation .6 0 2.15 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.2 1.2 1 1 ] solid FALSE spine [ 0 0 0 1 0 0 ] } } # beam which houses forward radar ] } DEF MAST_AFT_ARM Transform { rotation 0 0 1 3.14 translation 1.4 0 -.25 children [ DEF MAST_AFT_BEAM Transform { scale .8 .06 .02 translation .6 0 2.15 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.2 1.2 1 1 ] solid FALSE spine [ 0 0 0 1 0 0 ] } } ] } DEF MAST_AFT_RADAR Transform { rotation 0 0 1 1.17 scale .6 .6 .6 translation 1.2 0 2.2 children [ Transform { scale .28 .28 .2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 ] } } ] } Transform { scale .28 .28 .2 translation 0 0 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 ] } } ] } Transform { scale .28 .28 .2 translation 0 0 .2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 ] } } ] } Transform { rotation 1 0 0 1.57 translation -.252 .098 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation 0 .28 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.28 0 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation .098 .2385 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.197 .197 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation .197 .197 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation -.098 .252 .1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .2 radius .01 } } ] } Transform { rotation 1 0 0 1.57 translation 0 0 .035 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cone { bottomRadius .05 height .08 } } ] } Transform { rotation 0 0 1 -1.21 translation -.04 .09 0 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Box { size .3 .03 .01 } } ] } DEF RadarPathB OrientationInterpolator { key [ 0.0 0.50 1.0 ] keyValue [ 0.0 0.0 1.0 0.0 0.0 0.0 1.0 3.14 0.0 0.0 1.0 6.28 ] } ### Warning: no ROUTE found for OrientationInterpolator output DEF ClockB TimeSensor { cycleInterval 4.0 loop TRUE } Transform { rotation 1 0 0 1.57 translation 0 0 -.03 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Cylinder { height .03 radius .02 } } ] } ] ROUTE ClockB.fraction_changed TO RadarPathB.set_fraction ROUTE RadarPath.value_changed TO MAST_AFT_RADAR.set_rotation } DEF SUPPORTS_LOWER Transform { children [ Transform { rotation 0 1 0 1.36 scale .02 .02 .86 translation 0.7 .03 2 children [ Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.1 1.1 1 1 ] solid FALSE spine [ 0 0 0 0 0 .8 ] } } ] } ] } Transform { rotation 0 1 0 1.36 scale .02 .02 .86 translation 0.7 -.03 2 children [ Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.1 1.1 1 1 ] solid FALSE spine [ 0 0 0 0 0 .8 ] } } ] } ] } ] } # includes beam and radar on aft part of main mast ] } DEF CROW_NEST Transform { scale .1 .1 1 translation .7 0 2.93 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 .05 ] solid FALSE spine [ 1 0 0 .707 .707 0 0 1 0 -.707 .707 0 -1 0 0 -.707 -.707 0 0 -1 0 .707 -.707 0 1 0 0 ] } } Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Box { size 1.9 .2 .1 } } # mini-platform on top of main mast that houses main radar ] } DEF SUPPORTS_UPPER Transform { children [ Transform { children [ Transform { rotation 0 1 0 1.36 scale .02 .02 .86 translation 0.7 .03 2 children [ Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.1 1.1 1 1 ] solid FALSE spine [ 0 0 0 0 0 .8 ] } } ] } ] } Transform { rotation 0 1 0 1.36 scale .02 .02 .86 translation 0.7 -.03 2 children [ Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.1 1.1 1 1 ] solid FALSE spine [ 0 0 0 0 0 .8 ] } } ] } ] } ] } # suppports for main mast beams ] } DEF LOWER_ARM Transform { scale .6 1 1 translation .3 0 -.4 children [ Transform { children [ Transform { children [ Transform { rotation 0 1 0 1.36 scale .02 .02 .86 translation 0.7 .03 2 children [ Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.1 1.1 1 1 ] solid FALSE spine [ 0 0 0 0 0 .8 ] } } ] } ] } Transform { rotation 0 1 0 1.36 scale .02 .02 .86 translation 0.7 -.03 2 children [ Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.1 1.1 1 1 ] solid FALSE spine [ 0 0 0 0 0 .8 ] } } ] } ] } ] } ] } Transform { scale .8 .06 .02 translation .6 0 2.15 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.2 1.2 1 1 ] solid FALSE spine [ 0 0 0 1 0 0 ] } } ] } Transform { rotation 1 0 0 1.57 scale 1.67 1 1 translation 1.28 0 2.2 children [ Shape { appearance Appearance { material Material { diffuseColor .625 0 .125 } } geometry Cylinder { height .08 radius .04 top FALSE } } Transform { translation 0 0.04 0 children [ Shape { appearance Appearance { material Material { diffuseColor .625 0 .125 } } geometry Sphere { radius .04 } } ] } ] } # forward facing lower beam that houses signal light ] } DEF NON_SKID Transform { } Switch { whichChoice 0 children [ ### children3 Transform { translation 0 0 .01 children [ Shape { geometry Extrusion { creaseAngle .75 crossSection [ 1 .4 -1 .4 -.98 .38 .98 .38 1 .4 ] orientation [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -.6 ] scale [ 1 1 1 1 1 1 1 1 1 1 .01 1.4 ] solid FALSE spine [ -5 0 0 -4.6 0 0 0 0 0 2 0 0 3 0 0 5 0 0 ] } appearance Appearance { material Material { diffuseColor .2 .2 .2 } } } ] } # non-skid surface on weatherdecks ] } DEF YARDARM Transform { children [ Transform { translation .7 -.65 2.5 children [ DEF MAST_CROSS_BEAM Transform { rotation 0 0 1 1.57 scale .8 .06 .02 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.2 1.2 1 1 ] solid FALSE spine [ 0 0 0 1.6 0 0 ] } } ] } ] } Transform { rotation 1 0 0 .2 translation 0 .2 0 children [ Transform { rotation 1 0 0 1.57 translation .7 -.3 1.6 children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 } } geometry Cylinder { radius .005 } } ] } ] } Transform { rotation 1 0 0 .12 translation 0 .25 -.05 children [ Transform { rotation 1 0 0 1.57 translation .7 -.3 1.6 children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 } } geometry Cylinder { radius .005 } } ] } ] } Transform { rotation 1 0 0 -.2 translation 0 .37 -.1 children [ Transform { rotation 1 0 0 1.57 translation .7 -.3 1.6 children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 } } geometry Cylinder { radius .005 } } ] } ] } Transform { rotation 1 0 0 -.12 translation 0 .33 -.1 children [ Transform { rotation 1 0 0 1.57 translation .7 -.3 1.6 children [ Shape { appearance Appearance { material Material { diffuseColor 1 1 1 } } geometry Cylinder { radius .005 } } ] } ] } # main beam on main mast that is used as flaghoist ] } DEF MAST_LADDER Transform { children [ Transform { rotation 0 0 1 1.57 translation .55 0 1.2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .555 0 1.3 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .56 0 1.4 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .565 0 1.5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .57 0 1.6 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .575 0 1.7 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .605 0 2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .61 0 2.1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .615 0 2.2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { rotation 0 0 1 1.57 translation .620 0 2.3 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } # ladder going up aft part of main mast ] } DEF PORT_BRIDGE_LADDER Transform { translation .8 .4 -.4 children [ Transform { translation .55 0 1.2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .555 0 1.3 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .56 0 1.4 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .565 0 1.5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .57 0 1.6 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .55 0 1.1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } # ladder on port side of bridge ] } DEF STBD_BRIDGE_LADDER Transform { translation 1.9 -.4 -.4 children [ Transform { rotation 0 0 1 3.1416 children [ Transform { translation .55 0 1.2 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .555 0 1.3 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .56 0 1.4 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .565 0 1.5 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .57 0 1.6 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } Transform { translation .55 0 1.1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ .01 .01 .01 .01 .01 .01 .01 .01 ] solid FALSE spine [ .08 0 0 .08 .08 0 -.08 .08 0 -.08 0 0 ] } } ] } ] } # ladder on starboard side of bridge ] } DEF FWD_ANT Transform { translation 1.85 0 1.157 children [ Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height .1 radius .02 } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } ] } Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height 3 radius .005 } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } ] } # HF antenna above pilot house ] } DEF MID_ANT Transform { translation -.65 0 .95 children [ Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height .1 radius .02 } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } ] } Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height 2.8 radius .005 } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } ] } # HF antenna midships ] } DEF AFT_ANT Transform { translation -2.2 0 .95 children [ Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height .1 radius .02 } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } ] } Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height 2.8 radius .005 } appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } ] } # HF antenna aft ] } Transform { children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } } ] } DEF MAIN_RADAR Transform { translation .7 0 2.95 children [ Transform { scale .25 .25 .25 translation .15 0 0 children [ Transform { rotation 0 1 0 -.15 children [ Shape { appearance Appearance { material Material { diffuseColor .3 .3 .3 } } geometry Extrusion { crossSection [ 1 .3 .6 .7 -.6 .7 -1 .3 -1 -.3 -.6 -.7 .6 -.7 1 -.3 1 .3 ] scale [ 1 1 1 1 ] solid FALSE spine [ 0 0 0 .05 0 0 ] } } ] } Transform { translation -1.3 0 -.1 children [ Shape { appearance Appearance { material Material { diffuseColor .3 .3 .3 } } geometry Box { size .3 .3 .3 } } ] } Transform { translation -.2 0 0 children [ Transform { rotation 0 1 0 -.15 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Box { size .35 .7 .5 } } ] } ] } Transform { rotation 0 1 0 1.57 scale .1 .1 2 translation -1.2 0 -.1 children [ Shape { appearance Appearance { material Material { diffuseColor .6 .6 .6 } } geometry Extrusion { creaseAngle 1.5 crossSection [ 1 0 .707 .707 0 1 -.707 .707 -1 0 -.707 -.707 0 -1 .707 -.707 1 0 ] scale [ 1.1 1.1 1 1 ] solid FALSE spine [ 0 0 0 0 0 .3 ] } } ] } ] } DEF RadarPathC OrientationInterpolator { key [ 0.0 0.50 1.0 ] keyValue [ 0.0 0.0 1.0 0.0 0.0 0.0 1.0 3.14 0.0 0.0 1.0 6.28 ] } DEF ClockC TimeSensor { cycleInterval 4.0 loop TRUE } # main radar located on very top of main mast ] ROUTE ClockC.fraction_changed TO RadarPathC.set_fraction ROUTE RadarPathC.value_changed TO MAIN_RADAR.set_rotation } DEF STBD_RUDDER Transform { translation -4.65 -.4 -.77 children [ Transform { rotation 0 0 1 -1.57 scale 2 1 .35 children [ Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Extrusion { creaseAngle 1.5 crossSection [ .01 .2 -.01 .2 -.012 .05 -.01 -.1 -.008 -.15 -.005 -.17 0 -.2 .005 -.17 .008 -.15 .01 -.1 .012 .05 .01 .2 ] scale [ 1 1 1 1 ] solid FALSE spine [ 0 0 0 0 0 1 ] } } ] } Transform { translation .15 0 .32 children [ Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height .2 radius .01 } appearance Appearance { material Material { diffuseColor 1 0 0 } } } ] } ] } # starboard rudder ] } DEF PORT_RUDDER Transform { translation -4.65 .4 -.77 children [ Transform { rotation 0 0 1 -1.57 scale 1.5 1 .35 children [ Shape { appearance Appearance { material Material { diffuseColor 1 0 0 } } geometry Extrusion { creaseAngle 1.5 crossSection [ .01 .2 -.01 .2 -.012 .05 -.01 -.1 -.008 -.15 -.005 -.17 0 -.2 .005 -.17 .008 -.15 .01 -.1 .012 .05 .01 .2 ] scale [ 1 1 1 1 ] solid FALSE spine [ 0 0 0 0 0 1 ] } } ] } Transform { translation .15 0 .32 children [ Transform { rotation 1 0 0 1.57 children [ Shape { geometry Cylinder { height .2 radius .01 } appearance Appearance { material Material { diffuseColor 1 0 0 } } } ] } ] } # port rudder ] } Transform { children [ # 3-shaft propulsion system to include shafts, propellers, and struts. Basis for shafts and propellers taken from James Harney DDG model (see reference). Inline { url [ "Propulsion.x3d" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/Propulsion.x3d" "Propulsion.wrl" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/Propulsion.wrl" ] } ] } DEF WATER Group { children [ # Switch added to turn off water for easy inlining. Switch { whichChoice -1 children [ ### children3 Transform { translation 0 -25 0 children [ Inline { url [ "Water.x3d" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/Water.x3d" "Water.wrl" "https://savage.nps.edu/Savage/ShipsMilitary/MissileAttackBoatOsaII/Water.wrl" ] } ] } ] } ] } Viewpoint { description "Starboard Side" orientation 1 0 0 1.5 position 0 -20 4 } Viewpoint { description "Port Side" orientation 1 0 0 -1.5 position 0 20 4 } Transform { rotation 0 0 1 -1.57 translation 2.5 0 -1 children [ Transform { rotation 1 0 0 1.57 children [ Viewpoint { description "props" } ] } ] } Transform { rotation 0 0 1 -1.57 translation 3 0 1 children [ Transform { rotation 1 0 0 1.4 children [ Viewpoint { description "launcher" } ] } ] } Transform { children [ Transform { translation 2.8 0 1 children [ Transform { rotation 0 0 1 -1.57 children [ Transform { rotation 1 0 0 1.3 children [ Viewpoint { description "bridge" position 0 0 0 } ] } ] } ] } ] } ] }