<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<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 ' >
<head>
<component level='1name='DIS'/>
<meta name='titlecontent=' CannonProject.x3d '/>
<meta name='descriptioncontent='Physically Based Modeling project for MV-4472, showing a projectile motion model that takes into account drag, changing air densities with altitude, and wind.'/>
<meta name='referencecontent='Included is the model "Lightweight 155mm Howitzer" created by Jeffrey Weekley'/>
<meta name='referencecontent=' The Dunes.jpg texture was found on the web at http://www.ecn.net.au/~iain/htextures '/>
<meta name='referencecontent=' http://www.ecn.net.au/~iain/htextures '/>
<meta name='creatorcontent='Ernesto Salles'/>
<meta name='createdcontent='10 December 2001'/>
<meta name='modifiedcontent='8 July 2023'/>
<meta name=' warning content=' prerequisite: Java3D classes must be installed in CLASSPATH '/>
<meta name='referencecontent='CannonProject/run.bat'/>
<meta name='referencecontent='CannonProject/compile.bat'/>
<meta name='referencecontent='CannonProject/compile.out'/>
<meta name='subjectcontent='projectile, physically based model'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/CannonProject.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<!-- There was no size given for this weapon, it is built to similar dimensions as its precedessor, the M198 Howitzer. It is 5m total length. -->
<WorldInfo title='CannonProject.x3d'/>
<ExternProtoDeclare name='ArbitraryAxisCylinderSensorappinfo='Modified CylinderSensor with children nodes oriented about an arbitrary axis. Warning: ArbitraryAxisCylinderSensor affects children, not peers.'
  url=' "../../Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.x3d#ArbitraryAxisCylinderSensor" "https://savage.nps.edu/Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.x3d#ArbitraryAxisCylinderSensor" "../../Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.wrl#ArbitraryAxisCylinderSensor" "https://savage.nps.edu/Savage/Tools/Animation/ArbitraryAxisCylinderSensorPrototype.wrl#ArbitraryAxisCylinderSensor" ' >
<field name='shiftRotationAxistype='SFRotationaccessType='initializeOnly'
 appinfo='shifted axis of rotation from local vertical, default 1 0 0 0' />

<field name='centertype='SFVec3faccessType='initializeOnly'
 appinfo='local center for axis of rotation, default 0 0 0' />

<field name='showCylinderSensorShapetype='SFBoolaccessType='initializeOnly'
 appinfo='whether to show visualization shape to show orientation and cylindrical mapping of mouse movements by sensor, default true' />

<field name='scaleCylinderSensorShapetype='SFVec3faccessType='inputOutput'
 appinfo='scale for visualization shape, default 1 1 1' />

<field name='colorCylinderSensorShapetype='SFColoraccessType='inputOutput'
 appinfo='color for visualization shape, default 0.9 0.9 0.4' />

<field name='transparencyCylinderSensorShapetype='SFFloataccessType='inputOutput'
 appinfo='transparency for visualization shape' />

<field name='childrentype='MFNodeaccessType='inputOutput'
 appinfo='children nodes affected by ArbitraryAxisCylinderSensor' />

<field name='autoOffsettype='SFBoolaccessType='inputOutput'
 appinfo='determines whether previous offset values are remembered/accumulated, default true' />

<field name='descriptiontype='SFStringaccessType='inputOutput'
 appinfo='Text tooltip displayed for user interaction' />

<field name='diskAngletype='SFFloataccessType='inputOutput'
 appinfo='diskAngle 0 forces disk-like behavior, diskAngle 1.57 (90 degrees) forces cylinder-like behavior, default 0.262, range [0,pi/2]' />

<field name='enabledtype='SFBoolaccessType='inputOutput'
 appinfo='enables/disables node operation, default true' />

<field name='minAngletype='SFFloataccessType='inputOutput'
 appinfo='clamps rotation_changed events, default 0, range [-2pi,2pi]' />

<field name='maxAngletype='SFFloataccessType='inputOutput'
 appinfo='clamps rotation_changed events, default -1, range [-2pi,2pi]' />

<field name='offsettype='SFFloataccessType='initializeOnly'
 appinfo='sends event and remembers last value sensed, default 0, range (-infinity,infinity)' />

<field name='isActivetype='SFBoolaccessType='outputOnly'
 appinfo='output event isActive=true when primary mouse button is pressed, output event isActive=false when released.' />

