<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<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 ' >
<head>
<component level='1name='Geospatial'/>
<meta name='titlecontent=' CaliforniaCampuses.x3d '/>
<meta name='descriptioncontent='Viewpoints and tour of California campuses'/>
<meta name='creatorcontent='Don Brutzman, Dale Tourtelotte, Mike Bailey, Don McGregor'/>
<meta name='createdcontent='4 March 2010'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent='CaliforniaCampuses.kml'/>
<meta name='referencecontent=' https://www.web3d.org/x3d-earth '/>
<meta name='referencecontent=' http://x3d-earth.nps.edu '/>
<meta name='referencecontent=' http://hamming.uc.nps.edu '/>
<meta name='subjectcontent='X3D Earth'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/Geospatial/CaliforniaCampuses.x3d '/>
<meta name='referencecontent=' http://mmog.ern.nps.edu/California/California.x3d '/>
<meta name=' warning content=' under development '/>
<meta name=' warning content=' mmog.ern.nps.edu restricted to internal access within NPS firewall only '/>
<meta name='generatorcontent=' KmlToX3dViewpoints.xslt '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' https://savage.nps.edu/Savage/license.html '/>
</head>
<!-- -->
<Scene>
<WorldInfo title='CaliforniaCampuses.x3d'/>
<Switch DEF='SwitchGlobeswhichChoice='0'>
<!-- Select globe of interest. Warning: may need to keep alternate globes commented out to prevent browser caching. -->
<Inline
  url=' "http://x3d-earth.nps.edu/osmdemo.x3d" ' />

