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=' ChartletTranscribed.x3d '/> |
6 | <meta name='description' content='Manually derived bathymetry offshore Camp Pendleton California.'/> |
7 | <meta name='creator' content='Don Brutzman and OS3 Bruce Goldin USN'/> |
8 | <meta name='created' content='16 March 2001'/> |
9 | <meta name='modified' content='20 October 2019'/> |
10 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Locations/CampPendletonCalifornia/ChartletTranscribed.x3d '/> |
11 | <meta name='generator' content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
12 | <meta name='license' content='../../license.html'/> |
13 | </head> |
14 | <Scene> |
15 | <WorldInfo title='ChartletTranscribed.x3d'/> |
16 | <Background groundColor='0.2 0.2 0.5' skyColor='0.4 0.4 1'/> |
17 | <DirectionalLight direction='0 -1 0'/> |
18 | <NavigationInfo speed='100' type='"EXAMINE" "WALK" "FLY" "ANY"'/> |
19 | <Transform rotation='0 1 0 -1.57' translation='-2000 1000 2464'> |
20 | <Viewpoint description='Chartlet view' orientation='1 0 0 -0.3'/> |
21 | </Transform> |
22 | <!-- Soundings in feet, converted to meters (1m = 39.3", 39.3" / 12" = 3.275). --> |
23 | <Switch whichChoice='0'> |
24 | <!-- Simple ElevationGrid, not georeferenced to latitude/longitude --> |
25 | <Group> |
26 | <Transform scale='1 3.275 1'> |
27 | <Shape> |
28 |
<!-- ROUTE information for BathymetryGrid node:
[from CalculateColorSchemeMEDAL.heightValuesOutput to set_height
]
-->
<ElevationGrid DEF='BathymetryGrid' creaseAngle='3.14' solid='false' xDimension='31' xSpacing='154' zDimension='29' zSpacing='184'> |
29 |
<!-- ROUTE information for BathymetryGridColorNodeCalculated node:
[from CalculateColorSchemeMEDAL.colorValuesOutput to set_color
]
-->
<Color DEF='BathymetryGridColorNodeCalculated' color='0 0 0'/> |
30 | </ElevationGrid> |
31 | <Appearance> |
32 | <Material diffuseColor='0 0 0.25'/> |
33 | </Appearance> |
34 | </Shape> |
35 |
<!-- ROUTE information for CalculateColorSchemeMEDAL node:
[from heightValuesOutput to BathymetryGrid.set_height
]
[from colorValuesOutput to BathymetryGridColorNodeCalculated.set_color
]
-->
<Script DEF='CalculateColorSchemeMEDAL'> |
36 | <!-- inputUnits are 'feet' or 'meters' - heightValuesOutput is always in meters. --> |
37 | <field name='inputUnits' type='SFString' value='feet' accessType='initializeOnly'/> |
38 | <field name='heightValues' type='MFFloat' value='-101 -90 -84 -78 -72 -72 -70 -65 -62 -63 -55 -53 -50 -50 -47 -45 -45 -43 -42 -41 -38 -37 -37 -36 -34 -31 -31 -27 -26 -25 -23 -101 -90 -84 -78 -72 -72 -66 -66 -64 -58 -55 -53 -50 -48 -46 -45 -43 -42 -42 -39 -39 -37 -36 -34 -32 -31 -27 -26 -21 -24 -19 -86 -84 -78 -73 -72 -66 -66 -61 -57 -55 -52 -49 -48 -46 -45 -46 -45 -38 -38 -36 -33 -32 -32 -31 -30 -30 -25 -24 -22 -15 -9 -84 -78 -75 -72 -66 -65 -63 -58 -55 -53 -49 -47 -47 -45 -43 -42 -40 -39 -37.5 -35.5 -34 -32.5 -31 -32 -28 -26 -24 -21 -20 -8.5 -5 -79 -72 -70 -66 -66 -60 -57 -54 -52 -49 -48 -46 -44 -43 -43 -40 -40 -39 -36 -34 -33 -32 -31 -28 -26 -24 -22 -20 -10 -5 0 -81 -72 -66 -63 -60 -58 -57 -54 -51 -49 -46 -46 -44 -42 -41 -40 -40 -41 -35.5 -35 -33 -31 -28 -27 -25 -23 -18 -13 -5 0 0 -72 -66 -64.5 -60 -59 -55 -54 -52 -48 -48 -45 -44 -42 -42 -41 -40 -39.5 -38 -36 -35 -34 -29 -28 -24 -23 -18 -12 -5 0 0 0 -70 -65 -62 -61 -54 -54 -51 -49 -48 -45 -45 -44 -43 -40 -39.7 -39 -38 -35 -34 -33 -31 -28.7 -26 -23 -19 -14 -5 0 0 0 0 -63 -61 -60 -55 -54 -51 -50 -50 -47 -44 -43 -41 -39 -38 -37 -36 -36 -36 -33 -33 -31 -27 -24 -19 -12 -5 0 0 0 0 0 -60 -59 -55 -53 -50 -50 -49 -48 -45 -44 -41 -39.5 -39 -37 -36.5 -36 -34 -34 -32 -30.5 -29 -27 -20 -15 -8 -2 0 0 0 0 0 -58 -56.5 -54 -50 -50 -49 -48 -47 -44 -42 -39 -38.5 -37 -36 -36 -29.7 -33 -32 -31 -29 -27.7 -22 -16 -9 -2 0 0 0 0 0 0 -55 -53 -50 -49 -48 -47 -43 -44 -44 -40 -39 -38 -37 -36 -34 -33.5 -31 -30 -27.5 -26 -23 -17 -11 -2 0 0 0 0 0 0 0 -54 -51 -50 -47 -47 -47 -45 -45 -43 -41 -39 -37 -36 -35 -33 -32 -30 -29 -27 -24.5 -21 -15 -5 0 0 0 0 0 0 0 0 -53 -51 -48 -46 -44 -44.5 -43 -42 -41 -40 -36.5 -35 -34.5 -35 -18 -31 -29 -26 -24 -20 -13 -5 0 0 0 0 0 0 0 0 0 -52 -50 -47 -45 -44 -44 -43 -42 -40 -38 -36.5 -34 -32.5 -31 -31 -29.5 -26.7 -24.5 -20 -13 -7 0 0 0 0 0 0 0 0 0 0 -49.5 -49 -47 -45 -43 -41.5 -40 -39.5 -37.5 -34 -34 -33 -33 -32 -28.5 -28 -26 -21 -15 -8 -1 0 0 0 0 0 0 0 0 0 0 -49 -48 -46 -46 -44 -40 -41 -38.5 -37 -37 -36.5 -33 -32.5 -30 -27 -26 -22 -14 -10 -1 0 0 0 0 0 0 0 0 0 0 0 -47 -46 -45 -45 -44 -41 -40 -38 -37 -34 -33 -32.5 -31 -28.7 -26 -22 -19 -10 -3 0 0 0 0 0 0 0 0 0 0 0 0 -45 -44.5 -42 -42 -42 -40 -39 -37.5 -36 -32.5 -31 -31 -29 -26 -23 -20 -10 -5 0 0 0 0 0 0 0 0 0 0 0 0 0 -44 -45 -40 -40 -39 -38 -37.5 -35 -33 -31.5 -30 -29 -26 -24 -20 -12 -6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -43 -41 -39.5 -39 -38 -36 -35 -32 -32 -30 -28 -27 -24 -20 -12 -5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -40 -39 -39 -39 -36 -34 -32 -31 -30 -27 -26 -24 -20 -12 -5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -39 -38.5 -38 -38 -34 -33 -31 -30 -27 -25 -24 -21 -13 -6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -38 -37 -36.5 -34 -32 -31 -29.7 -28 -26 -24 -20.5 -14 -7 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -37 -37 -33.8 -33 -31 -29 -28.5 -26.7 -25.5 -20 -14 -7 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 -39 -33 -31 -29 -27 -27 -24 -21 -16 -7 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 -36 -33 -30 -28 -26 -26 -22 -15 -8 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -32 -32 -29 -27.5 -25.7 -25 -23 -15 -8 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -33 -30 -27 -26 -24 -21 -16 -9 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0' accessType='initializeOnly'/> |
39 | <field name='heightValuesOutput' type='MFFloat' accessType='outputOnly'/> |
40 | <field name='colorValuesOutput' type='MFColor' accessType='outputOnly'/> |
<![CDATA[
ecmascript: function initialize () { totalHeights=heightValues.length; heightValuesHold = new MFFloat (0); // Browser.println ('totalHeights=heightValues.length=' + totalHeights); // this depth band defined to match fathoms to 60 feet, then 10' increments, doesn't match MEDAL depthBand = new MFFloat (0,-6,-12,-18,-24,-30,-36,-42,-48,-54,-60,-70,-80,-90,-100); if (inputUnits == 'feet') { for ( index = 1; index <= totalHeights ; index++ ) { // 1 meter = 39.3 inches heightValuesHold[index] = heightValues[index] * (12.0 / 39.3); } heightValuesOutput = heightValuesHold; } else { for ( index = 1; index <= depthBand.length ; index++ ) { // 1 meter = 39.3 inches depthBand[index] *= (39.31 / 2.0); } heightValuesOutput = heightValues; } brown = new SFColor (0.2, 0.2, 0); white = new SFColor (1, 1, 1); red = new SFColor (1, 0, 0); orange = new SFColor (1, .529, 0); yellow = new SFColor (1, 1, 0); green = new SFColor (0, 1, 0); cyan = new SFColor (0, 1, 1); blue = new SFColor (0, 0, 1); magenta = new SFColor (1, 0, 1); maroon = new SFColor (0.561, 0, 0.322); tan = new SFColor (0.871, 0.721, 0.529); seaGreen = new SFColor (0.322, 0.584, 0.517); slateBlue = new SFColor (0.494, 0.533, 0.671); navyBlue = new SFColor (0.137, 0.137, 0.459); grey = new SFColor (0.5, 0.5, 0.5); slateGrey = new SFColor (0.439, 0.502, 0.565); skyBlue = new SFColor (0.6, 0.6, 1.0); olive = new SFColor (0.1, 0.4, 0); black = new SFColor (0.1, 0.1, 0.1); colorValuesOutput = new MFColor (); // array gets dynamically expanded for ( index = 1; index <= totalHeights ; index++ ) { if (heightValues[index] > depthBand[1]) colorValuesOutput [index] = brown; else if (heightValues[index] > depthBand[2]) colorValuesOutput [index] = cyan; else if (heightValues[index] > depthBand[3]) colorValuesOutput [index] = red; else if (heightValues[index] > depthBand[4]) colorValuesOutput [index] = orange; else if (heightValues[index] > depthBand[5]) colorValuesOutput [index] = yellow; else if (heightValues[index] > depthBand[6]) colorValuesOutput [index] = tan; else if (heightValues[index] > depthBand[7]) colorValuesOutput [index] = grey; else if (heightValues[index] > depthBand[8]) colorValuesOutput [index] = olive; else if (heightValues[index] > depthBand[9]) colorValuesOutput [index] = green; else if (heightValues[index] > depthBand[10]) colorValuesOutput [index] = seaGreen; else if (heightValues[index] > depthBand[11]) colorValuesOutput [index] = navyBlue; else if (heightValues[index] > depthBand[12]) colorValuesOutput [index] = blue; else if (heightValues[index] > depthBand[13]) colorValuesOutput [index] = slateBlue; else if (heightValues[index] > depthBand[14]) colorValuesOutput [index] = skyBlue; else if (heightValues[index] > depthBand[15]) colorValuesOutput [index] = slateGrey; else colorValuesOutput [index] = black; // if (heightValues[index] > depthBand[1]) colorValuesOutput [index] = brown; // else if (heightValues[index] > depthBand[2]) colorValuesOutput [index] = yellow; // else if (heightValues[index] > depthBand[3]) colorValuesOutput [index] = green; // else if (heightValues[index] > depthBand[4]) colorValuesOutput [index] = cyan; // else if (heightValues[index] > depthBand[5]) colorValuesOutput [index] = magenta; // else if (heightValues[index] > depthBand[6]) colorValuesOutput [index] = tan; // else if (heightValues[index] > depthBand[7]) colorValuesOutput [index] = skyBlue; // else if (heightValues[index] > depthBand[8]) colorValuesOutput [index] = red; // else if (heightValues[index] > depthBand[9]) colorValuesOutput [index] = grey; // else if (heightValues[index] > depthBand[10]) colorValuesOutput [index] = seaGreen; // else if (heightValues[index] > depthBand[11]) colorValuesOutput [index] = slateBlue; // else if (heightValues[index] > depthBand[12]) colorValuesOutput [index] = olive; // else if (heightValues[index] > depthBand[13]) colorValuesOutput [index] = black; // else if (heightValues[index] > depthBand[14]) colorValuesOutput [index] = navyBlue; // else if (heightValues[index] > depthBand[15]) colorValuesOutput [index] = slateGrey; // else colorValuesOutput [index] = orange; } }
]]>
|
|
42 | </Script> |
43 | </Transform> |
44 | <!-- A new configurable prototype is needed for surface coordinate grids. --> |
45 | <Transform scale='250 250 250' translation='2500 0 2500'> |
46 | <Inline DEF='GridXZ_20x20Fixed' url=' "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d" "../../../Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/GridXZ_20x20Fixed.wrl" '/> |
47 | </Transform> |
48 | <Transform scale='1000 1000 1000'> |
49 | <Inline DEF='CoordinateAxes' url=' "../../../Savage/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" "../../../Savage/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" '/> |
50 | </Transform> |
51 | </Group> |
52 | <!-- GeoElevationGrid, georeferenced to latitude/longitude. Switched off, awaiting further work. --> |
53 | <!-- <Shape> <GeoElevationGrid geoGridOrigin="-117.5 33.2666666666667 1000000" geoSystem='"GD" "WE"' solid="false" xDimension="31" xSpacing="154" yScale="3.275" zDimension="29" zSpacing="184"/> </Shape> --> |
54 | </Switch> |
55 | <!-- HTML Color Codes Black = "#000000" = 0 0 0 Green = "#008000" = 0 0.5 0 Silver = "#C0C0C0" = 0.75 0.75 0.75 Lime = "#00FF00" = 0 1 0 Gray = "#808080" = 0.5 0.5 0.5 Olive = "#808000" = 0.5 0.5 0 White = "#FFFFFF" = 1 1 1 Yellow = "#FFFF00" = 1 1 0 Maroon = "#800000" = 0.5 0 0 Navy = "#000080" = 0 0 0.5 Red = "#FF0000" = 1 0 0 Blue = "#0000FF" = 0 0 1 Purple = "#800080" = 0.5 0 0.5 Teal = "#008080" = 0 0.5 0.5 Fuchsia = "#FF00FF" = 1 0 1 Aqua = "#00FFFF" = 0 1 1 --> |
56 | <!-- MEDAL Color Codes depth 0-2m orange 2-3 yellow 3-4 bright green 4-5 cyan 5-6 magenta 6-7 tan 7-8 sky blue 8-9 red 9-10 grey 10-11 teal/seagreen 11-12 slateblue 12-13 olivedrab 13-14 black 14-20 navyblue 20-30 slategrey 0.5 0.5 0 1 0.5 0 1 1 0 0 1 0 0 1 1 1 0 1 0.75 0.75 0 1 0.5 0.5 1 0 0 0.5 0.5 0.5 0 0.5 0.5 0 0 0.25 0.5 0.5 0 0.1 0.1 0.1 0 0 0.5 0.25 0.25 0.25 --> |
57 | < ROUTE fromNode='CalculateColorSchemeMEDAL' fromField='heightValuesOutput' toNode='BathymetryGrid' toField='set_height'/> |
58 | < ROUTE fromNode='CalculateColorSchemeMEDAL' fromField='colorValuesOutput' toNode='BathymetryGridColorNodeCalculated' toField='set_color'/> |
59 | </Scene> |
60 | </X3D> |
Event Graph ROUTE Table entries with 2 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.
CalculateColorSchemeMEDAL
Script heightValuesOutput MFFloat |
BathymetryGrid
ElevationGrid set_height MFFloat |
|
CalculateColorSchemeMEDAL
Script colorValuesOutput MFColor |
BathymetryGridColorNodeCalculated
Color set_color MFColor |
<!--
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)
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->