X3D Model Documentation: SanCarlosCathedral.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='SanCarlosCathedral.x3d'/>
  6            <meta name='descriptioncontent='San Carlos Cathedral is the oldest continuously functioning church and the first stone building in the State of California.'/>
  7            <meta name='creatorcontent='Michele Foti, Don Brutzman'/>
  8            <meta name='createdcontent='15 December 2011'/>
  9            <meta name='modifiedcontent='18 December 2023'/>
 10            <meta name='referencecontent='documentation/'/>
 11            <meta name='referencecontent='tests/'/>
 12            <meta name='referencecontent='TODO.html'/>
 13            <meta name='referencecontent='http://www.sancarloscathedral.net'/>
 14            <meta name='referencecontent='RoyalPresidioChapelHistoricalReferences.pdf'/>
 15            <meta name='referencecontent='originals/'/>
 16            <meta name='Imagecontent='SanCarlosCathedralFrontAbove.2012February.png'/>
 17            <meta name='referencecontent='originals/ModelSanCarlosChurchFeb-3-2012.x3d'/>
 18            <meta name=' warning content=' under development '/>
 19            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/SanCarlosCathedral.x3d'/>
 20            <meta name='generatorcontent='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
 21            <meta name='licensecontent='../license.html'/>
 22       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top Index for DEF nodes: AlternativeLight1, AlternativeLight10, AlternativeLight2, AlternativeLight3, AlternativeLight4, AlternativeLight5, AlternativeLight6, AlternativeLight7, AlternativeLight8, AlternativeLight9, BackButton1, BackButton10, BackButton11, BackButton12, BackButton13, BackButton14, BackButton15, BackButton2, BackButton3, BackButton4, BackButton5, BackButton6, BackButton7, BackButton8, BackButton9, BackButtonText1, BackButtonText10, BackButtonText11, BackButtonText12, BackButtonText13, BackButtonText14, BackButtonText15, BackButtonText2, BackButtonText3, BackButtonText4, BackButtonText5, BackButtonText6, BackButtonText7, BackButtonText8, BackButtonText9, BalconyPastDocumentationButton, BalconyPastDocumentationText, BalconyPicturesButton, BalconyPicturesText, BalconySourcesButton, BalconySourcesText, BaptisteryPastDocumentationButton, BaptisteryPastDocumentationText, BellsSoundButton, BellsSoundPanel, BellsSoundText, BlueBigPyramidButton, BlueBigPyramidTransform, BlueSmallPyramidButton, BlueSmallPyramidTransform, BlueSphere1, BlueSphere10, BlueSphere11, BlueSphere12, BlueSphere13, BlueSphere14, BlueSphere15, BlueSphere2, BlueSphere3, BlueSphere4, BlueSphere5, BlueSphere6, BlueSphere7, BlueSphere8, BlueSphere9, BooleanFilterIsActive, BooleanFilterIsActive2, Century19thModel, Century19thModel2, Century19thModelToCentury19thModel2, Church, ChurchHistoryButton, ChurchHistoryText, ChurchModel, ChurchModelTransform, ChurchModelTransformPast, ChurchRoof, ChurcRoofToChurcModel, ColorInterpolator, ColorInterpolator2, CoordinateSystemPanel, CoordinateSystemSphere, CoordinateSystemText, DecorationsPicturesButton, DecorationsPicturesText, DecorationsSourcesButton, DecorationsSourcesText, EmptyButton1, EmptyButton10, EmptyButton11, EmptyButton12, EmptyButton13, EmptyButton14, EmptyButton15, EmptyButton16, EmptyButton17, EmptyButton18, EmptyButton19, EmptyButton2, EmptyButton20, EmptyButton21, EmptyButton22, EmptyButton23, EmptyButton24, EmptyButton25, EmptyButton26, EmptyButton27, EmptyButton3, EmptyButton4, Emptybutton5, EmptyButton6, EmptyButton8, EmptyButton9, EmptyText1, EmptyText10, EmptyText11, EmptyText12, EmptyText13, EmptyText14, EmptyText15, EmptyText16, EmptyText17, EmptyText18, EmptyText19, EmptyText2, EmptyText20, EmptyText21, EmptyText22, EmptyText23, EmptyText24, EmptyText25, EmptyText26, EmptyText27, EmptyText3, EmptyText4, EmptyText5, EmptyText6, EmptyText7, EmptyText8, EmptyText9, Emptyutton7, EntrancePicturesButton, EntrancePicturesText, EntranceSourcesButton, EntranceSourcesText, ExamineModeButton, ExamineModeButtonPast, ExamineModeColor, ExamineModeColorPast, ExamineModeText, ExamineModeTextPast, ExampleViewpointSequencer, ExteriorBackPicturesButton, ExteriorBackPicturesText, ExteriorBackSourcesButton, ExteriorBackSourcesText, ExteriorFrontPastDocumentationButton, ExteriorFrontPastDocumentationText, ExteriorLeftPicturesButton, ExteriorLeftPicturesText, ExteriorLeftSourcesButton, ExteriorLeftSourcesText, ExteriorNavigationButton, ExteriorNavigationColor, ExteriorNavigationDescription, ExteriorNavigationText, ExteriorPastDocumentationButton, ExteriorPastDocumentationText, ExteriorRightPicturesButton, ExteriorRightPicturesText, ExteriorRightSourcesButton, ExteriorRightSourcesText, FacadePicturesButton, FacadePicturesText, FacadeSourcesButton, FacadeSourcesText, FirstPanel, FirstPanelBis, FirstPanelPast, FloorPlanPastDocumentationButton, FloorPlanPastDocumentationText, FlyModeButton, FlyModeButtonPast, FlyModeColor, FlyModeColorPast, FlyModeText, FlyModeTextPast, FullGuidedTourButton, FullGuidedTourButtonPast, FullGuidedTourText, FullGuidedTourText2, FullGuidedTourTextPast, FurnishingPastDocumentationButton, FurnishingPastDocumentationText, FurnishingPicturesButton, FurnishingPicturesText, FurnishingSourcesButton, FurnishingSourcesText, GreenPyramidButton, GreenPyramidTransform, GreenPyramidTransform2, HereIAm1, HereIAm2, HereIAm3, HereIAm4, HereIAm5, HidePanelButton1, HidePanelButton10, HidePanelButton11, HidePanelButton12, HidePanelButton13, HidePanelButton14, HidePanelButton15, HidePanelButton16, HidePanelButton17, HidePanelbutton18, Hidepanelbutton19, HidePanelButton2, HidePanelButton3, HidePanelButton4, HidePanelButton5, HidePanelButton6, HidePanelButton7, HidePanelButton8, HidePanelButton9, HidePanelLinksButton, HidePanelLinksText, HidePanelText1, HidePanelText10, HidePanelText11, HidePanelText12, HidePanelText13, HidePanelText14, HidePanelText15, HidePanelText16, HidePanelText17, HidePanelText18, HidePanelText19, HidePanelText2, HidePanelText3, HidePanelText4, HidePanelText5, HidePanelText6, HidePanelText7, HidePanelText8, HidePanelText9, HistoricChurchPanel, HistoricCurchButton, HistoricCurchText, history, HudContainer1, HudContainer2, HudContainer3, HudContainer4, HudContainer5, IntegerIsActive, IntegerIsActive10, IntegerIsActive11, IntegerIsActive2, IntegerIsActive3, IntegerIsActive4, IntegerIsActive5, IntegerIsActive6, IntegerIsActive7, IntegerIsActive8, IntegerIsActive9, InteriorPastDocumentationButton, InteriorPastDocumentationText, Interpolator, Interpolator10, Interpolator11, Interpolator12, Interpolator13, Interpolator14, Interpolator2, Interpolator3, Interpolator4, Interpolator5, Interpolator6, Interpolator7, Interpolator8, Interpolator9, IntStop, IntStop2, IntStop3, Light10Button, Light10Color, Light10Text, Light1Button, Light1Color, Light1Description, Light1Text, Light2button, Light2Color, Light2Description, Light2Text, Light3Button, Light3Color, Light3Description, Light3Text, Light4Button, Light4Color, Light4Description, Light4Text, Light5Button, Light5Color, Light5Description, Light5Text, Light6Button, Light6Color, Light6Description, Light6Text, Light78910Description, Light7Button, Light7Color, Light7Text, Light8Button, Light8Color, Light8Text, Light9Button, Light9Color, Light9Text, LightDescriptions, LightingButton, LightingPanel, LightingPanelBis, LightingText, LightSwitch, MainMenuSphereLeft, MainMenuSphereLeftPast, MainMenuSphereRight, MainMenuSphereRightPast, MainmenuToMainpanel, MainmenuToMainPanelPast, MainPanel, MainPanelPast, Mid19thCenturyButton, Mid19thCenturyButtonPast, Mid19thCenturyText, Mid19thCenturyTextPast, ModelingButton, ModelingText, NavePicturesButton, NavePicturesText, NaveSourcesButton, NaveSourcesText, NavigatingButton, NavigatingButtonPast, NavigatingPanel, NavigatingPanelBis, NavigatingPanelPast, NavigatingPanelPastBis, NavigatingText, NavigatingTextPast, NavigationAndSourcesButton, NavigationAndSourcesText, NavigationExamine, NavigationFly, NavigationNodes, NavigationWalk, NextPanelButton1, NextPanelButton2, NextPanelButton4, NextPanelButton5, NextPanelButton6, NextPanelButton7, NextPaneleButton3, NextPanelText1, NextPanelText2, NextPanelText3, NextPanelText4, NextPanelText5, NextPanelText6, NextPanelText7, Note1, Note10, Note11, Note12, Note13, Note14, Note15, Note16, Note17, Note2, Note3, Note4, Note5, Note6, Note7, Note8, Note9, NoteB, PanelPointLight, PastDocumentationButton, PastDocumentationPanel, PastDocumentationPanelBis, PastdocumentationText, PicturesButton, PicturesPanel, PicturesPanelBis, PicturesText, Point1, Point1a, Point2, Point2a, Point3, Point3a, Point4, Point4a, Point5, Point5a, Point6, Point6a, Point7, Point7a, PresentAndHistoricChurchButton, PresentAndHistoricChurchPanel, PresentAndHistoricChurchText, PresentToHistorichChurch, PreviousPanelButton1, PreviousPanelButton2, PreviousPanelButton3, PreviousPanelButton4, PreviousPanelButton5, PreviousPanelButton6, PreviousPanelButton7, PreviousPanelText, PreviousPanelText2, PreviousPanelText3, PreviousPanelText4, PreviousPanelText5, PreviousPanelText6, PreviousPanelText7, PrototypeDeclarations, RedPyramidButton, RedPyramidTransform, RedPyramidTransformPast, SacredFurnishingTourButton, SacredFurnishingTourButtonPast, SacredFurnishingTourText, SacredFurnishingTourTextPast, SacristyPastDocumentationButton, SacristyPastDocumentationText, SacristyPicturesButton, SacristyPicturesText, SacristySourcesButton, SacristySourcesText, SelectBalcony, SelectBalconyPast, SelectBellsFromGround, SelectBellsFromTower, SelectCoordinateSystemFromGround, SelectEntrance, SelectEntrancePast, SelectNave, SelectNavePast, SelectOutsideEast, SelectOutsideEastPast, SelectOutsideNorth, SelectOutsideNorthPast, SelectOutsideSouth, SelectOutsideSouthPast, SelectOutsideWest, SelectOutsideWestPast, SelectSacristy, SelectSacristyPast, SelectTower, SelectTowerPast, SelectTranseptAxes, SelectTranseptAxesPast, SequencUP, SequencUpHistory, ShortGuidedTourButton, ShortGuidedTourButtonPast, ShortGuidedTourText, ShortGuidedTourTextPast, ShowPastDocumentation, ShowPastDocumentationButton, ShowPastDocumentationButtonBis, ShowPastDocumentationTextBis, SourcesButton, SourcesOfLightFifthCombination, SourcesOfLightFirstCombination, SourcesOfLightFourthCombination, SourcesOfLightSecondCombination, SourcesOfLightSixthCombination, SourcesOfLightSpheres, SourcesOfLightThirdCombination, SourcesPanel, SourcesPanelBis, SourcesText, StopTourSphereLeft, StopTourSphereRight, switchTour, TextBellsSound, TextCoordinateSystem, ThreeWindowsn, Time, timeUP, timeUpHistory, TodayButton, TodayButtonPast, TodayText, TodayTextPast, ToggleSequencer, touchBackButton1, touchBackButton10, touchBackButton11, touchBackButton12, touchBackButton13, touchBackButton14, touchBackButton15, touchBackButton2, touchBackButton3, touchBackButton4, touchBackButton5, touchBackButton6, touchBackButton7, touchBackButton8, touchBackButton9, touchBellsSound, touchCoordinateSystem, touchExamineMode, touchExamineModePast, touchExteriorNavigation, touchFlyMode, touchFlyModePast, touchFullGuidedTour, touchFullGuidedTourPast, touchHidePanel1, touchHidePanel10, touchHidePanel11, touchHidePanel12, touchHidePanel13, touchHidePanel14, touchHidePanel15, touchHidePanel16, touchHidePanel17, touchHidePanel18, touchHidePanel19, touchHidePanel2, touchHidePanel3, touchHidePanel4, touchHidePanel5, touchHidePanel6, touchHidePanel7, touchHidePanel8, touchHidePanel9, touchHidePanelLinks, touchHistoricCurch, touchLight1, touchLight10, touchLight2, touchLight3, touchLight4, touchLight5, touchLight6, touchLight7, touchLight8, touchLight9, touchLighting, touchMid19thCentury, touchNavigating, touchNavigatingPast, touchNavigationAndSources, touchNextPanel1, touchNextPanel2, touchNextPanel3, touchNextPanel4, touchNextPanel5, touchNextPanel6, touchNextPanel7, touchPastDocumentation, touchPictures, touchPresentAndHistoricChurch, touchPreviousPanel1, touchPreviousPanel2, touchPreviousPanel3, touchPreviousPanel4, touchPreviousPanel5, touchPreviousPanel6, touchPreviousPanel7, touchSacredFurnishingTour, touchSacredFurnishingTourPast, TouchSensorRootNode, touchShortGuidedTour, touchShortGuidedTourPast, touchShowPastDocumentation, touchShowPastDocumentationBis, touchSources, touchStopTour, touchToday, touchUP, touchUpHistory, touchWalkMode, touchWalkModePast, touchWeyPointInterpolatorTour, touchWeyPointInterpolatorTourPast, TowerPastDocumentationButton, TowerPastDocumentationText, TowerPicturesButton, TowerPicturesText, TowerSourcesButton, TowerSourcesText, TranseptAndAxesPicturesButton, TranseptAndAxesPicturesText, TranseptAndAxesSourcesButton, TranseptAndAxesSourcesText, ViewpointAltarCrucifix, ViewpointBackOutside, ViewpointBalcony, ViewpointBalconyDoors, ViewpointBalconyWindow, ViewpointBehindTheAltar, ViewpointBells, ViewpointEntranceAndStair, ViewpointEntranceConfessional, ViewpointFacadeDetails, ViewpointFront, ViewpointFrontAbove, ViewpointFrontDoors, ViewpointFrontFromGround, ViewpointFrontView, ViewpointInteriorLeftRearBalcony, ViewpointLanding, ViewpointLateralEntrance, ViewpointLeftRearBalcony, ViewpointLeftSideWall, ViewpointLeftTransept, ViewpointNaveAndBalcony, ViewpointNaveView, ViewpointNodes, ViewpointObliqueOutside1, ViewpointObliqueOutside2, ViewpointOrgan, ViewpointOverheadView, ViewpointPicture, ViewpointPortrait, ViewpointRightOutside, ViewpointRightSideWall1, ViewpointRightSideWall2, ViewpointRightSideWall3, ViewpointRightSideWall4, ViewpointRightTransept, ViewpointSacristy, ViewpointSacristyAndBackRoom, ViewpointSacristyOutside, ViewpointStairStairs, ViewpointStairsToBalcony, ViewpointTopStairs, ViewpointTopStairsAndBells, ViewpointTopStairsCloser, ViewpointTowerArcs, ViewpointTowerBack, ViewpointTowerBells, ViewpointTowerEntrance, ViewpointViewFromTheTower, WalkModeButton, WalkModeButtonPast, WalkModeColor, WalkModeColorPast, WalkModeText, WalkModeTextPast, WallDecorationsPastDocumentationButton, WallDecorationsPastDocumentationText, WeyPointInterpolatorTourButton, WeyPointInterpolatorTourButtonPast, WeyPointInterpolatorTourText, WeyPointInterpolatorTourTextPast

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, Viewpoint_3, Viewpoint_4, Viewpoint_5, Viewpoint_6, Viewpoint_7, Viewpoint_8, Viewpoint_9, Viewpoint_10, Viewpoint_11, Viewpoint_12, Viewpoint_13, Viewpoint_14, Viewpoint_15, Viewpoint_16, Viewpoint_17, Viewpoint_18, Viewpoint_19, Viewpoint_20, Viewpoint_21, Viewpoint_22, Viewpoint_23, Viewpoint_24, Viewpoint_25, Viewpoint_26, Viewpoint_27, Viewpoint_28, Viewpoint_29, Viewpoint_30, Viewpoint_31, Viewpoint_32, Viewpoint_33, Viewpoint_34, Viewpoint_35, Viewpoint_36, Viewpoint_37, Viewpoint_38, Viewpoint_39, Viewpoint_40, Viewpoint_41, Viewpoint_42, Viewpoint_43, Viewpoint_44, Viewpoint_45, Viewpoint_46, Viewpoint_47, Viewpoint_48, ViewpointAltarCrucifix, ViewpointBackOutside, ViewpointBalcony, ViewpointBalconyDoors, ViewpointBalconyWindow, ViewpointBehindTheAltar, ViewpointBells, ViewpointEntranceAndStair, ViewpointEntranceConfessional, ViewpointFacadeDetails, ViewpointFront, ViewpointFrontAbove, ViewpointFrontDoors, ViewpointFrontFromGround, ViewpointFrontView, ViewpointInteriorLeftRearBalcony, ViewpointLanding, ViewpointLateralEntrance, ViewpointLeftRearBalcony, ViewpointLeftSideWall, ViewpointLeftTransept, ViewpointNaveAndBalcony, ViewpointNaveView, ViewpointObliqueOutside1, ViewpointObliqueOutside2, ViewpointOrgan, ViewpointOverheadView, ViewpointPicture, ViewpointPortrait, ViewpointRightOutside, ViewpointRightSideWall1, ViewpointRightSideWall2, ViewpointRightSideWall3, ViewpointRightSideWall4, ViewpointRightTransept, ViewpointSacristy, ViewpointSacristyAndBackRoom, ViewpointSacristyOutside, ViewpointStairStairs, ViewpointStairsToBalcony, ViewpointTopStairs, ViewpointTopStairsAndBells, ViewpointTopStairsCloser, ViewpointTowerArcs, ViewpointTowerBack, ViewpointTowerBells, ViewpointTowerEntrance, ViewpointViewFromTheTower