<!-- <Inline load='false' "url='http://mmog.ern.nps.edu/California/California.x3d'/>" -->
<!-- <Inline load='false' "url='http://x3d-earth.nps.edu/7_levels_plus/tiles/0/globe.x3d'/>" -->
<!-- <Inline load='false' "url='http://x3d-earth.nps.edu/globe/MBARI1MinuteBathy/world.x3d'/>" -->
<!-- <Inline load='false' "url='http://x3d-earth.nps.edu/globe/SRTM30Plus/world.x3d'/>" -->
</Switch>
<NavigationInfo transitionType='"ANIMATE"'/>
<Group DEF='PlacemarkGroup'>
<GeoViewpoint DEF='View01description='Naval Postgraduate Schoolorientation='1 0 0 -1.57position='36.595599 -121.877148 250000containerField='children'/>
<GeoViewpoint DEF='View02description='University of California Davisorientation='1 0 0 -1.57position='38.53650615157984 -121.7489628616831 250000containerField='children'/>
<GeoViewpoint DEF='View03description='University of California Berkeleyorientation='1 0 0 -1.57position='37.86963434512325 -122.2593873127355 250000containerField='children'/>
<GeoViewpoint DEF='View04description='University of California San Franciscoorientation='1 0 0 -1.57position='37.76340647188392 -122.4582475377715 250000containerField='children'/>
<GeoViewpoint DEF='View05description='University of California Santa Cruzorientation='1 0 0 -1.57position='36.99628443046043 -122.0534325473795 250000containerField='children'/>
<GeoViewpoint DEF='View06description='University of California Mercedorientation='1 0 0 -1.57position='37.365508575977 -120.4252597059142 250000containerField='children'/>
<GeoViewpoint DEF='View07description='University of California Santa Barbaraorientation='1 0 0 -1.57position='34.41124450961521 -119.8479940053906 250000containerField='children'/>
<GeoViewpoint DEF='View08description='University of California Los Angelesorientation='1 0 0 -1.57position='34.07224474392262 -118.4408472225642 250000containerField='children'/>
<GeoViewpoint DEF='View09description='University of California Irvineorientation='1 0 0 -1.57position='33.64623283675919 -117.8427064139082 250000containerField='children'/>
<GeoViewpoint DEF='View10description='University of California Riversideorientation='1 0 0 -1.57position='33.97350567066717 -117.3281649569839 250000containerField='children'/>
<GeoViewpoint DEF='View11description='University of California San Diegoorientation='1 0 0 -1.57position='32.87612136607509 -117.2367298240259 250000containerField='children'/>
<GeoViewpoint DEF='View12description='Humboldt State Universityorientation='1 0 0 -1.57position='40.87630235623448 -124.0785789217266 250000containerField='children'/>
<GeoViewpoint DEF='View13description='California State University, Chicoorientation='1 0 0 -1.57position='39.73031527724385 -121.8453722745223 250000containerField='children'/>
<GeoViewpoint DEF='View14description='California State University Sacramentoorientation='1 0 0 -1.57position='38.5626517618963 -121.4244636520556 250000containerField='children'/>
<GeoViewpoint DEF='View15description='Sonoma State Universityorientation='1 0 0 -1.57position='38.33922929793606 -122.6744333530031 250000containerField='children'/>
<GeoViewpoint DEF='View16description='California Maritime Academyorientation='1 0 0 -1.57position='38.06907065059484 -122.2309147135222 250000containerField='children'/>
<GeoViewpoint DEF='View17description='San Francisco State Universityorientation='1 0 0 -1.57position='37.722876 -122.4781512190666 250000containerField='children'/>
<GeoViewpoint DEF='View18description='California State University, East Bayorientation='1 0 0 -1.57position='37.65707914139907 -122.0569190659761 250000containerField='children'/>
<GeoViewpoint DEF='View19description='California State University Stanislausorientation='1 0 0 -1.57position='37.52552478005697 -120.8563508560606 250000containerField='children'/>
<GeoViewpoint DEF='View20description='San Jose State Universityorientation='1 0 0 -1.57position='37.33580940527095 -121.8815343755784 250000containerField='children'/>
<GeoViewpoint DEF='View21description='California State University, Monterey Bayorientation='1 0 0 -1.57position='36.6538071781493 -121.7984465276711 250000containerField='children'/>
<GeoViewpoint DEF='View22description='Fresno State Universityorientation='1 0 0 -1.57position='36.812166 -119.7451552005852 250000containerField='children'/>
<GeoViewpoint DEF='View23description='California State University, Bakersfieldorientation='1 0 0 -1.57position='35.350804 -119.1043226128032 250000containerField='children'/>
<GeoViewpoint DEF='View24description='California Polytechnic State Universityorientation='1 0 0 -1.57position='35.30115692599171 -120.6595761796351 250000containerField='children'/>
<GeoViewpoint DEF='View25description='California State University, Channel Islandsorientation='1 0 0 -1.57position='34.1624126428852 -119.0425264841287 250000containerField='children'/>
<GeoViewpoint DEF='View26description='California State University, Northridgeorientation='1 0 0 -1.57position='34.23959265263849 -118.5284272400904 250000containerField='children'/>
<GeoViewpoint DEF='View27description='California State University, Los Angelesorientation='1 0 0 -1.57position='34.06645996626264 -118.1682050902557 250000containerField='children'/>
<GeoViewpoint DEF='View28description='California State Polytechnic University, Pomonaorientation='1 0 0 -1.57position='34.05727150000314 -117.8215320234812 250000containerField='children'/>
<GeoViewpoint DEF='View29description='California State University, San Bernardinoorientation='1 0 0 -1.57position='34.18180116432101 -117.3243676664719 250000containerField='children'/>
<GeoViewpoint DEF='View30description='California State University, Fullertonorientation='1 0 0 -1.57position='33.882522 -117.8868367869023 250000containerField='children'/>
<GeoViewpoint DEF='View31description='California State University Dominguez Hillsorientation='1 0 0 -1.57position='33.86463396857103 -118.2553596272055 250000containerField='children'/>
<GeoViewpoint DEF='View32description='California State University, Long Beachorientation='1 0 0 -1.57position='33.78196696470824 -118.112678253688 250000containerField='children'/>
<GeoViewpoint DEF='View33description='California State University, San Marcosorientation='1 0 0 -1.57position='33.12837619265174 -117.1600194071002 250000containerField='children'/>
<GeoViewpoint DEF='View34description='San Diego State Universityorientation='1 0 0 -1.57position='32.77593126586385 -117.0722876242553 250000containerField='children'/>
<GeoViewpoint DEF='View35description='CENICorientation='1 0 0 -1.57position='33.879947 -118.027903 250000containerField='children'/>
</Group>
<!-- ==================== -->
<ExternProtoDeclare name='CrossHairappinfo='CrossHair prototype provides a heads-up display (HUD) crosshair at the view center, which is useful for assessing NavigationInfo lookAt point'
  url=' "../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" ' >
<field name='enabledtype='SFBoolaccessType='initializeOnly'
 appinfo='whether CrossHair prototype is enabled or not' />

<field name='set_enabledtype='SFBoolaccessType='inputOnly'
 appinfo='control whether enabled/disabled' />

<field name='markerColortype='SFColoraccessType='inputOutput'
 appinfo='color of CrossHair marker' />

<field name='scaletype='SFVec3faccessType='inputOutput'
 appinfo='size of CrossHair in meters' />

<field name='positionOffsetFromCameratype='SFVec3faccessType='inputOutput'
 appinfo='distance in front of HUD viewpoint' />
