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=' Remus01PositionInterpolator.x3d '/> |
6 | <meta name='description' content='Autogenerated AUV mission from the actual data collected during exercise KB01.'/> |
7 | <meta name='creator' content='Don Brutzman'/> |
8 | <meta name='generator' content='AuvDataServer (ADS)'/> |
9 | <meta name='created' content='10 June 2001'/> |
10 | <meta name='modified' content='27 July 2024'/> |
11 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/AmphibiousRaidCampPendleton/Remus01PositionInterpolator.x3d '/> |
12 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
13 | <meta name='license' content='../../license.html'/> |
14 | </head> |
15 | <Scene> |
16 | <WorldInfo info='"AUV exercise KB01"' title='Remus01PositionInterpolator.x3d'/> |
17 | <ExternProtoDeclare name='WaypointInterpolator' appinfo='Reads waypoints and legSpeeds/legDurations/defaultSpeed to provide a customizable position/orientation interpolator.' url=' "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" '> |
18 | <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) --> |
19 |
<field name='description' type='SFString' accessType='initializeOnly'
appinfo='Short description of what is animated by this WaypointInterpolator.'/> |
20 |
<field name='waypoints' type='MFVec3f' accessType='initializeOnly'
appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/> |
21 |
<field name='add_waypoint' type='SFVec3f' accessType='inputOnly'
appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/> |
22 |
<field name='set_waypoints' type='MFVec3f' accessType='inputOnly'
appinfo='Replace all waypoints recalculate interpolator values.'/> |
23 |
<field name='pitchUpDownForVerticalWaypoints' type='SFBool' accessType='initializeOnly'
appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/> |
24 |
<field name='legSpeeds' type='MFFloat' accessType='initializeOnly'
appinfo='Units m/sec. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/> |
25 |
<field name='legDurations' type='MFTime' accessType='initializeOnly'
appinfo='Units in seconds. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/> |
26 |
<field name='defaultSpeed' type='SFFloat' accessType='initializeOnly'
appinfo='Units m/sec.'/> |
27 |
<field name='turningRate' type='SFFloat' accessType='initializeOnly'
appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.'/> |
28 |
<field name='totalDuration' type='SFTime' accessType='outputOnly'
appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/> |
29 | <!-- interpolation fields --> |
30 |
<field name='set_fraction' type='SFFloat' accessType='inputOnly'
appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/> |
31 |
<field name='position_changed' type='SFVec3f' accessType='outputOnly'
appinfo='exposed PositionInterpolator setting'/> |
32 |
<field name='orientation_changed' type='SFRotation' accessType='outputOnly'
appinfo='exposed OrientationInterpolator setting'/> |
33 | <!-- display-related fields --> |
34 |
<field name='lineColor' type='SFColor' accessType='inputOutput'
appinfo='default color for non-active line segments'/> |
35 |
<field name='highlightSegmentColor' type='SFColor' accessType='inputOutput'
appinfo='active segment highlight color'/> |
36 |
<field name='transparency' type='SFFloat' accessType='inputOutput'
appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/> |
37 |
<field name='labelDisplayMode' type='SFString' accessType='initializeOnly'
appinfo='allowed values: none; waypoints (produce labels at each waypoint); or interpolation (produce single moving label at interpolator time course speed location)'/> |
38 |
<field name='heightLabel' type='SFString' accessType='initializeOnly'
appinfo='allowed values: altitude depth (negate Y value) none'/> |
39 |
<field name='labelOffset' type='SFVec3f' accessType='initializeOnly'
appinfo='heightLabel relative location'/> |
40 |
<field name='labelFontSize' type='SFFloat' accessType='initializeOnly'
appinfo='heightLabel text size'/> |
41 |
<field name='labelColor' type='SFColor' accessType='initializeOnly'
appinfo='heightLabel text color'/> |
42 |
<field name='traceEnabled' type='SFBool' accessType='initializeOnly'
appinfo='enable console output to trace script computations and prototype progress'/> |
43 |
<field name='outputInitializationComputations' type='SFBool' accessType='initializeOnly'
appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/> |
44 |
<field name='verticalDropLineColor' type='SFColor' accessType='inputOutput'
appinfo='default color for vertical drop-line segments'/> |
45 |
<field name='verticalDropLineTransparency' type='SFFloat' accessType='inputOutput'
appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/> |
46 | </ExternProtoDeclare> |
47 | <!-- ====================================== --> |
48 | <ExternProtoDeclare name='HiddenViewpoint' url=' "../../../Savage/Tools/Animation/HiddenViewpointPrototype.wrl#HiddenViewpoint" "https://www.web3d.org/x3d/content/examples/Savage/Environment/Tools/Animation/HiddenViewpointPrototype.wrl#HiddenViewpoint" "../../../Savage/Tools/Animation/HiddenViewpointPrototype.x3d#HiddenViewpoint" "https://www.web3d.org/x3d/content/examples/Savage/Environment/Tools/Animation/HiddenViewpointPrototype.x3d#HiddenViewpoint" '> |
49 | <field name='position' type='SFVec3f' accessType='inputOutput'/> |
50 | <field name='rotation' type='SFRotation' accessType='inputOutput'/> |
51 | <field name='sensorRadius' type='SFFloat' accessType='initializeOnly'/> |
52 | <field name='activate' type='SFBool' accessType='inputOnly'/> |
53 | <field name='label' type='MFString' accessType='inputOutput'/> |
54 | <field name='labelOffset' type='SFVec3f' accessType='inputOutput'/> |
55 | <field name='labelFontSize' type='SFFloat' accessType='initializeOnly'/> |
56 | <field name='labelColor' type='SFColor' accessType='inputOutput'/> |
57 | </ExternProtoDeclare> |
58 | <!-- ====================================== --> |
59 | <!-- Example instance follows prototype declaration --> |
60 | <Viewpoint description='Remus01PositionInterpolator' orientation='1 0 0 -0.3' position='0 0 0'/> |
61 | <Viewpoint description='Above, looking down' orientation='1 0 0 -1.57' position='0 5000 0'/> |
62 | <!-- Reduce aliasing by increasing relative precision --> |
63 | <NavigationInfo visibilityLimit='20000'/> |
64 | <Inline DEF='CoordinateAxes' url=' "../../Tools/Authoring/CoordinateAxes.x3d" "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../Tools/Authoring/CoordinateAxes.wrl" "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" '/> |
65 |
<!-- ROUTE information for Clock node:
[from TrackPosition.totalDuration to cycleInterval
]
[from fraction_changed to TrackPosition.set_fraction
]
-->
<TimeSensor DEF='Clock' cycleInterval='4.0' loop='true'/> |
66 |
<!-- ROUTE information for TrackPosition node:
[from Clock.fraction_changed to set_fraction
]
[from totalDuration to Clock.cycleInterval
]
[from position_changed to TrackingTransform.translation
]
[from orientation_changed to TrackingTransform.rotation
]
-->
<ProtoInstance name='WaypointInterpolator' DEF='TrackPosition'> |
67 | <!-- XZ coordinates are converted from Lat/Long based on the origin --> |
68 | <!-- The origin is the first data point --> |
69 | <fieldValue name='description' value='TrackPosition'/> |
70 | <fieldValue name='waypoints' value='0.0 -0.121920004 0.0 -3.8177228 -3.07848 10.638249 -57.26584 -10.42416 251.0717 14.8467 -10.5156 363.8412 57.26584 -10.027921 421.28983 183.67488 -8.9916 599.30963 268.51315 -9.540239 714.2068 342.74667 -8.74776 814.91925 413.16245 -8.29056 914.21313 485.69916 -7.5590396 1013.507 594.7164 -6.5532 1170.9587 698.64325 -5.3949604 1309.261 711.7932 -5.27304 1327.7013 824.6281 -3.26136 1483.0253 880.1972 -1.00584 1556.7865 804.2669 -2.5908 1480.8976 706.2787 -5.12064 1344.7231 609.56305 -6.49224 1211.3855 500.54587 -7.83336 1058.1893 415.2834 -8.44296 941.87354 372.44006 -7.98576 883.0064 274.45184 -8.80872 749.66895 220.57953 -9.17448 672.3616 98.41241 -9.7536 500.7249 40.722374 -9.875521 426.25452 -105.623665 -10.454639 294.33548 -94.59468 -10.27176 314.19424 -3.8177228 -9.41832 443.27634 66.59805 -9.57072 539.02405 177.7362 -9.144 690.8018 290.9953 -8.47344 848.9628 374.561 -8.10768 965.2785 444.97678 -7.3152 1061.0262 515.3926 -7.1018395 1156.0647 624.4097 -5.3949604 1307.8425 694.8255 -4.75488 1407.1365 735.5479 -3.99288 1462.4573 828.4458 -1.34112 1591.5393 702.461 -4.38912 1441.18 672.7676 -4.66344 1403.5902 563.3262 -6.49224 1248.9753 492.91043 -6.94944 1151.1001 368.62234 -7.7114396 979.4634 311.3565 -8.59536 903.5745 242.63748 -8.62584 808.536 189.18936 -8.80872 731.22864 107.32043 -9.4488 619.8776 22.057953 -9.47928 503.56192 -74.2335 -9.72312 370.2244 -150.16376 -10.08888 342.56393 -96.29145 -9.78408 414.90662 27.996634 -8.93064 587.25244 94.59468 -9.50976 681.58167 161.19273 -8.50392 770.23694 240.94072 -8.59536 880.1695 318.56775 -8.16864 985.1373 448.37033 -7.13232 1168.1217 461.52026 -6.76656 1183.7251 556.1149 -5.3035197 1313.5165 672.7676 -4.51104 1476.6421 726.6399 -2.68224 1549.6941 767.36224 -0.70103997 1620.6183 683.7966 -2.9260802 1517.0688 565.44714 -5.4559197 1353.9432 470.85248 -6.79704 1224.1519 418.6769 -7.1018395 1151.1001 315.17422 -7.52856 1007.12384 220.57953 -8.44296 880.1695 168.82819 -8.59536 807.11755 105.623665 -8.93064 717.0438 53.87231 -9.05256 644.7011 -86.959236 -9.235439 453.91495 -111.13815 -9.875521 421.28983 -174.34267 -9.47928 409.2327 -83.565704 -9.11352 534.76855 -31.390163 -8.96112 607.11127 7.211254 -8.96112 663.1414 140.83154 -8.86968 842.57965 192.5829 -8.74776 915.63153 261.3019 -8.74776 1016.344 368.62234 -7.74192 1160.3201 388.98352 -7.22376 1192.9452 474.246 -5.6388 1306.424 522.6038 -5.5473604 1372.3835 654.10315 -3.7795198 1555.368 702.461 -0.97536004 1620.6183 711.7932 -1.03632 1651.825 613.3808 -4.02336 1521.3243 530.23926 -5.1816 1405.0087 467.03473 -6.03504 1323.4458 402.13345 -6.82752 1173.0865 361.41107 -7.68096 1056.7708 327.89996 -7.83336 958.8953 281.6631 -7.83336 824.13934 268.51315 -8.41248 785.8403 194.70386 -8.71728 568.8122 187.0684 -8.80872 549.66266 146.34604 -9.387839 431.92844 107.32043 -8.93064 316.32196 59.3868 -9.47928 202.84323 24.178911 -10.302239 83.69053 0.0 -0.18288001 -1.4145588 -61.083565 -9.235439 -4.9641376 -61.083565 -9.4488 82.27206 -174.34267 -9.02208 244.6885 -251.9697 -9.35736 375.18906 -287.17758 -9.20496 528.3854 -231.6085 -9.02208 605.69275 -129.80257 -8.29056 746.832 -42.843334 -7.9552803 865.9846 13.149934 -7.8028803 946.8382 142.52832 -6.94944 1124.858 215.06505 -6.88848 1226.9889 298.20657 -6.21792 1343.3047 381.77228 -5.0901604 1458.2019 407.64795 -4.7244 1495.0824 556.1149 -1.43256 1701.4719 568.8407 -0.82296 1719.9121 468.7315 -3.5052 1558.9142 370.7433 -5.21208 1426.9952 342.74667 -5.66928 1387.9868 189.18936 -6.79704 1174.505 133.6203 -6.858 1095.07 92.473724 -7.28472 1038.3304 9.3322115 -7.7114396 922.01483 -142.52832 -8.44296 707.82367 -157.37502 -8.6868 687.9649 -240.94072 -9.20496 574.48615 -318.99194 -8.9916 461.7166 -205.73283 -8.80872 607.11127 -122.16713 -8.65632 723.42694 -63.20452 -7.7724 804.2806 64.90128 -7.1628 980.88184 162.8895 -7.2542396 1117.0564 246.45522 -6.2484 1236.209 330.0209 -5.57784 1353.9432 357.59335 -5.27304 1391.5331 511.57483 -3.7795198 1605.015 581.9906 -1.18872 1696.5072 604.0486 -0.94487995 1665.3005 506.06036 -3.41376 1526.2891 409.7689 -5.334 1394.3701 326.2032 -6.4008 1275.2174 281.6631 -6.52272 1216.3502 129.80257 -7.2542396 1004.2868 72.11254 -7.2542396 926.2702 31.390163 -7.74192 867.40314 -122.16713 -8.56488 655.3397 -201.91512 -8.86968 542.57025 -276.14862 -9.35736 427.673 -248.15198 -9.72312 463.1351 -137.01382 -8.6868 619.8776 -50.054585 -8.138161 737.6118 22.057953 -7.7114396 836.9057 135.31706 -7.4980803 992.93896 161.19273 -7.3152 1033.3658 259.60513 -6.91896 1170.9587 370.7433 -6.43128 1324.8643 456.00577 -5.21208 1441.18 509.4539 -3.9014401 1518.4874 621.01624 -0.9144 1670.2653 557.8117 -2.7432 1563.1697 489.09268 -4.17576 1470.2589 403.83023 -5.2425604 1353.9432 324.50644 -6.4008 1237.6276 239.24396 -6.58368 1122.0211 140.83154 -7.4066396 985.1373 46.236862 -7.8028803 855.346 -31.390163 -8.47344 743.995 -96.29145 -8.80872 653.92126 -185.37164 -9.2964 531.22235 -259.60513 -9.144 429.0915 -183.67488 -9.05256 464.5536 -133.6203 -9.144 537.6055 -68.71901 -8.26008 627.67926 61.083565 -8.77824 807.11755 140.83154 -7.6504803 915.63153 165.01045 -7.8638396 951.0937 292.69208 -6.88848 1131.2412 342.74667 -6.21792 1200.747 405.95117 -6.52272 1289.4022 507.7571 -4.78536 1431.2506 585.80835 -3.87096 1534.0907 648.5887 -1.55448 1623.4553 656.2241 -0.79248 1619.1998 581.9906 -3.3528 1513.5227 491.21365 -4.9987197 1387.9868 370.7433 -6.096 1220.6057 305.842 -6.73608 1131.2412 240.94072 -6.67512 1039.749 148.467 -8.50392 912.7947 98.41241 -7.8638396 841.16113 -3.8177228 -8.59536 697.18506 -72.11254 -9.11352 604.2743 -105.623665 -8.96112 556.04584 -168.82819 -9.41832 468.0998 -212.94409 -9.72312 378.02606 -181.55392 -9.235439 289.3708 -157.37502 -9.57072 253.90868 -74.2335 -9.78408 116.315674 -14.8467 -9.72312 21.986317 -7.6354456 -9.72312 7.801188'/> |
71 | <fieldValue name='pitchUpDownForVerticalWaypoints' value='false'/> |
72 | <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) --> |
73 | <!-- If used, array lengths for legSpeeds and legDurations must be one less than number of waypoints. --> |
74 | <fieldValue name='legDurations' value='60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 6060 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60'/> |
75 | <!-- turningRate (degrees/second) will also determine standoff distance prior to waypoint where turn commences. if 0, turns are instantaneous. --> |
76 | <fieldValue name='turningRate' value='90'/> |
77 | <fieldValue name='lineColor' value='1 0 0'/> |
78 | <fieldValue name='highlightSegmentColor' value='1 1 0'/> |
79 | <fieldValue name='transparency' value='0'/> |
80 | <fieldValue name='labelOffset' value='0 -0.8 0'/> |
81 | <fieldValue name='labelFontSize' value='0.5'/> |
82 | <fieldValue name='labelColor' value='0.3 0.9 0.3'/> |
83 | <fieldValue name='traceEnabled' value='true'/> |
84 | </ProtoInstance> |
85 |
<!-- ROUTE information for TrackingTransform node:
[from TrackPosition.position_changed to translation
]
[from TrackPosition.orientation_changed to rotation
]
-->
<Transform DEF='TrackingTransform'> |
86 | <!-- Always align initial geometry with X axis --> |
87 | <Group> |
88 | <!-- Point vehicle along X-axis --> |
89 | <Transform> |
90 | <Inline url=' "../../Robots/UnmannedUnderwaterVehicles/RemusSideScan.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/RemusSideScan.x3d" "../../Robots/UnmannedUnderwaterVehicles/RemusSideScan.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Robots/UnmannedUnderwaterVehicles/RemusSideScan.wrl" '/> |
91 | </Transform> |
92 | <Viewpoint description='Ride on' orientation='0 1 0 -1.57' position='-4 1 0'/> |
93 | <Viewpoint description='Ride alongside' position='0 0 5'/> |
94 | <Viewpoint description='Ride in front' orientation='0 1 0 1.57' position='4 1 0'/> |
95 | </Group> |
96 | </Transform> |
97 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='TrackPosition' toField='set_fraction'/> |
98 | < ROUTE fromNode='TrackPosition' fromField='totalDuration' toNode='Clock' toField='cycleInterval'/> |
99 | < ROUTE fromNode='TrackPosition' fromField='position_changed' toNode='TrackingTransform' toField='translation'/> |
100 | < ROUTE fromNode='TrackPosition' fromField='orientation_changed' toNode='TrackingTransform' toField='rotation'/> |
101 | </Scene> |
102 | </X3D> |
Event Graph ROUTE Table entries with 4 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.
The following
ROUTE
chain begins an event-routing loop! Loop occurs at nodeDepth=3.
ROUTE TrackPosition.totalDuration TO Clock.cycleInterval |
||||||||||||||
TrackPosition
ProtoInstance totalDuration SFTime |
Clock
TimeSensor cycleInterval SFTime |
then
|
Clock
TimeSensor fraction_changed SFFloat |
TrackPosition
ProtoInstance set_fraction SFFloat |
then
|
TrackPosition
ProtoInstance orientation_changed SFRotation |
TrackingTransform
Transform rotation SFRotation |
|||||||
then
|
TrackPosition
ProtoInstance position_changed SFVec3f |
TrackingTransform
Transform translation SFVec3f |
||||||||||||
then
|
TrackPosition
ProtoInstance totalDuration SFTime |
Clock
TimeSensor cycleInterval SFTime |
then
|
Clock
TimeSensor fraction_changed SFFloat |
TrackPosition
ProtoInstance set_fraction SFFloat |
|||||||||
TrackPosition
ProtoInstance position_changed SFVec3f |
TrackingTransform
Transform translation SFVec3f |
|||||||||||||
TrackPosition
ProtoInstance orientation_changed SFRotation |
TrackingTransform
Transform rotation SFRotation |
<!--
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.
-->