<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package X3dForAdvancedModeling.SanCarlosCathedral;

import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.EnvironmentalEffects.*;
import org.web3d.x3d.jsail.EnvironmentalSensor.*;
import org.web3d.x3d.jsail.EventUtilities.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Geometry3D.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.Interpolation.*;
import org.web3d.x3d.jsail.Lighting.*;
import org.web3d.x3d.jsail.Navigation.*;
import org.web3d.x3d.jsail.Networking.*;
import org.web3d.x3d.jsail.PointingDeviceSensor.*;
import org.web3d.x3d.jsail.Rendering.*;
import org.web3d.x3d.jsail.Shape.*;
import org.web3d.x3d.jsail.Text.*;
import org.web3d.x3d.jsail.Time.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * &lt;p&gt; San Carlos Cathedral is the oldest continuously functioning church and the first stone building in the State of California. &lt;/p&gt;
 &lt;p&gt; Related links: Catalog page &lt;a href="../../../SanCarlosCathedral/SanCarlosCathedralIndex.html" target="_blank"&gt;SanCarlosCathedral&lt;/a&gt;,  source &lt;a href="../../../SanCarlosCathedral/SanCarlosCathedral.java"&gt;SanCarlosCathedral.java&lt;/a&gt;, &lt;a href="https://www.web3d.org/x3d/content/examples/X3dResources.html" target="_blank"&gt;X3D Resources&lt;/a&gt;, &lt;a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html" target="_blank"&gt;X3D Scene Authoring Hints&lt;/a&gt;, and &lt;a href="https://www.web3d.org/x3d/content/X3dTooltips.html" target="_blank"&gt;X3D Tooltips&lt;/a&gt;. &lt;/p&gt;
	&lt;table style="color:black; border:0px solid; border-spacing:10px 0px;"&gt;
        &lt;caption&gt;Scene Meta Information&lt;/caption&gt;
		&lt;tr style="background-color:silver; border-color:silver;"&gt;
			&lt;td style="text-align:center; padding:10px 0px;"&gt;&lt;i&gt;meta tags&lt;/i&gt;&lt;/td&gt;
			&lt;td style="text-align:left;   padding:10px 0px;"&gt;&amp;nbsp; Document Metadata &lt;/td&gt;
		&lt;/tr&gt;

		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; title &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="../../../SanCarlosCathedral/SanCarlosCathedral.x3d"&gt;SanCarlosCathedral.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; description &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; San Carlos Cathedral is the oldest continuously functioning church and the first stone building in the State of California. &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; creator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; Michele Foti, Don Brutzman &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; created &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; 15 December 2011 &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; modified &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; 18 December 2023 &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; documentation/ &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; tests/ &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="../../../SanCarlosCathedral/TODO.html"&gt;TODO.html&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="http://www.sancarloscathedral.net" target="_blank"&gt;http://www.sancarloscathedral.net&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="../../../SanCarlosCathedral/RoyalPresidioChapelHistoricalReferences.pdf"&gt;RoyalPresidioChapelHistoricalReferences.pdf&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; originals/ &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; Image &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="../../../SanCarlosCathedral/SanCarlosCathedralFrontAbove.2012February.png"&gt;SanCarlosCathedralFrontAbove.2012February.png&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="../../../SanCarlosCathedral/originals/ModelSanCarlosChurchFeb-3-2012.x3d"&gt;originals/ModelSanCarlosChurchFeb-3-2012.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style="color:burntorange"&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; warning &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; under development &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; identifier &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/SanCarlosCathedral.x3d" target="_blank"&gt;https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/SanCarlosCathedral.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; generator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; X3D-Edit 4.0, &lt;a href="https://savage.nps.edu/X3D-Edit" target="_blank"&gt;https://savage.nps.edu/X3D-Edit&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; license &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="../../../SanCarlosCathedral/../license.html"&gt;../license.html&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style="background-color:silver; border-color:silver;"&gt;
			&lt;td style="text-align:center;" colspan="2"&gt;  &amp;nbsp; &lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;

	&lt;p&gt;
		This program uses the
		&lt;a href="https://www.web3d.org/specifications/java/X3DJSAIL.html" target="_blank"&gt;X3D Java Scene Access Interface Library (X3DJSAIL)&lt;/a&gt;.
		It has been produced using the 
		&lt;a href="https://www.web3d.org/x3d/stylesheets/X3dToJava.xslt" target="_blank"&gt;X3dToJava.xslt&lt;/a&gt;
		stylesheet
	       (&lt;a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/X3dToJava.xslt" target="_blank"&gt;version control&lt;/a&gt;)
                which is used to create Java source code from an original &lt;code&gt;.x3d&lt;/code&gt; model.
	&lt;/p&gt;

	* @author Michele Foti, Don Brutzman
 */

public class SanCarlosCathedral
{
	/** Default constructor to create this object. */
	public SanCarlosCathedral ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_3)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("SanCarlosCathedral.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("San Carlos Cathedral is the oldest continuously functioning church and the first stone building in the State of California."))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Michele Foti, Don Brutzman"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("15 December 2011"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("18 December 2023"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("documentation/"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("tests/"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("TODO.html"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.sancarloscathedral.net"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("RoyalPresidioChapelHistoricalReferences.pdf"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("SanCarlosCathedralFrontAbove.2012February.png"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/ModelSanCarlosChurchFeb-3-2012.x3d"))
    .addMeta(new meta().setName(meta.NAME_WARNING    ).setContent("under development"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/SanCarlosCathedral.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("SanCarlosCathedral.x3d"))
    .addChild(new Background().setGroundAngle(new double[] {1.57}).setGroundColor(new MFColor(new double[] {0.9804,0.8235,0.0,0.6,0.3254902,0.0})).setSkyColor(new MFColor(new double[] {0.7216,0.8,0.9922})))
    .addChild(new Group("NavigationNodes")
      .addComments(" Note that headlight='false' while inside cathedral in order to allow LightingAlternatives.x3d lights to work properly ")
      .addChild(new NavigationInfo("NavigationFly").setAvatarSize(new double[] {0.01,1.6,0.75}).setSpeed(4).setType("\"FLY\" \"ANY\""))
      .addChild(new NavigationInfo("NavigationWalk").setAvatarSize(new double[] {0.01,1.6,0.75}).setSpeed(4).setType("\"WALK\" \"ANY\""))
      .addChild(new NavigationInfo("NavigationExamine").setAvatarSize(new double[] {0.01,1.6,0.75}).setSpeed(4)))
    .addChild(new Group("ViewpointNodes")
      .addChild(new Viewpoint("ViewpointFrontFromGround").setDescription("San Carlos Cathedral, front from ground").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,0.0,0.0,0.3).setPosition(5.8,-0.5,15.0))
      .addChild(new Viewpoint("ViewpointFront").setDescription("San Carlos Cathedral, front").setCenterOfRotation(5.8,0.0,-24.4).setPosition(4.3,5.0,25.0))
      .addComments(" &lt;ROUTE fromField='isBound' fromNode='ViewpointFrontAbove' toField='set_bind' toNode='NavigationExamine'/&gt; &lt;ROUTE fromField='isBound' fromNode='ViewpointFront' toField='set_bind' toNode='NavigationExamine'/&gt; ")
      .addChild(new Viewpoint("ViewpointFrontAbove").setDescription("San Carlos Cathedral, front above").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,0.0,0.0,-0.349).setPosition(5.3,16.0,30.0))
      .addChild(new Viewpoint("ViewpointObliqueOutside1").setDescription("Oblique outside view, left").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-0.5).setPosition(-12.8,15.0,20.0))
      .addChild(new Viewpoint("ViewpointOverheadView").setDescription("Overhead view").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,0.0,0.0,-1.57).setPosition(5.8,70.0,-23.0))
      .addChild(new Viewpoint("ViewpointObliqueOutside2").setDescription("Oblique outside view right").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,0.5).setPosition(20.0,4.0,20.0))
      .addChild(new Viewpoint("ViewpointFacadeDetails").setDescription("Facade details").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,0.6).setPosition(9.2,4.0,7.0))
      .addChild(new Viewpoint("ViewpointRightOutside").setDescription("Right outside").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(50.0,-2.0,-26.5))
      .addChild(new Viewpoint("ViewpointSacristyOutside").setDescription("Sacristy outside").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.37).setPosition(30.0,0.0,-55.5))
      .addChild(new Viewpoint("ViewpointBackOutside").setDescription("Back outside").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.4).setPosition(-8.0,7.0,-75.0))
      .addChild(new Viewpoint("ViewpointTowerBack").setDescription("Tower, back").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-2.5).setPosition(-8.0,5.0,-25.0))
      .addChild(new Viewpoint("ViewpointInteriorLeftRearBalcony").setDescription("Interior Left rear balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-0.3).setPosition(3.0,4.0,-5.0))
      .addChild(new Viewpoint("ViewpointFrontDoors").setDescription("Front doors, looking in").setCenterOfRotation(5.8,0.0,-24.4).setPosition(5.8,-0.3,2.0))
      .addChild(new Viewpoint("ViewpointEntranceConfessional").setDescription("Entrance, confessional").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.3).setPosition(4.3,-0.9,-0.8))
      .addChild(new Viewpoint("ViewpointRightSideWall1").setDescription("Right side wall, looking north west").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-2.4).setPosition(5.1,-0.8,-8.2))
      .addChild(new Viewpoint("ViewpointRightSideWall2").setDescription("Right side wall, window").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.87).setPosition(5.1,1.5,-9.5))
      .addChild(new Viewpoint("ViewpointRightSideWall3").setDescription("Right side wall, picture").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.57).setPosition(7.7,1.0,-10.5))
      .addChild(new Viewpoint("ViewpointRightSideWall4").setDescription("Right side wall, looking south west").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.6).setPosition(5.1,1.5,-10.5))
      .addChild(new Viewpoint("ViewpointFrontView").setDescription("Front view").setCenterOfRotation(5.8,0.0,-24.4).setPosition(5.8,0.0,-23.0))
      .addChild(new Viewpoint("ViewpointBehindTheAltar").setDescription("Behind the altar").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.3).setPosition(4.8,0.0,-33.0))
      .addChild(new Viewpoint("ViewpointRightTransept").setDescription("Right transept").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.3).setPosition(4.8,0.0,-33.0))
      .addChild(new Viewpoint("ViewpointLateralEntrance").setDescription("Right transept, lateral entrance").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.8).setPosition(13.8,-0.5,-36.0))
      .addChild(new Viewpoint("ViewpointLeftTransept").setDescription("Left transept").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.3).setPosition(9.8,0.0,-33.0))
      .addChild(new Viewpoint("ViewpointAltarCrucifix").setDescription("Altar, crucifix").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.1).setPosition(4.8,0.0,-33.0))
      .addChild(new Viewpoint("ViewpointSacristy").setDescription("Sacristy").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.8).setPosition(9.8,0.0,-40.5))
      .addChild(new Viewpoint("ViewpointSacristyAndBackRoom").setDescription("Sacristy interior and back room").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.5).setPosition(17.8,0.0,-45.5))
      .addChild(new Viewpoint("ViewpointNaveView").setDescription("Nave, view").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.14).setPosition(5.8,0.0,-42.5))
      .addChild(new Viewpoint("ViewpointNaveAndBalcony").setDescription("Nave and Balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.14).setPosition(5.8,0.0,-21.0))
      .addChild(new Viewpoint("ViewpointPicture").setDescription("Left side wall, picture").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(3.8,1.0,-21.4))
      .addChild(new Viewpoint("ViewpointPortrait").setDescription("Left side wall, picture, portrait of the man who commissioned the stations of the cross").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(3.2,0.85,-20.1))
      .addChild(new Viewpoint("ViewpointLeftSideWall").setDescription("Left side wall, looking north est").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.6).setPosition(5.8,1.0,-18.0))
      .addChild(new Viewpoint("ViewpointEntranceAndStair").setDescription("Entrance, stairs to tower and balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.9).setPosition(6.8,-0.8,-2.5))
      .addChild(new Viewpoint("ViewpointStairStairs").setDescription("Stairs to tower and balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(6.4,0.0,-1.5))
      .addChild(new Viewpoint("ViewpointLanding").setDescription("Landing").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-1.1).setPosition(-3.09,4.2,-0.7))
      .addChild(new Viewpoint("ViewpointStairsToBalcony").setDescription("Stairs to balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.57).setPosition(-3.09,3.0,-1.5))
      .addChild(new Viewpoint("ViewpointBalcony").setDescription("Balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.7).setPosition(2.1,4.0,-2.7))
      .addChild(new Viewpoint("ViewpointBalconyWindow").setDescription("Balcony, window").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.8).setPosition(2.1,4.0,-2.7))
      .addChild(new Viewpoint("ViewpointLeftRearBalcony").setDescription("Left rear balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-0.3).setPosition(3.0,4.0,-5.0))
      .addChild(new Viewpoint("ViewpointOrgan").setDescription("Organ").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-2.3).setPosition(2.5,4.0,-7.0))
      .addChild(new Viewpoint("ViewpointBalconyDoors").setDescription("Balcony, doors").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.2).setPosition(5.0,4.0,-5.0))
      .addChild(new Viewpoint("ViewpointTopStairs").setDescription("Top stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(4.3,4.0,-1.2))
      .addChild(new Viewpoint("ViewpointTopStairsCloser").setDescription("Top stairs to tower, closer").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.8).setPosition(2.7,4.0,-0.9))
      .addChild(new Viewpoint("ViewpointTopStairsAndBells").setDescription("Top stairs to tower and bells").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.1).setPosition(1.4,4.9,-1.0))
      .addChild(new Viewpoint("ViewpointBells").setDescription("Bells").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.9).setPosition(-0.2,5.0,-2.0))
      .addChild(new Viewpoint("ViewpointTowerBells").setDescription("Tower, Bells").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.34).setPosition(-1.4,6.0,-3.0))
      .addChild(new Viewpoint("ViewpointTowerArcs").setDescription("Tower, arcs").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(-0.3,6.5,-2.0))
      .addChild(new Viewpoint("ViewpointTowerEntrance").setDescription("Tower, entrance").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.77).setPosition(-2.2,5.2,-1.8))
      .addChild(new Viewpoint("ViewpointViewFromTheTower").setDescription("View from the tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,0.1).setPosition(-2.0,6.0,-0.3)))
    .addChild(new Group("PrototypeDeclarations")
      .addComments(" ==================== &lt;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\"'&gt; &lt;field accessType='inputOutput' appinfo='X3D content positioned at HUD offset' name='children' type='MFNode'/&gt; &lt;field accessType='inputOutput' appinfo='offset position for HUD relative to current view location, default 0 0 -5' name='screenOffset' type='SFVec3f'/&gt; &lt;field accessType='outputOnly' appinfo='HUD position update (in world coordinates) relative to original location' name='position_changed' type='SFVec3f'/&gt; &lt;field accessType='outputOnly' appinfo='HUD orientation update relative to original location' name='orientation_changed' type='SFRotation'/&gt; &lt;/ExternProtoDeclare&gt; ")
      .addComments(" ==================== ")
      .addChild(new ExternProtoDeclare("ViewpointSequencer").setName("ViewpointSequencer").setAppinfo("Sequentially binds each Viewpoint in a set of Viewpoint USE nodes, creating an automatic tour for a scene").setUrl(new String[] {"../../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"})
        .addField(new field().setName("viewpoints").setType(field.TYPE_MFNODE).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("Viewpoint USE nodes that are sequentially bound")
          .addComments(" default value NULL node, overridden by ProtoInstance "))
        .addField(new field().setName("interval").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setAppinfo("number of seconds between viewpoint shifts"))
        .addField(new field().setName("enabled").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setAppinfo("whether ViewpointSequencer is enabled or not"))
        .addField(new field().setName("set_enabled").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("whether ViewpointSequencer is enabled or not"))
        .addField(new field().setName("previous").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("bind previous Viewpoint in list"))
        .addField(new field().setName("next").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("bind next Viewpoint in list"))
        .addField(new field().setName("toggleMessage").setType(field.TYPE_MFSTRING).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setAppinfo("Select message to toggle ViewpointSequencer"))
        .addField(new field().setName("toggleMessageFontSize").setType(field.TYPE_SFFLOAT).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("Font size for toggleMessage text"))
        .addField(new field().setName("toggleMessageColor").setType(field.TYPE_SFCOLOR).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setAppinfo("Color for toggleMessage text"))
        .addField(new field().setName("traceEnabled").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setAppinfo("enable console output")))
      .addChild(new ProtoDeclare("TouchSensorSelected").setName("TouchSensorSelected").setAppinfo("TouchSensorSelected provides full TouchSensor functionality and adds output field isSelected, which only sends true events and filters out false events")
        .setProtoInterface(new ProtoInterface()
          .addField(new field().setName("description").setType(field.TYPE_SFSTRING).setAccessType(field.ACCESSTYPE_INPUTOUTPUT))
          .addField(new field().setName("enabled").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(true).setAppinfo("default value true"))
          .addField(new field().setName("metadata").setType(field.TYPE_SFNODE).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
            .addComments(" optional metadata about this node "))
          .addField(new field().setName("hitNormal_changed").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("hitPoint_changed").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("hitTexCoord_changed").setType(field.TYPE_SFVEC2F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("touchTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isActive").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isOver").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected2").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected3").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected4").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected5").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected6").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected7").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected8").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected9").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected10").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected11").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected12").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected13").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected14").setType(field.TYPE_SFCOLOR).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected15").setType(field.TYPE_SFCOLOR).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected16").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected17").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected18").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected19").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected20").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected21").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected22").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected23").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected24").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected25").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected26").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected27").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected28").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
          .addField(new field().setName("isSelected29").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY)))
        .setProtoBody(new ProtoBody()
          .addChild(new TouchSensor("TouchSensorRootNode")
            .setIS(new IS()
              .addConnect(new connect().setNodeField("description").setProtoField("description"))
              .addConnect(new connect().setNodeField("enabled").setProtoField("enabled"))
              .addConnect(new connect().setNodeField("metadata").setProtoField("metadata"))
              .addConnect(new connect().setNodeField("hitNormal_changed").setProtoField("hitNormal_changed"))
              .addConnect(new connect().setNodeField("hitPoint_changed").setProtoField("hitPoint_changed"))
              .addConnect(new connect().setNodeField("hitTexCoord_changed").setProtoField("hitTexCoord_changed"))
              .addConnect(new connect().setNodeField("touchTime").setProtoField("touchTime"))
              .addConnect(new connect().setNodeField("isActive").setProtoField("isActive"))
              .addConnect(new connect().setNodeField("isOver").setProtoField("isOver"))))
          .addChild(new BooleanFilter("BooleanFilterIsActive")
            .setIS(new IS()
              .addConnect(new connect().setNodeField("inputTrue").setProtoField("isSelected"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("BooleanFilterIsActive").setToField("set_boolean"))
          .addChild(new BooleanFilter("BooleanFilterIsActive2")
            .setIS(new IS()
              .addConnect(new connect().setNodeField("inputFalse").setProtoField("isSelected6"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("BooleanFilterIsActive2").setToField("set_boolean"))
          .addChild(new TimeSensor("Time"))
          .addChild(new PositionInterpolator("Interpolator").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.2,0.0,0.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected2"))))
          .addChild(new PositionInterpolator("Interpolator2").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,0.2}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected3"))))
          .addChild(new PositionInterpolator("Interpolator3").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,1.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected7"))))
          .addChild(new PositionInterpolator("Interpolator4").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,-1.0,0.0,0.0,-1.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected8"))))
          .addChild(new PositionInterpolator("Interpolator5").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {1.3,-1.13,-1.0,1.3,-1.13,-0.7}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected9"))))
          .addChild(new PositionInterpolator("Interpolator6").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {1.3,-1.13,-0.7,1.3,-1.13,-1.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected10"))))
          .addChild(new PositionInterpolator("Interpolator7").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,-0.6,0.0,0.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected11"))))
          .addChild(new PositionInterpolator("Interpolator8").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,-0.6}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected12"))))
          .addChild(new PositionInterpolator("Interpolator9").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,-3.0,0.0,0.0,0.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected13"))))
          .addChild(new PositionInterpolator("Interpolator10").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,-1.0,0.0,0.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected16"))))
          .addChild(new PositionInterpolator("Interpolator11").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected17"))))
          .addChild(new PositionInterpolator("Interpolator12").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,-1.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected18"))))
          .addChild(new PositionInterpolator("Interpolator13").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,-3.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected19"))))
          .addChild(new PositionInterpolator("Interpolator14").setKey(new double[] {0.0,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,-0.2,0.0,0.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected20"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("touchTime").setToNode("Time").setToField("startTime"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator2").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator3").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator4").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator5").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator6").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator7").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator8").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator9").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator10").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator11").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator12").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator13").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("Interpolator14").setToField("set_fraction"))
          .addChild(new ColorInterpolator("ColorInterpolator").setKey(new double[] {0.0,1.0}).setKeyValue(new MFColor(new double[] {0.0,0.0,0.0,1.0,1.0,1.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected14"))))
          .addChild(new ColorInterpolator("ColorInterpolator2").setKey(new double[] {0.0,1.0}).setKeyValue(new MFColor(new double[] {0.0,0.0,0.0,0.0,0.0,0.0}))
            .setIS(new IS()
              .addConnect(new connect().setNodeField("value_changed").setProtoField("isSelected15"))))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("ColorInterpolator").setToField("set_fraction"))
          .addChild(new ROUTE().setFromNode("Time").setFromField("fraction_changed").setToNode("ColorInterpolator2").setToField("set_fraction"))
          .addChild(new IntegerTrigger("IntegerIsActive").setIntegerKey(1)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected4"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive2").setIntegerKey(0)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected5"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive2").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive3").setIntegerKey(1)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected21"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive3").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive4").setIntegerKey(2)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected22"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive4").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive5").setIntegerKey(3)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected23"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive5").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive6").setIntegerKey(4)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected24"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive6").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive7").setIntegerKey(5)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected25"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive7").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive8").setIntegerKey(6)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected26"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive8").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive9").setIntegerKey(7)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected27"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive9").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive10").setIntegerKey(8)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected28"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive10").setToField("set_boolean"))
          .addChild(new IntegerTrigger("IntegerIsActive11").setIntegerKey(9)
            .setIS(new IS()
              .addConnect(new connect().setNodeField("triggerValue").setProtoField("isSelected29"))))
          .addChild(new ROUTE().setFromNode("TouchSensorRootNode").setFromField("isActive").setToNode("IntegerIsActive11").setToField("set_boolean")))))
    .addComments(" 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. ")
    .addChild(new Switch("PresentToHistorichChurch").setWhichChoice(0)
      .addComments(" PRESENT CHURCH ")
      .addComments(" Yellow Panel of the present church ")
      .addChild(new Group()
        .addComments(" 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. ")
        .addChild(new Switch("MainmenuToMainpanel").setWhichChoice(0)
          .addChild(new Group()
            .addChild(new Transform("HudContainer1")
              .addChild(new Transform().setTranslation(3.0,1.7,-5.0)
                .addChild(new Group()
                  .addChild(new TouchSensor("touchUP").setDescription("Main MenÃ¹"))
                  .addChild(new Shape()
                    .setGeometry(new Text().setString(new String[] {"Main Menu"})
                      .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0))))
                  .addChild(new Transform("MainMenuSphereLeft").setScale(1.05,1.0,2.3).setTranslation(-0.708,0.048,0.1)
                    .addChild(new Shape()
                      .setGeometry(new Sphere().setRadius(0.04))
                      .setAppearance(new Appearance()
                        .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0)))))
                  .addChild(new Transform("MainMenuSphereRight").setRotation(1.0,0.0,0.0,-0.23).setScale(0.88,1.0,1.5).setTranslation(0.589,0.039,0.1)
                    .addChild(new Shape()
                      .setGeometry(new Sphere().setRadius(0.04))
                      .setAppearance(new Appearance()
                        .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0))))))))
            .addChild(new ProximitySensor("HereIAm1").setSize(10000000.0,10000000.0,10000000.0))
            .addChild(new ROUTE().setFromNode("HereIAm1").setFromField("orientation_changed").setToNode("HudContainer1").setToField("rotation"))
            .addChild(new ROUTE().setFromNode("HereIAm1").setFromField("position_changed").setToNode("HudContainer1").setToField("translation")))
          .addChild(new Group()
            .addChild(new Transform("HudContainer2")
              .addChild(new Transform().setTranslation(0.0,0.2,-5.5)
                .addChild(new Group()
                  .addChild(new Transform().setScale(0.25,0.25,0.25).setTranslation(0.0,0.0,3.0)
                    .addComments(" Red pyramids are links to differents viewpoints. They are positioned in the small model of the church, on the yellow panel ")
                    .addChild(new Transform("RedPyramidTransform").setTranslation(0.0,0.0,-1.0)
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.6,0.1,0.5)
                        .addComments(" Replacement ")
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectNave").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Nave")))
                        .addChild(new ROUTE().setFromNode("SelectNave").setFromField("isSelected").setToNode("ViewpointFrontView").setToField("set_bind"))
                        .addComments(" Prior block start... &lt;TouchSensor DEF='touchviewpointNave' description='Nave' enabled='false'/&gt; &lt;TimeSensor DEF='timeviewpointNave' cycleInterval='1' enabled='true' loop='false'/&gt; &lt;ROUTE fromField='touchTime' fromNode='touchviewpointNave' toField='startTime' toNode='timeviewpointNave'/&gt; &lt;BooleanSequencer DEF='SequencviewpointNave' key='0 1' keyValue='true true'/&gt; &lt;ROUTE fromField='fraction_changed' fromNode='timeviewpointNave' toField='set_fraction' toNode='SequencviewpointNave'/&gt; &lt;ROUTE fromField='value_changed' fromNode='SequencviewpointNave' toField='set_bind' toNode='ViewpointFrontView'/&gt; ...prior block finish ")
                        .addChild(new Shape("RedPyramidButton")
                          .setGeometry(new IndexedFaceSet().setConvex(false).setSolid(false).setCoordIndex(new int[] {0,1,4,-1,3,4,0,-1,3,4,2,-1,2,4,1,-1,0,1,2,3,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,0.25,0.25,0.0,0.25,0.25,0.0,0.0,0.125,0.42,0.125}))))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,0.25,0.25)))))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(2.5,0.1,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectTranseptAxes").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Transept/Axes")))
                        .addChild(new ROUTE().setFromNode("SelectTranseptAxes").setFromField("isSelected").setToNode("ViewpointNaveView").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(2.9,-0.5,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectSacristy").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Sacristy")))
                        .addChild(new ROUTE().setFromNode("SelectSacristy").setFromField("isSelected").setToNode("ViewpointSacristyAndBackRoom").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(3.3,0.7,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideSouth").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside South")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideSouth").setFromField("isSelected").setToNode("ViewpointBackOutside").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.4,0.6,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideEast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside East")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideEast").setFromField("isSelected").setToNode("ViewpointTowerBack").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.4,-1.0,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideWest").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside West")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideWest").setFromField("isSelected").setToNode("ViewpointRightOutside").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(-0.22,0.0,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideNorth").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside North")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideNorth").setFromField("isSelected").setToNode("ViewpointFront").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.1,0.0,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectEntrance").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Entrance")))
                        .addChild(new ROUTE().setFromNode("SelectEntrance").setFromField("isSelected").setToNode("ViewpointFrontDoors").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.5,0.26,0.6)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectBalcony").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Balcony")))
                        .addChild(new ROUTE().setFromNode("SelectBalcony").setFromField("isSelected").setToNode("ViewpointLeftRearBalcony").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.26,0.6,0.7)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectTower").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Tower")))
                        .addChild(new ROUTE().setFromNode("SelectTower").setFromField("isSelected").setToNode("ViewpointTowerBells").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton"))))
                    .addComments(" Small models of the church on the yellow panel. One with the roof, the other without roof (249-260) ")
                    .addChild(new Transform("ChurchModelTransform").setRotation(0.0,1.0,0.0,-1.57).setScale(0.6,0.6,0.6).setTranslation(0.2,0.4,0.3)
                      .addChild(new Transform().setRotation(0.0,0.0,1.0,-1.2)
                        .addChild(new Transform().setRotation(1.0,0.0,0.0,0.0)
                          .addComments(" Switch that permits to change from the small church with roof to the one without roof ")
                          .addChild(new Switch("ChurcRoofToChurcModel").setWhichChoice(0)
                            .addChild(new Inline("ChurchRoof").setUrl(new String[] {"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"}))
                            .addChild(new Inline("ChurchModel").setUrl(new String[] {"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"}))))))
                    .addChild(new Transform("MainPanel").setTranslation(0.75,0.0,0.0)
                      .addChild(new Shape()
                        .setGeometry(new Box().setSize(6.5,3.0,0.2))
                        .setAppearance(new Appearance()
                          .setMaterial(new Material().setDiffuseColor(1.0,0.75,0.25)))))
                    .addComments(" This light is necessary when, clicking on the Lighting Button, HeadLight is turned off ")
                    .addChild(new PointLight("PanelPointLight").setAmbientIntensity(1).setLocation(0.75,0.0,1.0).setOn(false).setRadius(1.1))
                    .addComments(" First panel, or the first screen of the panel (-) ")
                    .addChild(new Transform("FirstPanel").setTranslation(0.0,0.0,0.2)
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("HidePanelText1").setTranslation(2.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton1").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel1").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel1").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NavigatingText").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Navigating"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NavigatingButton").setTranslation(-0.8,1.08,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNavigating").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Navigating")))
                          .addChild(new ROUTE().setFromNode("touchNavigating").setFromField("isSelected2").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchNavigating").setFromField("isSelected4").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchNavigating").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("LightingText").setTranslation(0.25,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Lighting"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.25)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("LightingButton").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLighting").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Lighting")))
                          .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected2").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected4").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PicturesText").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Pictures"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PicturesButton").setTranslation(-0.8,0.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPictures").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Pictures")))
                          .addChild(new ROUTE().setFromNode("touchPictures").setFromField("isSelected2").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPictures").setFromField("isSelected4").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchPictures").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("SourcesText").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Sources"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("SourcesButton").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchSources").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Sources")))
                          .addChild(new ROUTE().setFromNode("touchSources").setFromField("isSelected2").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchSources").setFromField("isSelected4").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchSources").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ModelingText").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Modeling"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Modeling").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/Modeling.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/Modeling.html"})
                          .addChild(new Transform("ModelingButton").setTranslation(-0.8,-0.52,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("HistoricCurchText").setTranslation(0.25,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Historic church"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.27)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HistoricCurchButton").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHistoricCurch").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Historic church")))
                          .addChild(new ROUTE().setFromNode("touchHistoricCurch").setFromField("isSelected2").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchHistoricCurch").setFromField("isSelected4").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchHistoricCurch").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelText1").setTranslation(-0.4,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Next Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelButton1").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNextPanel1").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Next Panel")))
                          .addChild(new ROUTE().setFromNode("touchNextPanel1").setFromField("isSelected2").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Second part of the First Panel, it appears clicking on Next Panel at the bottom () ")
                    .addChild(new Transform("FirstPanelBis")
                      .addChild(new ROUTE().setFromNode("touchNextPanel1").setFromField("isSelected3").setToNode("FirstPanelBis").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("HidePanelText2").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton2").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel2").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel2").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ChurchHistoryText").setTranslation(0.2,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Church History"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Church History").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/ChurchHistory.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/ChurchHistory.html"})
                          .addChild(new Transform("ChurchHistoryButton").setTranslation(-0.8,1.08,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("BellsSoundText").setTranslation(0.2,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Bells sound"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BellsSoundButton").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBellsSound").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Bells Sound")))
                          .addChild(new ROUTE().setFromNode("touchBellsSound").setFromField("isSelected2").setToNode("FirstPanelBis").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBellsSound").setFromField("isSelected4").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBellsSound").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBellsSound").setFromField("isSelected").setToNode("ViewpointFrontFromGround").setToField("set_bind"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("CoordinateSystemText").setTranslation(0.26,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Coordinate System"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.28)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("CoordinateSystemSphere").setTranslation(-0.8,0.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchCoordinateSystem").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Coordinate System")))
                          .addChild(new ROUTE().setFromNode("touchCoordinateSystem").setFromField("isSelected2").setToNode("FirstPanelBis").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchCoordinateSystem").setFromField("isSelected4").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchCoordinateSystem").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchCoordinateSystem").setFromField("isSelected").setToNode("ViewpointFrontFromGround").setToField("set_bind"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText1").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton1").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText2").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton2").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText3").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton3").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelText").setTranslation(-0.2,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Previous Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelButton1").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPreviousPanel1").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Previous Panel")))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel1").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel1").setFromField("isSelected2").setToNode("FirstPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Navigating Panel, it appears clicking on the Navigating button on the first panel () ")
                    .addChild(new Transform("NavigatingPanel")
                      .addChild(new ROUTE().setFromNode("touchNavigating").setFromField("isSelected3").setToNode("NavigatingPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("Note1").setTranslation(3.0,0.98,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoints"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButtonText1").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton1").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton1").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton1").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton1").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton1").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton1").setFromField("isSelected2").setToNode("NavigatingPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText3").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton3").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel3").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel3").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("FlyModeText").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Fly"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("FlyModeButton").setTranslation(-0.8,1.08,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchFlyMode").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Fly")))
                          .addChild(new ROUTE().setFromNode("touchFlyMode").setFromField("isSelected").setToNode("NavigationFly").setToField("set_bind"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("FlyModeColor").setDiffuseColor(1.0,1.0,1.0)))))
                        .addChild(new ROUTE().setFromNode("touchFlyMode").setFromField("isSelected14").setToNode("FlyModeColor").setToField("diffuseColor"))
                        .addChild(new Transform("WalkModeText").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Walk"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("WalkModeButton").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchWalkMode").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Walk")))
                          .addChild(new ROUTE().setFromNode("touchWalkMode").setFromField("isSelected15").setToNode("FlyModeColor").setToField("diffuseColor"))
                          .addChild(new ROUTE().setFromNode("touchWalkMode").setFromField("isSelected").setToNode("NavigationWalk").setToField("set_bind"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("WalkModeColor").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new ROUTE().setFromNode("touchWalkMode").setFromField("isSelected14").setToNode("WalkModeColor").setToField("diffuseColor"))
                        .addChild(new ROUTE().setFromNode("touchFlyMode").setFromField("isSelected15").setToNode("WalkModeColor").setToField("diffuseColor"))
                        .addChild(new Transform("ExamineModeText").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Examine"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ExamineModeButton").setTranslation(-0.8,0.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchExamineMode").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Examine")))
                          .addChild(new ROUTE().setFromNode("touchExamineMode").setFromField("isSelected15").setToNode("WalkModeColor").setToField("diffuseColor"))
                          .addChild(new ROUTE().setFromNode("touchExamineMode").setFromField("isSelected15").setToNode("FlyModeColor").setToField("diffuseColor"))
                          .addChild(new ROUTE().setFromNode("touchExamineMode").setFromField("isSelected").setToNode("NavigationExamine").setToField("set_bind"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("ExamineModeColor").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new ROUTE().setFromNode("touchFlyMode").setFromField("isSelected15").setToNode("ExamineModeColor").setToField("diffuseColor"))
                        .addChild(new ROUTE().setFromNode("touchWalkMode").setFromField("isSelected15").setToNode("ExamineModeColor").setToField("diffuseColor"))
                        .addChild(new ROUTE().setFromNode("touchExamineMode").setFromField("isSelected14").setToNode("ExamineModeColor").setToField("diffuseColor"))
                        .addChild(new Switch("switchTour").setWhichChoice(0)
                          .addChild(new Transform("FullGuidedTourText").setTranslation(0.2,-0.2,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Text().setString(new String[] {"Full Guided Tour"})
                                .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                          .addChild(new Transform("FullGuidedTourText2").setTranslation(0.2,-0.2,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Text().setString(new String[] {"Resume Tour"})
                                .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("FullGuidedTourButton").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new TouchSensor("touchFullGuidedTour").setDescription("Full Guided Tour"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ShortGuidedTourText").setTranslation(0.2,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Short Guided Tour"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ShortGuidedTourButton").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new TouchSensor("touchShortGuidedTour").setDescription("Short Guided Tour"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("SacredFurnishingTourText").setTranslation(0.5,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Sacred Furnishing Tour"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("SacredFurnishingTourButton").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new TouchSensor("touchSacredFurnishingTour").setDescription("Sacred Furnishing Tour"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelText2").setTranslation(-0.4,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Next Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelButton2").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNextPanel2").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Next Panel")))
                          .addChild(new ROUTE().setFromNode("touchNextPanel2").setFromField("isSelected2").setToNode("NavigatingPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Second part of the Navigating Panel, it appears clicking on Next Panel at the bottom () ")
                    .addChild(new Transform("NavigatingPanelBis")
                      .addChild(new ROUTE().setFromNode("touchNextPanel2").setFromField("isSelected3").setToNode("NavigatingPanelBis").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText2").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton2").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton2").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton2").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton2").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton2").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton2").setFromField("isSelected2").setToNode("NavigatingPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText4").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton4").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel4").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel4").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note2").setTranslation(3.0,0.98,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("WeyPointInterpolatorTourText").setTranslation(0.27,1.1,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Wey Point Interpolator","Tour"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.24)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("WeyPointInterpolatorTourButton").setTranslation(-0.8,1.08,0.0)
                          .addChild(new TouchSensor("touchWeyPointInterpolatorTour").setDescription("Tour using WayPointInterpolator"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText4").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton4").setTranslation(-0.8,0.68,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText5").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Emptybutton5").setTranslation(-0.8,0.28,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText6").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton6").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText7").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Emptyutton7").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText8").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton8").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelText2").setTranslation(-0.3,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Previous Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelButton2").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPreviousPanel2").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Previous Panel")))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel2").setFromField("isSelected3").setToNode("NavigatingPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel2").setFromField("isSelected2").setToNode("NavigatingPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Lighting Panel, it appears clicking on the Lighting button on the First panel () ")
                    .addChild(new Transform("LightingPanel")
                      .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected3").setToNode("LightingPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText3").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton3").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton3").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton3").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton3").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton3").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton3").setFromField("isSelected2").setToNode("LightingPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText6").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton6").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel6").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel6").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note4").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ExteriorNavigationText").setTranslation(0.17,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior navigation","(Main light on)"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.25)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ExteriorNavigationButton").setTranslation(-0.8,1.08,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchExteriorNavigation").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Exterior navigation (Main light on)")))
                          .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected6").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("ExteriorNavigationColor").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light1Text").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light1"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light1Button").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight1").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 1")))
                          .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light1Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light2Text").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light2"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light2button").setTranslation(-0.8,0.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight2").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 2")))
                          .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light2Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light3Text").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light3"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light3Button").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight3").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 3")))
                          .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light3Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light4Text").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light4"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light4Button").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight4").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 4")))
                          .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light4Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light5Text").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light5"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light5Button").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight5").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 5")))
                          .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light5Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelText3").setTranslation(-0.4,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Next Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPaneleButton3").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNextPanel3").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Next Panel")))
                          .addChild(new ROUTE().setFromNode("touchNextPanel3").setFromField("isSelected2").setToNode("LightingPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Second part of the Lighting Panel, it appears clicking on Next Panel at the bottom () ")
                    .addChild(new Transform("LightingPanelBis")
                      .addChild(new ROUTE().setFromNode("touchNextPanel3").setFromField("isSelected3").setToNode("LightingPanelBis").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText4").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton4").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton4").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton4").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton4").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton4").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton4").setFromField("isSelected2").setToNode("LightingPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText7").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton7").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel7").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel7").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note5").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light6Text").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light6"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light6Button").setTranslation(-0.8,1.08,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight6").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 6")))
                          .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light6Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light7Text").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light7"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light7Button").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight7").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 7")))
                          .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light7Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light8Text").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light8"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light8Button").setTranslation(-0.8,0.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight8").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 8")))
                          .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light8Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light9Text").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light9"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light9Button").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight9").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 9")))
                          .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light9Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light10Text").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Light10"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Light10Button").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchLight10").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Light 10")))
                          .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected6").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("Light10Color").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText13").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton13").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelText3").setTranslation(0.0,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Previous Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelButton3").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPreviousPanel3").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Previous Panel")))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel3").setFromField("isSelected3").setToNode("LightingPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel3").setFromField("isSelected2").setToNode("LightingPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" The following routes change color to buttons of the lighing panel ")
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected14").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected14").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected14").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected14").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected14").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected14").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected14").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected14").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected14").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected14").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected14").setToNode("Light10Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light1Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("ExteriorNavigationColor").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light2Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light4Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light5Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light6Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light7Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light8Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light9Color").setToField("diffuseColor"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected15").setToNode("Light3Color").setToField("diffuseColor"))
                    .addComments(" The following blue spheres represent the position of the sources of light (pointlights or spotlights) in the model ")
                    .addChild(new Transform("SourcesOfLightSpheres")
                      .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected17").setToNode("SourcesOfLightSpheres").setToField("translation"))
                      .addChild(new ROUTE().setFromNode("touchBackButton3").setFromField("isSelected18").setToNode("SourcesOfLightSpheres").setToField("translation"))
                      .addChild(new ROUTE().setFromNode("touchBackButton4").setFromField("isSelected18").setToNode("SourcesOfLightSpheres").setToField("translation"))
                      .addChild(new Transform("SourcesOfLightFirstCombination").setTranslation(0.0,0.0,-1.0)
                        .addChild(new Transform("ThreeWindowsn").setTranslation(0.66,0.31,0.5)
                          .addChild(new Transform("SourcesOfLightSecondCombination")
                            .addChild(new Transform("BlueSphere1")
                              .addChild(new Shape()
                                .setGeometry(new Sphere().setRadius(0.05))
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                            .addChild(new Transform("BlueSphere2").setTranslation(0.54,0.0,0.0)
                              .addChild(new Shape()
                                .setGeometry(new Sphere().setRadius(0.05))
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                            .addChild(new Transform("BlueSphere3").setTranslation(1.08,0.0,0.0)
                              .addChild(new Shape()
                                .setGeometry(new Sphere().setRadius(0.05))
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0))))))
                          .addChild(new Transform("BlueSphere4").setTranslation(0.0,-0.5,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere5").setTranslation(0.55,-0.5,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere6").setTranslation(1.1,-0.5,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))))
                      .addChild(new Transform("SourcesOfLightThirdCombination").setTranslation(0.0,0.0,-1.0)
                        .addChild(new Transform("SourcesOfLightFourthCombination").setTranslation(0.66,0.31,0.5)
                          .addChild(new Transform("BlueSphere7")
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere8").setTranslation(0.54,0.0,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere9").setTranslation(1.08,0.0,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere10").setTranslation(1.6,0.38,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))))
                      .addChild(new Transform("SourcesOfLightFifthCombination").setTranslation(0.0,0.0,-1.0)
                        .addChild(new Transform("SourcesOfLightSixthCombination").setTranslation(0.9,0.14,0.5)
                          .addChild(new Transform("BlueSphere11")
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere12").setTranslation(0.69,0.0,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere13").setTranslation(1.38,0.0,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere14").setTranslation(1.35,0.38,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0)))))
                          .addChild(new Transform("BlueSphere15").setTranslation(1.42,-0.38,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.05))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0))))))))
                    .addComments(" The following routes change the blu spheres representing the souurces of light ")
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected10").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected16").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected7").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected7").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected16").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected17").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected16").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected17").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected16").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected17").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected16").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected17").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected16").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected17").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected16").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected17").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected16").setToNode("SourcesOfLightFirstCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("SourcesOfLightFifthCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("SourcesOfLightThirdCombination").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected17").setToNode("SourcesOfLightSecondCombination").setToField("translation"))
                    .addComments(" Short descriptions of the various light. For example: Light 3 = Morning Beam. They appear in bottom right of the model. ")
                    .addChild(new Transform("LightDescriptions").setTranslation(1.3,-1.13,-0.7)
                      .addChild(new ROUTE().setFromNode("touchLighting").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                      .addChild(new ROUTE().setFromNode("touchBackButton3").setFromField("isSelected10").setToNode("LightDescriptions").setToField("translation"))
                      .addChild(new ROUTE().setFromNode("touchBackButton4").setFromField("isSelected10").setToNode("LightDescriptions").setToField("translation"))
                      .addChild(new Transform("Light1Description")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Simulating sun light (SpotLights)"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))
                        .addChild(new Transform("NoteB").setTranslation(0.9,-0.22,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Blue spheres represent sources of light"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                      .addChild(new Transform("Light2Description")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"No Lights"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                      .addChild(new Transform("Light3Description")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Morning Beam"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))
                        .addChild(new Transform().setUSE("NoteB")))
                      .addChild(new Transform("Light4Description")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Morning Light"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))
                        .addChild(new Transform().setUSE("NoteB")))
                      .addChild(new Transform("Light5Description")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Artificial light (PointLights from chandeliers)"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))
                        .addChild(new Transform().setUSE("NoteB")))
                      .addChild(new Transform("Light6Description")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Artificial light (PointLights from chandeliers)"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))
                        .addChild(new Transform().setUSE("NoteB")))
                      .addChild(new Transform("Light78910Description")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Simulating sun light (PointLights)"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))
                        .addChild(new Transform().setUSE("NoteB")))
                      .addChild(new Transform("ExteriorNavigationDescription")
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Headlight on"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))
                        .addChild(new Transform().setUSE("NoteB"))))
                    .addComments(" The following routes change the text that describe each light in the lighting panel ")
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected7").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected8").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected7").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected8").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected7").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected8").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected7").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected8").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected7").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected8").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected7").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected8").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected7").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected8").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected7").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected7").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected7").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected7").setToNode("Light78910Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("ExteriorNavigationDescription").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("Light1Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("Light3Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("Light4Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("Light5Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("Light2Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected8").setToNode("Light6Description").setToField("translation"))
                    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected9").setToNode("LightDescriptions").setToField("translation"))
                    .addComments(" Pictures Panel, it appears clicking on the Pictures button on the First panel () ")
                    .addChild(new Transform("PicturesPanel")
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText5").setTranslation(2.0,1.2,0.0)
                          .addChild(new ROUTE().setFromNode("touchPictures").setFromField("isSelected3").setToNode("PicturesPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton5").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton5").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton5").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton5").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton5").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton5").setFromField("isSelected2").setToNode("PicturesPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText8").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton8").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel8").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel8").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note6").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("FacadePicturesText").setTranslation(-0.27,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Facade"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Facade Pictures").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Facade.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Facade.html"})
                          .addChild(new Transform("FacadePicturesButton").setTranslation(-0.8,1.08,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorLeftPicturesText").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior left"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior left").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/ExteriorLeft.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/ExteriorLeft.html"})
                          .addChild(new Transform("ExteriorLeftPicturesButton").setTranslation(-0.8,0.68,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorRightPicturesText").setTranslation(0.08,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior right"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior right").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/ExteriorRight.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/ExteriorRight.html"})
                          .addChild(new Transform("ExteriorRightPicturesButton").setTranslation(-0.8,0.28,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorBackPicturesText").setTranslation(0.07,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior back").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/ExteriorBack.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/ExteriorBack.html"})
                          .addChild(new Transform("ExteriorBackPicturesButton").setTranslation(-0.8,-0.12,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("EntrancePicturesText").setTranslation(-0.16,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Entrance"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Entrance").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Entrance.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Entrance.html"})
                          .addChild(new Transform("EntrancePicturesButton").setTranslation(-0.8,-0.52,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("NavePicturesText").setTranslation(-0.34,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Nave"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Nave").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Nave.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Nave.html"})
                          .addChild(new Transform("NavePicturesButton").setTranslation(-0.8,-0.92,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("NextPanelText4").setTranslation(-0.4,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Next Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelButton4").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNextPanel4").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Next Panel")))
                          .addChild(new ROUTE().setFromNode("touchNextPanel4").setFromField("isSelected2").setToNode("PicturesPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Second part of the Pictures Panel, it appears clicking on Next Panel at the bottom () ")
                    .addChild(new Transform("PicturesPanelBis")
                      .addChild(new ROUTE().setFromNode("touchNextPanel4").setFromField("isSelected3").setToNode("PicturesPanelBis").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText6").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton6").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton6").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton6").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton6").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton6").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton6").setFromField("isSelected2").setToNode("PicturesPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText9").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton9").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel9").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel9").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note7").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TranseptAndAxesPicturesText").setTranslation(0.11,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Transept and axes"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Transept and axes").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/TranseptAxes.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/TranseptAxes.html"})
                          .addChild(new Transform("TranseptAndAxesPicturesButton").setTranslation(-0.8,1.08,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("SacristyPicturesText").setTranslation(-0.2,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Sacristy"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Sacristy").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Sacristy.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Sacristy.html"})
                          .addChild(new Transform("SacristyPicturesButton").setTranslation(-0.8,0.68,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("BalconyPicturesText").setTranslation(-0.2,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Balcony"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Balcony").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Balcony.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Balcony.html"})
                          .addChild(new Transform("BalconyPicturesButton").setTranslation(-0.8,0.28,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("TowerPicturesText").setTranslation(-0.28,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Tower"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Tower").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Tower.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Tower.html"})
                          .addChild(new Transform("TowerPicturesButton").setTranslation(-0.8,-0.12,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("FurnishingPicturesText").setTranslation(-0.04,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Furnishing"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Furnishing").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Furnishing.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Furnishing.html"})
                          .addChild(new Transform("FurnishingPicturesButton").setTranslation(-0.8,-0.52,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("DecorationsPicturesText").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Decorations"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Decorations").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pictures/Decorations.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pictures/Decorations.html"})
                          .addChild(new Transform("DecorationsPicturesButton").setTranslation(-0.8,-0.92,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("PreviousPanelText4").setTranslation(0.0,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Previous Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelButton4").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPreviousPanel4").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Previous Panel")))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel4").setFromField("isSelected3").setToNode("PicturesPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel4").setFromField("isSelected2").setToNode("PicturesPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Sources Panel, it appears clicking on the Sources button on the First panel () ")
                    .addChild(new Transform("SourcesPanel")
                      .addChild(new ROUTE().setFromNode("touchSources").setFromField("isSelected3").setToNode("SourcesPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText7").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton7").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton7").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton7").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton7").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton7").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton7").setFromField("isSelected2").setToNode("SourcesPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText10").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton10").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel10").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel10").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note8").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("FacadeSourcesText").setTranslation(-0.27,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Facade"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Facade").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Facade.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Facade.html"})
                          .addChild(new Transform("FacadeSourcesButton").setTranslation(-0.8,1.08,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorLeftSourcesText").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior left"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior left").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/ExteriorLeft.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/ExteriorLeft.html"})
                          .addChild(new Transform("ExteriorLeftSourcesButton").setTranslation(-0.8,0.68,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorRightSourcesText").setTranslation(0.08,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior right"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior right").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/ExteriorRight.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/ExteriorRight.html"})
                          .addChild(new Transform("ExteriorRightSourcesButton").setTranslation(-0.8,0.28,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorBackSourcesText").setTranslation(0.07,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior back").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/ExteriorBack.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/ExteriorBack.html"})
                          .addChild(new Transform("ExteriorBackSourcesButton").setTranslation(-0.8,-0.12,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("EntranceSourcesText").setTranslation(-0.16,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Entrance"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Entrance").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Entrance.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Entrance.html"})
                          .addChild(new Transform("EntranceSourcesButton").setTranslation(-0.8,-0.52,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("NaveSourcesText").setTranslation(-0.34,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Nave"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Nave").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Nave.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Nave.html"})
                          .addChild(new Transform("NaveSourcesButton").setTranslation(-0.8,-0.92,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("NextPanelText5").setTranslation(-0.4,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Next Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelButton5").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNextPanel5").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Next Panel")))
                          .addChild(new ROUTE().setFromNode("touchNextPanel5").setFromField("isSelected2").setToNode("SourcesPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Second part of the Sources Panel, it appears clicking on Next Panel at the bottom () ")
                    .addChild(new Transform("SourcesPanelBis")
                      .addChild(new ROUTE().setFromNode("touchNextPanel5").setFromField("isSelected3").setToNode("SourcesPanelBis").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText8").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton8").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton8").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton8").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton8").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton8").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton8").setFromField("isSelected2").setToNode("SourcesPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText11").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton11").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel11").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel11").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note9").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TranseptAndAxesSourcesText").setTranslation(0.11,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Transept and axes"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Transept and axes").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/TranseptAxes.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/TranseptAxes.html"})
                          .addChild(new Transform("TranseptAndAxesSourcesButton").setTranslation(-0.8,1.08,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("SacristySourcesText").setTranslation(-0.2,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Sacristy"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Sacristy").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Sacristy.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Sacristy.html"})
                          .addChild(new Transform("SacristySourcesButton").setTranslation(-0.8,0.68,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("BalconySourcesText").setTranslation(-0.2,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Balcony"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Balcony").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Balcony.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Balcony.html"})
                          .addChild(new Transform("BalconySourcesButton").setTranslation(-0.8,0.28,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("TowerSourcesText").setTranslation(-0.28,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Tower"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Tower").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Tower.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Tower.html"})
                          .addChild(new Transform("TowerSourcesButton").setTranslation(-0.8,-0.12,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("FurnishingSourcesText").setTranslation(-0.04,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Furnishing"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Furnishing").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Furnishing.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Furnishing.html"})
                          .addChild(new Transform("FurnishingSourcesButton").setTranslation(-0.8,-0.52,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("DecorationsSourcesText").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Decorations"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Decorations").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/sources/Decorations.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/sources/Decorations.html"})
                          .addChild(new Transform("DecorationsSourcesButton").setTranslation(-0.8,-0.92,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("PreviousPanelText5").setTranslation(0.0,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Previous Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelButton5").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPreviousPanel5").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Previous Panel")))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel5").setFromField("isSelected3").setToNode("SourcesPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel5").setFromField("isSelected2").setToNode("SourcesPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Historic Church Panel, it appears clicking on the Historic Church button on the First panel () ")
                    .addChild(new Transform("HistoricChurchPanel")
                      .addChild(new ROUTE().setFromNode("touchHistoricCurch").setFromField("isSelected3").setToNode("HistoricChurchPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText9").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton9").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton9").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton9").setFromField("isSelected3").setToNode("FirstPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton9").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton9").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton9").setFromField("isSelected2").setToNode("HistoricChurchPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText5").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton5").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel5").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel5").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note3").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TodayText").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Today"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TodayButton").setTranslation(-0.8,1.08,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0)))))
                        .addChild(new Transform("Mid19thCenturyText").setTranslation(0.3,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Mid 19th Century"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Mid19thCenturyButton").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchMid19thCentury").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Mid 19th Century")))
                          .addChild(new ROUTE().setFromNode("touchMid19thCentury").setFromField("isSelected4").setToNode("PresentToHistorichChurch").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchMid19thCentury").setFromField("isSelected").setToNode("NavigationFly").setToField("headlight"))
                          .addChild(new ROUTE().setFromNode("touchMid19thCentury").setFromField("isSelected6").setToNode("PanelPointLight").setToField("on"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText9").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton9").setTranslation(-0.8,0.28,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText10").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton10").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText11").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton11").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText12").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton12").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Bells Sound Panel, it appears clicking on the Bells Sound button on the First panel (). It brings you in front of bells ")
                    .addChild(new Transform("BellsSoundPanel")
                      .addChild(new ROUTE().setFromNode("touchBellsSound").setFromField("isSelected3").setToNode("BellsSoundPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText10").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton10").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton10").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton10").setFromField("isSelected3").setToNode("FirstPanelBis").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton10").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton10").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton10").setFromField("isSelected2").setToNode("BellsSoundPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText12").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton12").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel12").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel12").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note10").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note11").setTranslation(3.0,-1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Green references take you in front of bells"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TextBellsSound").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Click on bells in the main","model to start animation","and sound"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Green pyramids are links to viewpoints in front of bells. They are positioned in the small model of the church (only in the Bells Sound Panel), on the yellow panel ")
                    .addChild(new Transform("GreenPyramidTransform").setTranslation(0.0,0.0,-1.0)
                      .addChild(new ROUTE().setFromNode("touchBellsSound").setFromField("isSelected16").setToNode("GreenPyramidTransform").setToField("translation"))
                      .addChild(new ROUTE().setFromNode("touchBackButton10").setFromField("isSelected18").setToNode("GreenPyramidTransform").setToField("translation"))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(-0.22,0.0,0.51)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectBellsFromGround").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Bells From Ground")))
                        .addChild(new ROUTE().setFromNode("SelectBellsFromGround").setFromField("isSelected").setToNode("ViewpointFrontFromGround").setToField("set_bind"))
                        .addChild(new Shape("GreenPyramidButton")
                          .setGeometry(new IndexedFaceSet().setConvex(false).setSolid(false).setCoordIndex(new int[] {0,1,4,-1,3,4,0,-1,3,4,2,-1,2,4,1,-1,0,1,2,3,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,0.25,0.25,0.0,0.25,0.25,0.0,0.0,0.125,0.42,0.125}))))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.235,0.698,0.141)))))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.26,0.6,0.71)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectBellsFromTower").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Bells From Tower")))
                        .addChild(new ROUTE().setFromNode("SelectBellsFromTower").setFromField("isSelected").setToNode("ViewpointTowerBells").setToField("set_bind"))
                        .addChild(new Shape().setUSE("GreenPyramidButton"))))
                    .addChild(new Transform("CoordinateSystemPanel")
                      .addChild(new ROUTE().setFromNode("touchCoordinateSystem").setFromField("isSelected3").setToNode("CoordinateSystemPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText11").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton11").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton11").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton11").setFromField("isSelected3").setToNode("FirstPanelBis").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton11").setFromField("isSelected5").setToNode("ChurcRoofToChurcModel").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton11").setFromField("isSelected18").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton11").setFromField("isSelected2").setToNode("CoordinateSystemPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText13").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton13").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel13").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel13").setFromField("isSelected5").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note12").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note13").setTranslation(3.0,-1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Green references take you in front of facade"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TextCoordinateSystem").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Click on left facade in the","main model to view the","center of coordinate system"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addChild(new Transform("GreenPyramidTransform2").setTranslation(0.0,0.0,-1.0)
                      .addChild(new ROUTE().setFromNode("touchCoordinateSystem").setFromField("isSelected16").setToNode("GreenPyramidTransform2").setToField("translation"))
                      .addChild(new ROUTE().setFromNode("touchBackButton11").setFromField("isSelected18").setToNode("GreenPyramidTransform2").setToField("translation"))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(-0.22,0.0,0.51)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectCoordinateSystemFromGround").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("CoordinateSystem From Ground")))
                        .addChild(new ROUTE().setFromNode("SelectCoordinateSystemFromGround").setFromField("isSelected").setToNode("ViewpointFrontFromGround").setToField("set_bind"))
                        .addChild(new Shape().setUSE("GreenPyramidButton"))))))))
            .addChild(new ProximitySensor("HereIAm2").setSize(10000000.0,10000000.0,10000000.0))
            .addChild(new ROUTE().setFromNode("HereIAm2").setFromField("orientation_changed").setToNode("HudContainer2").setToField("rotation"))
            .addChild(new ROUTE().setFromNode("HereIAm2").setFromField("position_changed").setToNode("HudContainer2").setToField("translation")))
          .addChild(new Group()
            .addChild(new Transform("HudContainer3")
              .addChild(new Transform().setTranslation(3.0,1.7,-5.0)
                .addChild(new Group()
                  .addChild(new TouchSensor("touchStopTour").setDescription("Pause Tour"))
                  .addChild(new Shape()
                    .setGeometry(new Text().setString(new String[] {"Pause Tour"})
                      .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0))))
                  .addChild(new Transform("StopTourSphereLeft").setScale(1.05,1.0,2.3).setTranslation(-0.708,0.048,0.1)
                    .addChild(new Shape()
                      .setGeometry(new Sphere().setRadius(0.04))
                      .setAppearance(new Appearance()
                        .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0)))))
                  .addChild(new Transform("StopTourSphereRight").setRotation(1.0,0.0,0.0,-0.23).setScale(0.88,1.0,1.5).setTranslation(0.589,0.039,0.1)
                    .addChild(new Shape()
                      .setGeometry(new Sphere().setRadius(0.04))
                      .setAppearance(new Appearance()
                        .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0))))))))
            .addChild(new ProximitySensor("HereIAm3").setSize(10000000.0,10000000.0,10000000.0))
            .addChild(new ROUTE().setFromNode("HereIAm3").setFromField("orientation_changed").setToNode("HudContainer3").setToField("rotation"))
            .addChild(new ROUTE().setFromNode("HereIAm3").setFromField("position_changed").setToNode("HudContainer3").setToField("translation"))))
        .addChild(new TimeSensor("timeUP"))
        .addChild(new ROUTE().setFromNode("touchUP").setFromField("touchTime").setToNode("timeUP").setToField("startTime"))
        .addChild(new IntegerSequencer("SequencUP").setKey(new double[] {0.0,1.0}).setKeyValue(new int[] {0,1}))
        .addChild(new ROUTE().setFromNode("timeUP").setFromField("fraction_changed").setToNode("SequencUP").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("SequencUP").setFromField("value_changed").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
        .addComments(" Model of the present church ")
        .addChild(new Inline("Church").setUrl(new String[] {"Church.x3d","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Church.x3d","Church.wrl","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Church.wrl"})))
      .addComments(" HISTORIC CHURCH ")
      .addComments(" Yellow Panel of the historic church ")
      .addChild(new Group()
        .addComments(" Blue small pyramids are links to the past documentation. They are positioned in the small model of the church, on the yellow panel, if requested ")
        .addChild(new Transform("BlueSmallPyramidTransform").setTranslation(0.0,-3.0,0.0)
          .addChild(new Transform().setTranslation(4.0,0.0,-0.6)
            .addChild(new Anchor().setDescription("Exterior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Exterior.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Exterior.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(0.0,-0.5,6.0)
                .addChild(new Shape("BlueSmallPyramidButton")
                  .setGeometry(new IndexedFaceSet().setConvex(false).setSolid(false).setCoordIndex(new int[] {0,1,4,-1,3,4,0,-1,3,4,2,-1,2,4,1,-1,0,1,2,3,-1})
                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,0.25,0.25,0.0,0.25,0.25,0.0,0.0,0.125,0.42,0.125}))))
                  .setAppearance(new Appearance()
                    .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0))))))
            .addChild(new Anchor().setDescription("Exterior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Exterior.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Exterior.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(-9.0,0.5,-8.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Interior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Interior.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Interior.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(2.0,-0.4,-11.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Furnishing").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Furnishing.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Furnishing.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(2.0,-0.4,-26.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Baptistery").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Baptistery.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Baptistery.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(-8.0,-0.4,-26.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Sacristy").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Sacristy.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Sacristy.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(11.0,-0.4,-26.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Floor Plan").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/FloorPlan.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/FloorPlan.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(8.0,-0.5,6.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Wall Decoration").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/WallDecoration.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/WallDecoration.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(-1.4,-0.4,-18.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Balcony").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Balcony.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Balcony.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(3.5,3.0,-2.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))
            .addChild(new Anchor().setDescription("Tower Plan").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Tower.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Tower.html"})
              .addChild(new Transform().setScale(0.4,0.4,0.4).setTranslation(-6.2,6.0,-1.0)
                .addChild(new Shape().setUSE("BlueSmallPyramidButton"))))))
        .addComments(" Here strts a 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 yellow panel and everything on it , the second is the writing 'Main menu' in the top right of the screen (when the panel is hidden). ")
        .addChild(new Switch("MainmenuToMainPanelPast").setWhichChoice(0)
          .addChild(new Group()
            .addChild(new Transform("HudContainer5")
              .addChild(new Transform().setTranslation(0.0,0.2,-5.5)
                .addChild(new Group()
                  .addComments(" Red pyramids are links to differents viewpoints. They are positioned in the small model of the church, on the yellow panel ")
                  .addChild(new Transform().setScale(0.25,0.25,0.25).setTranslation(0.0,0.0,3.0)
                    .addComments(" Red pyramids are links to differents viewpoints. They are positioned in the small model of the church, on the yellow panel ")
                    .addChild(new Transform("RedPyramidTransformPast")
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.6,0.1,0.5)
                        .addComments(" Replacement ")
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectNavePast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Nave")))
                        .addChild(new ROUTE().setFromNode("SelectNavePast").setFromField("isSelected").setToNode("ViewpointFrontView").setToField("set_bind"))
                        .addComments(" Prior block start... &lt;TouchSensor DEF='touchviewpointNave' description='Nave' enabled='false'/&gt; &lt;TimeSensor DEF='timeviewpointNave' cycleInterval='1' enabled='true' loop='false'/&gt; &lt;ROUTE fromField='touchTime' fromNode='touchviewpointNave' toField='startTime' toNode='timeviewpointNave'/&gt; &lt;BooleanSequencer DEF='SequencviewpointNave' key='0 1' keyValue='true true'/&gt; &lt;ROUTE fromField='fraction_changed' fromNode='timeviewpointNave' toField='set_fraction' toNode='SequencviewpointNave'/&gt; &lt;ROUTE fromField='value_changed' fromNode='SequencviewpointNave' toField='set_bind' toNode='ViewpointFrontView'/&gt; ...prior block finish ")
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(2.5,0.1,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectTranseptAxesPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Transept/Axes")))
                        .addChild(new ROUTE().setFromNode("SelectTranseptAxesPast").setFromField("isSelected").setToNode("ViewpointNaveView").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(2.9,-0.5,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectSacristyPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Sacristy")))
                        .addChild(new ROUTE().setFromNode("SelectSacristyPast").setFromField("isSelected").setToNode("ViewpointSacristyAndBackRoom").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(3.3,0.7,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideSouthPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside South")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideSouthPast").setFromField("isSelected").setToNode("ViewpointBackOutside").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.4,0.6,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideEastPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside East")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideEastPast").setFromField("isSelected").setToNode("ViewpointTowerBack").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.4,-1.0,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideWestPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside West")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideWestPast").setFromField("isSelected").setToNode("ViewpointRightOutside").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(-0.22,0.0,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectOutsideNorthPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Outside North")))
                        .addChild(new ROUTE().setFromNode("SelectOutsideNorthPast").setFromField("isSelected").setToNode("ViewpointFront").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.1,0.0,0.5)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectEntrancePast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Entrance")))
                        .addChild(new ROUTE().setFromNode("SelectEntrancePast").setFromField("isSelected").setToNode("ViewpointFrontDoors").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.5,0.26,0.6)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectBalconyPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Balcony")))
                        .addChild(new ROUTE().setFromNode("SelectBalconyPast").setFromField("isSelected").setToNode("ViewpointLeftRearBalcony").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton")))
                      .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.26,0.6,0.7)
                        .addChild(new ProtoInstance("TouchSensorSelected", "SelectTowerPast").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Tower")))
                        .addChild(new ROUTE().setFromNode("SelectTowerPast").setFromField("isSelected").setToNode("ViewpointTowerBells").setToField("set_bind"))
                        .addChild(new Shape().setUSE("RedPyramidButton"))))
                    .addComments(" Blue big pyramids are links to the past documentation. They are positioned in the main model of the church, if requested. ")
                    .addChild(new Transform("BlueBigPyramidTransform").setTranslation(0.0,0.0,-0.6)
                      .addChild(new Anchor().setDescription("Exterior front").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/ExteriorFront.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/ExteriorFront.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.6,0.1,0.5)
                          .addChild(new Shape("BlueBigPyramidButton")
                            .setGeometry(new IndexedFaceSet().setConvex(false).setSolid(false).setCoordIndex(new int[] {0,1,4,-1,3,4,0,-1,3,4,2,-1,2,4,1,-1,0,1,2,3,-1})
                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,0.25,0.25,0.0,0.25,0.25,0.0,0.0,0.125,0.42,0.125}))))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0))))))
                      .addChild(new Anchor().setDescription("Interior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Interior.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Interior.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.0,0.1,0.5)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Sacristy").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Sacristy.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Sacristy.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.8,-0.4,0.5)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Baptistery").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Baptistery.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Baptistery.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.7,0.5,0.5)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Wall decorations").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/WallDecorations.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/WallDecorations.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.2,0.3,0.55)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Exterior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/ExteriorFront.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Exterior.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.1,0.6,0.5)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Exterior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Exterior.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Exterior.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(-0.07,0.3,0.5)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Furnishing").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Furnishing.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Furnishing.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(1.75,0.1,0.5)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Floor Plan").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/FloorPlan.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/FloorPlan.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.5,-0.5,0.5)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Balcony").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation//pastDocumentation/Balcony.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation//pastDocumentation/Balcony.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.32,0.05,0.6)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Anchor().setDescription("Tower").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation//pastDocumentation/Tower.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation//pastDocumentation/Tower.html"})
                        .addChild(new Transform().setScale(0.3,0.3,0.3).setTranslation(0.32,0.5,0.7)
                          .addChild(new Shape().setUSE("BlueBigPyramidButton"))))
                      .addChild(new Transform("Note14").setTranslation(1.6,-1.3,0.2)
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Blue references open a link to the sources of the reconstruction"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                      .addChild(new Transform("HidePanelLinksText").setTranslation(0.28,-1.05,0.2)
                        .addChild(new Shape()
                          .setGeometry(new Text().setString(new String[] {"Hide Panel links"})
                            .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.27)))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                      .addChild(new Transform("HidePanelLinksButton").setTranslation(-0.5,-1.0,0.1)
                        .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanelLinks").setContainerField("children")
                          .addFieldValue(new fieldValue().setName("description").setValue("Hide Panel links")))
                        .addChild(new ROUTE().setFromNode("touchHidePanelLinks").setFromField("isSelected12").setToNode("BlueBigPyramidTransform").setToField("translation"))
                        .addChild(new ROUTE().setFromNode("touchHidePanelLinks").setFromField("isSelected19").setToNode("BlueSmallPyramidTransform").setToField("translation"))
                        .addChild(new Shape()
                          .setGeometry(new Sphere().setRadius(0.1))
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                    .addChild(new Transform("ChurchModelTransformPast").setRotation(0.0,1.0,0.0,-1.57).setScale(0.6,0.6,0.6).setTranslation(0.2,0.4,0.3)
                      .addChild(new Transform().setRotation(0.0,0.0,1.0,-1.2)
                        .addChild(new Transform().setRotation(1.0,0.0,0.0,0.0)
                          .addChild(new Switch("Century19thModelToCentury19thModel2").setWhichChoice(0)
                            .addChild(new Inline("Century19thModel").setUrl(new String[] {"Century19thModel.x3d","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Century19thModel.x3d","Century19thModel.wrl","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Altar.wrl"}))
                            .addChild(new Inline("Century19thModel2").setUrl(new String[] {"Century19thModel2.x3d","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Century19thModel2.x3d","Century19thModel.wrl","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Century19thModel.wrl"}))))))
                    .addChild(new Transform("MainPanelPast").setTranslation(0.75,0.0,0.0)
                      .addChild(new Shape()
                        .setGeometry(new Box().setSize(6.5,3.0,0.2))
                        .setAppearance(new Appearance()
                          .setMaterial(new Material().setDiffuseColor(1.0,0.75,0.25)))))
                    .addChild(new Transform("FirstPanelPast")
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("HidePanelText14").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton14").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel14").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel14").setFromField("isSelected4").setToNode("MainmenuToMainPanelPast").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NavigatingTextPast").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Navigating"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NavigatingButtonPast").setTranslation(-0.8,1.08,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNavigatingPast").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Navigating")))
                          .addChild(new ROUTE().setFromNode("touchNavigatingPast").setFromField("isSelected16").setToNode("RedPyramidTransform").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchNavigatingPast").setFromField("isSelected2").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchNavigatingPast").setFromField("isSelected16").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchNavigatingPast").setFromField("isSelected5").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PresentAndHistoricChurchText").setTranslation(-0.56,0.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Present and historic church"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_BEGIN_BEGIN).setSize(0.25)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PresentAndHistoricChurchButton").setTranslation(-0.8,0.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPresentAndHistoricChurch").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Present and historic church")))
                          .addChild(new ROUTE().setFromNode("touchPresentAndHistoricChurch").setFromField("isSelected2").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPresentAndHistoricChurch").setFromField("isSelected5").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchPresentAndHistoricChurch").setFromField("isSelected11").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PastdocumentationText").setTranslation(-0.151,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Past documentation"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PastDocumentationButton").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPastDocumentation").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Past documentation")))
                          .addChild(new ROUTE().setFromNode("touchPastDocumentation").setFromField("isSelected2").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPastDocumentation").setFromField("isSelected5").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchPastDocumentation").setFromField("isSelected16").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText14").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton14").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText15").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton15").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText16").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton16").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Present and historic church panel, it appears when the historic church is shown for the first time and clicking on the Present and historic church button (in the FirstPanelPast) ")
                    .addChild(new Transform("PresentAndHistoricChurchPanel").setTranslation(0.0,0.0,0.2)
                      .addChild(new ROUTE().setFromNode("touchPresentAndHistoricChurch").setFromField("isSelected3").setToNode("PresentAndHistoricChurchPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("NavigationAndSourcesText").setTranslation(2.1,1.28,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Navigation","and sources"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.22)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NavigationAndSourcesButton").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNavigationAndSources").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Navigation and sources")))
                          .addChild(new ROUTE().setFromNode("touchNavigationAndSources").setFromField("isSelected3").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchNavigationAndSources").setFromField("isSelected2").setToNode("PresentAndHistoricChurchPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchNavigationAndSources").setFromField("isSelected4").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchNavigationAndSources").setFromField("isSelected12").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText15").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton15").setTranslation(3.05,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel15").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel15").setFromField("isSelected4").setToNode("MainmenuToMainPanelPast").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note15").setTranslation(3.0,-1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoints"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TodayTextPast").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Today"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("TodayButtonPast").setTranslation(-0.8,1.08,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchToday").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Today")))
                          .addChild(new ROUTE().setFromNode("touchToday").setFromField("isSelected5").setToNode("PresentToHistorichChurch").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Mid19thCenturyTextPast").setTranslation(0.3,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Mid 19th Century"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Mid19thCenturyButtonPast").setTranslation(-0.8,0.68,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0)))))
                        .addChild(new Transform("EmptyText17").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton17").setTranslation(-0.8,0.28,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText18").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton18").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText19").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton19").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText20").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton20").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Navigating Panel Past, it appears clicking on the Navigating button on the First Panel Past () ")
                    .addChild(new Transform("NavigatingPanelPast")
                      .addChild(new ROUTE().setFromNode("touchNavigatingPast").setFromField("isSelected3").setToNode("NavigatingPanelPast").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText12").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton12").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton12").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton12").setFromField("isSelected3").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton12").setFromField("isSelected4").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton12").setFromField("isSelected18").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton12").setFromField("isSelected2").setToNode("NavigatingPanelPast").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText16").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton16").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel16").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel16").setFromField("isSelected4").setToNode("MainmenuToMainPanelPast").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("FlyModeTextPast").setTranslation(0.0,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Fly"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("FlyModeButtonPast").setTranslation(-0.8,1.08,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchFlyModePast").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Fly")))
                          .addChild(new ROUTE().setFromNode("touchFlyModePast").setFromField("isSelected").setToNode("NavigationFly").setToField("set_bind"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("FlyModeColorPast").setDiffuseColor(1.0,1.0,1.0)))))
                        .addChild(new ROUTE().setFromNode("touchFlyModePast").setFromField("isSelected14").setToNode("FlyModeColorPast").setToField("diffuseColor"))
                        .addChild(new Transform("WalkModeTextPast").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Walk"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("WalkModeButtonPast").setTranslation(-0.8,0.68,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchWalkModePast").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Walk")))
                          .addChild(new ROUTE().setFromNode("touchWalkModePast").setFromField("isSelected").setToNode("NavigationWalk").setToField("set_bind"))
                          .addChild(new ROUTE().setFromNode("touchWalkModePast").setFromField("isSelected15").setToNode("FlyModeColorPast").setToField("diffuseColor"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("WalkModeColorPast").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new ROUTE().setFromNode("touchFlyModePast").setFromField("isSelected15").setToNode("WalkModeColorPast").setToField("diffuseColor"))
                        .addChild(new ROUTE().setFromNode("touchWalkModePast").setFromField("isSelected14").setToNode("WalkModeColorPast").setToField("diffuseColor"))
                        .addChild(new Transform("ExamineModeTextPast").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Examine"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ExamineModeButtonPast").setTranslation(-0.8,0.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchExamineModePast").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Examine")))
                          .addChild(new ROUTE().setFromNode("touchExamineModePast").setFromField("isSelected15").setToNode("FlyModeColorPast").setToField("diffuseColor"))
                          .addChild(new ROUTE().setFromNode("touchExamineModePast").setFromField("isSelected15").setToNode("WalkModeColorPast").setToField("diffuseColor"))
                          .addChild(new ROUTE().setFromNode("touchExamineModePast").setFromField("isSelected").setToNode("NavigationExamine").setToField("set_bind"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material("ExamineModeColorPast").setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new ROUTE().setFromNode("touchExamineModePast").setFromField("isSelected14").setToNode("ExamineModeColorPast").setToField("diffuseColor"))
                        .addChild(new ROUTE().setFromNode("touchWalkModePast").setFromField("isSelected15").setToNode("ExamineModeColorPast").setToField("diffuseColor"))
                        .addChild(new ROUTE().setFromNode("touchFlyModePast").setFromField("isSelected15").setToNode("ExamineModeColorPast").setToField("diffuseColor"))
                        .addChild(new Transform("FullGuidedTourTextPast").setTranslation(0.2,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Full Guided Tour"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("FullGuidedTourButtonPast").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new TouchSensor("touchFullGuidedTourPast").setDescription("Full guided tour"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ShortGuidedTourTextPast").setTranslation(0.26,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Short Guided Tour"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ShortGuidedTourButtonPast").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new TouchSensor("touchShortGuidedTourPast").setDescription("Short Guided Tour"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("SacredFurnishingTourTextPast").setTranslation(0.55,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Sacred Furnishing Tour"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.26)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("SacredFurnishingTourButtonPast").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new TouchSensor("touchSacredFurnishingTourPast").setDescription("Sacred Furnishing Tour"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelText6").setTranslation(-0.4,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Next Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelButton6").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNextPanel6").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Next Panel")))
                          .addChild(new ROUTE().setFromNode("touchNextPanel6").setFromField("isSelected2").setToNode("NavigatingPanelPast").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Second part of the Navigating Panel Past, it appears clicking on Next Panel at the bottom () ")
                    .addChild(new Transform("NavigatingPanelPastBis")
                      .addChild(new ROUTE().setFromNode("touchNextPanel6").setFromField("isSelected3").setToNode("NavigatingPanelPastBis").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText13").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton13").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton13").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton13").setFromField("isSelected3").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton13").setFromField("isSelected4").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton13").setFromField("isSelected18").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton13").setFromField("isSelected2").setToNode("NavigatingPanelPastBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText17").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelButton17").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel17").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel17").setFromField("isSelected4").setToNode("MainmenuToMainPanelPast").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("WeyPointInterpolatorTourTextPast").setTranslation(0.27,1.1,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Wey Point Interpolator","Tour"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.24)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("WeyPointInterpolatorTourButtonPast").setTranslation(-0.8,1.08,0.0)
                          .addChild(new TouchSensor("touchWeyPointInterpolatorTourPast").setDescription("Way Point Interpolator Tour"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText21").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton21").setTranslation(-0.8,0.68,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText22").setTranslation(0.0,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton22").setTranslation(-0.8,0.28,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText23").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton23").setTranslation(-0.8,-0.12,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText24").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton24").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText25").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton25").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelText6").setTranslation(-0.2,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Previous Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelButton6").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPreviousPanel6").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Previous Panel")))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel6").setFromField("isSelected3").setToNode("NavigatingPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel6").setFromField("isSelected2").setToNode("NavigatingPanelPastBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Past Documentation Panel, it appears clicking on the Past Documentation button on the First Panel Past () ")
                    .addChild(new Transform("PastDocumentationPanel")
                      .addChild(new ROUTE().setFromNode("touchPastDocumentation").setFromField("isSelected3").setToNode("PastDocumentationPanel").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText14").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton14").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton14").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Backnn")))
                          .addChild(new ROUTE().setFromNode("touchBackButton14").setFromField("isSelected3").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton14").setFromField("isSelected4").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton14").setFromField("isSelected18").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton14").setFromField("isSelected2").setToNode("PastDocumentationPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText18").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelbutton18").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel18").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel18").setFromField("isSelected4").setToNode("MainmenuToMainPanelPast").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note16").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ShowPastDocumentation")
                          .addChild(new ROUTE().setFromNode("touchHidePanelLinks").setFromField("isSelected20").setToNode("ShowPastDocumentation").setToField("translation"))
                          .addChild(new Transform().setTranslation(3.0,-1.02,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Text().setString(new String[] {"SHOW links to past documentation","while navigating in the main model"})
                                .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.27)))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                          .addChild(new Transform("ShowPastDocumentationButton").setTranslation(0.7,-1.0,0.0)
                            .addChild(new ProtoInstance("TouchSensorSelected", "touchShowPastDocumentation").setContainerField("children")
                              .addFieldValue(new fieldValue().setName("description").setValue("SHOW links to past documentation while navigating in the main model")))
                            .addChild(new ROUTE().setFromNode("touchShowPastDocumentation").setFromField("isSelected11").setToNode("BlueBigPyramidTransform").setToField("translation"))
                            .addChild(new ROUTE().setFromNode("touchShowPastDocumentation").setFromField("isSelected8").setToNode("ShowPastDocumentation").setToField("translation"))
                            .addChild(new ROUTE().setFromNode("touchShowPastDocumentation").setFromField("isSelected13").setToNode("BlueSmallPyramidTransform").setToField("translation"))
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorFrontPastDocumentationText").setTranslation(-0.18,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior Front"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior front").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/ExteriorFront.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/ExteriorFront.html"})
                          .addChild(new Transform("ExteriorFrontPastDocumentationButton").setTranslation(-0.8,1.08,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("ExteriorPastDocumentationText").setTranslation(-0.07,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Exterior"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Exterior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Exterior.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Exterior.html"})
                          .addChild(new Transform("ExteriorPastDocumentationButton").setTranslation(-0.8,0.68,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("FloorPlanPastDocumentationText").setTranslation(-0.2,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Floor plan"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Floor Plan").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/FloorPlan.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/FloorPlan.html"})
                          .addChild(new Transform("FloorPlanPastDocumentationButton").setTranslation(-0.8,0.28,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("InteriorPastDocumentationText").setTranslation(0.27,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Interior"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Interior").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Interior.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Interior.html"})
                          .addChild(new Transform("InteriorPastDocumentationButton").setTranslation(-0.8,-0.12,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("WallDecorationsPastDocumentationText").setTranslation(-0.01,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Wall decorations"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Wall decorations").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/WallDecorations.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/WallDecorations.html"})
                          .addChild(new Transform("WallDecorationsPastDocumentationButton").setTranslation(-0.8,-0.52,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("FurnishingPastDocumentationText").setTranslation(-0.25,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Furnishing"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Furnishing").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Furnishing.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Furnishing.html"})
                          .addChild(new Transform("FurnishingPastDocumentationButton").setTranslation(-0.8,-0.92,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("NextPanelText7").setTranslation(-0.4,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Next Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("NextPanelButton7").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchNextPanel7").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Next Panel")))
                          .addChild(new ROUTE().setFromNode("touchNextPanel7").setFromField("isSelected2").setToNode("PastDocumentationPanel").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))
                    .addComments(" Second part of the Past Documentatation Panel, it appears clicking on Next Panel at the bottom () ")
                    .addChild(new Transform("PastDocumentationPanelBis")
                      .addChild(new ROUTE().setFromNode("touchNextPanel7").setFromField("isSelected3").setToNode("PastDocumentationPanelBis").setToField("translation"))
                      .addChild(new Transform().setTranslation(-1.2,0.0,0.0)
                        .addChild(new Transform("BackButtonText15").setTranslation(2.0,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Back"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("BackButton15").setTranslation(1.5,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchBackButton15").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Back")))
                          .addChild(new ROUTE().setFromNode("touchBackButton15").setFromField("isSelected3").setToNode("FirstPanelPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton15").setFromField("isSelected4").setToNode("Century19thModelToCentury19thModel2").setToField("whichChoice"))
                          .addChild(new ROUTE().setFromNode("touchBackButton15").setFromField("isSelected18").setToNode("RedPyramidTransformPast").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchBackButton15").setFromField("isSelected2").setToNode("PastDocumentationPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("HidePanelText19").setTranslation(3.2,1.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Hide Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Hidepanelbutton19").setTranslation(2.7,1.28,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchHidePanel19").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Hide panel")))
                          .addChild(new ROUTE().setFromNode("touchHidePanel19").setFromField("isSelected4").setToNode("MainmenuToMainPanelPast").setToField("whichChoice"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("Note17").setTranslation(3.0,0.96,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Red links go to corresponding viewpoint"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("ShowPastDocumentationTextBis")
                          .addChild(new ROUTE().setFromNode("touchHidePanelLinks").setFromField("isSelected20").setToNode("ShowPastDocumentationTextBis").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchShowPastDocumentation").setFromField("isSelected8").setToNode("ShowPastDocumentationTextBis").setToField("translation"))
                          .addChild(new Transform().setTranslation(3.0,-1.02,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Text().setString(new String[] {"SHOW links to past documentation","while navigating in the main model"})
                                .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.27)))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                          .addChild(new Transform("ShowPastDocumentationButtonBis").setTranslation(0.7,-1.0,0.0)
                            .addChild(new ProtoInstance("TouchSensorSelected", "touchShowPastDocumentationBis").setContainerField("children")
                              .addFieldValue(new fieldValue().setName("description").setValue("SHOW links to past documentation while navigating in the main model")))
                            .addChild(new ROUTE().setFromNode("touchShowPastDocumentationBis").setFromField("isSelected11").setToNode("BlueBigPyramidTransform").setToField("translation"))
                            .addChild(new ROUTE().setFromNode("touchShowPastDocumentationBis").setFromField("isSelected8").setToNode("ShowPastDocumentationTextBis").setToField("translation"))
                            .addChild(new ROUTE().setFromNode("touchShowPastDocumentationBis").setFromField("isSelected13").setToNode("BlueSmallPyramidTransform").setToField("translation"))
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("TowerPastDocumentationText").setTranslation(-0.115,1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Tower"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Tower").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Tower.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Tower.html"})
                          .addChild(new Transform("TowerPastDocumentationButton").setTranslation(-0.8,1.08,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("BalconyPastDocumentationText").setTranslation(0.0,0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Balcony"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Balcony").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Balcony.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Balcony.html"})
                          .addChild(new Transform("BalconyPastDocumentationButton").setTranslation(-0.8,0.68,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("BaptisteryPastDocumentationText").setTranslation(-0.1,0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Baptistery"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Baptistery").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Baptistery.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Baptistery.html"})
                          .addChild(new Transform("BaptisteryPastDocumentationButton").setTranslation(-0.8,0.28,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("SacristyPastDocumentationText").setTranslation(0.0,-0.2,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Sacristy"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Anchor().setDescription("Sacristy").setParameter(new String[] {"target=blank"}).setUrl(new String[] {"documentation/pastDocumentation/Sacristy.html","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/pastDocumentation/Sacristy.html"})
                          .addChild(new Transform("SacristyPastDocumentationButton").setTranslation(-0.8,-0.12,0.0)
                            .addChild(new Shape()
                              .setGeometry(new Sphere().setRadius(0.1))
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0))))))
                        .addChild(new Transform("EmptyText26").setTranslation(0.0,-0.6,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton26").setTranslation(-0.8,-0.52,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyText27").setTranslation(0.0,-1.0,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"x"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("EmptyButton27").setTranslation(-0.8,-0.92,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.1))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelText7").setTranslation(-0.2,-1.3,0.0)
                          .addChild(new Shape()
                            .setGeometry(new Text().setString(new String[] {"Previous Panel"})
                              .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.2)))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))
                        .addChild(new Transform("PreviousPanelButton7").setTranslation(-0.8,-1.25,0.0)
                          .addChild(new ProtoInstance("TouchSensorSelected", "touchPreviousPanel7").setContainerField("children")
                            .addFieldValue(new fieldValue().setName("description").setValue("Previous Panel")))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel7").setFromField("isSelected3").setToNode("PastDocumentationPanel").setToField("translation"))
                          .addChild(new ROUTE().setFromNode("touchPreviousPanel7").setFromField("isSelected2").setToNode("PastDocumentationPanelBis").setToField("translation"))
                          .addChild(new Shape()
                            .setGeometry(new Sphere().setRadius(0.05))
                            .setAppearance(new Appearance()
                              .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))))))))))
            .addChild(new ProximitySensor("HereIAm5").setSize(10000000.0,10000000.0,10000000.0))
            .addChild(new ROUTE().setFromNode("HereIAm5").setFromField("orientation_changed").setToNode("HudContainer5").setToField("rotation"))
            .addChild(new ROUTE().setFromNode("HereIAm5").setFromField("position_changed").setToNode("HudContainer5").setToField("translation")))
          .addChild(new Group()
            .addChild(new Transform("HudContainer4")
              .addChild(new Transform().setTranslation(3.0,1.7,-5.0)
                .addChild(new Group()
                  .addChild(new TouchSensor("touchUpHistory").setDescription("Main MenÃ¹"))
                  .addChild(new Shape()
                    .setGeometry(new Text().setString(new String[] {"Main Menu"})
                      .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE_MIDDLE).setSize(0.3)))
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0))))
                  .addChild(new Transform("MainMenuSphereLeftPast").setScale(1.05,1.0,2.3).setTranslation(-0.708,0.048,0.1)
                    .addChild(new Shape()
                      .setGeometry(new Sphere().setRadius(0.04))
                      .setAppearance(new Appearance()
                        .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0)))))
                  .addChild(new Transform("MainMenuSphereRightPast").setRotation(1.0,0.0,0.0,-0.23).setScale(0.88,1.0,1.5).setTranslation(0.589,0.039,0.1)
                    .addChild(new Shape()
                      .setGeometry(new Sphere().setRadius(0.04))
                      .setAppearance(new Appearance()
                        .setMaterial(new Material().setEmissiveColor(1.0,1.0,1.0))))))))
            .addChild(new ProximitySensor("HereIAm4").setSize(10000000.0,10000000.0,10000000.0))
            .addChild(new ROUTE().setFromNode("HereIAm4").setFromField("orientation_changed").setToNode("HudContainer4").setToField("rotation"))
            .addChild(new ROUTE().setFromNode("HereIAm4").setFromField("position_changed").setToNode("HudContainer4").setToField("translation"))))
        .addChild(new TimeSensor("timeUpHistory"))
        .addChild(new ROUTE().setFromNode("touchUpHistory").setFromField("touchTime").setToNode("timeUpHistory").setToField("startTime"))
        .addChild(new IntegerSequencer("SequencUpHistory").setKey(new double[] {0.0,1.0}).setKeyValue(new int[] {1,0}))
        .addChild(new ROUTE().setFromNode("timeUpHistory").setFromField("fraction_changed").setToNode("SequencUpHistory").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("SequencUpHistory").setFromField("value_changed").setToNode("MainmenuToMainPanelPast").setToField("whichChoice"))
        .addComments(" Model of the historic church ")
        .addChild(new Inline("history").setUrl(new String[] {"SanCarlosChurchHistory.x3d","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/SanCarlosChurchHistory.x3d","SanCarlosChurchHistory.wrl","https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/SanCarlosChurchHistory.wrl"}))))
    .addComments(" ViewPointSequencer ")
    .addChild(new Transform().setScale(0.5,0.5,0.5).setTranslation(100.0,0.0,0.0)
      .addChild(new ProtoInstance("ViewpointSequencer", "ExampleViewpointSequencer").setContainerField("children")
        .addFieldValue(new fieldValue().setName("viewpoints")
          .addChild(new Viewpoint().setDescription("San Carlos Cathedral, front from ground").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,0.0,0.0,0.3).setPosition(5.8,-0.5,15.0))
          .addChild(new Viewpoint().setDescription("San Carlos Cathedral, front").setCenterOfRotation(5.8,0.0,-24.4).setPosition(4.3,5.0,25.0))
          .addComments(" &lt;ROUTE fromField='isBound' fromNode='ViewpointFrontAbove' toField='set_bind' toNode='NavigationExamine'/&gt; &lt;ROUTE fromField='isBound' fromNode='ViewpointFront' toField='set_bind' toNode='NavigationExamine'/&gt; ")
          .addChild(new Viewpoint().setDescription("San Carlos Cathedral, front above").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,0.0,0.0,-0.349).setPosition(5.3,16.0,30.0))
          .addChild(new Viewpoint().setDescription("Oblique outside view").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-0.5).setPosition(-12.8,15.0,20.0))
          .addChild(new Viewpoint().setDescription("Overhead view").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,0.0,0.0,-1.57).setPosition(5.8,70.0,-23.0))
          .addChild(new Viewpoint().setDescription("Oblique outside view").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,0.5).setPosition(20.0,4.0,20.0))
          .addChild(new Viewpoint().setDescription("Facade details").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,0.6).setPosition(9.2,4.0,7.0))
          .addChild(new Viewpoint().setDescription("Right outside").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(50.0,-2.0,-26.5))
          .addChild(new Viewpoint().setDescription("Sacristy").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.37).setPosition(30.0,0.0,-55.5))
          .addChild(new Viewpoint().setDescription("Back outside").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.4).setPosition(-8.0,7.0,-75.0))
          .addChild(new Viewpoint().setDescription("Back outside").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-2.5).setPosition(-8.0,5.0,-25.0))
          .addChild(new Viewpoint().setDescription("Interior Left rear balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-0.3).setPosition(3.0,4.0,-5.0))
          .addChild(new Viewpoint().setDescription("Front doors, looking in").setCenterOfRotation(5.8,0.0,-24.4).setPosition(5.8,-0.3,2.0))
          .addChild(new Viewpoint().setDescription("Front doors, looking in").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.3).setPosition(4.3,-0.9,-0.8))
          .addChild(new Viewpoint().setDescription("Front doors, looking in").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-2.4).setPosition(5.1,-0.8,-8.2))
          .addChild(new Viewpoint().setDescription("Front doors, looking in").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.87).setPosition(5.1,1.5,-9.5))
          .addChild(new Viewpoint().setDescription("Front doors, looking in").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.57).setPosition(7.7,1.0,-10.5))
          .addChild(new Viewpoint().setDescription("Front doors, looking in").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.6).setPosition(5.1,1.5,-10.5))
          .addChild(new Viewpoint().setDescription("Interior Front2").setCenterOfRotation(5.8,0.0,-24.4).setPosition(5.8,0.0,-23.0))
          .addChild(new Viewpoint().setDescription("Rear").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.3).setPosition(4.8,0.0,-33.0))
          .addChild(new Viewpoint().setDescription("Transept").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.3).setPosition(4.8,0.0,-33.0))
          .addChild(new Viewpoint().setDescription("Transept").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.8).setPosition(13.8,-0.5,-36.0))
          .addChild(new Viewpoint().setDescription("Rear").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.3).setPosition(9.8,0.0,-33.0))
          .addChild(new Viewpoint().setDescription("Rear").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.1).setPosition(4.8,0.0,-33.0))
          .addChild(new Viewpoint().setDescription("Sacristy").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.8).setPosition(9.8,0.0,-40.5))
          .addChild(new Viewpoint().setDescription("Sacristy").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.5).setPosition(17.8,0.0,-45.5))
          .addChild(new Viewpoint().setDescription("Nave - View").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.14).setPosition(5.8,0.0,-40.5))
          .addChild(new Viewpoint().setDescription("Nave - Balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.14).setPosition(5.8,0.0,-21.0))
          .addChild(new Viewpoint().setDescription("Nave - Balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(3.8,1.0,-21.4))
          .addChild(new Viewpoint().setDescription("Nave - Balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(3.2,0.85,-20.1))
          .addChild(new Viewpoint().setDescription("Nave - Balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.6).setPosition(5.8,1.0,-18.0))
          .addChild(new Viewpoint().setDescription("Nave - Balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.9).setPosition(6.8,-0.8,-2.5))
          .addChild(new Viewpoint().setDescription("Entrance - Stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(6.4,0.0,-1.5))
          .addChild(new Viewpoint().setDescription("Stairs to tower and balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-1.1).setPosition(-3.09,4.2,-0.7))
          .addChild(new Viewpoint().setDescription("Stairs to tower and balcony").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.57).setPosition(-3.09,3.0,-1.5))
          .addChild(new Viewpoint().setDescription("Left rear balcony1").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-0.7).setPosition(2.1,4.0,-2.7))
          .addChild(new Viewpoint().setDescription("Left rear balcony1").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.8).setPosition(2.1,4.0,-2.7))
          .addChild(new Viewpoint().setDescription("Left rear balcony1").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(1.0,1.0,0.0,-0.3).setPosition(3.0,4.0,-5.0))
          .addChild(new Viewpoint().setDescription("Left rear balcony2 - Organ").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-2.3).setPosition(2.5,4.0,-7.0))
          .addChild(new Viewpoint().setDescription("Left rear balcony3").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.2).setPosition(5.0,4.0,-5.0))
          .addChild(new Viewpoint().setDescription("Top stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(4.3,4.0,-1.2))
          .addChild(new Viewpoint().setDescription("Top stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.8).setPosition(2.7,4.0,-0.9))
          .addChild(new Viewpoint().setDescription("Top stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.1).setPosition(1.4,4.9,-1.0))
          .addChild(new Viewpoint().setDescription("Top stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,2.9).setPosition(-0.2,5.0,-2.0))
          .addChild(new Viewpoint().setDescription("Tower - Bells").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,3.34).setPosition(-1.4,6.0,-2.2))
          .addChild(new Viewpoint().setDescription("Top stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,1.57).setPosition(-0.3,6.5,-2.0))
          .addChild(new Viewpoint().setDescription("Top stairs to tower").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,-1.77).setPosition(-2.2,5.2,-1.8))
          .addChild(new Viewpoint().setDescription("Tower - View").setCenterOfRotation(5.8,0.0,-24.4).setOrientation(0.0,1.0,0.0,0.1).setPosition(-2.0,6.0,-0.3)))
        .addFieldValue(new fieldValue().setName("interval").setValue(2))
        .addComments(" initially enabled is off, scene provides selectable text to activate ")
        .addFieldValue(new fieldValue().setName("enabled").setValue(false))))
    .addChild(new BooleanToggle("ToggleSequencer"))
    .addChild(new ROUTE().setFromNode("touchFullGuidedTour").setFromField("isActive").setToNode("ToggleSequencer").setToField("set_boolean"))
    .addChild(new ROUTE().setFromNode("ToggleSequencer").setFromField("toggle_changed").setToNode("ExampleViewpointSequencer").setToField("enabled"))
    .addChild(new IntegerTrigger("IntStop").setIntegerKey(2))
    .addChild(new ROUTE().setFromNode("touchFullGuidedTour").setFromField("isActive").setToNode("IntStop").setToField("set_boolean"))
    .addChild(new ROUTE().setFromNode("IntStop").setFromField("triggerValue").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
    .addChild(new IntegerTrigger("IntStop2").setIntegerKey(1))
    .addChild(new ROUTE().setFromNode("touchStopTour").setFromField("isActive").setToNode("IntStop2").setToField("set_boolean"))
    .addChild(new ROUTE().setFromNode("IntStop2").setFromField("triggerValue").setToNode("MainmenuToMainpanel").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchStopTour").setFromField("isActive").setToNode("ToggleSequencer").setToField("set_boolean"))
    .addChild(new IntegerTrigger("IntStop3").setIntegerKey(1))
    .addChild(new ROUTE().setFromNode("touchStopTour").setFromField("isActive").setToNode("IntStop3").setToField("set_boolean"))
    .addChild(new ROUTE().setFromNode("IntStop3").setFromField("triggerValue").setToNode("switchTour").setToField("whichChoice"))
    .addComments(" Example use: https://savage.nps.edu/Savage/Tools/Animation/ViewpointSequencerExample.x3d ")
    .addComments(" ==================== ")
    .addComments(" Light Switch ")
    .addChild(new Switch("LightSwitch").setWhichChoice(0)
      .addChild(new Group("AlternativeLight1")
        .addComments(" Spotlights from windows (left side) ")
        .addChild(new SpotLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setCutOffAngle(1).setDirection(20.0,1.0,-40.0).setIntensity(0.2).setLocation(-6.0,1.0,-35.0))
        .addChild(new SpotLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setCutOffAngle(1).setDirection(20.0,1.0,-30.0).setIntensity(0.2).setLocation(1.7,1.0,-25.4))
        .addChild(new SpotLight().setAmbientIntensity(0.2).setColor(0.7,0.7,0.7).setCutOffAngle(1).setDirection(20.0,1.0,-20.0).setIntensity(0.4).setLocation(1.7,1.0,-17.0)))
      .addChild(new Group("AlternativeLight2")
        .addComments(" DirectionalLights. They don't seem to work when child of a group node ")
        .addChild(new DirectionalLight().setColor(0.4,0.4,0.4).setDirection(-20.0,1.0,0.0))
        .addChild(new DirectionalLight().setColor(0.4,0.4,0.4).setDirection(20.0,1.0,0.0))
        .addChild(new DirectionalLight().setColor(0.4,0.4,0.4).setDirection(0.0,1.0,20.0))
        .addChild(new DirectionalLight().setColor(0.4,0.4,0.4).setDirection(0.0,1.0,-60.0)))
      .addChild(new Group("AlternativeLight3")
        .addComments(" Spotlights from windows (left side). It simulates a \"First morning beam\" ")
        .addChild(new DirectionalLight().setColor(0.5,0.5,0.5).setDirection(20.0,1.0,30.0).setIntensity(0.5))
        .addChild(new DirectionalLight().setColor(0.5,0.5,0.5).setDirection(-20.0,1.0,30.0).setIntensity(0.5))
        .addChild(new SpotLight().setAmbientIntensity(0.4).setBeamWidth(1.5).setCutOffAngle(1).setDirection(20.0,1.0,-50.0).setLocation(-6.0,1.0,-35.0).setRadius(10))
        .addChild(new SpotLight().setAmbientIntensity(0.4).setBeamWidth(1.5).setCutOffAngle(1).setDirection(20.0,1.0,-40.0).setLocation(1.7,1.0,-25.4).setRadius(10))
        .addChild(new SpotLight().setAmbientIntensity(0.4).setBeamWidth(1.5).setCutOffAngle(1).setDirection(20.0,1.0,-57.0).setLocation(1.7,1.0,-17.0).setRadius(10)))
      .addChild(new Group("AlternativeLight4")
        .addComments(" Spotlights from windows (left side). It simulates a \"Morning Light\" ")
        .addChild(new DirectionalLight().setColor(0.6,0.6,0.6).setDirection(20.0,1.0,-30.0).setIntensity(0.6))
        .addChild(new DirectionalLight().setColor(0.6,0.6,0.6).setDirection(-20.0,1.0,-30.0).setIntensity(0.6))
        .addChild(new SpotLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setCutOffAngle(1).setDirection(20.0,1.0,-40.0).setIntensity(0.6).setLocation(-6.0,1.0,-35.0).setRadius(10))
        .addChild(new SpotLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setCutOffAngle(1).setDirection(20.0,1.0,-30.0).setIntensity(0.6).setLocation(1.7,1.0,-25.4).setRadius(10))
        .addChild(new SpotLight().setAmbientIntensity(0.2).setBeamWidth(1).setColor(0.6,0.6,0.6).setCutOffAngle(1).setDirection(20.0,1.0,-20.0).setIntensity(0.6).setLocation(1.7,1.0,-17.0).setRadius(10)))
      .addChild(new Group("AlternativeLight5")
        .addComments(" PointLights from chandeliers, simulating artificial light ")
        .addChild(new PointLight("Point1").setColor(0.8,0.8,0.8).setIntensity(0.8).setLocation(5.8,2.4,-11.5).setRadius(12.5))
        .addChild(new PointLight("Point2").setColor(0.8,0.8,0.8).setIntensity(0.8).setLocation(5.8,2.4,-23.0).setRadius(12.5))
        .addChild(new PointLight("Point3").setColor(0.8,0.8,0.8).setIntensity(0.8).setLocation(-1.4,2.4,-34.5).setRadius(12.5))
        .addChild(new PointLight("Point4").setColor(0.8,0.8,0.8).setIntensity(0.8).setLocation(13.0,2.4,-34.5).setRadius(12.5))
        .addChild(new PointLight("Point5").setColor(0.8,0.8,0.8).setIntensity(0.8).setLocation(5.8,2.4,-34.5).setRadius(12.5))
        .addChild(new PointLight("Point6").setColor(0.8,0.8,0.8).setIntensity(0.8).setLocation(5.8,1.0,-1.0).setRadius(12.5))
        .addChild(new PointLight("Point7").setColor(0.8,0.8,0.8).setIntensity(0.8).setLocation(5.8,1.0,-5.0).setRadius(12.5)))
      .addChild(new Group("AlternativeLight6")
        .addComments(" PointLights from chandeliers, simulating artificial light. Tested with HeadLight ON ")
        .addChild(new PointLight("Point1a").setColor(0.5,0.5,0.5).setIntensity(0.5).setLocation(5.8,2.4,-11.5).setRadius(8))
        .addChild(new PointLight("Point2a").setColor(0.5,0.5,0.5).setIntensity(0.5).setLocation(5.8,2.4,-23.0).setRadius(8))
        .addChild(new PointLight("Point3a").setColor(0.5,0.5,0.5).setIntensity(0.5).setLocation(-1.4,2.4,-34.5).setRadius(8))
        .addChild(new PointLight("Point4a").setColor(0.5,0.5,0.5).setIntensity(0.5).setLocation(13.0,2.4,-34.5).setRadius(8))
        .addChild(new PointLight("Point5a").setColor(0.5,0.5,0.5).setIntensity(0.5).setLocation(5.8,2.4,-34.5).setRadius(8))
        .addChild(new PointLight("Point6a").setColor(0.5,0.5,0.5).setIntensity(0.5).setLocation(5.8,1.0,-1.0).setRadius(8))
        .addChild(new PointLight("Point7a").setColor(0.5,0.5,0.5).setIntensity(0.5).setLocation(5.8,1.0,-5.0).setRadius(8)))
      .addChild(new Group("AlternativeLight7")
        .addComments(" PointLights from windows (left side). Simulating sunlight ")
        .addChild(new PointLight().setIntensity(0.5).setLocation(-6.0,1.0,-35.0))
        .addChild(new PointLight().setColor(0.1,0.1,0.1).setIntensity(0.05).setLocation(1.7,1.0,-25.4).setRadius(10))
        .addChild(new PointLight().setAmbientIntensity(0.4).setColor(0.5,0.5,0.5).setIntensity(0.7).setLocation(1.7,1.0,-17.0).setRadius(10))
        .addChild(new PointLight().setAmbientIntensity(0.4).setColor(0.5,0.5,0.5).setIntensity(0.8).setLocation(1.7,1.0,-7.5).setRadius(10)))
      .addChild(new Group("AlternativeLight8")
        .addComments(" PointLights from windows (left side). Simulating sunlight. Changing Radius Changes the \"Intensity\" ")
        .addChild(new PointLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setIntensity(0.2).setLocation(-6.0,1.0,-35.0).setRadius(30))
        .addChild(new PointLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setIntensity(0.2).setLocation(1.7,1.0,-25.4).setRadius(30))
        .addChild(new PointLight().setAmbientIntensity(0.4).setColor(0.7,0.7,0.7).setIntensity(0.4).setLocation(1.7,1.0,-17.0).setRadius(30))
        .addChild(new PointLight().setAmbientIntensity(0.4).setColor(0.7,0.7,0.7).setIntensity(0.4).setLocation(1.7,1.0,-7.5).setRadius(30)))
      .addChild(new Group("AlternativeLight9")
        .addComments(" PointLights from windows (both sides, six windows). Good inside navigation. ")
        .addChild(new PointLight().setAmbientIntensity(0.6).setColor(0.5,0.5,0.5).setIntensity(0.6).setLocation(1.7,1.0,-25.4).setRadius(30))
        .addChild(new PointLight().setAmbientIntensity(0.3).setColor(0.7,0.7,0.7).setIntensity(0.3).setLocation(1.7,1.0,-17.0).setRadius(10))
        .addChild(new PointLight().setAmbientIntensity(0.01).setColor(0.4,0.4,0.4).setIntensity(0.01).setLocation(1.7,1.0,-7.5).setRadius(5))
        .addChild(new PointLight().setAmbientIntensity(0.6).setColor(0.5,0.5,0.5).setIntensity(0.6).setLocation(9.0,1.0,-25.4).setRadius(30))
        .addChild(new PointLight().setAmbientIntensity(0.3).setColor(0.7,0.7,0.7).setIntensity(0.3).setLocation(9.0,1.0,-17.0).setRadius(10))
        .addChild(new PointLight().setAmbientIntensity(0.01).setColor(0.1,0.1,0.1).setIntensity(0.01).setLocation(9.0,1.0,-7.5).setRadius(5)))
      .addChild(new Group("AlternativeLight10")
        .addComments(" PointLights from windows (left side). Good inside navigation, but the light is too uniform on one side ")
        .addChild(new PointLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setIntensity(0.2).setLocation(-6.0,1.0,-35.0))
        .addChild(new PointLight().setAmbientIntensity(0.2).setColor(0.4,0.4,0.4).setIntensity(0.2).setLocation(1.7,1.0,-25.4))
        .addChild(new PointLight().setAmbientIntensity(0.4).setColor(0.7,0.7,0.7).setIntensity(0.4).setLocation(1.7,1.0,-17.0))
        .addChild(new PointLight().setAmbientIntensity(0.4).setColor(0.7,0.7,0.7).setIntensity(0.4).setLocation(1.7,1.0,-7.5))))
    .addChild(new ROUTE().setFromNode("touchMid19thCentury").setFromField("isSelected5").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchExteriorNavigation").setFromField("isSelected5").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight1").setFromField("isSelected5").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight2").setFromField("isSelected21").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight3").setFromField("isSelected22").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight4").setFromField("isSelected23").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight5").setFromField("isSelected24").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight6").setFromField("isSelected25").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight7").setFromField("isSelected26").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight8").setFromField("isSelected27").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight9").setFromField("isSelected28").setToNode("LightSwitch").setToField("whichChoice"))
    .addChild(new ROUTE().setFromNode("touchLight10").setFromField("isSelected28").setToNode("LightSwitch").setToField("whichChoice")));
            }
            catch (Exception ex)
            {       
                System.err.println ("*** Further hints on X3DJSAIL errors and exceptions at");
                System.err.println ("*** https://www.web3d.org/specifications/java/X3DJSAIL.html");
                throw (ex);
            }
	}
	// end of initialize() method

	/** The initialized model object, created within initialize() method. */
	private X3D x3dModel;

	/** 
	 * Provide a 
	 * &lt;a href="https://dzone.com/articles/java-copy-shallow-vs-deep-in-which-you-will-swim" target="_blank"&gt;shallow copy&lt;/a&gt;
	 * of the X3D model.
	 * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html"&gt;X3D&lt;/a&gt;
	 * @return SanCarlosCathedral model
	 */
	public X3D getX3dModel()
	{	  
		return x3dModel;
	}
	   
    /** 
     * Default main() method provided for test purposes, uses CommandLine to set global ConfigurationProperties for this object.
     * @param args array of input parameters, provided as arguments
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#handleArguments-java.lang.String:A-"&gt;X3D.handleArguments(args)&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#validationReport--"&gt;X3D.validationReport()&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html"&gt;CommandLine&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html#USAGE"&gt;CommandLine.USAGE&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/ConfigurationProperties.html"&gt;ConfigurationProperties&lt;/a&gt;
     */
    public static void main(String args[])
    {
        System.out.println("Build this X3D model, showing validation diagnostics...");
        X3D thisExampleX3dModel = new SanCarlosCathedral().getX3dModel();
//      System.out.println("X3D model construction complete.");
	
        // next handle command line arguments
        boolean hasArguments = (args != null) &amp;&amp; (args.length &gt; 0);
        boolean validate = true; // default
        boolean argumentsLoadNewModel = false;
        String  fileName = new String();

        if (args != null)
        {
                for (String arg : args)
                {
                        if (arg.toLowerCase().startsWith("-v") || arg.toLowerCase().contains("validate"))
                        {
                                validate = true; // making sure
                        }
                        if (arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3D) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_CLASSICVRML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3DB) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_VRML97) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_EXI) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_GZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_ZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_HTML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_XHTML))
                        {
                                argumentsLoadNewModel = true;
                                fileName = arg;
                        }
                }
        }
        if      (argumentsLoadNewModel)
                System.out.println("WARNING: \"X3dForAdvancedModeling.SanCarlosCathedral.SanCarlosCathedral\" model invocation is attempting to load file \"" + fileName + "\" instead of simply validating itself... file loading ignored.");
        else if (hasArguments) // if no arguments provided, this method produces usage warning
                thisExampleX3dModel.handleArguments(args);
	
        if (validate)
        {
            //  System.out.println("--- TODO fix duplicated outputs ---"); // omit when duplicated outputs problem is solved/refactored
		String validationResults = thisExampleX3dModel.validationReport();
            //  System.out.println("-----------------------------------"); // omit when duplicated outputs problem is solved/refactored
                System.out.print("X3dForAdvancedModeling.SanCarlosCathedral.SanCarlosCathedral self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

                // experimental: test X3DJSAIL output files
                // SanCarlosCathedral/SanCarlosCathedral_JavaExport.* file validation is checked when building X3D Example Archives
                String filenameX3D  = "SanCarlosCathedral/SanCarlosCathedral_JavaExport.x3d"; 
                String filenameX3DV = "SanCarlosCathedral/SanCarlosCathedral_JavaExport.x3dv"; 
                String filenameJSON = "SanCarlosCathedral/SanCarlosCathedral_JavaExport.json";
                thisExampleX3dModel.toFileX3D        (filenameX3D);
                thisExampleX3dModel.toFileClassicVRML(filenameX3DV);
// TODO         thisExampleX3dModel.toFileJSON       (filenameJSON);
        }
    }
}
</pre></body></html>