X3D Model Documentation: VisibilitySensorKelpForestMain.x3d

  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='titlecontent='VisibilitySensorKelpForestMain.x3d'/>
  6            <meta name='descriptioncontent='VisibilitySensor example.'/>
  7            <meta name='creatorcontent='Don Brutzman Revised: Leonard Daly for X3D Book'/>
  8            <meta name='createdcontent='1 June 1998'/>
  9            <meta name='modifiedcontent='29 October 2023'/>
 10            <meta name='referencecontent='http://faculty.nps.edu/brutzman/kelp'/>
 11            <meta name='referencecontent='http://faculty.nps.edu/brutzman/kelp/KelpForestDesignPaper.pdf'/>
 12            <meta name='subjectcontent='Kelp Forest 3D models'/>
 13            <meta name='accessRightscontent='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='referencecontent='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestMain.x3d'/>
 15            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter12EnvironmentSensorSound/VisibilitySensorKelpForestMain.x3d'/>
 16            <meta name='generatorcontent='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
 17            <meta name='licensecontent='../license.html'/>
 18       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: CENTER_WAVE, ConsoleOutputViewPositionOrientation, JEFFSCLOCK, 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, Nancy, NancyInterpolator, NancyTransform, PrintInfo, R2_DEEP, R2_LOCALE, R2_MIDWATER, R3_LOCALE, R3_MIDWATER, R5_LOCALE, R5_SHALLOW, RIGHT_DEEP_WAVE, RIGHT_SHALLOW_WAVE, Root, SeeMe, Viewpoints, WAVE_CLOCK

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7

