| 1 | <?xml version="1.0" encoding="UTF-8"?> | 
| 2 | <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd"> | 
| 3 | <X3D profile='Immersive' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'> | 
| 4 | <head> | 
| 5 | <meta name='title' content=' KelpForestMain.x3d '/> | 
| 6 | <meta name='description' content='This is the main entry to the Kelp Forest that loads all of the other components as Inline scenes.'/> | 
| 7 | <meta name='creator' content='Don Brutzman'/> | 
| 8 | <meta name='created' content='1 June 1998'/> | 
| 9 | <meta name='modified' content='14 December 2024'/> | 
| 10 | <meta name='reference' content='http://faculty.nps.edu/brutzman/kelp'/> | 
| 11 | <meta name='reference' content=' http://faculty.nps.edu/brutzman/kelp/KelpForestDesignPaper.pdf '/> | 
| 12 | <meta name='subject' content='Kelp Forest 3D models'/> | 
| 13 | <meta name='accessRights' content='All content has permissions for free use. Please provide credit to the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation (MOVES) Institute.'/> | 
| 14 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestMain.x3d '/> | 
| 15 | <meta name='generator' content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/> | 
| 16 | <meta name='license' content='../license.html'/> | 
| 17 | </head> | 
 DEF nodes index: 
               
               CENTER_WAVE,
ConsoleOutputViewPositionOrientation,
K10_DEEP,
K10_FLOOR,
K10_LOCALE,
K11_DEEP,
K11_FLOOR,
K11_LOCALE,
K11_MIDWATER,
K2_FLOOR,
K2_LOCALE,
K2_MIDWATER,
K4_FLOOR,
K4_LOCALE,
K4_MIDWATER,
K7_FLOOR,
K7_LOCALE,
K7_MIDWATER,
KelpExamplesNoBase,
LEFT_DEEP_WAVE,
LEFT_SHALLOW_WAVE,
MasterClock,
R2_DEEP,
R2_LOCALE,
R2_MIDWATER,
R3_LOCALE,
R3_MIDWATER,
R5_LOCALE,
R5_SHALLOW,
RIGHT_DEEP_WAVE,
RIGHT_SHALLOW_WAVE,
Root,
Viewpoints,
WAVE_CLOCK
               
               
                  DEF nodes index: 
               
               CENTER_WAVE,