<field name='rotation_changedtype='SFRotationaccessType='outputOnly'
 appinfo='rotation_changed events equal sum of relative bearing changes plus offset value about Y-axis in local coordinate system' />

<field name='trackPoint_changedtype='SFVec3faccessType='outputOnly'
 appinfo="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry" />
</ExternProtoDeclare>
<Viewpoint description='Lightweight 155mm Howitzerorientation='0 1 0 -1.57position='-5 0.7 0'/>
<Viewpoint description='FarViewposition='200 75 300'/>
<Viewpoint description='AboveVieworientation='0 1 0 -1.57position='-75.0 40.0 0.0'/>
<Background skyColor='0.4 0.1 0.2'/>
<!-- Default gun orientation points along X axis (typically North) -->
<TimeSensor DEF='TheClockcycleInterval='10'/>
<Transform rotation='1 0 0 -1.57'>
<ProtoInstance name='ArbitraryAxisCylinderSensorDEF='BarrelHeading'>
<fieldValue name='shiftRotationAxisvalue='1 0 0 1.57'/>
<fieldValue name='maxAnglevalue='0.6'/>
<fieldValue name='minAnglevalue='-0.6'/>
<fieldValue name='showCylinderSensorShapevalue='false'/>
<fieldValue name='children'>
<Group DEF='Saddle'>
<Transform rotation='0.58 0.58 -0.58 2.09scale='0.75 0.75 0.75translation='0.667 0 0'>
<Transform DEF='SaddleBaserotation='0 1 0 1.57scale='0.7 0.7 0.7translation='0.1 -0.6 0'>
<Transform rotation='-1 0 0 1.57'>
<Shape>
<Extrusion crossSection='0 0.7 -0.4 0.6 -0.9 0 -0.8 -0.5 0 -0.6 0.8 -0.5 0.9 0 0.4 0.6 0 0.7 -0.4 0.6solid='falsespine='0 0 0 0 0.2 0 0 0.29 0'/>
<Appearance>
<Material DEF='greydiffuseColor='0.5 0.5 0.5specularColor='1 1 1'/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Transform DEF='ElevationGeartranslation='-0.25 -0.4 0.45'>
<Transform rotation='0 0 1 1.57'>
<Shape>
<Box size='0.25 0.325 0.125'/>
<Appearance>
<Material diffuseColor='0.25 0.66 0.8'/>
</Appearance>
</Shape>
<Transform translation='-0.2 0 0.06'>
<Shape>
<Appearance>
<Material diffuseColor='1 0.25 1'/>
</Appearance>
<Box size='0.1625 0.165 0.1'/>
</Shape>
<Transform translation='0.075 -0.05 -0.01'>
<Shape>
<Appearance>
<Material diffuseColor='0.15 0.25 0.1'/>
</Appearance>
<Cylinder height='0.325radius='0.075'/>
</Shape>
</Transform>
</Transform>
<Transform rotation='1 0 0 1.57translation='0 0 -0.1'>
<Shape>
<Appearance>
<Material diffuseColor='0 1 0.66'/>
</Appearance>
<Cylinder height='0.25radius='0.08'/>
</Shape>
</Transform>
</Transform>
<Transform scale='0.33 0.33 0.33translation='-0.08 -0.15 0.175'> </Transform>
</Transform>
<Transform rotation='1 0 0 3.14'>
<Transform translation='0 0.8 0'>
<Transform USE=' ElevationGear'/>
</Transform>
</Transform>
<Transform rotation='0 0 1 1.57translation='-0.25 -1.1 -0.15'>
<Transform translation='0.15 -0.1 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.25 0.2 0.4'/>
</Appearance>
<Box size='0.425 0.17 0.125'/>
</Shape>
</Transform>
<Transform translation='0 0.1 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.25 0.2 0.4'/>
</Appearance>
<Cylinder height='0.35radius='0.0625'/>
</Shape>
</Transform>
<Transform rotation='-1 0 0 1.57scale='0.33 0.33 0.33translation='0 0.33 0'>
<Inline USE=' Crank'/>
</Transform>
</Transform>
<Transform rotation='-0.58 -0.58 0.58 2.09translation='-0.25 -0.4 0'>
<ProtoInstance name='ArbitraryAxisCylinderSensorDEF='BarrelElevation'>
<fieldValue name='minAnglevalue='-1.125'/>
<fieldValue name='maxAnglevalue='0'/>
<fieldValue name='offsetvalue='-0.52'/>
<fieldValue name='showCylinderSensorShapevalue='false'/>
<fieldValue name='children'>
<Transform rotation='1 0 0 1.57translation='0.5 0 -0.1'>
<Group DEF='CannonAssembly'>
<Transform rotation='0 0 -1 0.79'>
<Transform DEF='Cannonrotation='0 0 -1 0.79scale='0.033 2 0.033translation='1.2 1.2 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.15 0.2 0.25'/>
</Appearance>
<Extrusion beginCap='falseconvex='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.00endCap='falsespine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/>
</Shape>
</Transform>
<Transform DEF='MuzzleBraketranslation='2.75 2.63 0'>
<Transform DEF='BottomPlaterotation='0 0 1 0.79'>
<Shape>
<Box size='0.5 0.07 0.34'/>
<Appearance>
<Material diffuseColor='0.15 0.2 0.15'/>
</Appearance>
</Shape>
<Transform DEF='TopPlatetranslation='0 0.175 0'>
<Shape>
<Box size='0.3 0.07 0.24'/>
<Appearance>
<Material diffuseColor='0.15 0.2 0.15'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='SuppressionRingOnerotation='0 0 1 1.57scale='0.0375 0.0375 0.06translation='0.12 0.0875 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.15 0.2 0.25'/>
</Appearance>
<Extrusion beginCap='falseconvex='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.00endCap='falsespine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/>
</Shape>
</Transform>
<Transform DEF='SuppressionRingTworotation='0 0 1 1.57scale='0.0375 0.0375 0.06translation='-0.12 0.0875 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.15 0.2 0.225'/>
</Appearance>
<Extrusion beginCap='falseconvex='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.00endCap='falsespine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/>
</Shape>
</Transform>
<Transform DEF='SuppressionRingThreerotation='0 0 1 1.57scale='0.0375 0.0375 0.06translation='0 0.0875 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.15 0.2 0.25'/>
</Appearance>
<Extrusion beginCap='falseconvex='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.00endCap='falsespine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/>
</Shape>
</Transform>
<Group DEF='TowRing'>
<Transform rotation='1 0 0 1.57scale='1.1 1.1 1.1translation='0.31 0 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.5 0.5 0.5specularColor='1 1 1'/>
</Appearance>
<Extrusion beginCap='falsecreaseAngle='1.57crossSection='0.01 0 0.0092 -0.0038 0.0071 -0.0071 0.0038 -0.0092 0 -0.01 -0.0038 -0.0092 -0.0071 -0.0071 -0.0092 -0.0038 -0.01 0 -0.0092 0.0038 -0.0071 0.0071 -0.0038 0.0092 0 0.01 0.0038 0.0092 0.0071 0.0071 0.0092 0.0038 0.01 0endCap='falsespine='0.03 0 0 0.0276 -0.0114 0 0.0213 -0.0213 0 0.0114 -0.0276 0 0 -0.03 0 -0.0114 -0.0276 0 -0.0213 -0.0213 0 -0.0276 -0.0114 0 -0.03 0 0 -0.0276 0.0114 0 -0.0213 0.0213 0 -0.0114 0.0276 0 0 0.03 0 0.0114 0.0276 0 0.0213 0.0213 0 0.0276 0.0114 0 0.03 0 0'/>
</Shape>
<Transform rotation='0 -1 0 1.57scale='0.5 1 1translation='-0.027 0 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.5 0.5 0.5specularColor='1 1 1'/>
</Appearance>
<Extrusion beginCap='falseconvex='falsecreaseAngle='1.57crossSection='0 0 0.007 0 0.018 0.025 0.032 0.035 0.04 0.036 0.04 0.04 0 0.04 0 0endCap='falsespine='0.001 0 0 0.00092 -0.00038 0 0.00071 -0.00071 0 0.00038 -0.00092 0 0 -0.001 0 -0.00038 -0.00092 0 -0.00071 -0.00071 0 -0.00092 -0.00038 0 -0.001 0 0 -0.00092 0.00038 0 -0.00071 0.00071 0 -0.00038 0.00092 0 0 0.001 0 0.00038 0.00092 0 0.00071 0.00071 0 0.00092 0.00038 0 0.001 0 0'/>
</Shape>
</Transform>
</Transform>
</Group>
<Transform DEF='MuzzleBaserotation='0 0 1 1.57scale='0.035 0.166 0.035translation='-0.25 0.0875 0'>
<Shape>
<Appearance>
<Material diffuseColor='0.15 0.2 0.25'/>
</Appearance>
<Extrusion beginCap='falseconvex='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.00endCap='falsespine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/>
</Shape>
</Transform>
</Transform>
</Transform>
</Transform>
</Group>
<Group DEF='RecoilCradle'>
<Transform DEF='Cradlerotation='0 0 -1 1.57'>
<Transform DEF='RightSidewallrotation='0 1 0 1.57translation='-0.08 0 0.25'>
<Shape>
<Box size='0.0625 1.125 0.25'/>
<Appearance>
<Material/>
</Appearance>
</Shape>
<Transform translation='-0.06 0 0'>
<Shape>
<Box size='0.06 0.75 0.15'/>
<Appearance>
<Material diffuseColor='0.1 0.2 0.1'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='ForwardRightWalltranslation='0 0.975 0'>
<Shape>
<Box size='0.0625 0.775 0.25'/>
<Appearance>
<Material diffuseColor='0.2 0.8 0.2'/>
</Appearance>
</Shape>
<Transform translation='-0.06 0 0'>
<Shape>
<Box size='0.06 0.5 0.15'/>
<Appearance>
<Material diffuseColor='0.1 0.2 0.1'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='FrontCradleBar'>
<Transform DEF='ForwardCoilscale='0.4 0.4 0.4translation='0.25 0.15 0.05'>
<Shape>
<Extrusion beginCap='falsecrossSection='-0.3 0.3 -0.6 0.1 -0.6 -0.1 -0.3 -0.3 0.3 -0.3 0.6 -0.1 0.6 0.1 0.3 0.3 -0.3 0.3endCap='falsesolid='falsespine='0 0 0 0 0.6 0'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='LeftSideWallrotation='0 1 0 1.57translation='-0.08 0 -0.25'>
<Shape>
<Box size='0.0625 1.125 0.25'/>
<Appearance>
<Material/>
</Appearance>
</Shape>
<Transform translation='0.06 0 0'>
<Shape>
<Box size='0.06 0.75 0.15'/>
<Appearance>
<Material diffuseColor='0.1 0.2 0.1'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='ForwardLeftWalltranslation='0 0.975 0'>
<Shape>
<Box size='0.0625 0.775 0.25'/>
<Appearance>
<Material diffuseColor='0.2 0.8 0.2'/>
</Appearance>
</Shape>
<Transform translation='0.06 0 0'>
<Shape>
<Box size='0.06 0.5 0.15'/>
<Appearance>
<Material diffuseColor='0.1 0.2 0.1'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
<Transform DEF='Accumulatortranslation='-0.325 0.2 0'>
<Shape>
<Cylinder height='0.75radius='0.08'/>
<Appearance>
<Material diffuseColor='0 0.25 1'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='RecoilCylinderstranslation='-0.25 0.4 0.25'>
<Shape>
<Cylinder height='0.36radius='0.04'/>
<Appearance>
<Material diffuseColor='1 1 0'/>
</Appearance>
</Shape>
<Transform translation='0 -0.3 0'>
<Shape>
<Cylinder height='0.3radius='0.025'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
<Transform translation='0 -0.15 0'>
<Shape>
<Box size='0.1 0.2 0.1'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Transform rotation='1 0 0 1.57translation='0 0.25 0'>
<Shape>
<Cylinder height='0.05radius='0.075'/>
<Appearance>
<Material diffuseColor='1 1 0'/>
</Appearance>
</Shape>
<Transform>
<Shape>
<Box size='0.05 0.1 0.05'/>
<Appearance>
<Material diffuseColor='1 0 1'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
<Transform DEF='Coils'>
<Transform DEF='Coilrotation='1 0 0 1.57translation='-0.1 -0.25 0'>
<Shape>
<Cylinder height='0.5radius='0.075'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 0.1667 0'>
<Transform USE=' Coil'/>
</Transform>
<Transform translation='-0.1 0.66 0'>
<Transform USE=' Coil'/>
</Transform>
</Transform>
<Transform DEF='LeftRecoilCylinderstranslation='-0.25 0.4 -0.25'>
<Shape>
<Cylinder height='0.36radius='0.04'/>
<Appearance>
<Material diffuseColor='1 1 0'/>
</Appearance>
</Shape>
<Transform translation='0 -0.3 0'>
<Shape>
<Cylinder height='0.3radius='0.025'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
<Transform translation='0 -0.15 0'>
<Shape>
<Box size='0.1 0.2 0.1'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Transform rotation='1 0 0 1.57translation='0 0.25 0'>
<Shape>
<Cylinder height='0.05radius='0.075'/>
<Appearance>
<Material diffuseColor='1 1 0'/>
</Appearance>
</Shape>
<Transform>
<Shape>
<Box size='0.05 0.1 0.05'/>
<Appearance>
<Material diffuseColor='1 0 1'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
<Transform DEF='Transferscale='0.75 1 0.75translation='0.1 0 0'>
<Shape>
<Appearance>
<Material/>
</Appearance>
<Extrusion creaseAngle='0.785crossSection='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='0.1 0.35 0.1 0.125 0.0625 0.0625 0.0625 0.0625 0.0425 0.0425 0.0425 0.0425 0.06 0.06 0.06 0.06 0.025 0.025 0.025 0.025 0.0125 0.0125 0.0125 0.0125 0.0125 0.0125 0.0125 0.0125spine='0 -0.25 0 0 0.1 0 0 0.2 0 0 0.25 0 0 0.45 0 0 0.5 0 0 0.52 0 0 0.575 0 0 0.6 0 0 0.65 0 0 0.675 0 0 0.675 0 0 0.75 0 0 0.825 0'/>
<!-- original scale had 3-tuples instead of 2-tuples 0.1 0.35 0.1, 0.1 0.125 0.1, 0.0625 0.0625 0.0625, 0.0625 0.0625 0.0625, 0.0425 0.0425 0.0425, 0.0425 0.0425 0.0425, 0.06 0.06 0.06, 0.06 0.06 0.06, 0.025 0.025 0.025, 0.025 0.025 0.025, 0.0125 0.0125 0.0125, 0.0125 0.0125 0.0125 -->
</Shape>
</Transform>
</Transform>
<Transform DEF='Breachtranslation='0.75 0 0'>
<Shape>
<Box size='0.25 0.25 0.25'/>
<Appearance>
<Material diffuseColor='0 0 1'/>
</Appearance>
</Shape>
</Transform>
</Group>
</Transform>
</fieldValue>
</ProtoInstance>
</Transform>
</Transform>
</Group>
</fieldValue>
</ProtoInstance>
<Group DEF='TrailerBody'>
<Transform DEF='TrailerBodyMainrotation='0 0 1 1.57scale='0.375 0.375 0.375translation='-0.11 0 -0.2'>
<Transform rotation='1 0 0 1.57'>
<Shape>
<Extrusion convex='falsecrossSection='0 0.2 -0.3 0.2 -1 0.5 -1.2 0.7 -1.5 0.4 -0.8 -0.3 -0.8 -0.6 -2.1 -2.55 -1.9 -2.7 -0.6 -1.3 -0.4 -1.4 -0.1 -1.5 0.1 -1.5 0.4 -1.4 0.6 -1.3 1.9 -2.7 2.1 -2.55 0.8 -0.6 0.8 -0.3 1.5 0.4 1.2 0.7 1 0.5 0.3 0.2 0 0.2solid='falsespine='0 0 0 0 0.1667 0 0 0.33 0'/>
<Appearance>
<Material diffuseColor='0.15 0.25 0.1'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='RightSpadeHubrotation='0 0 -1 0.66translation='-2 2.6 0.1'>
<Shape>
<Cylinder height='0.1667radius='0.1667'/>
<Appearance>
<Material diffuseColor='0 1 0.66'/>
</Appearance>
</Shape>
<Group DEF='RightSpade'>
<Transform rotation='0 0 -1 1.57scale='0.5 0.5 0.5translation='-0.1667 0.25 -0.25'>
<Transform rotation='1 0 0 1.57'>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 4 -1'>
<Coordinate point='0 1 0 0 0 0 1 0 0 1 1 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='0 1 0 0 0.9 0.2 0 0 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='1 1 0 1 0.9 0.2 1 0 0 1 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 4 -1'>
<Coordinate point='0 1 0 0 0.9 0.2 1 0.9 0.2 1 1 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='0 1 0 -0.3 0.3 0.2 0 0 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='1 1 0 1.3 0.3 0.2 1 0 0 1 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='1 1 0 1 0.9 0.2 1.3 0.3 0.2 1 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='0 1 0 0 0.9 0.2 -0.3 0.3 0.2 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
</Group>
</Transform>
<Transform DEF='LeftSpadeHubrotation='0 0 1 0.66translation='2 2.6 0.1'>
<Shape>
<Cylinder height='0.1667radius='0.1667'/>
<Appearance>
<Material diffuseColor='0 1 0.66'/>
</Appearance>
</Shape>
<Group DEF='LeftSpade'>
<Transform rotation='0 0 1 1.57scale='0.5 0.5 0.5translation='0.1667 -0.25 -0.25'>
<Transform rotation='1 0 0 1.57'>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 4 -1'>
<Coordinate point='0 1 0 0 0 0 1 0 0 1 1 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='0 1 0 0 0.9 0.2 0 0 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='1 1 0 1 0.9 0.2 1 0 0 1 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 4 -1'>
<Coordinate point='0 1 0 0 0.9 0.2 1 0.9 0.2 1 1 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='0 1 0 -0.3 0.3 0.2 0 0 0 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='1 1 0 1.3 0.3 0.2 1 0 0 1 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='1 1 0 1 0.9 0.2 1.3 0.3 0.2 1 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
<Transform>
<Shape>
<IndexedFaceSet solid='falsecoordIndex='0 1 2 3 -1'>
<Coordinate point='0 1 0 0 0.9 0.2 -0.3 0.3 0.2 0 1 0'/>
</IndexedFaceSet>
<Appearance>
<Material diffuseColor='0 1 1'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
</Group>
</Transform>
</Transform>
<Transform DEF='LeftFrontStabilizerrotation='0 1 0 0.25translation='0.25 0.66 -0.175'>
<Transform rotation='0 0 1 0.79'>
<Shape>
<Appearance>
<Material diffuseColor='0 0.15 0.8'/>
</Appearance>
<Box size='0.5 0.125 0.1'/>
</Shape>
<Transform DEF='LeftWheelrotation='0 0 -1 0.79'>
<Transform scale='0.05 0.05 0.05translation='0.2 -0.1 0.15'>
<Shape>
<Extrusion DEF='TirebeginCap='falseconvex='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.00endCap='falsespine='2.00 0.0 0.00 1.85 0.0 0.77 1.41 0.0 1.41 0.77 0.0 1.85 0.00 0.0 2.00 -0.77 0.0 1.85 -1.41 0.0 1.41 -1.85 0.0 0.77 -2.00 0.0 0.00 -1.85 0.0 -0.77 -1.41 0.0 -1.41 -0.77 0.0 -1.85 0.00 0.0 -2.00 0.77 0.0 -1.85 1.41 0.0 -1.41 1.85 0.0 -0.77 2.00 0.0 0.00'/>
<Appearance>
<Material diffuseColor='0.1 0.1 0.1'/>
</Appearance>
</Shape>
<Transform>
<Shape>
<Cylinder height='1radius='1.5'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='WheelHubtranslation='0 0.66 0'>
<Shape>
<Cylinder height='3radius='0.5'/>
<Appearance>
<Material diffuseColor='0.1 0.1 0.1'/>
</Appearance>
</Shape>
<Transform DEF='LeftStrutrotation='0 1 0 0.79'>
<Transform translation='0 0.9 -1.75'>
<Shape>
<Box size='1 1 5'/>
<Appearance>
<Material diffuseColor='0.2 0.2 0.2'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='RightFrontStabilizerrotation='0 1 0 0.25translation='0.25 -0.66 -0.175'>
<Transform rotation='0 0 -1 0.79'>
<Shape>
<Appearance>
<Material diffuseColor='0 0.15 0.8'/>
</Appearance>
<Box size='0.5 0.125 0.1'/>
</Shape>
<Transform DEF='RightWheelrotation='0 0 1 0.79'>
<Transform scale='0.05 0.05 0.05translation='0.2 0.1 0.15'>
<Shape>
<Extrusion USE=' Tire'/>
<Appearance>
<Material diffuseColor='0.1 0.1 0.1'/>
</Appearance>
</Shape>
<Transform>
<Shape>
<Cylinder height='1radius='1.5'/>
<Appearance>
<Material USE=' grey'/>
</Appearance>
</Shape>
</Transform>
<Transform DEF='RightWheelHubtranslation='0 -0.33 0'>
<Shape>
<Cylinder height='3radius='0.5'/>
<Appearance>
<Material diffuseColor='0.1 0.1 0.1'/>
</Appearance>
</Shape>
<Transform DEF='RightStrutrotation='0 -1 0 2.09'>
<Transform translation='0 -1.25 1.75'>
<Shape>
<Box size='1 1 5'/>
<Appearance>
<Material diffuseColor='0.2 0.2 0.2'/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Group>
</Transform>
<Group DEF='ProjectileScene'>
<Transform translation='200 -0.35 0.0'>
<Shape DEF='Ground'>
<Box size='410.0 0.2 150.0'/>
<Appearance> </Appearance>
</Shape>
</Transform>
<Transform translation='200 100 -75'>
<Shape DEF='BackDrop'>
<Box size='410.0 200.0 .2'/>
<Appearance> </Appearance>
</Shape>
</Transform>
<Transform translation='200 -0.25 0.0'>
<Shape DEF='CenterLine'>
<Box size='410.0 0.1 2'/>
<Appearance>
<Material diffuseColor='0.6 0.4 1emissiveColor='0.6 0.4 1'/>
</Appearance>
</Shape>
</Transform>
<!-- ROUTE information for projectileTransform node:  [from translation to projectileViewTransform.set_translation ] -->
<EspduTransform DEF='projectileTransformaddress='224.0.0.3marking='Projectileport='64200siteID='3writeInterval='0containerField='children'>
<Transform DEF='projectile2rotation='0 0 1 -1.57scale='1.5 3 1.5'>
<Shape>
<Cylinder radius='.5'/>
<Appearance>
<Material diffuseColor='0.887 0.027 0.910specularColor='0.887 0.027 0.910'/>
</Appearance>
</Shape>
<Transform translation='0 1.5 0'>
<Shape>
<Cone bottomRadius='0.5height='1'/>
<Appearance>
<Material diffuseColor='0.35 0.35 0.35specularColor='0.35 0.35 0.35'/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Viewpoint description='Projectile Rearorientation='0 1 0 -1.57position='-25 0 0'/>
<Viewpoint description='Projectile Sideposition='0 0 50'/>
<Viewpoint description='Projectile Frontorientation='0 1 0 1.57position='25 0 0'/>
</EspduTransform>
<!-- ROUTE information for projectileViewTransform node:  [from projectileTransform.translation to set_translation ] -->
<Transform DEF='projectileViewTransform'>
<Viewpoint description='Projectile Side-IIposition='0 0 50'/>
<Viewpoint description='Projectile Front-IIorientation='0 1 0 1.57position='25 0 0'/>
</Transform>
</Group>
< ROUTE  fromNode=' projectileTransform' fromField='translation' toNode=' projectileViewTransform' toField='set_translation'/>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Accumulator, BackDrop, BarrelElevation, BarrelHeading, BottomPlate, Breach, Cannon, CannonAssembly, CenterLine, Coil, Coils, Cradle, Crank, ElevationGear, ForwardCoil, ForwardLeftWall, ForwardRightWall, FrontCradleBar, grey, Ground, LeftFrontStabilizer, LeftRecoilCylinders, LeftSideWall, LeftSpade, LeftSpadeHub, LeftStrut, LeftWheel, MuzzleBase, MuzzleBrake, projectile2, ProjectileScene, projectileTransform, projectileViewTransform, RecoilCradle, RecoilCylinders, RightFrontStabilizer, RightSidewall, RightSpade, RightSpadeHub, RightStrut, RightWheel, RightWheelHub, Saddle, SaddleBase, SuppressionRingOne, SuppressionRingThree, SuppressionRingTwo, TheClock, Tire, TopPlate, TowRing, TrailerBody, TrailerBodyMain, Transfer, WheelHub

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7, Viewpoint_8 Index for ExternProtoDeclare definition: ArbitraryAxisCylinderSensor
-->

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

BarrelElevation
ProtoInstance
ArbitraryAxisCylinderSensor
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


BarrelHeading
ProtoInstance
ArbitraryAxisCylinderSensor
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


projectileTransform
EspduTransform
translation
SFVec3f

ROUTE
event to
(1)
projectileViewTransform
Transform
set_translation
SFVec3f


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/CannonProjectIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/DistributedInteractiveSimulation/CannonProject.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)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->