Index for ExternProtoDeclare definitions: ViewPositionOrientation, WaypointInterpolator
-->
 19       <Scene>
 20            <Collision enabled='false'>
 21                 <Transform translation='0 -3.5 -2'>
 22                      <Shape>
 23                           <Appearance>
 24                                <Material diffuseColor='1 .5 0transparency='.9'/>
 25                           </Appearance>
 26                           <Box size='20 11 11'/>
 27                      </Shape>
 28                 </Transform>
 29            </Collision>
 30 
          <!-- ROUTE information for SeeMe node:  [from isActive to PrintInfo.isVisible ] -->
          <VisibilitySensor DEF='SeeMecenter='0 -3.5 -2size='20 11 11'/>
 31 
          <!-- ROUTE information for PrintInfo node:  [from SeeMe.isActive to isVisible ] -->
          <Script DEF='PrintInfo'>
 32                 <field name='isVisibletype='SFBoolaccessType='inputOnly'/>
  <![CDATA[
      
ecmascript:

// Functions for ProximitySensor

function position (value) {
  var x = Math.floor (value[0] * precision + 0.5) / precision;
  var y = Math.floor (value[1] * precision + 0.5) / precision;
  var z = Math.floor (value[2] * precision + 0.5) / precision;
  Browser.println ('position: ' + x + ' ' + y + ' ' + z);
}

function orientation (value) {
  var x = Math.floor (value[0] * precision + 0.5) / precision;
  var y = Math.floor (value[1] * precision + 0.5) / precision;
  var z = Math.floor (value[2] * precision + 0.5) / precision;
  var a = Math.floor (value[3] * precision + 0.5) / precision;
  Browser.println ('orientation: ' + x + ' ' + y + ' ' + z + ' ' + a);
}

// Functions for VisibilitySensor

function isVisible (value) {
  Browser.println ('The region is visible: ' + value);
}

    
]]>
 34            </Script>
 35            < ROUTE  fromNode='SeeMe' fromField='isActive' toNode='PrintInfo' toField='isVisible'/>
 36            <WorldInfo info=' "kelpForestMain3.4.wrl" "Model of the Monterey Bay Aquarium Kelp Forest" "DTG of last updated: 111500Jun98" "Updated: kelpTank2.9.wrl; " "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'/>
 37            <NavigationInfo speed='3.0'/>
 38            <ExternProtoDeclare name='ViewPositionOrientationappinfo='ViewPositionOrientation prototype provides local position and orientation as user navigates with optional console output'   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" '>
 39                 <field name='enabledtype='SFBoolaccessType='inputOutput'
                appinfo='Whether or not ViewPositionOrientation sends output to console.'/>
 40                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='Output internal trace messages for debugging this node - developer use only can be ignored.'/>
 41                 <field name='set_traceEnabledtype='SFBoolaccessType='inputOnly'
                appinfo='Ability to turn output tracing on/off at runtime.'/>
 42                 <field name='position_changedtype='SFVec3faccessType='outputOnly'
                appinfo='Output local position.'/>
 43                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'
                appinfo='Output local orientation.'/>
 44                 <field name='outputViewpointStringtype='MFStringaccessType='outputOnly'
                appinfo='MFString value of new Viewpoint for example: <Viewpoint position="20 15 20" orientation="-0.516 0.83 0.212 0.9195"/>'/>
 45            </ExternProtoDeclare>
 46            <ProtoInstance name='ViewPositionOrientationDEF='ConsoleOutputViewPositionOrientation'>
 47                 <fieldValue name='enabledvalue='false'/>
 48            </ProtoInstance>
 49            <ExternProtoDeclare name='WaypointInterpolatorappinfo='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" '>
 50                 <!-- Priority of use: legSpeeds (m/sec), legDurations (seconds), defaultSpeed (m/sec) -->
 51                 <field name='descriptiontype='SFStringaccessType='initializeOnly'
                appinfo='Short description of what is animated by this WaypointInterpolator.'/>
 52                 <field name='waypointstype='MFVec3faccessType='initializeOnly'
                appinfo='Waypoints being traversed with interpolation of intermediate positions and orientations.'/>
 53                 <field name='add_waypointtype='SFVec3faccessType='inputOnly'
                appinfo='Add another single waypoint to array of waypoints recalculate interpolator values.'/>
 54                 <field name='set_waypointstype='MFVec3faccessType='inputOnly'
                appinfo='Replace all waypoints recalculate interpolator values.'/>
 55                 <field name='pitchUpDownForVerticalWaypointstype='SFBoolaccessType='initializeOnly'
                appinfo='Whether to pitch child geometry (such as a vehicle) up or down to match vertical slope'/>
 56                 <field name='legSpeedstype='MFFloataccessType='initializeOnly'
                appinfo='Units m/sec. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/>
 57                 <field name='legDurationstype='MFTimeaccessType='initializeOnly'
                appinfo='Units in seconds. If used array lengths for legSpeeds and legDurations must be one less than number of waypoints.'/>
 58                 <field name='defaultSpeedtype='SFFloataccessType='initializeOnly'
                appinfo='Units m/sec.'/>
 59                 <field name='turningRatetype='SFFloataccessType='initializeOnly'
                appinfo='turningRate (degrees/second) also determines standoff distance prior to waypoint where turn commences. If 0 turns are instantaneous.'/>
 60                 <field name='totalDurationtype='SFTimeaccessType='outputOnly'
                appinfo='Output calculation summing all leg durations, useful for setting TimeSensor cycleInterval. Units in seconds.'/>
 61                 <!-- interpolation fields -->
 62                 <field name='set_fractiontype='SFFloataccessType='inputOnly'
                appinfo='exposed PositionInterpolator and OrientationInterpolator setting'/>
 63                 <field name='position_changedtype='SFVec3faccessType='outputOnly'
                appinfo='exposed PositionInterpolator setting'/>
 64                 <field name='orientation_changedtype='SFRotationaccessType='outputOnly'
                appinfo='exposed OrientationInterpolator setting'/>
 65                 <!-- display-related fields -->
 66                 <field name='lineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for non-active line segments'/>
 67                 <field name='highlightSegmentColortype='SFColoraccessType='inputOutput'
                appinfo='highlightSegmentColors must contain two color values for each endpoint of the highlight segment.'/>
 68                 <field name='transparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
 69                 <field name='labelDisplayModetype='SFStringaccessType='initializeOnly'
                appinfo='allowed values: none; waypoints (produce labels at each waypoint); or interpolation (produce single moving label at interpolator time course speed location)'/>
 70                 <field name='heightLabeltype='SFStringaccessType='initializeOnly'
                appinfo='allowed values: altitude depth (negate Y value) none'/>
 71                 <field name='labelOffsettype='SFVec3faccessType='initializeOnly'
                appinfo='heightLabel relative location'/>
 72                 <field name='labelFontSizetype='SFFloataccessType='initializeOnly'
                appinfo='heightLabel text size'/>
 73                 <field name='labelColortype='SFColoraccessType='initializeOnly'
                appinfo='heightLabel text color'/>
 74                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
 75                 <field name='outputInitializationComputationstype='SFBoolaccessType='initializeOnly'
                appinfo='Output the number of waypoints totalDistance and totalDuration to console upon initialization'/>
 76                 <field name='verticalDropLineColortype='SFColoraccessType='inputOutput'
                appinfo='default color for vertical drop-line segments'/>
 77                 <field name='verticalDropLineTransparencytype='SFFloataccessType='inputOutput'
                appinfo='1.0 is completely transparent, 0.0 is completely opaque.'/>
 78            </ExternProtoDeclare>
 79            <Group DEF='Viewpoints'>
 80                 <Viewpoint description='Kelp Forest Monterey Bay Aquariumposition='0.0 -5.0 45.0'/>
 81                 <Viewpoint description='Side WindowsfieldOfView='0.5orientation='0.0 1.0 0.0 0.9position='25.0 -4.0 15.0'/>
 82                 <Viewpoint description='Star Fishorientation='0.0 1.0 0.0 1.25position='14.0 -5.75 1.0'/>
 83                 <Viewpoint description='Inside Tankorientation='0.0 1.0 0.0 3.14position='0.0 -5.0 -7.0'/>
 84                 <Viewpoint description='Top floorfieldOfView='1.04719orientation='-0.3 1.0 0.3 1.57079position='12.5 5.0 -2.0'/>
 85                 <Viewpoint description="Bird's Eye Vieworientation='1.0 0.0 0.0 -1.57position='0.0 19.0 -3.5'/>
 86                 <Viewpoint description='Pump HousefieldOfView='0.6orientation='0.0 1.0 0.0 1.3position='-5.0 1.0 0.0'/>
 87            </Group>
 88            <Group DEF='Root'>
 89                 <Background skyColor='.8 .8 .8'/>
 90                 <Fog color='.8 .8 .8visibilityRange='60'/>
 91                 <Inline   url=' "../KelpForestExhibit/IntroductionMessage.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/IntroductionMessage.x3d" "../KelpForestExhibit/IntroductionMessage.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/IntroductionMessage.wrl" '/>
 92                 <Collision enabled='false'>
 93                      <Transform>
 94                           <Inline   url=' "../KelpForestExhibit/SharkLeftyLocale.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLeftyLocale.x3d" "../KelpForestExhibit/SharkLeftyLocale.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLeftyLocale.wrl" '/>
 95                      </Transform>
 96                      <Transform>
 97                           <Inline   url=' "../KelpForestExhibit/SharkLucyLocale.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLucyLocale.x3d" "../KelpForestExhibit/SharkLucyLocale.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SharkLucyLocale.wrl" '/>
 98                      </Transform>
 99                      <Transform>