ConsoleOutputViewPositionOrientation,
K10_DEEP,
K10_FLOOR,
K10_LOCALE,
K11_DEEP,
K11_FLOOR,
K11_LOCALE,
K11_MIDWATER,
K2_FLOOR,
K2_LOCALE,
K2_MIDWATER,
K4_FLOOR,
K4_LOCALE,
K4_MIDWATER,
K7_FLOOR,
K7_LOCALE,
K7_MIDWATER,
KelpExamplesNoBase,
LEFT_DEEP_WAVE,
LEFT_SHALLOW_WAVE,
MasterClock,
R2_DEEP,
R2_LOCALE,
R2_MIDWATER,
R3_LOCALE,
R3_MIDWATER,
R5_LOCALE,
R5_SHALLOW,
RIGHT_DEEP_WAVE,
RIGHT_SHALLOW_WAVE,
Root,
Viewpoints,
WAVE_CLOCK
| 18 | <Scene> | 
| 19 | <WorldInfo info=' "Model of the Monterey Bay Aquarium Kelp Forest" "DTG of original update: 111500Jun98" "Created by Naval Postgraduate School students under the supervision of Don Brutzman" "Feel free to copy anything you wish - just give credit where it is due" "http://faculty.nps.edu/brutzman/kelp"' title='NPS Virtual Kelp Forest Exhibit'/> | 
| 20 | <NavigationInfo speed='3.0' type='"EXAMINE" "FLY" "WALK" "ANY"'/> | 
| 21 | <ExternProtoDeclare name='ViewPositionOrientation' url=' "../../Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.x3d#ViewPositionOrientation" "../../Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" "https://savage.nps.edu/Savage/Tools/Authoring/ViewPositionOrientationPrototype.wrl#ViewPositionOrientation" '> | 
| 22 | <field name='enabled' type='SFBool' accessType='inputOutput'/> | 
| 23 | <field name='traceEnabled' type='SFBool' accessType='initializeOnly'/> | 
| 24 | <field name='set_traceEnabled' type='SFBool' accessType='inputOnly'/> | 
| 25 | <field name='position_changed' type='SFVec3f' accessType='outputOnly'/> | 
| 26 | <field name='orientation_changed' type='SFRotation' accessType='outputOnly'/> | 
| 27 | <field name='outputViewpointString' type='MFString' accessType='outputOnly'/> | 
| 28 | </ExternProtoDeclare> | 
| 29 | <ProtoInstance name='ViewPositionOrientation' DEF='ConsoleOutputViewPositionOrientation'> | 
| 30 | <fieldValue name='enabled' value='false'/> | 
| 31 | </ProtoInstance> | 
| 32 | <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://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator" "../../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" "https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator" '> | 
| 33 | <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) --> | 
| 34 | <field name='description' type='SFString' accessType='initializeOnly' appinfo='Short description of what is animated by this WaypointInterpolator.'/> | 
| 35 | <field name='waypoints' type='MFVec3f' accessType='initializeOnly' appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/> | 
| 36 | <field name='add_waypoint' type='SFVec3f' accessType='inputOnly' appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/> | 
| 37 | <field name='set_waypoints' type='MFVec3f' accessType='inputOnly' appinfo='Replace all waypoints recalculate interpolator values.'/> | 
| 38 | <field name='pitchUpDownForVerticalWaypoints' type='SFBool' accessType='initializeOnly' appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/> | 
| 39 | <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.'/> | 
| 40 | <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.'/> | 
| 41 | <field name='defaultSpeed' type='SFFloat' accessType='initializeOnly' appinfo='Units m/sec.'/> | 
| 42 | <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.'/> | 
| 43 | <field name='totalDuration' type='SFTime' accessType='outputOnly' appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/> | 
| 44 | <!-- interpolation fields --> | 
| 45 | <field name='set_fraction' type='SFFloat' accessType='inputOnly' appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/> | 
| 46 | <field name='position_changed' type='SFVec3f' accessType='outputOnly' appinfo='exposed PositionInterpolator setting'/> | 
| 47 | <field name='orientation_changed' type='SFRotation' accessType='outputOnly' appinfo='exposed OrientationInterpolator setting'/> | 
| 48 | <!-- display-related fields --> | 
| 49 | <field name='lineColor' type='SFColor' accessType='inputOutput' appinfo='default color for non-active line segments'/> | 
| 50 | <field name='highlightSegmentColor' type='SFColor' accessType='inputOutput' appinfo='active segment highlight color'/> | 
| 51 | <field name='transparency' type='SFFloat' accessType='inputOutput' appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/> | 
| 52 | <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)'/> | 
| 53 | <field name='heightLabel' type='SFString' accessType='initializeOnly' appinfo='allowed values: altitude depth (negate Y value) none'/> | 
| 54 | <field name='labelOffset' type='SFVec3f' accessType='initializeOnly' appinfo='heightLabel relative location'/> | 
| 55 | <field name='labelFontSize' type='SFFloat' accessType='initializeOnly' appinfo='heightLabel text size'/> | 
| 56 | <field name='labelColor' type='SFColor' accessType='initializeOnly' appinfo='heightLabel text color'/> | 
| 57 | <field name='traceEnabled' type='SFBool' accessType='initializeOnly' appinfo='enable console output to trace script computations and prototype progress'/> | 
| 58 | <field name='outputInitializationComputations' type='SFBool' accessType='initializeOnly' appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/> | 
| 59 | <field name='verticalDropLineColor' type='SFColor' accessType='inputOutput' appinfo='default color for vertical drop-line segments'/> | 
| 60 | <field name='verticalDropLineTransparency' type='SFFloat' accessType='inputOutput' appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/> | 
| 61 | </ExternProtoDeclare> | 
| 62 | <Group DEF='Viewpoints'> | 
| 63 | <Viewpoint description='Kelp Forest Monterey Bay Aquarium' position='0.0 -5.0 45.0'/> | 
| 64 | <Viewpoint description='Side Windows' fieldOfView='0.5' orientation='0.0 1.0 0.0 0.9' position='25.0 -4.0 15.0'/> | 
| 65 | <Viewpoint description='Star Fish' orientation='0.0 1.0 0.0 1.25' position='14.0 -5.75 1.0'/> | 
| 66 | <Viewpoint description='Inside Tank' orientation='0.0 1.0 0.0 3.14' position='0.0 -5.0 -7.0'/> | 
| 67 | <Viewpoint description='Top floor' fieldOfView='1.04719' orientation='-0.3 1.0 0.3 1.57079' position='12.5 5.0 -2.0'/> | 
| 68 | <Viewpoint description="Bird's Eye View" orientation='1.0 0.0 0.0 -1.57' position='0.0 19.0 -3.5'/> | 
| 69 | <Viewpoint description='Pump House' fieldOfView='0.6' orientation='0.0 1.0 0.0 1.3' position='-5.0 1.0 0.0'/> | 
| 70 | </Group> | 
| 71 | <Group DEF='Root'> | 
| 72 | <Background groundAngle='1.309 1.5707' groundColor='0.1 0.1 0.0 0.4 0.25 0.2 0.6 0.6 0.6' skyAngle='1.309 1.5707' skyColor='0.0 0.5 1.0 0.0 0.0 1.0 0.0 0.0 1.0'/> | 
| 73 | <Inline url=' "IntroductionMessage.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/IntroductionMessage.x3d" "IntroductionMessage.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/IntroductionMessage.wrl" '/> | 
| 74 | <Collision enabled='false'> | 
| 75 | <Transform> | 
| 76 | <Inline url=' "SharkLeftyLocale.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLeftyLocale.x3d" "SharkLeftyLocale.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLeftyLocale.wrl" '/> | 
| 77 | </Transform> | 
| 78 | <Transform> | 
| 79 | <Inline url=' "SharkLucyLocale.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLucyLocale.x3d" "SharkLucyLocale.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLucyLocale.wrl" '/> | 
| 80 | </Transform> | 
| 81 | <Transform> | 
| 82 | <Inline url=' "KelpTank.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpTank.x3d" "KelpTank.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpTank.wrl" '/> | 
| 83 | </Transform> | 
| 84 | <Transform scale='0.54 0.75 0.52' translation='0.3 -2.88 7.3'> | 
| 85 | <Inline url=' "RockFloor.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.x3d" "RockFloor.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.wrl" '/> | 
| 86 | </Transform> | 
| 87 | <Transform DEF='K2_LOCALE' translation='-4.0 0.0 1.0'> | 
| 88 | 
                         <!-- ROUTE information for K2_MIDWATER node: 