</ExternProtoDeclare>
<ProtoInstance name='CrossHairDEF='CrossHairInstance'>
<fieldValue name='enabledvalue='true'/>
<fieldValue name='markerColorvalue='0.1 0.8 0.1'/>
<fieldValue name='scalevalue='0.5 0.5 0.5'/>
<fieldValue name='positionOffsetFromCameravalue='0 0 -5'/>
</ProtoInstance>
<!-- ==================== -->
<ExternProtoDeclare name='HeadsUpDisplayappinfo='Heads-up display (HUD) keeps child geometry aligned on screen in a consistent location'
  url=' "../../../X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.x3d#HeadsUpDisplay" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.x3d#HeadsUpDisplay" "../../../X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.wrl#HeadsUpDisplay" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.wrl#HeadsUpDisplay" ' >
<field name='childrentype='MFNodeaccessType='inputOutput'
 appinfo='X3D content positioned at HUD offset' />

<field name='screenOffsettype='SFVec3faccessType='inputOutput'
 appinfo='offset position for HUD relative to current view location, default 0 0 -5' />

<field name='position_changedtype='SFVec3faccessType='outputOnly'
 appinfo='HUD position update (in world coordinates) relative to original location' />

<field name='orientation_changedtype='SFRotationaccessType='outputOnly'
 appinfo='HUD orientation update relative to original location' />
</ExternProtoDeclare>
<!-- ==================== -->
<ExternProtoDeclare name='ViewpointSequencerappinfo='Sequentially binds each Viewpoint in a set of Viewpoint USE nodes, creating an automatic tour for a scene'
  url=' "../../Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "https://savage.nps.edu/Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "../../Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer" "https://savage.nps.edu/Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer" ' >
<field name='viewpointstype='MFNodeaccessType='initializeOnly'
 appinfo='Viewpoint USE nodes that are sequentially bound' />

<field name='intervaltype='SFTimeaccessType='inputOutput'
 appinfo='number of seconds between viewpoint shifts' />

<field name='enabledtype='SFBoolaccessType='inputOutput'
 appinfo='whether ViewpointSequencer is enabled or not' />

<field name='set_enabledtype='SFBoolaccessType='inputOnly'
 appinfo='whether ViewpointSequencer is enabled or not' />

<field name='previoustype='SFBoolaccessType='inputOnly'
 appinfo='bind previous Viewpoint in list' />

<field name='nexttype='SFBoolaccessType='inputOnly'
 appinfo='bind next Viewpoint in list' />

<field name='toggleMessagetype='MFStringaccessType='inputOutput'
 appinfo='Select message to toggle ViewpointSequencer' />

<field name='toggleMessageFontSizetype='SFFloataccessType='initializeOnly'
 appinfo='Color for toggleMessage text' />

<field name='toggleMessageColortype='SFColoraccessType='inputOutput'
 appinfo='Color for toggleMessage text' />

<field name='traceEnabledtype='SFBoolaccessType='inputOutput'
 appinfo='enable console output' />