Index for ExternProtoDeclare definition: ViewpointSequencer

Index for ProtoDeclare definition: TouchSensorSelected
-->
 23       <Scene>
 24            <WorldInfo title='SanCarlosCathedral.x3d'/>
 25            <Background groundAngle='1.57groundColor='0.9804 0.8235 0 0.6 0.3254902 0skyColor='0.7216 0.8 0.9922'/>
 26            <Group DEF='NavigationNodes'>
 27                 <!-- Note that headlight='false' while inside cathedral in order to allow LightingAlternatives.x3d lights to work properly -->
 28 
 29 
               <!-- ROUTE information for NavigationWalk node:  [from touchWalkMode.isSelected to set_bind ] [from touchWalkModePast.isSelected to set_bind ] -->
               <NavigationInfo DEF='NavigationWalkavatarSize='0.01 1.6 0.75speed='4type='"WALK" "ANY"'/>
 30 
               <!-- ROUTE information for NavigationExamine node:  [from touchExamineMode.isSelected to set_bind ] [from touchExamineModePast.isSelected to set_bind ] -->
               <NavigationInfo DEF='NavigationExamineavatarSize='0.01 1.6 0.75speed='4'/>
 31            </Group>
 32            <Group DEF='ViewpointNodes'>
 33 
               <!-- ROUTE information for ViewpointFrontFromGround node:  [from touchBellsSound.isSelected to set_bind ] [from touchCoordinateSystem.isSelected to set_bind ] [from SelectBellsFromGround.isSelected to set_bind ] [from SelectCoordinateSystemFromGround.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointFrontFromGroundcenterOfRotation='5.8 0 -24.4description='San Carlos Cathedral, front from groundorientation='1 0 0 0.3position='5.8 -0.5 15'/>
 34 
               <!-- ROUTE information for ViewpointFront node:  [from SelectOutsideNorth.isSelected to set_bind ] [from SelectOutsideNorthPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointFrontcenterOfRotation='5.8 0 -24.4description='San Carlos Cathedral, frontposition='4.3 5 25'/>
 35                 <!-- <ROUTE fromField='isBound' fromNode='ViewpointFrontAbove' toField='set_bind' toNode='NavigationExamine'/> <ROUTE fromField='isBound' fromNode='ViewpointFront' toField='set_bind' toNode='NavigationExamine'/> -->
 36                 <Viewpoint DEF='ViewpointFrontAbovecenterOfRotation='5.8 0 -24.4description='San Carlos Cathedral, front aboveorientation='1 0 0 -0.349position='5.3 16 30'/>
 37                 <Viewpoint DEF='ViewpointObliqueOutside1centerOfRotation='5.8 0 -24.4description='Oblique outside view, leftorientation='1 1 0 -0.5position='-12.8 15 20'/>
 38                 <Viewpoint DEF='ViewpointOverheadViewcenterOfRotation='5.8 0 -24.4description='Overhead vieworientation='1 0 0 -1.57position='5.8 70 -23'/>
 39                 <Viewpoint DEF='ViewpointObliqueOutside2centerOfRotation='5.8 0 -24.4description='Oblique outside view rightorientation='0 1 0 0.5position='20 4 20'/>
 40                 <Viewpoint DEF='ViewpointFacadeDetailscenterOfRotation='5.8 0 -24.4description='Facade detailsorientation='1 1 0 0.6position='9.2 4 7'/>
 41 
               <!-- ROUTE information for ViewpointRightOutside node:  [from SelectOutsideWest.isSelected to set_bind ] [from SelectOutsideWestPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointRightOutsidecenterOfRotation='5.8 0 -24.4description='Right outsideorientation='0 1 0 1.57position='50 -2 -26.5'/>
 42                 <Viewpoint DEF='ViewpointSacristyOutsidecenterOfRotation='5.8 0 -24.4description='Sacristy outsideorientation='0 1 0 2.37position='30 0 -55.5'/>
 43 
               <!-- ROUTE information for ViewpointBackOutside node:  [from SelectOutsideSouth.isSelected to set_bind ] [from SelectOutsideSouthPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointBackOutsidecenterOfRotation='5.8 0 -24.4description='Back outsideorientation='0 1 0 3.4position='-8 7 -75'/>
 44 
               <!-- ROUTE information for ViewpointTowerBack node:  [from SelectOutsideEast.isSelected to set_bind ] [from SelectOutsideEastPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointTowerBackcenterOfRotation='5.8 0 -24.4description='Tower, backorientation='0 1 0 -2.5position='-8 5 -25'/>
 45                 <Viewpoint DEF='ViewpointInteriorLeftRearBalconycenterOfRotation='5.8 0 -24.4description='Interior Left rear balconyorientation='1 1 0 -0.3position='3 4 -5'/>
 46 
               <!-- ROUTE information for ViewpointFrontDoors node:  [from SelectEntrance.isSelected to set_bind ] [from SelectEntrancePast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointFrontDoorscenterOfRotation='5.8 0 -24.4description='Front doors, looking inposition='5.8 -0.3 2'/>
 47                 <Viewpoint DEF='ViewpointEntranceConfessionalcenterOfRotation='5.8 0 -24.4description='Entrance, confessionalorientation='0 1 0 -1.3position='4.3 -0.9 -0.8'/>
 48                 <Viewpoint DEF='ViewpointRightSideWall1centerOfRotation='5.8 0 -24.4description='Right side wall, looking north westorientation='0 1 0 -2.4position='5.1 -0.8 -8.2'/>
 49                 <Viewpoint DEF='ViewpointRightSideWall2centerOfRotation='5.8 0 -24.4description='Right side wall, windoworientation='0 1 0 -1.87position='5.1 1.5 -9.5'/>
 50                 <Viewpoint DEF='ViewpointRightSideWall3centerOfRotation='5.8 0 -24.4description='Right side wall, pictureorientation='0 1 0 -1.57position='7.7 1 -10.5'/>
 51                 <Viewpoint DEF='ViewpointRightSideWall4centerOfRotation='5.8 0 -24.4description='Right side wall, looking south westorientation='0 1 0 -0.6position='5.1 1.5 -10.5'/>
 52 
               <!-- ROUTE information for ViewpointFrontView node:  [from SelectNave.isSelected to set_bind ] [from SelectNavePast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointFrontViewcenterOfRotation='5.8 0 -24.4description='Front viewposition='5.8 0 -23'/>
 53                 <Viewpoint DEF='ViewpointBehindTheAltarcenterOfRotation='5.8 0 -24.4description='Behind the altarorientation='0 1 0 -0.3position='4.8 0 -33'/>
 54                 <Viewpoint DEF='ViewpointRightTranseptcenterOfRotation='5.8 0 -24.4description='Right transeptorientation='0 1 0 -1.3position='4.8 0 -33'/>
 55                 <Viewpoint DEF='ViewpointLateralEntrancecenterOfRotation='5.8 0 -24.4description='Right transept, lateral entranceorientation='0 1 0 2.8position='13.8 -0.5 -36'/>
 56                 <Viewpoint DEF='ViewpointLeftTranseptcenterOfRotation='5.8 0 -24.4description='Left transeptorientation='0 1 0 1.3position='9.8 0 -33'/>
 57                 <Viewpoint DEF='ViewpointAltarCrucifixcenterOfRotation='5.8 0 -24.4description='Altar, crucifixorientation='0 1 0 -0.1position='4.8 0 -33'/>
 58                 <Viewpoint DEF='ViewpointSacristycenterOfRotation='5.8 0 -24.4description='Sacristyorientation='0 1 0 -0.8position='9.8 0 -40.5'/>
 59 
               <!-- ROUTE information for ViewpointSacristyAndBackRoom node:  [from SelectSacristy.isSelected to set_bind ] [from SelectSacristyPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointSacristyAndBackRoomcenterOfRotation='5.8 0 -24.4description='Sacristy interior and back roomorientation='0 1 0 1.5position='17.8 0 -45.5'/>
 60 
               <!-- ROUTE information for ViewpointNaveView node:  [from SelectTranseptAxes.isSelected to set_bind ] [from SelectTranseptAxesPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointNaveViewcenterOfRotation='5.8 0 -24.4description='Nave, vieworientation='0 1 0 3.14position='5.8 0 -42.5'/>
 61                 <Viewpoint DEF='ViewpointNaveAndBalconycenterOfRotation='5.8 0 -24.4description='Nave and Balconyorientation='0 1 0 3.14position='5.8 0 -21'/>
 62                 <Viewpoint DEF='ViewpointPicturecenterOfRotation='5.8 0 -24.4description='Left side wall, pictureorientation='0 1 0 1.57position='3.8 1 -21.4'/>
 63                 <Viewpoint DEF='ViewpointPortraitcenterOfRotation='5.8 0 -24.4description='Left side wall, picture, portrait of the man who commissioned the stations of the crossorientation='0 1 0 1.57position='3.2 0.85 -20.1'/>
 64                 <Viewpoint DEF='ViewpointLeftSideWallcenterOfRotation='5.8 0 -24.4description='Left side wall, looking north estorientation='0 1 0 2.6position='5.8 1 -18'/>
 65                 <Viewpoint DEF='ViewpointEntranceAndStaircenterOfRotation='5.8 0 -24.4description='Entrance, stairs to tower and balconyorientation='0 1 0 1.9position='6.8 -0.8 -2.5'/>
 66                 <Viewpoint DEF='ViewpointStairStairscenterOfRotation='5.8 0 -24.4description='Stairs to tower and balconyorientation='0 1 0 1.57position='6.4 0 -1.5'/>
 67                 <Viewpoint DEF='ViewpointLandingcenterOfRotation='5.8 0 -24.4description='Landingorientation='1 1 0 -1.1position='-3.09 4.2 -0.7'/>
 68                 <Viewpoint DEF='ViewpointStairsToBalconycenterOfRotation='5.8 0 -24.4description='Stairs to balconyorientation='0 1 0 -1.57position='-3.09 3 -1.5'/>
 69                 <Viewpoint DEF='ViewpointBalconycenterOfRotation='5.8 0 -24.4description='Balconyorientation='0 1 0 -0.7position='2.1 4 -2.7'/>
 70                 <Viewpoint DEF='ViewpointBalconyWindowcenterOfRotation='5.8 0 -24.4description='Balcony, windoworientation='0 1 0 -1.8position='2.1 4 -2.7'/>
 71 
               <!-- ROUTE information for ViewpointLeftRearBalcony node:  [from SelectBalcony.isSelected to set_bind ] [from SelectBalconyPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointLeftRearBalconycenterOfRotation='5.8 0 -24.4description='Left rear balconyorientation='1 1 0 -0.3position='3 4 -5'/>
 72                 <Viewpoint DEF='ViewpointOrgancenterOfRotation='5.8 0 -24.4description='Organorientation='0 1 0 -2.3position='2.5 4 -7'/>
 73                 <Viewpoint DEF='ViewpointBalconyDoorscenterOfRotation='5.8 0 -24.4description='Balcony, doorsorientation='0 1 0 2.2position='5 4 -5'/>
 74                 <Viewpoint DEF='ViewpointTopStairscenterOfRotation='5.8 0 -24.4description='Top stairs to towerorientation='0 1 0 1.57position='4.3 4 -1.2'/>
 75                 <Viewpoint DEF='ViewpointTopStairsClosercenterOfRotation='5.8 0 -24.4description='Top stairs to tower, closerorientation='0 1 0 1.8position='2.7 4 -0.9'/>
 76                 <Viewpoint DEF='ViewpointTopStairsAndBellscenterOfRotation='5.8 0 -24.4description='Top stairs to tower and bellsorientation='0 1 0 2.1position='1.4 4.9 -1'/>
 77                 <Viewpoint DEF='ViewpointBellscenterOfRotation='5.8 0 -24.4description='Bellsorientation='0 1 0 2.9position='-0.2 5 -2'/>
 78 
               <!-- ROUTE information for ViewpointTowerBells node:  [from SelectTower.isSelected to set_bind ] [from SelectBellsFromTower.isSelected to set_bind ] [from SelectTowerPast.isSelected to set_bind ] -->
               <Viewpoint DEF='ViewpointTowerBellscenterOfRotation='5.8 0 -24.4description='Tower, Bellsorientation='0 1 0 3.34position='-1.4 6 -3'/>
 79                 <Viewpoint DEF='ViewpointTowerArcscenterOfRotation='5.8 0 -24.4description='Tower, arcsorientation='0 1 0 1.57position='-0.3 6.5 -2'/>
 80                 <Viewpoint DEF='ViewpointTowerEntrancecenterOfRotation='5.8 0 -24.4description='Tower, entranceorientation='0 1 0 -1.77position='-2.2 5.2 -1.8'/>
 81                 <Viewpoint DEF='ViewpointViewFromTheTowercenterOfRotation='5.8 0 -24.4description='View from the towerorientation='0 1 0 0.1position='-2 6 -0.3'/>
 82            </Group>
 83            <Group DEF='PrototypeDeclarations'>
 84                 <!-- ==================== <ExternProtoDeclare appinfo='Heads-up display (HUD) keeps child geometry aligned on screen in a consistent location' name='HeadsUpDisplay' 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 accessType='inputOutput' appinfo='X3D content positioned at HUD offset' name='children' type='MFNode'/> <field accessType='inputOutput' appinfo='offset position for HUD relative to current view location, default 0 0 -5' name='screenOffset' type='SFVec3f'/> <field accessType='outputOnly' appinfo='HUD position update (in world coordinates) relative to original location' name='position_changed' type='SFVec3f'/> <field accessType='outputOnly' appinfo='HUD orientation update relative to original location' name='orientation_changed' type='SFRotation'/> </ExternProtoDeclare> -->
 85                 <!-- ==================== -->
 86                 <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" '>
 87                      <field name='viewpointstype='MFNodeaccessType='initializeOnly'
                     appinfo='Viewpoint USE nodes that are sequentially bound'>
 88                           <!-- default value NULL node, overridden by ProtoInstance -->
 89                      </field>
 90                      <field name='intervaltype='SFTimeaccessType='inputOutput'
                     appinfo='number of seconds between viewpoint shifts'/>
 91                      <field name='enabledtype='SFBoolaccessType='inputOutput'
                     appinfo='whether ViewpointSequencer is enabled or not'/>
 92                      <field name='set_enabledtype='SFBoolaccessType='inputOnly'
                     appinfo='whether ViewpointSequencer is enabled or not'/>
 93                      <field name='previoustype='SFBoolaccessType='inputOnly'
                     appinfo='bind previous Viewpoint in list'/>
 94                      <field name='nexttype='SFBoolaccessType='inputOnly'
                     appinfo='bind next Viewpoint in list'/>
 95                      <field name='toggleMessagetype='MFStringaccessType='inputOutput'
                     appinfo='Select message to toggle ViewpointSequencer'/>
 96                      <field name='toggleMessageFontSizetype='SFFloataccessType='initializeOnly'
                     appinfo='Font size for toggleMessage text'/>
 97                      <field name='toggleMessageColortype='SFColoraccessType='inputOutput'
                     appinfo='Color for toggleMessage text'/>
 98                      <field name='traceEnabledtype='SFBoolaccessType='inputOutput'
                     appinfo='enable console output'/>
 99                 </ExternProtoDeclare>
100                 <ProtoDeclare name='TouchSensorSelectedappinfo='TouchSensorSelected provides full TouchSensor functionality and adds output field isSelected, which only sends true events and filters out false events'>
101                      <ProtoInterface>
102                           <field name='descriptiontype='SFStringaccessType='inputOutput'/>
103                           <field name='enabledtype='SFBoolvalue='trueaccessType='inputOutput'
                          appinfo='default value true'/>
104                           <field name='metadatatype='SFNodeaccessType='inputOutput'>
105                                <!-- optional metadata about this node -->
106                           </field>
107                           <field name='hitNormal_changedtype='SFVec3faccessType='outputOnly'/>
108                           <field name='hitPoint_changedtype='SFVec3faccessType='outputOnly'/>
109                           <field name='hitTexCoord_changedtype='SFVec2faccessType='outputOnly'/>
110                           <field name='touchTimetype='SFTimeaccessType='outputOnly'/>
111                           <field name='isActivetype='SFBoolaccessType='outputOnly'/>
112                           <field name='isOvertype='SFBoolaccessType='outputOnly'/>
113                           <field name='isSelectedtype='SFBoolaccessType='outputOnly'/>
114                           <field name='isSelected2type='SFVec3faccessType='outputOnly'/>
115                           <field name='isSelected3type='SFVec3faccessType='outputOnly'/>
116                           <field name='isSelected4type='SFInt32accessType='outputOnly'/>
117                           <field name='isSelected5type='SFInt32accessType='outputOnly'/>
118                           <field name='isSelected6type='SFBoolaccessType='outputOnly'/>
119                           <field name='isSelected7type='SFVec3faccessType='outputOnly'/>
120                           <field name='isSelected8type='SFVec3faccessType='outputOnly'/>
121                           <field name='isSelected9type='SFVec3faccessType='outputOnly'/>
122                           <field name='isSelected10type='SFVec3faccessType='outputOnly'/>
123                           <field name='isSelected11type='SFVec3faccessType='outputOnly'/>
124                           <field name='isSelected12type='SFVec3faccessType='outputOnly'/>
125                           <field name='isSelected13type='SFVec3faccessType='outputOnly'/>
126                           <field name='isSelected14type='SFColoraccessType='outputOnly'/>
127                           <field name='isSelected15type='SFColoraccessType='outputOnly'/>
128                           <field name='isSelected16type='SFVec3faccessType='outputOnly'/>
129                           <field name='isSelected17type='SFVec3faccessType='outputOnly'/>
130                           <field name='isSelected18type='SFVec3faccessType='outputOnly'/>
131                           <field name='isSelected19type='SFVec3faccessType='outputOnly'/>
132                           <field name='isSelected20type='SFVec3faccessType='outputOnly'/>
133                           <field name='isSelected21type='SFInt32accessType='outputOnly'/>
134                           <field name='isSelected22type='SFInt32accessType='outputOnly'/>
135                           <field name='isSelected23type='SFInt32accessType='outputOnly'/>
136                           <field name='isSelected24type='SFInt32accessType='outputOnly'/>
137                           <field name='isSelected25type='SFInt32accessType='outputOnly'/>
138                           <field name='isSelected26type='SFInt32accessType='outputOnly'/>
139                           <field name='isSelected27type='SFInt32accessType='outputOnly'/>
140                           <field name='isSelected28type='SFInt32accessType='outputOnly'/>
141                           <field name='isSelected29type='SFInt32accessType='outputOnly'/>
142                      </ProtoInterface>
143                      <ProtoBody>
144 
145                                <IS>
146                                     <connect nodeField='descriptionprotoField='description'/>
147                                     <connect nodeField='enabledprotoField='enabled'/>
148                                     <connect nodeField='metadataprotoField='metadata'/>
149                                     <connect nodeField='hitNormal_changedprotoField='hitNormal_changed'/>
150                                     <connect nodeField='hitPoint_changedprotoField='hitPoint_changed'/>
151                                     <connect nodeField='hitTexCoord_changedprotoField='hitTexCoord_changed'/>
152                                     <connect nodeField='touchTimeprotoField='touchTime'/>
153                                     <connect nodeField='isActiveprotoField='isActive'/>
154                                     <connect nodeField='isOverprotoField='isOver'/>
155                                </IS>
156                           </TouchSensor>
157 
                         <!-- ROUTE information for BooleanFilterIsActive node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <BooleanFilter DEF='BooleanFilterIsActive'>
158                                <IS>
159                                     <connect nodeField='inputTrueprotoField='isSelected'/>
160                                </IS>
161                           </BooleanFilter>
162                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='BooleanFilterIsActive' toField='set_boolean'/>
163 
                         <!-- ROUTE information for BooleanFilterIsActive2 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <BooleanFilter DEF='BooleanFilterIsActive2'>
164                                <IS>
165                                     <connect nodeField='inputFalseprotoField='isSelected6'/>
166                                </IS>
167                           </BooleanFilter>
168                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='BooleanFilterIsActive2' toField='set_boolean'/>
169 
170 
                         <!-- ROUTE information for Interpolator node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolatorkey='0 1keyValue='0 0 0.2 0 0 0'>
171                                <IS>
172                                     <connect nodeField='value_changedprotoField='isSelected2'/>
173                                </IS>
174                           </PositionInterpolator>
175 
                         <!-- ROUTE information for Interpolator2 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator2key='0 1keyValue='0 0 0 0 0 0.2'>
176                                <IS>
177                                     <connect nodeField='value_changedprotoField='isSelected3'/>
178                                </IS>
179                           </PositionInterpolator>
180 
                         <!-- ROUTE information for Interpolator3 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator3key='0 1keyValue='0 0 0 0 0 1'>
181                                <IS>
182                                     <connect nodeField='value_changedprotoField='isSelected7'/>
183                                </IS>
184                           </PositionInterpolator>
185 
                         <!-- ROUTE information for Interpolator4 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator4key='0 1keyValue='0 0 -1 0 0 -1'>
186                                <IS>
187                                     <connect nodeField='value_changedprotoField='isSelected8'/>
188                                </IS>
189                           </PositionInterpolator>
190 
                         <!-- ROUTE information for Interpolator5 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator5key='0 1keyValue='1.3 -1.13 -1 1.3 -1.13 -0.7'>
191                                <IS>
192                                     <connect nodeField='value_changedprotoField='isSelected9'/>
193                                </IS>
194                           </PositionInterpolator>
195 
                         <!-- ROUTE information for Interpolator6 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator6key='0 1keyValue='1.3 -1.13 -0.7 1.3 -1.13 -1'>
196                                <IS>
197                                     <connect nodeField='value_changedprotoField='isSelected10'/>
198                                </IS>
199                           </PositionInterpolator>
200 
                         <!-- ROUTE information for Interpolator7 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator7key='0 1keyValue='0 0 -0.6 0 0 0'>
201                                <IS>
202                                     <connect nodeField='value_changedprotoField='isSelected11'/>
203                                </IS>
204                           </PositionInterpolator>
205 
                         <!-- ROUTE information for Interpolator8 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator8key='0 1keyValue='0 0 0 0 0 -0.6'>
206                                <IS>
207                                     <connect nodeField='value_changedprotoField='isSelected12'/>
208                                </IS>
209                           </PositionInterpolator>
210 
                         <!-- ROUTE information for Interpolator9 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator9key='0 1keyValue='0 -3 0 0 0 0'>
211                                <IS>
212                                     <connect nodeField='value_changedprotoField='isSelected13'/>
213                                </IS>
214                           </PositionInterpolator>
215 
                         <!-- ROUTE information for Interpolator10 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator10key='0 1keyValue='0 0 -1 0 0 0'>
216                                <IS>
217                                     <connect nodeField='value_changedprotoField='isSelected16'/>
218                                </IS>
219                           </PositionInterpolator>
220 
                         <!-- ROUTE information for Interpolator11 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator11key='0 1keyValue='0 0 0 0 0 0'>
221                                <IS>
222                                     <connect nodeField='value_changedprotoField='isSelected17'/>
223                                </IS>
224                           </PositionInterpolator>
225 
                         <!-- ROUTE information for Interpolator12 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator12key='0 1keyValue='0 0 0 0 0 -1'>
226                                <IS>
227                                     <connect nodeField='value_changedprotoField='isSelected18'/>
228                                </IS>
229                           </PositionInterpolator>
230 
                         <!-- ROUTE information for Interpolator13 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator13key='0 1keyValue='0 0 0 0 -3 0'>
231                                <IS>
232                                     <connect nodeField='value_changedprotoField='isSelected19'/>
233                                </IS>
234                           </PositionInterpolator>
235 
                         <!-- ROUTE information for Interpolator14 node:  [from Time.fraction_changed to set_fraction ] -->
                         <PositionInterpolator DEF='Interpolator14key='0 1keyValue='0 0 -0.2 0 0 0'>
236                                <IS>
237                                     <connect nodeField='value_changedprotoField='isSelected20'/>
238                                </IS>
239                           </PositionInterpolator>
240                           < ROUTE  fromNode='TouchSensorRootNode' fromField='touchTime' toNode='Time' toField='startTime'/>
241                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator' toField='set_fraction'/>
242                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator2' toField='set_fraction'/>
243                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator3' toField='set_fraction'/>
244                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator4' toField='set_fraction'/>
245                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator5' toField='set_fraction'/>
246                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator6' toField='set_fraction'/>
247                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator7' toField='set_fraction'/>
248                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator8' toField='set_fraction'/>
249                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator9' toField='set_fraction'/>
250                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator10' toField='set_fraction'/>
251                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator11' toField='set_fraction'/>
252                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator12' toField='set_fraction'/>
253                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator13' toField='set_fraction'/>
254                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='Interpolator14' toField='set_fraction'/>
255 
                         <!-- ROUTE information for ColorInterpolator node:  [from Time.fraction_changed to set_fraction ] -->
                         <ColorInterpolator DEF='ColorInterpolatorkey='0 1keyValue='0 0 0 1 1 1'>
256                                <IS>
257                                     <connect nodeField='value_changedprotoField='isSelected14'/>
258                                </IS>
259                           </ColorInterpolator>
260 
                         <!-- ROUTE information for ColorInterpolator2 node:  [from Time.fraction_changed to set_fraction ] -->
                         <ColorInterpolator DEF='ColorInterpolator2key='0 1keyValue='0 0 0 0 0 0'>
261                                <IS>
262                                     <connect nodeField='value_changedprotoField='isSelected15'/>
263                                </IS>
264                           </ColorInterpolator>
265                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='ColorInterpolator' toField='set_fraction'/>
266                           < ROUTE  fromNode='Time' fromField='fraction_changed' toNode='ColorInterpolator2' toField='set_fraction'/>
267 
                         <!-- ROUTE information for IntegerIsActive node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActiveintegerKey='1'>
268                                <IS>
269                                     <connect nodeField='triggerValueprotoField='isSelected4'/>
270                                </IS>
271                           </IntegerTrigger>
272                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive' toField='set_boolean'/>
273 
                         <!-- ROUTE information for IntegerIsActive2 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive2integerKey='0'>
274                                <IS>
275                                     <connect nodeField='triggerValueprotoField='isSelected5'/>
276                                </IS>
277                           </IntegerTrigger>
278                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive2' toField='set_boolean'/>
279 
                         <!-- ROUTE information for IntegerIsActive3 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive3integerKey='1'>
280                                <IS>
281                                     <connect nodeField='triggerValueprotoField='isSelected21'/>
282                                </IS>
283                           </IntegerTrigger>
284                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive3' toField='set_boolean'/>
285 
                         <!-- ROUTE information for IntegerIsActive4 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive4integerKey='2'>
286                                <IS>
287                                     <connect nodeField='triggerValueprotoField='isSelected22'/>
288                                </IS>
289                           </IntegerTrigger>
290                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive4' toField='set_boolean'/>
291 
                         <!-- ROUTE information for IntegerIsActive5 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive5integerKey='3'>
292                                <IS>
293                                     <connect nodeField='triggerValueprotoField='isSelected23'/>
294                                </IS>
295                           </IntegerTrigger>
296                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive5' toField='set_boolean'/>
297 
                         <!-- ROUTE information for IntegerIsActive6 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive6integerKey='4'>
298                                <IS>
299                                     <connect nodeField='triggerValueprotoField='isSelected24'/>
300                                </IS>
301                           </IntegerTrigger>
302                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive6' toField='set_boolean'/>
303 
                         <!-- ROUTE information for IntegerIsActive7 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive7integerKey='5'>
304                                <IS>
305                                     <connect nodeField='triggerValueprotoField='isSelected25'/>
306                                </IS>
307                           </IntegerTrigger>
308                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive7' toField='set_boolean'/>
309 
                         <!-- ROUTE information for IntegerIsActive8 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive8integerKey='6'>
310                                <IS>
311                                     <connect nodeField='triggerValueprotoField='isSelected26'/>
312                                </IS>
313                           </IntegerTrigger>
314                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive8' toField='set_boolean'/>
315 
                         <!-- ROUTE information for IntegerIsActive9 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive9integerKey='7'>
316                                <IS>
317                                     <connect nodeField='triggerValueprotoField='isSelected27'/>
318                                </IS>
319                           </IntegerTrigger>
320                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive9' toField='set_boolean'/>
321 
                         <!-- ROUTE information for IntegerIsActive10 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive10integerKey='8'>
322                                <IS>
323                                     <connect nodeField='triggerValueprotoField='isSelected28'/>
324                                </IS>
325                           </IntegerTrigger>
326                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive10' toField='set_boolean'/>
327 
                         <!-- ROUTE information for IntegerIsActive11 node:  [from TouchSensorRootNode.isActive to set_boolean ] -->
                         <IntegerTrigger DEF='IntegerIsActive11integerKey='9'>
328                                <IS>
329                                     <connect nodeField='triggerValueprotoField='isSelected29'/>
330                                </IS>
331                           </IntegerTrigger>
332                           < ROUTE  fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive11' toField='set_boolean'/>
333                      </ProtoBody>
334                 </ProtoDeclare>
335            </Group>
336            <!-- Here strts a big switch (it finishes at line -, useful to change from the present church to the historic church. It is made up of two groups: The first one () regards everything related to the present church, the second regards everything related to the historic churc. -->
337 
          <!-- ROUTE information for PresentToHistorichChurch node:  [from touchMid19thCentury.isSelected4 to whichChoice ] [from touchToday.isSelected5 to whichChoice ] -->
          <Switch DEF='PresentToHistorichChurchwhichChoice='0'>
338                 <!-- PRESENT CHURCH -->
339                 <!-- Yellow Panel of the present church -->
340                 <Group>
341                      <!-- Here strts another big switch. (it finishes at line -, useful to hide or show the yellow panel. It is made up of two HUDs: The first one () is the writing 'Main menu' in the top right of the screen (when the panel is hidden), the second is the yellow panel and everything on it. -->
342 
343                           <Group>
344 
                              <!-- ROUTE information for HudContainer1 node:  [from HereIAm1.orientation_changed to rotation ] [from HereIAm1.position_changed to translation ] -->
                              <Transform DEF='HudContainer1'>
345                                     <Transform translation='3 1.7 -5'>
346                                          <Group>
347 
                                             <!-- ROUTE information for touchUP node:  [from touchTime to timeUP.startTime ] -->
                                             <TouchSensor DEF='touchUPdescription='Main Menù'/>
348                                               <Shape>
349                                                    <Text string='"Main Menu"'>
350                                                         <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
351                                                    </Text>
352                                                    <Appearance>
353                                                         <Material emissiveColor='1 1 1'/>
354                                                    </Appearance>
355                                               </Shape>
356                                               <Transform DEF='MainMenuSphereLeftscale='1.05 1 2.3translation='-0.708 0.048 0.1'>
357                                                    <Shape>
358                                                         <Sphere radius='0.04'/>
359                                                         <Appearance>
360                                                              <Material emissiveColor='1 1 1'/>
361                                                         </Appearance>
362                                                    </Shape>
363                                               </Transform>
364                                               <Transform DEF='MainMenuSphereRightrotation='1 0 0 -0.23scale='0.88 1 1.5translation='0.589 0.039 0.1'>
365                                                    <Shape>
366                                                         <Sphere radius='0.04'/>
367                                                         <Appearance>
368                                                              <Material emissiveColor='1 1 1'/>
369                                                         </Appearance>
370                                                    </Shape>
371                                               </Transform>
372                                          </Group>
373                                     </Transform>
374                                </Transform>
375 
                              <!-- ROUTE information for HereIAm1 node:  [from orientation_changed to HudContainer1.rotation ] [from position_changed to HudContainer1.translation ] -->
                              <ProximitySensor DEF='HereIAm1size='10000000 10000000 10000000'/>
376                                < ROUTE  fromNode='HereIAm1' fromField='orientation_changed' toNode='HudContainer1' toField='rotation'/>
377                                < ROUTE  fromNode='HereIAm1' fromField='position_changed' toNode='HudContainer1' toField='translation'/>
378                           </Group>
379                           <Group>
380 
                              <!-- ROUTE information for HudContainer2 node:  [from HereIAm2.orientation_changed to rotation ] [from HereIAm2.position_changed to translation ] -->
                              <Transform DEF='HudContainer2'>
381                                     <Transform translation='0 0.2 -5.5'>
382                                          <Group>
383                                               <Transform scale='0.25 0.25 0.25translation='0 0 3'>
384                                                    <!-- Red pyramids are links to differents viewpoints. They are positioned in the small model of the church, on the yellow panel -->
385 
386                                                         <Transform scale='0.3 0.3 0.3translation='1.6 0.1 0.5'>
387                                                              <!-- Replacement -->
388 
                                                            <!-- ROUTE information for SelectNave node:  [from isSelected to ViewpointFrontView.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectNave'>
389                                                                   <fieldValue name='descriptionvalue='Nave'/>
390                                                              </ProtoInstance>
391                                                              < ROUTE  fromNode='SelectNave' fromField='isSelected' toNode='ViewpointFrontView' toField='set_bind'/>
392                                                              <!-- Prior block start... <TouchSensor DEF='touchviewpointNave' description='Nave' enabled='false'/> <TimeSensor DEF='timeviewpointNave' cycleInterval='1' enabled='true' loop='false'/> <ROUTE fromField='touchTime' fromNode='touchviewpointNave' toField='startTime' toNode='timeviewpointNave'/> <BooleanSequencer DEF='SequencviewpointNave' key='0 1' keyValue='true true'/> <ROUTE fromField='fraction_changed' fromNode='timeviewpointNave' toField='set_fraction' toNode='SequencviewpointNave'/> <ROUTE fromField='value_changed' fromNode='SequencviewpointNave' toField='set_bind' toNode='ViewpointFrontView'/> ...prior block finish -->
393 
                                                            <!-- Shape RedPyramidButton is a DEF node that has 19 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11, USE_12, USE_13, USE_14, USE_15, USE_16, USE_17, USE_18, USE_19 -->
                                                            <Shape DEF='RedPyramidButton'>
394                                                                   <IndexedFaceSet convex='falsesolid='falsecoordIndex='0 1 4 -1 3 4 0 -1 3 4 2 -1 2 4 1 -1 0 1 2 3 -1'>
395                                                                        <Coordinate point='0 0 0 0 0 0.25 0.25 0 0.25 0.25 0 0 0.125 0.42 0.125'/>
396                                                                   </IndexedFaceSet>
397                                                                   <Appearance>
398                                                                        <Material diffuseColor='1 0.25 0.25'/>
399                                                                   </Appearance>
400                                                              </Shape>
401                                                         </Transform>
402                                                         <Transform scale='0.3 0.3 0.3translation='2.5 0.1 0.5'>
403 
                                                            <!-- ROUTE information for SelectTranseptAxes node:  [from isSelected to ViewpointNaveView.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectTranseptAxes'>
404                                                                   <fieldValue name='descriptionvalue='Transept/Axes'/>
405                                                              </ProtoInstance>
406                                                              < ROUTE  fromNode='SelectTranseptAxes' fromField='isSelected' toNode='ViewpointNaveView' toField='set_bind'/>
407                                                              <Shape USE='RedPyramidButton'/>
408                                                         </Transform>
409                                                         <Transform scale='0.3 0.3 0.3translation='2.9 -0.5 0.5'>
410 
                                                            <!-- ROUTE information for SelectSacristy node:  [from isSelected to ViewpointSacristyAndBackRoom.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectSacristy'>
411                                                                   <fieldValue name='descriptionvalue='Sacristy'/>
412                                                              </ProtoInstance>
413                                                              < ROUTE  fromNode='SelectSacristy' fromField='isSelected' toNode='ViewpointSacristyAndBackRoom' toField='set_bind'/>
414                                                              <Shape USE='RedPyramidButton'/>
415                                                         </Transform>
416                                                         <Transform scale='0.3 0.3 0.3translation='3.3 0.7 0.5'>
417 
                                                            <!-- ROUTE information for SelectOutsideSouth node:  [from isSelected to ViewpointBackOutside.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectOutsideSouth'>
418                                                                   <fieldValue name='descriptionvalue='Outside South'/>
419                                                              </ProtoInstance>
420                                                              < ROUTE  fromNode='SelectOutsideSouth' fromField='isSelected' toNode='ViewpointBackOutside' toField='set_bind'/>
421                                                              <Shape USE='RedPyramidButton'/>
422                                                         </Transform>
423                                                         <Transform scale='0.3 0.3 0.3translation='1.4 0.6 0.5'>
424 
                                                            <!-- ROUTE information for SelectOutsideEast node:  [from isSelected to ViewpointTowerBack.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectOutsideEast'>
425                                                                   <fieldValue name='descriptionvalue='Outside East'/>
426                                                              </ProtoInstance>
427                                                              < ROUTE  fromNode='SelectOutsideEast' fromField='isSelected' toNode='ViewpointTowerBack' toField='set_bind'/>
428                                                              <Shape USE='RedPyramidButton'/>
429                                                         </Transform>
430                                                         <Transform scale='0.3 0.3 0.3translation='1.4 -1 0.5'>
431 
                                                            <!-- ROUTE information for SelectOutsideWest node:  [from isSelected to ViewpointRightOutside.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectOutsideWest'>
432                                                                   <fieldValue name='descriptionvalue='Outside West'/>
433                                                              </ProtoInstance>
434                                                              < ROUTE  fromNode='SelectOutsideWest' fromField='isSelected' toNode='ViewpointRightOutside' toField='set_bind'/>
435                                                              <Shape USE='RedPyramidButton'/>
436                                                         </Transform>
437                                                         <Transform scale='0.3 0.3 0.3translation='-0.22 0 0.5'>
438 
                                                            <!-- ROUTE information for SelectOutsideNorth node:  [from isSelected to ViewpointFront.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectOutsideNorth'>
439                                                                   <fieldValue name='descriptionvalue='Outside North'/>
440                                                              </ProtoInstance>
441                                                              < ROUTE  fromNode='SelectOutsideNorth' fromField='isSelected' toNode='ViewpointFront' toField='set_bind'/>
442                                                              <Shape USE='RedPyramidButton'/>
443                                                         </Transform>
444                                                         <Transform scale='0.3 0.3 0.3translation='0.1 0 0.5'>
445 
                                                            <!-- ROUTE information for SelectEntrance node:  [from isSelected to ViewpointFrontDoors.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectEntrance'>
446                                                                   <fieldValue name='descriptionvalue='Entrance'/>
447                                                              </ProtoInstance>
448                                                              < ROUTE  fromNode='SelectEntrance' fromField='isSelected' toNode='ViewpointFrontDoors' toField='set_bind'/>
449                                                              <Shape USE='RedPyramidButton'/>
450                                                         </Transform>
451                                                         <Transform scale='0.3 0.3 0.3translation='0.5 0.26 0.6'>
452 
                                                            <!-- ROUTE information for SelectBalcony node:  [from isSelected to ViewpointLeftRearBalcony.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectBalcony'>
453                                                                   <fieldValue name='descriptionvalue='Balcony'/>
454                                                              </ProtoInstance>
455                                                              < ROUTE  fromNode='SelectBalcony' fromField='isSelected' toNode='ViewpointLeftRearBalcony' toField='set_bind'/>
456                                                              <Shape USE='RedPyramidButton'/>
457                                                         </Transform>
458                                                         <Transform scale='0.3 0.3 0.3translation='0.26 0.6 0.7'>
459 
                                                            <!-- ROUTE information for SelectTower node:  [from isSelected to ViewpointTowerBells.set_bind ] -->
                                                            <ProtoInstance name='TouchSensorSelectedDEF='SelectTower'>
460                                                                   <fieldValue name='descriptionvalue='Tower'/>
461                                                              </ProtoInstance>
462                                                              < ROUTE  fromNode='SelectTower' fromField='isSelected' toNode='ViewpointTowerBells' toField='set_bind'/>
463                                                              <Shape USE='RedPyramidButton'/>
464                                                         </Transform>
465                                                    </Transform>
466                                                    <!-- Small models of the church on the yellow panel. One with the roof, the other without roof (249-260) -->
467                                                    <Transform DEF='ChurchModelTransformrotation='0 1 0 -1.57scale='0.6 0.6 0.6translation='0.2 0.4 0.3'>
468                                                         <Transform rotation='0 0 1 -1.2'>
469                                                              <Transform rotation='1 0 0 0'>
470                                                                   <!-- Switch that permits to change from the small church with roof to the one without roof -->
471 
472                                                                        <Inline DEF='ChurchRoof'   url=' "ChurchRoof.x3d" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchRoof.x3d" "ChurchRoof.wrl" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchRoof.wrl" '/>
473                                                                        <Inline DEF='ChurchModel'   url=' "ChurchModel.x3d" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchModel.x3d" "ChurchModel.wrl" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchModel.wrl" '/>
474                                                                   </Switch>
475                                                              </Transform>
476                                                         </Transform>
477                                                    </Transform>
478                                                    <Transform DEF='MainPaneltranslation='0.75 0 0'>
479                                                         <Shape>
480                                                              <Box size='6.5 3 0.2'/>
481                                                              <Appearance>
482                                                                   <Material diffuseColor='1 0.75 0.25'/>
483                                                              </Appearance>
484                                                         </Shape>
485                                                    </Transform>
486                                                    <!-- This light is necessary when, clicking on the Lighting Button, HeadLight is turned off -->
487 
488                                                    <!-- First panel, or the first screen of the panel (-) -->
489 
490                                                         <Transform translation='-1.2 0 0'>
491                                                              <Transform DEF='HidePanelText1translation='2.2 1.2 0'>
492                                                                   <Shape>
493                                                                        <Text string='"Hide Panel"'>
494                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
495                                                                        </Text>
496                                                                        <Appearance>
497                                                                             <Material diffuseColor='0 0 0'/>
498                                                                        </Appearance>
499                                                                   </Shape>
500                                                              </Transform>
501                                                              <Transform DEF='HidePanelButton1translation='1.5 1.28 0'>
502 
                                                                 <!-- ROUTE information for touchHidePanel1 node:  [from isSelected5 to MainmenuToMainpanel.whichChoice ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchHidePanel1'>
503                                                                        <fieldValue name='descriptionvalue='Hide panel'/>
504                                                                   </ProtoInstance>
505                                                                   < ROUTE  fromNode='touchHidePanel1' fromField='isSelected5' toNode='MainmenuToMainpanel' toField='whichChoice'/>
506                                                                   <Shape>
507                                                                        <Sphere radius='0.1'/>
508                                                                        <Appearance>
509                                                                             <Material diffuseColor='0 0 0'/>
510                                                                        </Appearance>
511                                                                   </Shape>
512                                                              </Transform>
513                                                              <Transform DEF='NavigatingTexttranslation='0 1 0'>
514                                                                   <Shape>
515                                                                        <Text string='"Navigating"'>
516                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
517                                                                        </Text>
518                                                                        <Appearance>
519                                                                             <Material diffuseColor='0 0 0'/>
520                                                                        </Appearance>
521                                                                   </Shape>
522                                                              </Transform>
523                                                              <Transform DEF='NavigatingButtontranslation='-0.8 1.08 0'>
524 
                                                                 <!-- ROUTE information for touchNavigating node:  [from isSelected2 to FirstPanel.translation ] [from isSelected4 to ChurcRoofToChurcModel.whichChoice ] [from isSelected16 to RedPyramidTransform.translation ] [from isSelected3 to NavigatingPanel.translation ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchNavigating'>
525                                                                        <fieldValue name='descriptionvalue='Navigating'/>
526                                                                   </ProtoInstance>
527                                                                   < ROUTE  fromNode='touchNavigating' fromField='isSelected2' toNode='FirstPanel' toField='translation'/>
528                                                                   < ROUTE  fromNode='touchNavigating' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/>
529                                                                   < ROUTE  fromNode='touchNavigating' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/>
530                                                                   <Shape>
531                                                                        <Sphere radius='0.1'/>
532                                                                        <Appearance>
533                                                                             <Material diffuseColor='0 0 0'/>
534                                                                        </Appearance>
535                                                                   </Shape>
536                                                              </Transform>
537                                                              <Transform DEF='LightingTexttranslation='0.25 0.6 0'>
538                                                                   <Shape>
539                                                                        <Text string='"Lighting"'>
540                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.25'/>
541                                                                        </Text>
542                                                                        <Appearance>
543                                                                             <Material diffuseColor='0 0 0'/>
544                                                                        </Appearance>
545                                                                   </Shape>
546                                                              </Transform>
547                                                              <Transform DEF='LightingButtontranslation='-0.8 0.68 0'>
548 
                                                                 <!-- ROUTE information for touchLighting node:  [from isSelected2 to FirstPanel.translation ] [from isSelected6 to NavigationFly.headlight ] [from isSelected to PanelPointLight.on ] [from isSelected4 to ChurcRoofToChurcModel.whichChoice ] [from isSelected16 to RedPyramidTransform.translation ] [from isSelected3 to LightingPanel.translation ] [from isSelected17 to SourcesOfLightSpheres.translation ] [from isSelected9 to LightDescriptions.translation ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchLighting'>
549                                                                        <fieldValue name='descriptionvalue='Lighting'/>
550                                                                   </ProtoInstance>
551                                                                   < ROUTE  fromNode='touchLighting' fromField='isSelected2' toNode='FirstPanel' toField='translation'/>
552                                                                   < ROUTE  fromNode='touchLighting' fromField='isSelected6' toNode='NavigationFly' toField='headlight'/>
553                                                                   < ROUTE  fromNode='touchLighting' fromField='isSelected' toNode='PanelPointLight' toField='on'/>
554                                                                   < ROUTE  fromNode='touchLighting' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/>
555                                                                   < ROUTE  fromNode='touchLighting' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/>
556                                                                   <Shape>
557                                                                        <Sphere radius='0.1'/>
558                                                                        <Appearance>
559                                                                             <Material diffuseColor='0 0 0'/>
560                                                                        </Appearance>
561                                                                   </Shape>
562                                                              </Transform>
563                                                              <Transform DEF='PicturesTexttranslation='0 0.2 0'>
564                                                                   <Shape>
565                                                                        <Text string='"Pictures"'>
566                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
567                                                                        </Text>
568                                                                        <Appearance>
569                                                                             <Material diffuseColor='0 0 0'/>
570                                                                        </Appearance>
571                                                                   </Shape>
572                                                              </Transform>
573                                                              <Transform DEF='PicturesButtontranslation='-0.8 0.28 0'>
574 
                                                                 <!-- ROUTE information for touchPictures node:  [from isSelected2 to FirstPanel.translation ] [from isSelected4 to ChurcRoofToChurcModel.whichChoice ] [from isSelected16 to RedPyramidTransform.translation ] [from isSelected3 to PicturesPanel.translation ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchPictures'>
575                                                                        <fieldValue name='descriptionvalue='Pictures'/>
576                                                                   </ProtoInstance>
577                                                                   < ROUTE  fromNode='touchPictures' fromField='isSelected2' toNode='FirstPanel' toField='translation'/>
578                                                                   < ROUTE  fromNode='touchPictures' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/>
579                                                                   < ROUTE  fromNode='touchPictures' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/>
580                                                                   <Shape>
581                                                                        <Sphere radius='0.1'/>
582                                                                        <Appearance>
583                                                                             <Material diffuseColor='0 0 0'/>
584                                                                        </Appearance>
585                                                                   </Shape>
586                                                              </Transform>
587                                                              <Transform DEF='SourcesTexttranslation='0 -0.2 0'>
588                                                                   <Shape>
589                                                                        <Text string='"Sources"'>
590                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
591                                                                        </Text>
592                                                                        <Appearance>
593                                                                             <Material diffuseColor='0 0 0'/>
594                                                                        </Appearance>
595                                                                   </Shape>
596                                                              </Transform>
597                                                              <Transform DEF='SourcesButtontranslation='-0.8 -0.12 0'>
598 
                                                                 <!-- ROUTE information for touchSources node:  [from isSelected2 to FirstPanel.translation ] [from isSelected4 to ChurcRoofToChurcModel.whichChoice ] [from isSelected16 to RedPyramidTransform.translation ] [from isSelected3 to SourcesPanel.translation ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchSources'>
599                                                                        <fieldValue name='descriptionvalue='Sources'/>
600                                                                   </ProtoInstance>
601                                                                   < ROUTE  fromNode='touchSources' fromField='isSelected2' toNode='FirstPanel' toField='translation'/>
602                                                                   < ROUTE  fromNode='touchSources' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/>
603                                                                   < ROUTE  fromNode='touchSources' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/>
604                                                                   <Shape>
605                                                                        <Sphere radius='0.1'/>
606                                                                        <Appearance>
607                                                                             <Material diffuseColor='0 0 0'/>
608                                                                        </Appearance>
609                                                                   </Shape>
610                                                              </Transform>
611                                                              <Transform DEF='ModelingTexttranslation='0 -0.6 0'>
612                                                                   <Shape>
613                                                                        <Text string='"Modeling"'>
614                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
615                                                                        </Text>
616                                                                        <Appearance>
617                                                                             <Material diffuseColor='0 0 0'/>
618                                                                        </Appearance>
619                                                                   </Shape>
620                                                              </Transform>
621                                                              <Anchor description='Modelingparameter='"target=blank"'   url=' "documentation/Modeling.html" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/Modeling.html" '>
622                                                                   <Transform DEF='ModelingButtontranslation='-0.8 -0.52 0'>
623                                                                        <Shape>
624                                                                             <Sphere radius='0.1'/>
625                                                                             <Appearance>
626                                                                                  <Material diffuseColor='0 0 0'/>
627                                                                             </Appearance>
628                                                                        </Shape>
629                                                                   </Transform>
630                                                              </Anchor>
631                                                              <Transform DEF='HistoricCurchTexttranslation='0.25 -1 0'>
632                                                                   <Shape>
633                                                                        <Text string='"Historic church"'>
634                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.27'/>
635                                                                        </Text>
636                                                                        <Appearance>
637                                                                             <Material diffuseColor='0 0 0'/>
638                                                                        </Appearance>
639                                                                   </Shape>
640                                                              </Transform>
641                                                              <Transform DEF='HistoricCurchButtontranslation='-0.8 -0.92 0'>
642 
                                                                 <!-- ROUTE information for touchHistoricCurch node:  [from isSelected2 to FirstPanel.translation ] [from isSelected4 to ChurcRoofToChurcModel.whichChoice ] [from isSelected16 to RedPyramidTransform.translation ] [from isSelected3 to HistoricChurchPanel.translation ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchHistoricCurch'>
643                                                                        <fieldValue name='descriptionvalue='Historic church'/>
644                                                                   </ProtoInstance>
645                                                                   < ROUTE  fromNode='touchHistoricCurch' fromField='isSelected2' toNode='FirstPanel' toField='translation'/>
646                                                                   < ROUTE  fromNode='touchHistoricCurch' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/>
647                                                                   < ROUTE  fromNode='touchHistoricCurch' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/>
648                                                                   <Shape>
649                                                                        <Sphere radius='0.1'/>
650                                                                        <Appearance>
651                                                                             <Material diffuseColor='0 0 0'/>
652                                                                        </Appearance>
653                                                                   </Shape>
654                                                              </Transform>
655                                                              <Transform DEF='NextPanelText1translation='-0.4 -1.3 0'>
656                                                                   <Shape>
657                                                                        <Text string='"Next Panel"'>
658                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.2'/>
659                                                                        </Text>
660                                                                        <Appearance>
661                                                                             <Material diffuseColor='0 0 0'/>
662                                                                        </Appearance>
663                                                                   </Shape>
664                                                              </Transform>
665                                                              <Transform DEF='NextPanelButton1translation='-0.8 -1.25 0'>
666 
                                                                 <!-- ROUTE information for touchNextPanel1 node:  [from isSelected2 to FirstPanel.translation ] [from isSelected3 to FirstPanelBis.translation ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchNextPanel1'>
667                                                                        <fieldValue name='descriptionvalue='Next Panel'/>
668                                                                   </ProtoInstance>
669                                                                   < ROUTE  fromNode='touchNextPanel1' fromField='isSelected2' toNode='FirstPanel' toField='translation'/>
670                                                                   <Shape>
671                                                                        <Sphere radius='0.05'/>
672                                                                        <Appearance>
673                                                                             <Material diffuseColor='0 0 0'/>
674                                                                        </Appearance>
675                                                                   </Shape>
676                                                              </Transform>
677                                                         </Transform>
678                                                    </Transform>
679                                                    <!-- Second part of the First Panel, it appears clicking on Next Panel at the bottom () -->
680 
                                                  <!-- ROUTE information for FirstPanelBis node:  [from touchNextPanel1.isSelected3 to translation ] [from touchBellsSound.isSelected2 to translation ] [from touchCoordinateSystem.isSelected2 to translation ] [from touchPreviousPanel1.isSelected2 to translation ] [from touchBackButton10.isSelected3 to translation ] [from touchBackButton11.isSelected3 to translation ] -->
                                                  <Transform DEF='FirstPanelBis'>
681                                                         < ROUTE  fromNode='touchNextPanel1' fromField='isSelected3' toNode='FirstPanelBis' toField='translation'/>
682                                                         <Transform translation='-1.2 0 0'>
683                                                              <Transform DEF='HidePanelText2translation='2 1.2 0'>
684                                                                   <Shape>
685                                                                        <Text string='"Hide Panel"'>
686                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
687                                                                        </Text>
688                                                                        <Appearance>
689                                                                             <Material diffuseColor='0 0 0'/>
690                                                                        </Appearance>
691                                                                   </Shape>
692                                                              </Transform>
693                                                              <Transform DEF='HidePanelButton2translation='1.5 1.28 0'>
694 
                                                                 <!-- ROUTE information for touchHidePanel2 node:  [from isSelected5 to MainmenuToMainpanel.whichChoice ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchHidePanel2'>
695                                                                        <fieldValue name='descriptionvalue='Hide panel'/>
696                                                                   </ProtoInstance>
697                                                                   < ROUTE  fromNode='touchHidePanel2' fromField='isSelected5' toNode='MainmenuToMainpanel' toField='whichChoice'/>
698                                                                   <Shape>
699                                                                        <Sphere radius='0.1'/>
700                                                                        <Appearance>
701                                                                             <Material diffuseColor='0 0 0'/>
702                                                                        </Appearance>
703                                                                   </Shape>
704                                                              </Transform>
705                                                              <Transform DEF='ChurchHistoryTexttranslation='0.2 1 0'>
706                                                                   <Shape>
707                                                                        <Text string='"Church History"'>
708                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
709                                                                        </Text>
710                                                                        <Appearance>
711                                                                             <Material diffuseColor='0 0 0'/>
712                                                                        </Appearance>
713                                                                   </Shape>
714                                                              </Transform>
715                                                              <Anchor description='Church Historyparameter='"target=blank"'   url=' "documentation/ChurchHistory.html" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/ChurchHistory.html" '>
716                                                                   <Transform DEF='ChurchHistoryButtontranslation='-0.8 1.08 0'>
717                                                                        <Shape>
718                                                                             <Sphere radius='0.1'/>
719                                                                             <Appearance>
720                                                                                  <Material diffuseColor='0 0 0'/>
721                                                                             </Appearance>
722                                                                        </Shape>
723                                                                   </Transform>
724                                                              </Anchor>
725                                                              <Transform DEF='BellsSoundTexttranslation='0.2 0.6 0'>
726                                                                   <Shape>
727                                                                        <Text string='"Bells sound"'>
728                                                                             <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
729                                                                        </Text>
730                                                                        <Appearance>
731                                                                             <Material diffuseColor='0 0 0'/>
732                                                                        </Appearance>
733                                                                   </Shape>
734                                                              </Transform>
735                                                              <Transform DEF='BellsSoundButtontranslation='-0.8 0.68 0'>
736 
                                                                 <!-- ROUTE information for touchBellsSound node:  [from isSelected2 to FirstPanelBis.translation ] [from isSelected4 to ChurcRoofToChurcModel.whichChoice ] [from isSelected16 to RedPyramidTransform.translation ] [from isSelected to ViewpointFrontFromGround.set_bind ] [from isSelected3 to BellsSoundPanel.translation ] [from isSelected16 to GreenPyramidTransform.translation ] -->
                                                                 <ProtoInstance name='TouchSensorSelectedDEF='touchBellsSound'>
737                                                                        <fieldValue name='descriptionvalue='Bells Sound'/>
738                                                                   </ProtoInstance>
739                                                                   < ROUTE  fromNode='touchBellsSound' fromField='isSelected2' toNode='FirstPanelBis' toField='translation'/>
740                                                                   < ROUTE  fromNode='touchBellsSound' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/>
741                                                                   <