[from RIGHT_DEEP_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='K2_MIDWATER' scale='0.2 0.2 0.2' translation='-1.0 -4.0 -4.0'> | 
| 89 | <Inline url=' "SardineSchool.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SardineSchool.x3d" "SardineSchool.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SardineSchool.wrl" '/> | 
| 90 | </Transform> | 
| 91 | <Transform DEF='K2_FLOOR' rotation='0.0 1.0 0.0 0.44' scale='0.5 0.9 0.5' translation='-1.9 -8.5 -1.5'> | 
| 92 | 
                              <!-- Inline
                                                KelpExamplesNoBase is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 --> <Inline DEF='KelpExamplesNoBase' url=' "KelpExamplesNoBase.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.x3d" "KelpExamplesNoBase.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.wrl" '/> | 
| 93 | </Transform> | 
| 94 | </Transform> | 
| 95 | <Transform DEF='K4_LOCALE' translation='-2.5 0.0 -2.5'> | 
| 96 | 
                         <!-- ROUTE information for K4_MIDWATER node: 
[from CENTER_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='K4_MIDWATER' translation='-10.0 -2.0 -2.0'> | 
| 97 | <Inline url=' "HalfMoonGroup.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/HalfMoonGroup.x3d" "HalfMoonGroup.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/HalfMoonGroup.wrl" '/> | 
| 98 | </Transform> | 
| 99 | <Transform DEF='K4_FLOOR' rotation='0.0 1.0 0.0 -0.3' scale='0.5 0.8 0.5' translation='-1.5 -7.5 0.5'> | 
| 100 | <Inline USE='KelpExamplesNoBase'/> | 
| 101 | </Transform> | 
| 102 | </Transform> | 
| 103 | <Transform DEF='K7_LOCALE' translation='2.0 0.0 -2.5'> | 
| 104 | 
                         <!-- ROUTE information for K7_MIDWATER node: 
[from CENTER_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='K7_MIDWATER' scale='0.25 0.25 0.25' translation='2.0 -4.0 0.0'> | 
| 105 | <Inline url=' "RubberLipGroup.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RubberLipGroup.x3d" "RubberLipGroup.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RubberLipGroup.wrl" '/> | 
| 106 | </Transform> | 
| 107 | <Transform DEF='K7_FLOOR' scale='0.5 0.85 0.5' translation='0.0 -7.75 0.0'> | 
| 108 | <Inline USE='KelpExamplesNoBase'/> | 
| 109 | </Transform> | 
| 110 | </Transform> | 
| 111 | <Transform DEF='K10_LOCALE' translation='7.0 0.0 2.0'> | 
| 112 | 
                         <!-- ROUTE information for K10_DEEP node: 
[from LEFT_DEEP_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='K10_DEEP' translation='0.0 -5.0 0.0'> | 
| 113 | <Inline url=' "StripedSurfPerch.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerch.x3d" "StripedSurfPerch.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerch.wrl" '/> | 
| 114 | </Transform> | 
| 115 | <Transform DEF='K10_FLOOR' rotation='0.0 1.0 0.0 0.16' scale='0.5 0.75 0.5' translation='-1.0 -7.0 -1.0'> | 
| 116 | <Inline USE='KelpExamplesNoBase'/> | 
| 117 | </Transform> | 
| 118 | </Transform> | 
| 119 | <Transform DEF='K11_LOCALE' translation='8.0 0.0 -2.0'> | 
| 120 | <Transform DEF='K11_MIDWATER' rotation='0.0 1.0 0.0 0.3' translation='2.19 -7.0 0.15'> | 
| 121 | <Inline url=' "SeaStarSimple.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarSimple.x3d" "SeaStarSimple.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarSimple.wrl" '/> | 
| 122 | </Transform> | 
| 123 | 
                         <!-- ROUTE information for K11_DEEP node: 
[from LEFT_DEEP_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='K11_DEEP' rotation='0.0 1.0 0.0 0.9' translation='1.0 -5.0 0.0'> | 
| 124 | <Inline url=' "BlackSurfPerch.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlackSurfPerch.x3d" "BlackSurfPerch.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlackSurfPerch.wrl" '/> | 
| 125 | </Transform> | 
| 126 | <Transform DEF='K11_FLOOR' rotation='0.0 1.0 0.0 0.3' scale='0.5 0.75 0.5' translation='-0.3 -7.0 0.0'> | 
| 127 | <Inline USE='KelpExamplesNoBase'/> | 
| 128 | </Transform> | 
| 129 | <Transform translation='1.3 -5.0 3.0'> | 
| 130 | <Inline url=' "SeaStarGroup.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarGroup.x3d" "SeaStarGroup.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarGroup.wrl" '/> | 
| 131 | </Transform> | 
| 132 | </Transform> | 
| 133 | <Transform DEF='R2_LOCALE' translation='-1.0 0.0 -1.0'> | 
| 134 | 
                         <!-- ROUTE information for R2_MIDWATER node: 
[from RIGHT_SHALLOW_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='R2_MIDWATER' translation='-1.0 -6.0 -2.0'> | 
| 135 | <Inline url=' "BlueRockFish.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlueRockFish.x3d" "BlueRockFish.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlueRockFish.wrl" '/> | 
| 136 | </Transform> | 
| 137 | 
                         <!-- ROUTE information for R2_DEEP node: 
[from RIGHT_DEEP_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='R2_DEEP' translation='1.0 -6.5 -1.0'> | 
| 138 | <Inline url=' "KelpSurfPerch.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpSurfPerch.x3d" "KelpSurfPerch.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpSurfPerch.wrl" '/> | 
| 139 | </Transform> | 
| 140 | </Transform> | 
| 141 | <Transform DEF='R3_LOCALE' translation='3.0 0.0 -4.0'> | 
| 142 | 
                         <!-- ROUTE information for R3_MIDWATER node: 
[from CENTER_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='R3_MIDWATER' translation='0.0 -6.0 0.0'> | 
| 143 | <Inline url=' "Garibaldi.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Garibaldi.x3d" "Garibaldi.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Garibaldi.wrl" '/> | 
| 144 | </Transform> | 
| 145 | </Transform> | 
| 146 | <Transform DEF='R5_LOCALE' translation='8.0 0.0 -2.0'> | 
| 147 | 
                         <!-- ROUTE information for R5_SHALLOW node: 
[from RIGHT_SHALLOW_WAVE.value_changed to set_translation
                                          ]
 --> <Transform DEF='R5_SHALLOW' translation='-2.0 -2.0 0.0'> | 
| 148 | <Inline url=' "KelpBass.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpBass.x3d" "KelpBass.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpBass.wrl" '/> | 
| 149 | </Transform> | 
| 150 | </Transform> | 
| 151 | 
                    <!-- ROUTE information for WAVE_CLOCK node: 
[from fraction_changed to CENTER_WAVE.set_fraction
                                    ]
 --> <TimeSensor DEF='WAVE_CLOCK' cycleInterval='5.5' enabled='false' loop='true'/> | 
| 152 | <PositionInterpolator DEF='LEFT_SHALLOW_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.056 -0.085 0.0 0.08 -0.12 0.0 0.056 -0.085 0.0 0.0 0.0 0.0 -0.056 0.085 0.0 -0.08 0.12 0.0 -0.056 0.085 0.0 0.0 0.0 0.0'/> | 
| 153 | 
                    <!-- ROUTE information for LEFT_DEEP_WAVE node: 
[from value_changed to K10_DEEP.set_translation
                                    ]
[from value_changed to K11_DEEP.set_translation
                                    ]
 --> <PositionInterpolator DEF='LEFT_DEEP_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.035 -0.035 0.0 0.05 -0.05 0.0 0.035 -0.035 0.0 0.0 0.0 0.0 -0.035 0.035 0.0 -0.05 0.05 0.0 -0.035 0.035 0.0 0.0 0.0 0.0'/> | 
| 154 | 
                    <!-- ROUTE information for CENTER_WAVE node: 
[from WAVE_CLOCK.fraction_changed to set_fraction
                                    ]
[from value_changed to K7_MIDWATER.set_translation
                                    ]
[from value_changed to K4_MIDWATER.set_translation
                                    ]
[from value_changed to R3_MIDWATER.set_translation
                                    ]
 --> <PositionInterpolator DEF='CENTER_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.106 0.0 0.0 0.15 0.0 0.0 0.106 0.0 0.0 0.0 0.0 0.0 -0.106 0.0 0.0 -0.15 0.0 0.0 -0.106 0.0 0.0 0.0 0.0 0.0'/> | 
| 155 | 
                    <!-- ROUTE information for RIGHT_SHALLOW_WAVE node: 
[from value_changed to R2_MIDWATER.set_translation
                                    ]
[from value_changed to R5_SHALLOW.set_translation
                                    ]
 --> <PositionInterpolator DEF='RIGHT_SHALLOW_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.056 0.085 0.0 0.08 0.12 0.0 0.056 0.085 0.0 0.0 0.0 0.0 -0.056 -0.085 0.0 -0.08 -0.12 0.0 -0.056 -0.085 0.0 0.0 0.0 0.0'/> | 
| 156 | 
                    <!-- ROUTE information for RIGHT_DEEP_WAVE node: 
[from value_changed to K2_MIDWATER.set_translation
                                    ]
[from value_changed to R2_DEEP.set_translation
                                    ]
 --> <PositionInterpolator DEF='RIGHT_DEEP_WAVE' key='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0' keyValue='0.0 0.0 0.0 0.035 0.035 0.0 0.05 0.05 0.0 0.035 0.035 0.0 0.0 0.0 0.0 -0.035 -0.035 0.0 -0.05 -0.05 0.0 -0.035 -0.035 0.0 0.0 0.0 0.0'/> | 
| 157 | </Collision> | 
| 158 | </Group> | 
| 159 | < ROUTE fromNode='WAVE_CLOCK' fromField='fraction_changed' toNode='CENTER_WAVE' toField='set_fraction'/> | 
| 160 | < ROUTE fromNode='CENTER_WAVE' fromField='value_changed' toNode='K7_MIDWATER' toField='set_translation'/> | 
| 161 | < ROUTE fromNode='RIGHT_DEEP_WAVE' fromField='value_changed' toNode='K2_MIDWATER' toField='set_translation'/> | 
| 162 | < ROUTE fromNode='CENTER_WAVE' fromField='value_changed' toNode='K4_MIDWATER' toField='set_translation'/> | 
| 163 | < ROUTE fromNode='LEFT_DEEP_WAVE' fromField='value_changed' toNode='K10_DEEP' toField='set_translation'/> | 
| 164 | < ROUTE fromNode='LEFT_DEEP_WAVE' fromField='value_changed' toNode='K11_DEEP' toField='set_translation'/> | 
| 165 | < ROUTE fromNode='RIGHT_SHALLOW_WAVE' fromField='value_changed' toNode='R2_MIDWATER' toField='set_translation'/> | 
| 166 | < ROUTE fromNode='RIGHT_DEEP_WAVE' fromField='value_changed' toNode='R2_DEEP' toField='set_translation'/> | 
| 167 | < ROUTE fromNode='CENTER_WAVE' fromField='value_changed' toNode='R3_MIDWATER' toField='set_translation'/> | 
| 168 | < ROUTE fromNode='RIGHT_SHALLOW_WAVE' fromField='value_changed' toNode='R5_SHALLOW' toField='set_translation'/> | 
| 169 | <TimeSensor DEF='MasterClock' loop='true'/> | 
| 170 | </Scene> | 
| 171 | </X3D> | 
 DEF nodes index: 
         
         CENTER_WAVE,
ConsoleOutputViewPositionOrientation,
K10_DEEP,
K10_FLOOR,
K10_LOCALE,
K11_DEEP,
K11_FLOOR,
K11_LOCALE,
K11_MIDWATER,
K2_FLOOR,
K2_LOCALE,
K2_MIDWATER,
K4_FLOOR,
K4_LOCALE,
K4_MIDWATER,
K7_FLOOR,
K7_LOCALE,
K7_MIDWATER,
KelpExamplesNoBase,
LEFT_DEEP_WAVE,
LEFT_SHALLOW_WAVE,
MasterClock,
R2_DEEP,
R2_LOCALE,
R2_MIDWATER,
R3_LOCALE,
R3_MIDWATER,
R5_LOCALE,
R5_SHALLOW,
RIGHT_DEEP_WAVE,
RIGHT_SHALLOW_WAVE,
Root,
Viewpoints,
WAVE_CLOCK
         
         
            DEF nodes index: 
         
         CENTER_WAVE,
ConsoleOutputViewPositionOrientation,
K10_DEEP,
K10_FLOOR,
K10_LOCALE,
K11_DEEP,
K11_FLOOR,
K11_LOCALE,
K11_MIDWATER,
K2_FLOOR,
K2_LOCALE,
K2_MIDWATER,
K4_FLOOR,
K4_LOCALE,
K4_MIDWATER,
K7_FLOOR,
K7_LOCALE,
K7_MIDWATER,
KelpExamplesNoBase,
LEFT_DEEP_WAVE,
LEFT_SHALLOW_WAVE,
MasterClock,
R2_DEEP,
R2_LOCALE,
R2_MIDWATER,
R3_LOCALE,
R3_MIDWATER,
R5_LOCALE,
R5_SHALLOW,
RIGHT_DEEP_WAVE,
RIGHT_SHALLOW_WAVE,
Root,
Viewpoints,
WAVE_CLOCK
Event Graph ROUTE Table entries with 10 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.
| MasterClock TimeSensor | No direct ROUTE connection found for events to/from this node. | 
| WAVE_CLOCK TimeSensor fraction_changed SFFloat | CENTER_WAVE PositionInterpolator set_fraction SFFloat | then | CENTER_WAVE PositionInterpolator value_changed SFVec3f | K7_MIDWATER Transform set_translation SFVec3f | ||
| then | CENTER_WAVE PositionInterpolator value_changed SFVec3f | K4_MIDWATER Transform set_translation SFVec3f | ||||
| then | CENTER_WAVE PositionInterpolator value_changed SFVec3f | R3_MIDWATER Transform set_translation SFVec3f | ||||
| ConsoleOutputViewPositionOrientation ProtoInstance ViewPositionOrientation | 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. | 
         <!--
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.
-->
         
         <!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->