100                           <Inline   url=' "../KelpForestExhibit/KelpTank.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpTank.x3d" "../KelpForestExhibit/KelpTank.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpTank.wrl" '/>
101                      </Transform>
102                      <Transform scale='0.54 0.75 0.52translation='0.3 -2.88 7.3'>
103                           <Inline   url=' "../KelpForestExhibit/RockFloor.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.x3d" "../KelpForestExhibit/RockFloor.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.wrl" '/>
104                      </Transform>
105                      <Transform DEF='K2_LOCALEtranslation='-4.0 0.0 1.0'>
106 
                         <!-- ROUTE information for K2_MIDWATER node:  [from RIGHT_DEEP_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='K2_MIDWATERscale='0.2 0.2 0.2translation='-1.0 -4.0 -4.0'>
107                                <Inline   url=' "../KelpForestExhibit/SardineSchool.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SardineSchool.x3d" "../KelpForestExhibit/SardineSchool.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SardineSchool.wrl" '/>
108                           </Transform>
109                           <Transform DEF='K2_FLOORrotation='0.0 1.0 0.0 0.44scale='0.5 0.9 0.5translation='-1.9 -8.5 -1.5'>
110 
                              <!-- Inline KelpExamplesNoBase is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 -->
                              <Inline DEF='KelpExamplesNoBase'   url=' "../KelpForestExhibit/KelpExamplesNoBase.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.x3d" "../KelpForestExhibit/KelpExamplesNoBase.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.wrl" '/>
111                           </Transform>
112                      </Transform>
113                      <Transform DEF='K4_LOCALEtranslation='-2.5 0.0 -2.5'>
114 
                         <!-- ROUTE information for K4_MIDWATER node:  [from CENTER_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='K4_MIDWATERtranslation='-10.0 -2.0 -2.0'>
115                                <Inline   url=' "../KelpForestExhibit/HalfMoonGroup.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/HalfMoonGroup.x3d" "../KelpForestExhibit/HalfMoonGroup.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/HalfMoonGroup.wrl" '/>
116                           </Transform>
117                           <Transform DEF='K4_FLOORrotation='0.0 1.0 0.0 -0.3scale='0.5 0.8 0.5translation='-1.5 -7.5 0.5'>
118                                <Inline USE='KelpExamplesNoBase'/>
119                           </Transform>
120                      </Transform>
121                      <Transform DEF='K7_LOCALEtranslation='2.0 0.0 -2.5'>
122 
                         <!-- ROUTE information for K7_MIDWATER node:  [from CENTER_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='K7_MIDWATERscale='0.25 0.25 0.25translation='2.0 -4.0 0.0'>
123                                <Inline   url=' "../KelpForestExhibit/RubberLipGroup.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RubberLipGroup.x3d" "../KelpForestExhibit/RubberLipGroup.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RubberLipGroup.wrl" '/>
124                           </Transform>
125                           <Transform DEF='K7_FLOORscale='0.5 0.85 0.5translation='0.0 -7.75 0.0'>
126                                <Inline USE='KelpExamplesNoBase'/>
127                           </Transform>
128                      </Transform>
129                      <Transform DEF='K10_LOCALEtranslation='7.0 0.0 2.0'>
130 
                         <!-- ROUTE information for K10_DEEP node:  [from LEFT_DEEP_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='K10_DEEPtranslation='0.0 -5.0 0.0'>
131                                <Inline   url=' "../KelpForestExhibit/StripedSurfPerch.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerch.x3d" "../KelpForestExhibit/StripedSurfPerch.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerch.wrl" '/>
132                           </Transform>
133                           <Transform DEF='K10_FLOORrotation='0.0 1.0 0.0 0.16scale='0.5 0.75 0.5translation='-1.0 -7.0 -1.0'>
134                                <Inline USE='KelpExamplesNoBase'/>
135                           </Transform>
136                      </Transform>
137                      <Transform DEF='K11_LOCALEtranslation='8.0 0.0 -2.0'>
138                           <Transform DEF='K11_MIDWATERrotation='0.0 1.0 0.0 0.3translation='2.19 -7.0 0.15'>
139                                <Inline   url=' "../KelpForestExhibit/SeaStarSimple.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarSimple.x3d" "../KelpForestExhibit/SeaStarSimple.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarSimple.wrl" '/>
140                           </Transform>
141 
                         <!-- ROUTE information for K11_DEEP node:  [from LEFT_DEEP_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='K11_DEEProtation='0.0 1.0 0.0 0.9translation='1.0 -5.0 0.0'>
142                                <Inline   url=' "../KelpForestExhibit/BlackSurfPerch.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlackSurfPerch.x3d" "../KelpForestExhibit/BlackSurfPerch.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlackSurfPerch.wrl" '/>
143                           </Transform>
144                           <Transform DEF='K11_FLOORrotation='0.0 1.0 0.0 0.3scale='0.5 0.75 0.5translation='-0.3 -7.0 0.0'>
145                                <Inline USE='KelpExamplesNoBase'/>
146                           </Transform>
147                           <Transform translation='1.3 -5.0 3.0'>
148                                <Inline   url=' "../KelpForestExhibit/SeaStarGroup.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarGroup.x3d" "../KelpForestExhibit/SeaStarGroup.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/SeaStarGroup.wrl" '/>
149                           </Transform>
150                      </Transform>
151                      <Transform DEF='R2_LOCALEtranslation='-1.0 0.0 -1.0'>
152 
                         <!-- ROUTE information for R2_MIDWATER node:  [from RIGHT_SHALLOW_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='R2_MIDWATERtranslation='-1.0 -6.0 -2.0'>
153                                <Inline   url=' "../KelpForestExhibit/BlueRockFish.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlueRockFish.x3d" "../KelpForestExhibit/BlueRockFish.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/BlueRockFish.wrl" '/>
154                           </Transform>
155 
                         <!-- ROUTE information for R2_DEEP node:  [from RIGHT_DEEP_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='R2_DEEPtranslation='1.0 -6.5 -1.0'>
156                                <Inline   url=' "../KelpForestExhibit/KelpSurfPerch.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpSurfPerch.x3d" "../KelpForestExhibit/KelpSurfPerch.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpSurfPerch.wrl" '/>
157                           </Transform>
158                      </Transform>
159                      <Transform DEF='R3_LOCALEtranslation='3.0 0.0 -4.0'>
160 
                         <!-- ROUTE information for R3_MIDWATER node:  [from CENTER_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='R3_MIDWATERtranslation='0.0 -6.0 0.0'>
161                                <Inline   url=' "../KelpForestExhibit/Garibaldi.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Garibaldi.x3d" "../KelpForestExhibit/Garibaldi.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Garibaldi.wrl" '/>
162                           </Transform>
163                      </Transform>
164                      <Transform DEF='R5_LOCALEtranslation='8.0 0.0 -2.0'>
165 
                         <!-- ROUTE information for R5_SHALLOW node:  [from RIGHT_SHALLOW_WAVE.value_changed to set_translation ] -->
                         <Transform DEF='R5_SHALLOWtranslation='-2.0 -2.0 0.0'>
166                                <Inline   url=' "../KelpForestExhibit/KelpBass.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpBass.x3d" "../KelpForestExhibit/KelpBass.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpBass.wrl" '/>
167                           </Transform>
168                      </Transform>
169 
                    <!-- ROUTE information for WAVE_CLOCK node:  [from fraction_changed to CENTER_WAVE.set_fraction ] -->
                    <TimeSensor DEF='WAVE_CLOCKcycleInterval='5.5enabled='falseloop='true'/>
170                      <PositionInterpolator DEF='LEFT_SHALLOW_WAVEkey='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0keyValue='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'/>
171 
                    <!-- 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_WAVEkey='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0keyValue='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'/>
172 
                    <!-- 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_WAVEkey='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0keyValue='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'/>
173 
                    <!-- 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_WAVEkey='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0keyValue='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'/>
174 
                    <!-- 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_WAVEkey='0.0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1.0keyValue='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'/>
175                 </Collision>
176            </Group>
177            < ROUTE  fromNode='WAVE_CLOCK' fromField='fraction_changed' toNode='CENTER_WAVE' toField='set_fraction'/>
178            < ROUTE  fromNode='CENTER_WAVE' fromField='value_changed' toNode='K7_MIDWATER' toField='set_translation'/>
179            < ROUTE  fromNode='RIGHT_DEEP_WAVE' fromField='value_changed' toNode='K2_MIDWATER' toField='set_translation'/>
180            < ROUTE  fromNode='CENTER_WAVE' fromField='value_changed' toNode='K4_MIDWATER' toField='set_translation'/>
181            < ROUTE  fromNode='LEFT_DEEP_WAVE' fromField='value_changed' toNode='K10_DEEP' toField='set_translation'/>
182            < ROUTE  fromNode='LEFT_DEEP_WAVE' fromField='value_changed' toNode='K11_DEEP' toField='set_translation'/>
183            < ROUTE  fromNode='RIGHT_SHALLOW_WAVE' fromField='value_changed' toNode='R2_MIDWATER' toField='set_translation'/>
184            < ROUTE  fromNode='RIGHT_DEEP_WAVE' fromField='value_changed' toNode='R2_DEEP' toField='set_translation'/>
185            < ROUTE  fromNode='CENTER_WAVE' fromField='value_changed' toNode='R3_MIDWATER' toField='set_translation'/>
186            < ROUTE  fromNode='RIGHT_SHALLOW_WAVE' fromField='value_changed' toNode='R5_SHALLOW' toField='set_translation'/>
187            <TimeSensor DEF='MasterClockloop='true'/>
188            <Group DEF='Nancy'>
189                 <!-- Scale used on Nancy underwater to approximate the defraction magnification of the plexiglass window. -->
190 
               <!-- ROUTE information for NancyTransform node:  [from NancyInterpolator.position_changed to set_translation ] [from NancyInterpolator.orientation_changed to set_rotation ] -->
               <Transform DEF='NancyTransformrotation='-0.45 0.77 -0.45 1.82scale='1.3 1.3 1.3translation='3 -6.5 -2'>
191                      <Inline   url=' "../../HumanoidAnimation/Legacy/NancyDiving.x3d" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Legacy/NancyDiving.x3d" "../../HumanoidAnimation/Legacy/NancyDiving.wrl" "https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Legacy/NancyDiving.wrl" '/>
192                 </Transform>
193 
               <!-- ROUTE information for JEFFSCLOCK node:  [from fraction_changed to NancyInterpolator.set_fraction ] -->
               <TimeSensor DEF='JEFFSCLOCKcycleInterval='100loop='true'/>
194 
               <!-- ROUTE information for NancyInterpolator node:  [from JEFFSCLOCK.fraction_changed to set_fraction ] [from position_changed to NancyTransform.set_translation ] [from orientation_changed to NancyTransform.set_rotation ] -->
               <ProtoInstance name='WaypointInterpolatorDEF='NancyInterpolator'>
195                      <fieldValue name='descriptionvalue='Nancy track'/>
196                      <fieldValue name='waypointsvalue='-5.5 -5.7 -.2 -7.7 -2.7 -1.7 6 -3 -3 2 -2 -2 1 -4 -1 -2 -2 -2 -5.5 -5.7 -.2'/>
197                      <fieldValue name='defaultSpeedvalue='0.5'/>
198                      <fieldValue name='pitchUpDownForVerticalWaypointsvalue='true'/>
199                      <fieldValue name='labelDisplayModevalue='none'/>
200                      <fieldValue name='lineColorvalue='0 0 0'/>
201                      <fieldValue name='labelColorvalue='0 0.8 0.8'/>
202                      <fieldValue name='labelOffsetvalue='0 -1.6 0'/>
203                      <fieldValue name='labelFontSizevalue='6'/>
204                      <fieldValue name='traceEnabledvalue='false'/>
205                      <fieldValue name='transparencyvalue='1'/>
206                      <fieldValue name='turningRatevalue='18'/>
207                      <!-- totalDuration is a computed output -->
208                 </ProtoInstance>
209            </Group>
210            < ROUTE  fromNode='JEFFSCLOCK' fromField='fraction_changed' toNode='NancyInterpolator' toField='set_fraction'/>
211            < ROUTE  fromNode='NancyInterpolator' fromField='position_changed' toNode='NancyTransform' toField='set_translation'/>
212            < ROUTE  fromNode='NancyInterpolator' fromField='orientation_changed' toNode='NancyTransform' toField='set_rotation'/>
213       </Scene>
214  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top Index for DEF nodes: CENTER_WAVE, ConsoleOutputViewPositionOrientation, JEFFSCLOCK, 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, Nancy, NancyInterpolator, NancyTransform, PrintInfo, R2_DEEP, R2_LOCALE, R2_MIDWATER, R3_LOCALE, R3_MIDWATER, R5_LOCALE, R5_SHALLOW, RIGHT_DEEP_WAVE, RIGHT_SHALLOW_WAVE, Root, SeeMe, Viewpoints, WAVE_CLOCK

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7

Index for ExternProtoDeclare definitions: ViewPositionOrientation, WaypointInterpolator
-->
X3D Tooltips element index: Appearance, Background, Box, Collision, ExternProtoDeclare, field, fieldValue, Fog, Group, head, Inline, Material, meta, NavigationInfo, PositionInterpolator, ProtoInstance, ROUTE, Scene, Script, Shape, TimeSensor, Transform, Viewpoint, VisibilitySensor, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

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

SeeMe
VisibilitySensor
isActive
SFBool

ROUTE
event to
(1)
PrintInfo
Script
isVisible
SFBool

JEFFSCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
NancyInterpolator
ProtoInstance
set_fraction
SFFloat
then
 
 
 
NancyInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(2)
NancyTransform
Transform
set_rotation
SFRotation
  then
 
 
 
NancyInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(2)
NancyTransform
Transform
set_translation
SFVec3f

MasterClock
TimeSensor
No ROUTE connection found for output events from this node. 

WAVE_CLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
CENTER_WAVE
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
CENTER_WAVE
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
K7_MIDWATER
Transform
set_translation
SFVec3f
  then
 
 
 
CENTER_WAVE
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
K4_MIDWATER
Transform
set_translation
SFVec3f
  then
 
 
 
CENTER_WAVE
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
R3_MIDWATER
Transform
set_translation
SFVec3f

ConsoleOutputViewPositionOrientation
ProtoInstance
ViewPositionOrientation
No ROUTE connection found for output events 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. 

      NancyInterpolator
ProtoInstance
position_changed
SFVec3f

ROUTE
event to
(1)
NancyTransform
Transform
set_translation
SFVec3f
NancyInterpolator
ProtoInstance
orientation_changed
SFRotation

ROUTE
event to
(1)
NancyTransform
Transform
set_rotation
SFRotation

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter12EnvironmentSensorSound/VisibilitySensorKelpForestMainIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter12EnvironmentSensorSound/VisibilitySensorKelpForestMain.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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