| 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=' AriesPrototype.x3d '/> |
| 6 | <meta name='description' content='Model of the Acoustic Radio Interactive Exploratory Server (ARIES), an operational NPS-designed Unmanned Underwater Vehicle (AUV). Expose position, rotation, sonars, thrusters, fins, etc. as a reusable prototype.'/> |
| 7 | <meta name='creator' content='Don Brutzman NPS, aboard RV Gyre in Gulf of Mexico off Gulfport MS 1999; Jane Wu Rolands and Associates 2001, Duane Davis NPS 2003'/> |
| 8 | <meta name='created' content='30 July 2000'/> |
| 9 | <meta name='modified' content='20 October 2019'/> |
| 10 | <meta name='photo' content='AriesHoistCloseup.jpg'/> |
| 11 | <meta name='reference' content=' AriesFlyerMarch2001.pdf '/> |
| 12 | <meta name='reference' content=' organic_mcmONR2002.pdf '/> |
| 13 |
<meta name='reference' content='AriesSchematic.png' />
|
| 14 | <meta name='reference' content=' AriesSchematic.ppt '/> |
| 15 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesPrototype.x3d '/> |
| 16 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
| 17 | <meta name='license' content='../../license.html'/> |
| 18 | </head> |
| 19 | <Scene> |
| 20 | <!-- Produce wireframe or transparent beam cones. --> |
| 21 | <WorldInfo title='AriesPrototype.x3d'/> |
| 22 | <ExternProtoDeclare name='BeamCone' appinfo='Produce wireframe or transparent beam cones. Typical uses include propeller/thruster water flow or line-of-sight sonar/radar/light beams. Negative range values invert base and apex at same relative location. Default: beam with apex at (0 0 0) and base of radius 1 in x-z plane at (1 0 0).' url=' "../../CommunicationsAndSensors/Beam/BeamConePrototype.x3d#BeamCone" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamConePrototype.x3d#BeamCone" "../../CommunicationsAndSensors/Beam/BeamConePrototype.wrl#BeamCone" "https://www.web3d.org/x3d/content/examples/Savage/CommunicationsAndSensors/Beam/BeamConePrototype.wrl#BeamCone" '> |
| 23 |
<field name='name' type='SFString' accessType='initializeOnly'
appinfo='BeamCone name aids tracing'/> |
| 24 |
<field name='contact' type='SFBool' accessType='inputOnly'
appinfo='(communications) is transmitted signal in contact with receiver or (sensor) is a target return detected?'/> |
| 25 |
<field name='range' type='SFFloat' accessType='inputOnly'
appinfo='distance in meters along x axis'/> |
| 26 |
<field name='defaultRange' type='SFFloat' accessType='initializeOnly'
appinfo='distance in meters used until eventIn range sent'/> |
| 27 |
<field name='wireframe' type='SFBool' accessType='initializeOnly'
appinfo='whether wireframe beam is drawn'/> |
| 28 |
<field name='solid' type='SFBool' accessType='initializeOnly'
appinfo='whether solid beam is drawn'/> |
| 29 |
<field name='beamHeightDegrees' type='SFFloat' accessType='initializeOnly'
appinfo='degrees across vertical y axis'/> |
| 30 |
<field name='beamWidthDegrees' type='SFFloat' accessType='initializeOnly'
appinfo='degrees across horizontal z axis'/> |
| 31 |
<field name='contactColor' type='SFColor' accessType='initializeOnly'
appinfo='rendering color when contact=true'/> |
| 32 |
<field name='noContactColor' type='SFColor' accessType='initializeOnly'
appinfo='rendering color when contact=false'/> |
| 33 |
<field name='transparency' type='SFFloat' accessType='inputOutput'
appinfo='1 = fully transparent wireframe only'/> |
| 34 |
<field name='traceEnabled' type='SFBool' accessType='initializeOnly'
appinfo='flag to turn on Script tracing'/> |
| 35 | </ExternProtoDeclare> |
| 36 | <ProtoDeclare name='Aries' appinfo='Acoustic Radio Interactive Exploratory Server (ARIES) is an operational NPS-designed Unmanned Underwater Vehicle (AUV)'> |
| 37 | <ProtoInterface> |
| 38 |
<field name='hullName' type='SFString' value='Aries' accessType='inputOutput'
appinfo='can be overridden at instantiation time only'/> |
| 39 |
<field name='hullColor' type='SFColor' value='.9 .9 .9' accessType='inputOutput'
appinfo='hull color for this UUV instance'/> |
| 40 |
<field name='planeColor' type='SFColor' value='.1 .1 .8' accessType='inputOutput'
appinfo='plane color for this UUV instance'/> |
| 41 | <field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'/> |
| 42 | <field name='rotation' type='SFRotation' value='0 0 1 0' accessType='inputOutput'/> |
| 43 | <field name='set_portRpm' type='SFFloat' accessType='inputOnly'/> |
| 44 | <field name='set_stbdRpm' type='SFFloat' accessType='inputOnly'/> |
| 45 | <field name='set_forwardRudders' type='SFFloat' accessType='inputOnly'/> |
| 46 | <field name='set_afterRudders' type='SFFloat' accessType='inputOnly'/> |
| 47 | <field name='set_forwardPlanes' type='SFFloat' accessType='inputOnly'/> |
| 48 | <field name='set_afterPlanes' type='SFFloat' accessType='inputOnly'/> |
| 49 | <field name='set_forwardVerticalThruster' type='SFFloat' accessType='inputOnly'/> |
| 50 | <field name='set_afterVerticalThruster' type='SFFloat' accessType='inputOnly'/> |
| 51 | <field name='set_forwardLateralThruster' type='SFFloat' accessType='inputOnly'/> |
| 52 | <field name='set_afterLateralThruster' type='SFFloat' accessType='inputOnly'/> |
| 53 |
<field name='set_ST725Range' type='SFFloat' accessType='inputOnly'
appinfo='meters along sonar axis'/> |
| 54 |
<field name='set_ST725Bearing' type='SFFloat' accessType='inputOnly'
appinfo='degrees about vertical axis'/> |
| 55 |
<field name='set_ST725Intensity' type='SFFloat' accessType='inputOnly'
appinfo='signal-to-noise ratio decibels'/> |
| 56 |
<field name='set_ST1000Range' type='SFFloat' accessType='inputOnly'
appinfo='meters along sonar axis'/> |
| 57 |
<field name='set_ST1000Bearing' type='SFFloat' accessType='inputOnly'
appinfo='degrees about vertical axis'/> |
| 58 |
<field name='set_ST1000Intensity' type='SFFloat' accessType='inputOnly'
appinfo='signal-to-noise ratio decibels'/> |
| 59 | </ProtoInterface> |
| 60 | <ProtoBody> |
| 61 | <Transform DEF='AriesTransform'> |
| 62 | <IS> |
| 63 | <connect nodeField='translation' protoField='translation'/> |
| 64 | <connect nodeField='rotation' protoField='rotation'/> |
| 65 | </IS> |
| 66 |
<!-- ROUTE information for ST725 node:
[from SONAR_STEERING_AND_DETECTS.ST725Rotation to rotation
]
-->
<Transform DEF='ST725' translation='.9 -0.12 -0.03'> |
| 67 |
<!-- ROUTE information for ST725BeamCone node:
[from SONAR_STEERING_AND_DETECTS.ST725Contact to contact
]
[from SONAR_STEERING_AND_DETECTS.ST725Range_changed to range
]
[from SONAR_STEERING_AND_DETECTS.ST725Intensity to transparency
]
-->
<ProtoInstance name='BeamCone' DEF='ST725BeamCone'> |
| 68 | <fieldValue name='name' value='ST725BeamCone'/> |
| 69 | <fieldValue name='defaultRange' value='1'/> |
| 70 | <fieldValue name='beamHeightDegrees' value='24'/> |
| 71 | <fieldValue name='beamWidthDegrees' value='1'/> |
| 72 | <fieldValue name='solid' value='true'/> |
| 73 | <fieldValue name='wireframe' value='false'/> |
| 74 | <fieldValue name='contactColor' value='1 0 0'/> |
| 75 | <fieldValue name='noContactColor' value='.3 .05 .05'/> |
| 76 | <fieldValue name='transparency' value='.2'/> |
| 77 | <fieldValue name='traceEnabled' value='false'/> |
| 78 | </ProtoInstance> |
| 79 | </Transform> |
| 80 |
<!-- ROUTE information for ST1000 node:
[from SONAR_STEERING_AND_DETECTS.ST1000Rotation to rotation
]
-->
<Transform DEF='ST1000' translation='.7 .12 .05'> |
| 81 |
<!-- ROUTE information for ST1000BeamCone node:
[from SONAR_STEERING_AND_DETECTS.ST1000Contact to contact
]
[from SONAR_STEERING_AND_DETECTS.ST1000Range_changed to range
]
[from SONAR_STEERING_AND_DETECTS.ST1000Intensity to transparency
]
-->
<ProtoInstance name='BeamCone' DEF='ST1000BeamCone'> |
| 82 | <fieldValue name='name' value='ST1000BeamCone'/> |
| 83 | <fieldValue name='defaultRange' value='1'/> |
| 84 | <fieldValue name='beamHeightDegrees' value='1'/> |
| 85 | <fieldValue name='beamWidthDegrees' value='1'/> |
| 86 | <fieldValue name='solid' value='true'/> |
| 87 | <fieldValue name='wireframe' value='false'/> |
| 88 | <fieldValue name='contactColor' value='1 .8 0'/> |
| 89 | <fieldValue name='noContactColor' value='.4 .3 .05'/> |
| 90 | <fieldValue name='transparency' value='.2'/> |
| 91 | <fieldValue name='traceEnabled' value='false'/> |
| 92 | </ProtoInstance> |
| 93 | </Transform> |
| 94 |
<!-- ROUTE information for SONAR_STEERING_AND_DETECTS node:
[from ST725Rotation to ST725.rotation
]
[from ST1000Rotation to ST1000.rotation
]
[from ST725Contact to ST725BeamCone.contact
]
[from ST1000Contact to ST1000BeamCone.contact
]
[from ST725Range_changed to ST725BeamCone.range
]
[from ST1000Range_changed to ST1000BeamCone.range
]
[from ST725Intensity to ST725BeamCone.transparency
]
[from ST1000Intensity to ST1000BeamCone.transparency
]
-->
<Script DEF='SONAR_STEERING_AND_DETECTS'> |
| 95 | <field name='set_ST725Range' type='SFFloat' accessType='inputOnly'/> |
| 96 | <field name='set_ST725Bearing' type='SFFloat' accessType='inputOnly'/> |
| 97 | <field name='set_ST725Intensity' type='SFFloat' accessType='inputOnly'/> |
| 98 | <field name='set_ST1000Range' type='SFFloat' accessType='inputOnly'/> |
| 99 | <field name='set_ST1000Bearing' type='SFFloat' accessType='inputOnly'/> |
| 100 | <field name='set_ST1000Intensity' type='SFFloat' accessType='inputOnly'/> |
| 101 | <field name='ST725Rotation' type='SFRotation' accessType='outputOnly'/> |
| 102 | <field name='ST1000Rotation' type='SFRotation' accessType='outputOnly'/> |
| 103 | <field name='ST725Contact' type='SFBool' accessType='outputOnly'/> |
| 104 | <field name='ST1000Contact' type='SFBool' accessType='outputOnly'/> |
| 105 | <field name='ST725Range_changed' type='SFFloat' accessType='outputOnly'/> |
| 106 | <field name='ST1000Range_changed' type='SFFloat' accessType='outputOnly'/> |
| 107 | <field name='ST725Intensity' type='SFFloat' accessType='outputOnly'/> |
| 108 | <field name='ST1000Intensity' type='SFFloat' accessType='outputOnly'/> |
| 109 | <IS> |
| 110 | <connect nodeField='set_ST725Range' protoField='set_ST725Range'/> |
| 111 | <connect nodeField='set_ST725Bearing' protoField='set_ST725Bearing'/> |
| 112 | <connect nodeField='set_ST725Intensity' protoField='set_ST725Intensity'/> |
| 113 | <connect nodeField='set_ST1000Range' protoField='set_ST1000Range'/> |
| 114 | <connect nodeField='set_ST1000Bearing' protoField='set_ST1000Bearing'/> |
| 115 | <connect nodeField='set_ST1000Intensity' protoField='set_ST1000Intensity'/> |
| 116 | </IS> |
<![CDATA[
ecmascript:
function degreeToRadian( value )
{
return value * Math.PI / 180;
}
function set_ST725Range (value, timeStamp)
{
if ((value > 0) && (value < 30.0))
{
ST725Contact = true;
ST725Range_changed = value;
}
else
{
ST725Contact = false;
if ( value < 0 )
ST725Range_changed = 0.0;
else
ST725Range_changed = 30.0;
}
}
function set_ST725Bearing (value, timeStamp)
{
ST725Rotation = new SFRotation(0, 1, 0, degreeToRadian(value));
}
function set_ST725Intensity (value, timeStamp)
{
ST725Intensity = new SFFloat(value);
}
function set_ST1000Range (value, timeStamp)
{
if ((value > 0) && (value < 30.0))
{
ST1000Contact = true;
ST1000Range_changed = value;
}
else
{
ST1000Contact = false;
if ( value < 0 )
ST1000Range_changed = 0.0;
else
ST1000Range_changed = 30.0;
}
}
function set_ST1000Bearing (value, timeStamp)
{
ST1000Rotation = new SFRotation(0, 1, 0, degreeToRadian(value));
}
function set_ST1000Intensity (value, timeStamp)
{
ST1000Intensity = new SFFloat(value);
}
]]>
|
|
| 118 | </Script> |
| 119 | <Group> |
| 120 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST725Rotation' toNode='ST725' toField='rotation'/> |
| 121 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST1000Rotation' toNode='ST1000' toField='rotation'/> |
| 122 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST725Contact' toNode='ST725BeamCone' toField='contact'/> |
| 123 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST1000Contact' toNode='ST1000BeamCone' toField='contact'/> |
| 124 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST725Range_changed' toNode='ST725BeamCone' toField='range'/> |
| 125 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST1000Range_changed' toNode='ST1000BeamCone' toField='range'/> |
| 126 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST725Intensity' toNode='ST725BeamCone' toField='transparency'/> |
| 127 | < ROUTE fromNode='SONAR_STEERING_AND_DETECTS' fromField='ST1000Intensity' toNode='ST1000BeamCone' toField='transparency'/> |
| 128 | </Group> |
| 129 | <LOD range='400'> |
| 130 | <!-- ### hack job! need to update actual numbers instead of scaling --> |
| 131 | <Transform DEF='PRIMARY_AUV_GEOMETRY' scale='1 1.3 1'> |
| 132 | <!-- positive rotation about y-axis rotates rudders to port --> |
| 133 |
<!-- ROUTE information for FORWARD_RUDDERS node:
[from PLANE_SURFACES.forwardRuddersRotation to rotation
]
-->
<Transform DEF='FORWARD_RUDDERS' translation='.6223 0 0'> |
| 134 | <Transform translation='0 .13335 0'> |
| 135 | |
| 136 | <Appearance> |
| 137 | <Material DEF='PlaneMaterial'> |
| 138 | <IS> |
| 139 | <connect nodeField='diffuseColor' protoField='planeColor'/> |
| 140 | </IS> |
| 141 | </Material> |
| 142 | </Appearance> |
| 143 | <!-- creaseAngle for sharp edges --> |
| 144 | <IndexedFaceSet creaseAngle='3.14159' coordIndex='0 3 2 1 -1 4 5 6 7 -1 0 1 5 4 -1 1 2 6 5 -1 2 3 7 6 -1 0 3 7 4 -1'> |
| 145 | <!-- indices for point values range [0..7] --> |
| 146 | <Coordinate point='.0635 0 -0.0127 .0381 .1778 -0.0127 -0.0381 .1778 -0.0127 -0.0889 0 -0.0127 .0635 0 .0127 .0381 .1778 .0127 -0.0381 .1778 .0127 -0.0889 0 .0127'/> |
| 147 | </IndexedFaceSet> |
| 148 | </Shape> |
| 149 | </Transform> |
| 150 | <Transform rotation='1 0 0 3.14159267' translation='0 -0.13335 0'> |
| 151 | <Shape USE='PLANE_SHAPE'/> |
| 152 | </Transform> |
| 153 | </Transform> |
| 154 | <!-- positive rotation about y-axis rotates rudder to port --> |
| 155 |
<!-- ROUTE information for AFTER_RUDDERS node:
[from PLANE_SURFACES.afterRuddersRotation to rotation
]
-->
<Transform DEF='AFTER_RUDDERS' translation='-0.7747 0 0'> |
| 156 | <Transform translation='0 .13335 0'> |
| 157 | <Shape USE='PLANE_SHAPE'/> |
| 158 | </Transform> |
| 159 | <Transform rotation='1 0 0 3.14159267' translation='0 -0.13335 0'> |
| 160 | <Shape USE='PLANE_SHAPE'/> |
| 161 | </Transform> |
| 162 | </Transform> |
| 163 |
<!-- ROUTE information for FORWARD_PLANES node:
[from PLANE_SURFACES.forwardPlanesRotation to rotation
]
-->
<Transform DEF='FORWARD_PLANES' translation='.6223 0 0'> |
| 164 | <Transform rotation='1 0 0 1.57079' translation='0 0 .20955'> |
| 165 | <Shape USE='PLANE_SHAPE'/> |
| 166 | </Transform> |
| 167 | <Transform rotation='1 0 0 -1.57079' translation='0 0 -0.20955'> |
| 168 | <Shape USE='PLANE_SHAPE'/> |
| 169 | </Transform> |
| 170 | </Transform> |
| 171 |
<!-- ROUTE information for AFTER_PLANES node:
[from PLANE_SURFACES.afterPlanesRotation to rotation
]
-->
<Transform DEF='AFTER_PLANES' translation='-0.7747 0 0'> |
| 172 | <Transform rotation='1 0 0 1.57079' translation='0 0 .20955'> |
| 173 | <Shape USE='PLANE_SHAPE'/> |
| 174 | </Transform> |
| 175 | <Transform rotation='1 0 0 -1.57079' translation='0 0 -0.20955'> |
| 176 | <Shape USE='PLANE_SHAPE'/> |
| 177 | </Transform> |
| 178 | </Transform> |
| 179 |
<!-- ROUTE information for PLANE_SURFACES node:
[from forwardRuddersRotation to FORWARD_RUDDERS.rotation
]
[from afterRuddersRotation to AFTER_RUDDERS.rotation
]
[from forwardPlanesRotation to FORWARD_PLANES.rotation
]
[from afterPlanesRotation to AFTER_PLANES.rotation
]
-->
<Script DEF='PLANE_SURFACES'> |
| 180 | <field name='set_forwardRudders' type='SFFloat' accessType='inputOnly'/> |
| 181 | <field name='set_afterRudders' type='SFFloat' accessType='inputOnly'/> |
| 182 | <field name='set_forwardPlanes' type='SFFloat' accessType='inputOnly'/> |
| 183 | <field name='set_afterPlanes' type='SFFloat' accessType='inputOnly'/> |
| 184 | <field name='forwardRuddersRotation' type='SFRotation' accessType='outputOnly'/> |
| 185 | <field name='afterRuddersRotation' type='SFRotation' accessType='outputOnly'/> |
| 186 | <field name='forwardPlanesRotation' type='SFRotation' accessType='outputOnly'/> |
| 187 | <field name='afterPlanesRotation' type='SFRotation' accessType='outputOnly'/> |
| 188 | <IS> |
| 189 | <connect nodeField='set_forwardRudders' protoField='set_forwardRudders'/> |
| 190 | <connect nodeField='set_afterRudders' protoField='set_afterRudders'/> |
| 191 | <connect nodeField='set_forwardPlanes' protoField='set_forwardPlanes'/> |
| 192 | <connect nodeField='set_afterPlanes' protoField='set_afterPlanes'/> |
| 193 | </IS> |
<![CDATA[
ecmascript:
function set_forwardRudders (value, timeStamp) {
forwardRuddersRotation = new SFRotation(0, 1, 0, value);
}
function set_afterRudders (value, timeStamp) {
afterRuddersRotation = new SFRotation(0, 1, 0, value);
}
function set_forwardPlanes (value, timeStamp) {
forwardPlanesRotation = new SFRotation(0, 0, 1, value);
}
function set_afterPlanes (value, timeStamp) {
afterPlanesRotation = new SFRotation(0, 0, 1, value);
}
]]>
|
|
| 195 | </Script> |
| 196 | <Group> |
| 197 | < ROUTE fromNode='PLANE_SURFACES' fromField='forwardRuddersRotation' toNode='FORWARD_RUDDERS' toField='rotation'/> |
| 198 | < ROUTE fromNode='PLANE_SURFACES' fromField='afterRuddersRotation' toNode='AFTER_RUDDERS' toField='rotation'/> |
| 199 | < ROUTE fromNode='PLANE_SURFACES' fromField='forwardPlanesRotation' toNode='FORWARD_PLANES' toField='rotation'/> |
| 200 | < ROUTE fromNode='PLANE_SURFACES' fromField='afterPlanesRotation' toNode='AFTER_PLANES' toField='rotation'/> |
| 201 | </Group> |
| 202 | <Transform DEF='FORWARD_VERTICAL_THRUSTER' translation='.3302 0 0'> |
| 203 |
<!-- Shape
VERTICAL_THRUSTER_SHAPE is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='VERTICAL_THRUSTER_SHAPE'> |
| 204 |
<!-- Appearance
THRUSTER_APPEARANCE is a DEF node that has 1 USE node: USE_1 -->
<Appearance DEF='THRUSTER_APPEARANCE'> |
| 205 | <Material diffuseColor='.2 .2 .2'/> |
| 206 | </Appearance> |
| 207 | <Cylinder height='.29' radius='.0635' side='false'/> |
| 208 | </Shape> |
| 209 |
<!-- ROUTE information for FORWARD_VERTICAL_BEAMCONE node:
[from THRUSTER_CONES.forwardVerticalThrusterBeamTranslation to translation
]
-->
<Transform DEF='FORWARD_VERTICAL_BEAMCONE' rotation='0 0 1 1.57079' translation='0 .145 0'> |
| 210 |
<!-- ROUTE information for ForwardVerticalBeamCone node:
[from THRUSTER_CONES.forwardVerticalThrusterBeamRange to range
]
-->
<ProtoInstance name='BeamCone' DEF='ForwardVerticalBeamCone'> |
| 211 | <fieldValue name='name' value='ForwardVerticalBeamCone'/> |
| 212 | <!-- range -1.0..0..1.0m <==> -24V..0..24V --> |
| 213 | <fieldValue name='defaultRange' value='1'/> |
| 214 | <fieldValue name='beamHeightDegrees' value='8'/> |
| 215 | <fieldValue name='beamWidthDegrees' value='8'/> |
| 216 | <fieldValue name='solid' value='false'/> |
| 217 | <fieldValue name='wireframe' value='true'/> |
| 218 | <fieldValue name='noContactColor' value='0 .8 .4'/> |
| 219 | <fieldValue name='transparency' value='0'/> |
| 220 | <fieldValue name='traceEnabled' value='false'/> |
| 221 | </ProtoInstance> |
| 222 | </Transform> |
| 223 | </Transform> |
| 224 | <Transform DEF='AFTER_VERTICAL_THRUSTER' translation='-0.4953 0 0'> |
| 225 | <Shape USE='VERTICAL_THRUSTER_SHAPE'/> |
| 226 |
<!-- ROUTE information for AFTER_VERTICAL_BEAMCONE node:
[from THRUSTER_CONES.afterVerticalThrusterBeamTranslation to translation
]
-->
<Transform DEF='AFTER_VERTICAL_BEAMCONE' rotation='0 0 1 1.57079' translation='0 .145 0'> |
| 227 |
<!-- ROUTE information for AfterVerticalBeamCone node:
[from THRUSTER_CONES.afterVerticalThrusterBeamRange to range
]
-->
<ProtoInstance name='BeamCone' DEF='AfterVerticalBeamCone'> |
| 228 | <fieldValue name='name' value='AfterVerticalBeamCone'/> |
| 229 | <!-- range -1.0..0..1.0m <==> -24V..0..24V --> |
| 230 | <fieldValue name='defaultRange' value='1'/> |
| 231 | <fieldValue name='beamHeightDegrees' value='8'/> |
| 232 | <fieldValue name='beamWidthDegrees' value='8'/> |
| 233 | <fieldValue name='solid' value='false'/> |
| 234 | <fieldValue name='wireframe' value='true'/> |
| 235 | <fieldValue name='noContactColor' value='0 .8 .4'/> |
| 236 | <fieldValue name='transparency' value='0'/> |
| 237 | <fieldValue name='traceEnabled' value='false'/> |
| 238 | </ProtoInstance> |
| 239 | </Transform> |
| 240 | </Transform> |
| 241 | <Transform DEF='FORWARD_LATERAL_THRUSTER' rotation='1 0 0 1.57079' translation='.4699 0 0'> |
| 242 |
<!-- Shape
LATERAL_THRUSTER_SHAPE is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='LATERAL_THRUSTER_SHAPE'> |
| 243 | <Appearance USE='THRUSTER_APPEARANCE'/> |
| 244 | <Cylinder height='.44' radius='.0635' side='false'/> |
| 245 | </Shape> |
| 246 |
<!-- ROUTE information for FORWARD_LATERAL_BEAMCONE node:
[from THRUSTER_CONES.forwardLateralThrusterBeamTranslation to translation
]
-->
<Transform DEF='FORWARD_LATERAL_BEAMCONE' rotation='0 0 1 1.57079' translation='0 .145 0'> |
| 247 |
<!-- ROUTE information for ForwardLateralBeamCone node:
[from THRUSTER_CONES.forwardLateralThrusterBeamRange to range
]
-->
<ProtoInstance name='BeamCone' DEF='ForwardLateralBeamCone'> |
| 248 | <fieldValue name='name' value='ForwardLateralBeamCone'/> |
| 249 | <!-- range -1.0..0..1.0m <==> -24V..0..24V --> |
| 250 | <fieldValue name='defaultRange' value='1'/> |
| 251 | <fieldValue name='beamHeightDegrees' value='8'/> |
| 252 | <fieldValue name='beamWidthDegrees' value='8'/> |
| 253 | <fieldValue name='solid' value='false'/> |
| 254 | <fieldValue name='wireframe' value='true'/> |
| 255 | <fieldValue name='noContactColor' value='0 .8 .4'/> |
| 256 | <fieldValue name='transparency' value='0'/> |
| 257 | <fieldValue name='traceEnabled' value='false'/> |
| 258 | </ProtoInstance> |
| 259 | </Transform> |
| 260 | </Transform> |
| 261 | <Transform DEF='AFTER_LATERAL_THRUSTER' rotation='1 0 0 1.57079' translation='-0.6223 0 0'> |
| 262 | <Shape USE='LATERAL_THRUSTER_SHAPE'/> |
| 263 |
<!-- ROUTE information for AFTER_LATERAL_BEAMCONE node:
[from THRUSTER_CONES.afterLateralThrusterBeamTranslation to translation
]
-->
<Transform DEF='AFTER_LATERAL_BEAMCONE' rotation='0 0 1 1.57079' translation='0 .145 0'> |
| 264 |
<!-- ROUTE information for AfterLateralBeamCone node:
[from THRUSTER_CONES.afterLateralThrusterBeamRange to range
]
-->
<ProtoInstance name='BeamCone' DEF='AfterLateralBeamCone'> |
| 265 | <fieldValue name='name' value='AfterLateralBeamCone'/> |
| 266 | <!-- range -1.0..0..1.0m <==> -24V..0..24V --> |
| 267 | <fieldValue name='defaultRange' value='1'/> |
| 268 | <fieldValue name='beamHeightDegrees' value='8'/> |
| 269 | <fieldValue name='beamWidthDegrees' value='8'/> |
| 270 | <fieldValue name='solid' value='false'/> |
| 271 | <fieldValue name='wireframe' value='true'/> |
| 272 | <fieldValue name='noContactColor' value='0 .8 .4'/> |
| 273 | <fieldValue name='transparency' value='0'/> |
| 274 | <fieldValue name='traceEnabled' value='false'/> |
| 275 | </ProtoInstance> |
| 276 | </Transform> |
| 277 | </Transform> |
| 278 |
<!-- ROUTE information for THRUSTER_CONES node:
[from forwardVerticalThrusterBeamTranslation to FORWARD_VERTICAL_BEAMCONE.translation
]
[from forwardVerticalThrusterBeamRange to ForwardVerticalBeamCone.range
]
[from afterVerticalThrusterBeamTranslation to AFTER_VERTICAL_BEAMCONE.translation
]
[from afterVerticalThrusterBeamRange to AfterVerticalBeamCone.range
]
[from forwardLateralThrusterBeamTranslation to FORWARD_LATERAL_BEAMCONE.translation
]
[from forwardLateralThrusterBeamRange to ForwardLateralBeamCone.range
]
[from afterLateralThrusterBeamTranslation to AFTER_LATERAL_BEAMCONE.translation
]
[from afterLateralThrusterBeamRange to AfterLateralBeamCone.range
]
-->
<Script DEF='THRUSTER_CONES'> |
| 279 | <field name='set_forwardVerticalThruster' type='SFFloat' accessType='inputOnly'/> |
| 280 | <field name='set_afterVerticalThruster' type='SFFloat' accessType='inputOnly'/> |
| 281 | <field name='set_forwardLateralThruster' type='SFFloat' accessType='inputOnly'/> |
| 282 | <field name='set_afterLateralThruster' type='SFFloat' accessType='inputOnly'/> |
| 283 | <field name='forwardVerticalThrusterBeamTranslation' type='SFVec3f' accessType='outputOnly'/> |
| 284 | <field name='forwardVerticalThrusterBeamRange' type='SFFloat' accessType='outputOnly'/> |
| 285 | <field name='afterVerticalThrusterBeamTranslation' type='SFVec3f' accessType='outputOnly'/> |
| 286 | <field name='afterVerticalThrusterBeamRange' type='SFFloat' accessType='outputOnly'/> |
| 287 | <field name='forwardLateralThrusterBeamTranslation' type='SFVec3f' accessType='outputOnly'/> |
| 288 | <field name='forwardLateralThrusterBeamRange' type='SFFloat' accessType='outputOnly'/> |
| 289 | <field name='afterLateralThrusterBeamTranslation' type='SFVec3f' accessType='outputOnly'/> |
| 290 | <field name='afterLateralThrusterBeamRange' type='SFFloat' accessType='outputOnly'/> |
| 291 | <IS> |
| 292 | <connect nodeField='set_forwardVerticalThruster' protoField='set_forwardVerticalThruster'/> |
| 293 | <connect nodeField='set_afterVerticalThruster' protoField='set_afterVerticalThruster'/> |
| 294 | <connect nodeField='set_forwardLateralThruster' protoField='set_forwardLateralThruster'/> |
| 295 | <connect nodeField='set_afterLateralThruster' protoField='set_afterLateralThruster'/> |
| 296 | </IS> |
<![CDATA[
ecmascript:
function set_forwardVerticalThruster (value, timeStamp) {
if (value >= 0)
forwardVerticalThrusterBeamTranslation = new SFVec3f(0, .145, 0);
else
forwardVerticalThrusterBeamTranslation = new SFVec3f(0, -0.145 + value, 0);
forwardVerticalThrusterBeamRange = value;
}
function set_afterVerticalThruster (value, timeStamp) {
if (value >= 0)
afterVerticalThrusterBeamTranslation = new SFVec3f(0, .145, 0);
else
afterVerticalThrusterBeamTranslation = new SFVec3f(0, -0.145 + value, 0);
afterVerticalThrusterBeamRange = value;
}
function set_forwardLateralThruster (value, timeStamp) {
if (value >= 0)
forwardLateralThrusterBeamTranslation = new SFVec3f(0, .21, 0);
else
forwardLateralThrusterBeamTranslation = new SFVec3f(0, -0.21 + value, 0);
forwardLateralThrusterBeamRange = value;
}
function set_afterLateralThruster (value, timeStamp) {
if (value >= 0)
afterLateralThrusterBeamTranslation = new SFVec3f(0, .21, 0);
else
afterLateralThrusterBeamTranslation = new SFVec3f(0, -0.21 + value, 0);
afterLateralThrusterBeamRange = value;
}
]]>
|
|
| 298 | </Script> |
| 299 | <Group> |
| 300 | < ROUTE fromNode='THRUSTER_CONES' fromField='forwardVerticalThrusterBeamTranslation' toNode='FORWARD_VERTICAL_BEAMCONE' toField='translation'/> |
| 301 | < ROUTE fromNode='THRUSTER_CONES' fromField='forwardVerticalThrusterBeamRange' toNode='ForwardVerticalBeamCone' toField='range'/> |
| 302 | < ROUTE fromNode='THRUSTER_CONES' fromField='afterVerticalThrusterBeamTranslation' toNode='AFTER_VERTICAL_BEAMCONE' toField='translation'/> |
| 303 | < ROUTE fromNode='THRUSTER_CONES' fromField='afterVerticalThrusterBeamRange' toNode='AfterVerticalBeamCone' toField='range'/> |
| 304 | < ROUTE fromNode='THRUSTER_CONES' fromField='forwardLateralThrusterBeamTranslation' toNode='FORWARD_LATERAL_BEAMCONE' toField='translation'/> |
| 305 | < ROUTE fromNode='THRUSTER_CONES' fromField='forwardLateralThrusterBeamRange' toNode='ForwardLateralBeamCone' toField='range'/> |
| 306 | < ROUTE fromNode='THRUSTER_CONES' fromField='afterLateralThrusterBeamTranslation' toNode='AFTER_LATERAL_BEAMCONE' toField='translation'/> |
| 307 | < ROUTE fromNode='THRUSTER_CONES' fromField='afterLateralThrusterBeamRange' toNode='AfterLateralBeamCone' toField='range'/> |
| 308 | </Group> |
| 309 | <Shape DEF='HULL'> |
| 310 |
<!-- Appearance
HULL_APPEARANCE is a DEF node that has 1 USE node: USE_1 -->
<Appearance DEF='HULL_APPEARANCE'> |
| 311 | <Material DEF='HullMaterial'> |
| 312 | <IS> |
| 313 | <connect nodeField='diffuseColor' protoField='hullColor'/> |
| 314 | </IS> |
| 315 | </Material> |
| 316 | </Appearance> |
| 317 | <IndexedFaceSet creaseAngle='2.2' coordIndex='0 26 34 33 32 31 25 1 -1 1 25 31 32 33 34 26 0 -1 1 25 29 28 2 -1 2 28 29 25 1 -1 2 28 35 36 37 38 27 3 -1 3 27 38 37 36 35 28 2 -1 3 27 30 26 0 -1 0 26 30 27 3 -1 0 4 1 -1 0 1 4 -1 1 5 2 -1 1 2 5 -1 2 6 3 -1 2 3 6 -1 3 7 0 -1 3 0 7 -1 7 0 8 -1 7 8 0 -1 8 0 9 -1 8 9 0 -1 9 0 4 -1 9 4 0 -1 4 1 10 -1 4 10 1 -1 10 1 11 -1 10 11 1 -1 11 1 5 -1 11 5 1 -1 5 2 12 -1 5 12 2 -1 12 2 13 -1 12 13 2 -1 13 2 6 -1 13 6 2 -1 6 3 14 -1 6 14 3 -1 14 3 15 -1 14 15 3 -1 15 3 7 -1 15 7 3 -1 4 10 16 -1 10 4 16 -1 10 11 16 -1 11 10 16 -1 11 5 17 -1 5 11 17 -1 5 12 18 -1 12 5 18 -1 12 13 19 -1 13 12 19 -1 13 6 19 -1 6 13 19 -1 6 14 20 -1 14 6 20 -1 14 15 20 -1 15 14 20 -1 15 7 21 -1 7 15 21 -1 7 8 22 -1 8 7 22 -1 8 9 23 -1 9 8 23 -1 9 4 23 -1 4 9 23 -1 4 16 23 -1 16 4 23 -1 11 17 16 -1 17 11 16 -1 5 18 17 -1 18 5 17 -1 12 19 18 -1 19 12 18 -1 6 20 19 -1 20 6 19 -1 20 15 21 -1 15 20 21 -1 21 7 22 -1 7 21 22 -1 22 8 23 -1 8 22 23 -1 23 16 24 -1 16 23 24 -1 16 17 24 -1 17 16 24 -1 17 18 24 -1 18 17 24 -1 18 19 24 -1 19 18 24 -1 19 20 24 -1 20 19 24 -1 20 21 24 -1 21 20 24 -1 21 22 24 -1 22 21 24 -1 22 23 24 -1 23 22 24 -1 25 26 30 29 -1 29 30 26 25 -1 27 28 29 30 -1 30 29 28 27 -1 31 32 36 35 -1 35 36 32 31 -1 32 33 37 36 -1 36 37 33 32 -1 34 38 37 33 -1 33 37 38 34 -1'> |
| 318 | <!-- Bow Cowling [0..24], Stern Cowling [25..30], Rudder Post [31..38] --> |
| 319 | <Coordinate point='.6985 .13335 -0.20955 .6985 .13335 .20955 .6985 -0.13335 .20955 .6985 -0.13335 -0.20955 1.05 .085 0 1.05 0 .1143 1.05 -0.085 0 1.05 0 -0.1143 1.05 .04572 -0.098985 1.05 .079188 -0.05715 1.05 .079188 .05715 1.05 .04572 .098985 1.05 -0.04572 .098985 1.05 -0.079188 .05715 1.05 -0.079188 -0.05715 1.05 -0.04572 -0.098985 1.1 .04064 .02032 1.1 .02032 .06096 1.1 -0.02032 .06096 1.1 -0.04064 .02032 1.1 -0.04064 -0.02032 1.1 -0.02032 -0.06096 1.1 .02032 -0.06096 1.1 .04064 -0.02032 1.11 0 0 -0.6985 .13335 .20955 -0.6985 .13335 -0.20955 -0.6985 -0.13335 -0.20955 -0.6985 -0.13335 .20955 -1.1303 0 .20955 -1.1303 0 -0.20955 -0.6985 .13335 .0635 -0.8509 .13335 .0635 -0.8509 .13335 -0.0635 -0.6985 .13335 -0.0635 -0.6985 -0.13335 .0635 -0.8509 -0.13335 .0635 -0.8509 -0.13335 -0.0635 -0.6985 -0.13335 -0.0635'/> |
| 320 | </IndexedFaceSet> |
| 321 | </Shape> |
| 322 | <!-- original translation -1.1557 0 .09525 --> |
| 323 | <Transform DEF='STARTBOARD_SCREW_BEAMCONE_AND_SHAFT' translation='-1.3 0 .3'> |
| 324 | <Transform DEF='STARTBOARD_THRUSTER_BODY' rotation='0 0 1 1.57' translation='.15 0 0'> |
| 325 | <Shape> |
| 326 |
<!-- Appearance
THRUSTER_BODY_APPEARANCE is a DEF node that has 1 USE node: USE_1 -->
<Appearance DEF='THRUSTER_BODY_APPEARANCE'> |
| 327 | <Material diffuseColor='.9 .9 .9'/> |
| 328 | </Appearance> |
| 329 | <Cylinder height='.16' radius='.08'/> |
| 330 | </Shape> |
| 331 | <Shape> |
| 332 |
<!-- Appearance
THRUSTER_INNERBODY_APPEARANCE is a DEF node that has 1 USE node: USE_1 -->
<Appearance DEF='THRUSTER_INNERBODY_APPEARANCE'> |
| 333 | <Material diffuseColor='.2 .2 .2'/> |
| 334 | </Appearance> |
| 335 | <Cylinder height='.22' radius='.06'/> |
| 336 | </Shape> |
| 337 | </Transform> |
| 338 | <Transform DEF='STARBOARD_THRUSTER_BRACKET' rotation='0 0 1 1.57' translation='.2 0 -0.05'> |
| 339 | <Shape> |
| 340 | <Appearance> |
| 341 | <Material diffuseColor='.9 .9 .9'/> |
| 342 | </Appearance> |
| 343 | <Box size='.02 .05 .2'/> |
| 344 | </Shape> |
| 345 | </Transform> |
| 346 | <Transform DEF='STARBOARD_SCREW_BEAMCONE' rotation='0 1 0 3.14'> |
| 347 | <ProtoInstance name='BeamCone' DEF='StarboardScrewBeamCone'> |
| 348 | <fieldValue name='name' value='StarboardScrewBeamCone'/> |
| 349 | <!-- range values -1..0..1m <==> -700..0..700 RPM --> |
| 350 | <fieldValue name='defaultRange' value='1'/> |
| 351 | <fieldValue name='beamHeightDegrees' value='8'/> |
| 352 | <fieldValue name='beamWidthDegrees' value='8'/> |
| 353 | <fieldValue name='solid' value='false'/> |
| 354 | <fieldValue name='wireframe' value='true'/> |
| 355 | <fieldValue name='noContactColor' value='0 .8 .4'/> |
| 356 | <fieldValue name='transparency' value='0'/> |
| 357 | <fieldValue name='traceEnabled' value='false'/> |
| 358 | <IS> |
| 359 | <connect nodeField='range' protoField='set_stbdRpm'/> |
| 360 | </IS> |
| 361 | </ProtoInstance> |
| 362 | </Transform> |
| 363 | |
| 364 | <Transform rotation='0 0 1 1.57079' translation='.0281 0 0'> |
| 365 | <Shape DEF='SCREW_SHAFT'> |
| 366 |
<!-- Appearance
SCREW_APPEARANCE is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Appearance DEF='SCREW_APPEARANCE'> |
| 367 | <Material diffuseColor='.226 .197 0'/> |
| 368 | </Appearance> |
| 369 | <Cylinder bottom='false' height='.0762' radius='.008' top='false'/> |
| 370 | </Shape> |
| 371 | </Transform> |
| 372 | <Transform rotation='0 0 1 1.57079' translation='-0.015 0 0'> |
| 373 | <Shape DEF='SHAFT_END_CAP'> |
| 374 | <Appearance USE='SCREW_APPEARANCE'/> |
| 375 | <Cone bottom='false' bottomRadius='.008' height='.01'/> |
| 376 | </Shape> |
| 377 | </Transform> |
| 378 | </Group> |
| 379 | </Transform> |
| 380 | <!-- original translation -1.1557 0 .09525 --> |
| 381 | <Transform DEF='STARBOARD_SCREW' translation='-1.3 0 .3'> |
| 382 |
<!-- Transform
STARBOARD_BLADE is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Transform DEF='STARBOARD_BLADE'> |
| 383 | <Transform rotation='0 1 0 -0.39'> |
| 384 | <Shape> |
| 385 | <Appearance USE='SCREW_APPEARANCE'/> |
| 386 | <IndexedFaceSet coordIndex='0 1 2 3 4 5 6 7 -1 0 7 6 5 4 3 2 1 -1'> |
| 387 |
<!-- Coordinate
BLADE_COORDINATES is a DEF node that has 1 USE node: USE_1 --> <Coordinate DEF='BLADE_COORDINATES' point='0 0 -0.00508 0 .02540 -0.02032 0 .04572 -0.01524 0 .05080 -0.00508 0 .05080 .00508 0 .04572 .01524 0 .02540 .02032 0 0 .00508'/> |
| 388 | </IndexedFaceSet> |
| 389 | </Shape> |
| 390 | </Transform> |
| 391 | </Transform> |
| 392 | <Transform rotation='1 0 0 1.57079'> |
| 393 | <Transform USE='STARBOARD_BLADE'/> |
| 394 | </Transform> |
| 395 | <Transform rotation='1 0 0 3.14159267'> |
| 396 | <Transform USE='STARBOARD_BLADE'/> |
| 397 | </Transform> |
| 398 | <Transform rotation='1 0 0 -1.57079'> |
| 399 | <Transform USE='STARBOARD_BLADE'/> |
| 400 | </Transform> |
| 401 | </Transform> |
| 402 | <!-- original translation -1.1557 0 -0.09525 --> |
| 403 | <Transform DEF='PORT_SCREW_BEAMCONE_AND_SHAFT' translation='-1.3 0 -0.3'> |
| 404 | <Transform DEF='PORT_THRUSTER_BODY' rotation='0 0 1 1.57' translation='.15 0 0'> |
| 405 | <Shape> |
| 406 | <Appearance USE='THRUSTER_BODY_APPEARANCE'/> |
| 407 | <Cylinder height='.16' radius='.08'/> |
| 408 | </Shape> |
| 409 | <Shape> |
| 410 | <Appearance USE='THRUSTER_INNERBODY_APPEARANCE'/> |
| 411 | <Cylinder height='.22' radius='.05'/> |
| 412 | </Shape> |
| 413 | </Transform> |
| 414 | <Transform DEF='PORT_THRUSTER_BRACKET' rotation='0 0 1 1.57' translation='.2 0 .05'> |
| 415 | <Shape> |
| 416 | <Appearance> |
| 417 | <Material diffuseColor='.9 .9 .9'/> |
| 418 | </Appearance> |
| 419 | <Box size='.02 .05 .2'/> |
| 420 | </Shape> |
| 421 | </Transform> |
| 422 | <Transform DEF='PORT_SCREW_BEAMCONE' rotation='0 1 0 3.14'> |
| 423 | <ProtoInstance name='BeamCone' DEF='PortScrewBeamCone'> |
| 424 | <fieldValue name='name' value='PortScrewBeamCone'/> |
| 425 | <!-- range values -1..0..1 m <==> -700..0..700 RPM --> |
| 426 | <fieldValue name='defaultRange' value='1'/> |
| 427 | <fieldValue name='beamHeightDegrees' value='8'/> |
| 428 | <fieldValue name='beamWidthDegrees' value='8'/> |
| 429 | <fieldValue name='solid' value='false'/> |
| 430 | <fieldValue name='wireframe' value='true'/> |
| 431 | <!-- Greenish blue for sea water flow --> |
| 432 | <fieldValue name='noContactColor' value='0 .8 .4'/> |
| 433 | <fieldValue name='transparency' value='0'/> |
| 434 | <fieldValue name='traceEnabled' value='false'/> |
| 435 | <IS> |
| 436 | <connect nodeField='range' protoField='set_portRpm'/> |
| 437 | </IS> |
| 438 | </ProtoInstance> |
| 439 | </Transform> |
| 440 | <Group USE='SHAFT'/> |
| 441 | </Transform> |
| 442 | <!-- original translation -1.1557 0 -0.09525 --> |
| 443 | <Transform DEF='PORT_SCREW' translation='-1.3 0 -0.3'> |
| 444 |
<!-- Group
PORT_BLADE is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Group DEF='PORT_BLADE'> |
| 445 | <Transform rotation='0 1 0 .39'> |
| 446 | <Shape> |
| 447 | <Appearance USE='SCREW_APPEARANCE'/> |
| 448 | <IndexedFaceSet coordIndex='0 1 2 3 4 5 6 7 -1 0 7 6 5 4 3 2 1 -1'> |
| 449 | <!-- This blade has reversed pitch --> |
| 450 | <Coordinate USE='BLADE_COORDINATES'/> |
| 451 | </IndexedFaceSet> |
| 452 | </Shape> |
| 453 | </Transform> |
| 454 | </Group> |
| 455 | <Transform rotation='1 0 0 1.57079'> |
| 456 | <Group USE='PORT_BLADE'/> |
| 457 | </Transform> |
| 458 | <Transform rotation='1 0 0 3.14159267'> |
| 459 | <Group USE='PORT_BLADE'/> |
| 460 | </Transform> |
| 461 | <Transform rotation='1 0 0 -1.57079'> |
| 462 | <Group USE='PORT_BLADE'/> |
| 463 | </Transform> |
| 464 | </Transform> |
| 465 | </Transform> |
| 466 | <Shape> |
| 467 | <!-- Medium-resolution LOD level --> |
| 468 | <Appearance USE='HULL_APPEARANCE'/> |
| 469 | <!-- size is full length, height, width --> |
| 470 | <Box size='2.2 .26 .42'/> |
| 471 | </Shape> |
| 472 | </LOD> |
| 473 | <Group> |
| 474 | <Viewpoint DEF='HULLNAME_VIEWPOINT' description='Aries Prototype' position='0 0 4'> |
| 475 | <IS> |
| 476 | <connect nodeField='description' protoField='hullName'/> |
| 477 | </IS> |
| 478 | </Viewpoint> |
| 479 | <Viewpoint description='Port Bow' orientation='0 1 0 2.356' position='8 0 -8'/> |
| 480 | <Viewpoint description='Bow' orientation='0 1 0 1.572' position='10 0 0'/> |
| 481 | <Viewpoint description='Starboard Bow' orientation='0 1 0 0.785' position='8 0 8'/> |
| 482 | <Viewpoint description='Port Beam' orientation='0 1 0 3.14159267' position='0 0 -10'/> |
| 483 | <Viewpoint description='Port Astern' orientation='0 1 0 3.926' position='-8 0 -8'/> |
| 484 | <Viewpoint description='Astern' orientation='0 1 0 -1.4' position='-10 0 0'/> |
| 485 | <Viewpoint description='Starboard Astern' orientation='0 1 0 -0.783' position='-10 0 10'/> |
| 486 | <Viewpoint description='Looking down from 25m above Aries' orientation='1 0 0 -1.57' position='0 25 0'/> |
| 487 | </Group> |
| 488 | </Transform> |
| 489 | </ProtoBody> |
| 490 | </ProtoDeclare> |
| 491 | <Viewpoint description='Aries AUV'/> |
| 492 | <Group> |
| 493 | <ProtoInstance name='Aries'> |
| 494 | <fieldValue name='translation' value='0 0.4 0'/> |
| 495 | </ProtoInstance> |
| 496 | </Group> |
| 497 | <!-- Viewable geometry is anchored text that links to an example that showing the usage of AriesPrototype --> |
| 498 | <Anchor description='AriesExample' parameter='"target=_blank"' url=' "AriesExample.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesExample.x3d" "AriesExample.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/AriesExample.wrl" '> |
| 499 | <Shape> |
| 500 | <Appearance> |
| 501 | <Material diffuseColor='0 1 1' emissiveColor='0 1 1'/> |
| 502 | </Appearance> |
| 503 | <Text string='"AriesPrototype" "is a prototype definition file" "" "click on text to view" "AriesExample"'> |
| 504 | <FontStyle justify='"MIDDLE" "MIDDLE"'/> |
| 505 | </Text> |
| 506 | </Shape> |
| 507 | </Anchor> |
| 508 | </Scene> |
| 509 | </X3D> |
Event Graph ROUTE Table entries with 20 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.
|
PLANE_SURFACES
Script forwardRuddersRotation SFRotation |
FORWARD_RUDDERS
Transform rotation SFRotation |
|
|
PLANE_SURFACES
Script afterRuddersRotation SFRotation |
AFTER_RUDDERS
Transform rotation SFRotation |
|
|
PLANE_SURFACES
Script forwardPlanesRotation SFRotation |
FORWARD_PLANES
Transform rotation SFRotation |
|
|
PLANE_SURFACES
Script afterPlanesRotation SFRotation |
AFTER_PLANES
Transform rotation SFRotation |
|
SONAR_STEERING_AND_DETECTS
Script ST725Rotation SFRotation |
ST725
Transform rotation SFRotation |
|
|
SONAR_STEERING_AND_DETECTS
Script ST1000Rotation SFRotation |
ST1000
Transform rotation SFRotation |
|
|
SONAR_STEERING_AND_DETECTS
Script ST725Contact SFBool |
ST725BeamCone
ProtoInstance contact SFBool |
|
|
SONAR_STEERING_AND_DETECTS
Script ST1000Contact SFBool |
ST1000BeamCone
ProtoInstance contact SFBool |
|
|
SONAR_STEERING_AND_DETECTS
Script ST725Range_changed SFFloat |
ST725BeamCone
ProtoInstance range SFFloat |
|
|
SONAR_STEERING_AND_DETECTS
Script ST1000Range_changed SFFloat |
ST1000BeamCone
ProtoInstance range SFFloat |
|
|
SONAR_STEERING_AND_DETECTS
Script ST725Intensity SFFloat |
ST725BeamCone
ProtoInstance transparency SFFloat |
|
|
SONAR_STEERING_AND_DETECTS
Script ST1000Intensity SFFloat |
ST1000BeamCone
ProtoInstance transparency SFFloat |
|
THRUSTER_CONES
Script forwardVerticalThrusterBeamTranslation SFVec3f |
FORWARD_VERTICAL_BEAMCONE
Transform translation SFVec3f |
|
|
THRUSTER_CONES
Script forwardVerticalThrusterBeamRange SFFloat |
ForwardVerticalBeamCone
ProtoInstance range SFFloat |
|
|
THRUSTER_CONES
Script afterVerticalThrusterBeamTranslation SFVec3f |
AFTER_VERTICAL_BEAMCONE
Transform translation SFVec3f |
|
|
THRUSTER_CONES
Script afterVerticalThrusterBeamRange SFFloat |
AfterVerticalBeamCone
ProtoInstance range SFFloat |
|
|
THRUSTER_CONES
Script forwardLateralThrusterBeamTranslation SFVec3f |
FORWARD_LATERAL_BEAMCONE
Transform translation SFVec3f |
|
|
THRUSTER_CONES
Script forwardLateralThrusterBeamRange SFFloat |
ForwardLateralBeamCone
ProtoInstance range SFFloat |
|
|
THRUSTER_CONES
Script afterLateralThrusterBeamTranslation SFVec3f |
AFTER_LATERAL_BEAMCONE
Transform translation SFVec3f |
|
|
THRUSTER_CONES
Script afterLateralThrusterBeamRange SFFloat |
AfterLateralBeamCone
ProtoInstance range SFFloat |
| line 493
ProtoInstance Aries |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
AfterLateralBeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
AfterVerticalBeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
ForwardLateralBeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
ForwardVerticalBeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
PortScrewBeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
ST1000BeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
ST725BeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
|
StarboardScrewBeamCone
ProtoInstance BeamCone |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
| line 498
Anchor |
description='AriesExample' User-interaction hint for this node. |
<!--
Color-coding 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>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->