</ExternProtoDeclare>
<!-- ROUTE information for ViewpointTour node:  [from TourToggle.toggle to set_enabled ] -->
<ProtoInstance name='ViewpointSequencerDEF='ViewpointTour'>
<fieldValue name='intervalvalue='30'/>
<!-- initially enabled is off, scene provides selectable text to activate -->
<fieldValue name='enabledvalue='true'/>
<fieldValue name='toggleMessagevalue='"ViewpointSequencer tour"'/>
<fieldValue name='viewpoints'>
<GeoViewpoint USE=' View01containerField='children'/>
<GeoViewpoint USE=' View02containerField='children'/>
<GeoViewpoint USE=' View03containerField='children'/>
<GeoViewpoint USE=' View04containerField='children'/>
<GeoViewpoint USE=' View05containerField='children'/>
<GeoViewpoint USE=' View06containerField='children'/>
<GeoViewpoint USE=' View07containerField='children'/>
<GeoViewpoint USE=' View08containerField='children'/>
<GeoViewpoint USE=' View09containerField='children'/>
<GeoViewpoint USE=' View10containerField='children'/>
<GeoViewpoint USE=' View11containerField='children'/>
<GeoViewpoint USE=' View12containerField='children'/>
<GeoViewpoint USE=' View13containerField='children'/>
<GeoViewpoint USE=' View14containerField='children'/>
<GeoViewpoint USE=' View15containerField='children'/>
<GeoViewpoint USE=' View16containerField='children'/>
<GeoViewpoint USE=' View17containerField='children'/>
<GeoViewpoint USE=' View18containerField='children'/>
<GeoViewpoint USE=' View19containerField='children'/>
<GeoViewpoint USE=' View20containerField='children'/>
<GeoViewpoint USE=' View21containerField='children'/>
<GeoViewpoint USE=' View22containerField='children'/>
<GeoViewpoint USE=' View23containerField='children'/>
<GeoViewpoint USE=' View24containerField='children'/>
<GeoViewpoint USE=' View25containerField='children'/>
<GeoViewpoint USE=' View26containerField='children'/>
<GeoViewpoint USE=' View27containerField='children'/>
<GeoViewpoint USE=' View28containerField='children'/>
<GeoViewpoint USE=' View29containerField='children'/>
<GeoViewpoint USE=' View30containerField='children'/>
<GeoViewpoint USE=' View31containerField='children'/>
<GeoViewpoint USE=' View32containerField='children'/>
<GeoViewpoint USE=' View33containerField='children'/>
<GeoViewpoint USE=' View34containerField='children'/>
<GeoViewpoint USE=' View35containerField='children'/>
<Viewpoint DEF='View4description='View four (-X axis)orientation='0 1 0 -1.57position='-10 0 0'/>
</fieldValue>
</ProtoInstance>
<!-- ==================== -->
<GeoLocation geoCoords='36.595599 -121.877148 624990containerField='children'>
<Billboard axisOfRotation='0 0 0'>
<Shape>
<Text string='"ViewpointSequencer tour"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material ambientIntensity='0.25diffuseColor='0.795918 0.505869 0.093315shininess='0.39specularColor='0.923469 0.428866 0.006369'/>
</Appearance>
</Shape>
</Billboard>
<!-- ROUTE information for TourTouch node:  [from isActive to TourToggle.set_boolean ] -->
<TouchSensor DEF='TourTouchdescription='Touch text to turn tour on/off'/>

<!-- ROUTE information for TourToggle node:  [from TourTouch.isActive to set_boolean ] [from toggle to ViewpointTour.set_enabled ] -->
<BooleanToggle DEF='TourTogglecontainerField='children'/>

< ROUTE  fromNode=' TourTouch' fromField='isActive' toNode=' TourToggle' toField='set_boolean'/>
< ROUTE  fromNode=' TourToggle' fromField='toggle' toNode=' ViewpointTour' toField='set_enabled'/>
</GeoLocation>
<!-- ==================== -->
<ExternProtoDeclare name='ViewPositionOrientationappinfo='ViewPositionOrientation provides provides console output of local position and orientation as user navigates'
  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" ' >
<field name='enabledtype='SFBoolaccessType='inputOutput'
 appinfo='Whether or not ViewPositionOrientation sends output to console' />

<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
 appinfo='Output internal trace messages for debugging this node, intended for developer use only' />

<field name='set_traceEnabledtype='SFBoolaccessType='inputOnly'
 appinfo='Ability to turn output tracing on/off at runtime' />

<field name='position_changedtype='SFVec3faccessType='outputOnly'
 appinfo='Output local position' />

<field name='orientation_changedtype='SFRotationaccessType='outputOnly'
 appinfo='Output local orientation' />

<field name='outputViewpointStringtype='MFStringaccessType='outputOnly'
 appinfo='MFString value of new Viewpoint' />
</ExternProtoDeclare>
<ProtoInstance name='ViewPositionOrientationDEF='ExampleViewPositionOrientation'>
<fieldValue name='enabledvalue='false'/>
</ProtoInstance>
<!-- ==================== -->
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: CrossHairInstance, ExampleViewPositionOrientation, PlacemarkGroup, SwitchGlobes, TourToggle, TourTouch, View01, View02, View03, View04, View05, View06, View07, View08, View09, View10, View11, View12, View13, View14, View15, View16, View17, View18, View19, View20, View21, View22, View23, View24, View25, View26, View27, View28, View29, View30, View31, View32, View33, View34, View35, View4, ViewpointTour

Index for Viewpoint node: View4 Index for ExternProtoDeclare definitions: CrossHair, HeadsUpDisplay, ViewpointSequencer, ViewPositionOrientation
-->

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.

TourTouch
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
TourToggle
BooleanToggle
set_boolean
SFBool

 
 
then
TourToggle
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
ViewpointTour
ProtoInstance
set_enabled
SFBool


CrossHairInstance
ProtoInstance
CrossHair
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


ExampleViewPositionOrientation
ProtoInstance
ViewPositionOrientation
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


      ViewpointTour
ProtoInstance
ViewpointSequencer
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/Geospatial/CaliforniaCampusesIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/Geospatial/CaliforniaCampuses.x3d -->

<!-- Color 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> -->

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