package Savage.HarborEquipment.NavigationAids;

import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Geometry3D.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.Rendering.*;
import org.web3d.x3d.jsail.Shape.*;
import org.web3d.x3d.jsail.Texturing.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> Passing Daybeacon Prototype (Lateral Marker), with options for Green/Red. </p>
 <p> Related links: Catalog page <a href="../../../../HarborEquipment/NavigationAids/DaybeaconPrototypeIndex.html" target="_blank">DaybeaconPrototype</a>,  source <a href="../../../../HarborEquipment/NavigationAids/DaybeaconPrototype.java">DaybeaconPrototype.java</a>, <a href="https://www.web3d.org/x3d/content/examples/X3dResources.html" target="_blank">X3D Resources</a>, <a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html" target="_blank">X3D Scene Authoring Hints</a>, and <a href="https://www.web3d.org/x3d/content/X3dTooltips.html" target="_blank">X3D Tooltips</a>. </p>
	<table style="color:black; border:0px solid; border-spacing:10px 0px;">
        <caption>Scene Meta Information</caption>
		<tr style="background-color:silver; border-color:silver;">
			<td style="text-align:center; padding:10px 0px;"><i>meta tags</i></td>
			<td style="text-align:left;   padding:10px 0px;">&nbsp; Document Metadata </td>
		</tr>

		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> title </i> </td>
			<td> <a href="../../../../HarborEquipment/NavigationAids/DaybeaconPrototype.x3d">DaybeaconPrototype.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> Passing Daybeacon Prototype (Lateral Marker), with options for Green/Red. </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Planet 9 Studios, Inc., San Francisco, CA </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> producer </i> </td>
			<td> Christian Greuel, Director of Art and Production </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modelers </i> </td>
			<td> Danny Lee, Christian Greuel </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://www.planet9.com" target="_blank">http://www.planet9.com</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> IHO S-57: <a href="http://www.caris.com/s-57" target="_blank">http://www.caris.com/s-57</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translator </i> </td>
			<td> Xj3D Format Converter </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 17 August 2006 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translated </i> </td>
			<td> 18 August 2006 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modified </i> </td>
			<td> 20 October 2019 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> identifier </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/DaybeaconPrototype.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/DaybeaconPrototype.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../HarborEquipment/NavigationAids/../../license.html">../../license.html</a> </td>
		</tr>
		<tr style="background-color:silver; border-color:silver;">
			<td style="text-align:center;" colspan="2">  &nbsp; </td>
		</tr>
	</table>

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

	* @author Planet 9 Studios, Inc., San Francisco, CA
 */

public class DaybeaconPrototype
{
	/** Default constructor to create this object. */
	public DaybeaconPrototype ()
	{
	  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_0)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("DaybeaconPrototype.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Passing Daybeacon Prototype (Lateral Marker), with options for Green/Red."))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Planet 9 Studios, Inc., San Francisco, CA"))
    .addMeta(new meta().setName("producer").setContent("Christian Greuel, Director of Art and Production"))
    .addMeta(new meta().setName("modelers").setContent("Danny Lee, Christian Greuel"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.planet9.com"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("IHO S-57: http://www.caris.com/s-57"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("Xj3D Format Converter"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("17 August 2006"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATED ).setContent("18 August 2006"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 October 2019"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/DaybeaconPrototype.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("DaybeaconPrototype.x3d"))
    .addChild(new ProtoDeclare("Daybeacon").setName("Daybeacon")
      .setProtoInterface(new ProtoInterface()
        .addComments(" 0=None(Unlikely), 1=PortHand(GreenSquare), 2=StarboardHand(RedTriangle), 3=PreferredChannelToStarboard(TopmostBandGreen), 4=PreferredChannelToPort(TopmostBandRed) ")
        .addField(new field().setName("Catlam").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(1))
        .addComments(" Not Implemented ")
        .addField(new field().setName("Number").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(0)))
      .setProtoBody(new ProtoBody()
        .addChild(new Group("DaybeaconGeometry")
          .addChild(new Group("DaybeaconSignals")
            .addChild(new Switch("CatlamSwitch").setWhichChoice(-1)
              .setIS(new IS()
                .addConnect(new connect().setNodeField("whichChoice").setProtoField("Catlam")))
              .addChild(new Transform("NoDaybeacons"))
              .addChild(new Transform("DaybeaconsGreen").setTranslation(0.0,4.36938,0.0)
                .addChild(new Transform("DaybeaconGreen1").setTranslation(7.36E-4,-0.091284,0.001776)
                  .addChild(new Shape()
                    .setAppearance(new Appearance("Daybeacon_1")
                      .setMaterial(new Material("Daybeacon_2").setAmbientIntensity(0.0).setDiffuseColor(0.588235,0.588235,0.588235).setShininess(0.145))
                      .setTexture(new ImageTexture().setUrl(new String[] {"Textures/DaybeaconGreen.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/DaybeaconGreen.jpg"})))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {6,7,4,-1,5,4,7,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {6,7,4,-1,5,4,7,-1})
                      .setCoord(new Coordinate("DaybeaconGreen1-COORD").setPoint(new MFVec3f(new double[] {0.500074,-0.408716,0.748223,-0.499926,-0.408716,0.748223,0.498454,0.591285,0.748223,-0.501546,0.591285,0.748223,0.449005,-0.358715,0.748223,-0.450995,-0.358715,0.748223,0.448454,0.541285,0.748223,-0.451546,0.541285,0.748223})))
                      .setNormal(new Normal("Daybeacon_3").setVector(new MFVec3f(new double[] {0.0,0.0,1.0,0.0,0.0,-1.0})))
                      .setTexCoord(new TextureCoordinate("DaybeaconGreen1-TEXCOORD").setPoint(new MFVec2f(new double[] {0.999501,4.99E-4,0.002115,4.99E-4,0.997885,0.999501,4.99E-4,0.9995,0.948565,0.05045,0.050918,0.050449,0.948015,0.949551,0.050368,0.949551})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance("Daybeacon_4")
                      .setMaterial(new Material().setUSE("Daybeacon_2"))
                      .setTexture(new ImageTexture().setUrl(new String[] {"Textures/DaybeaconGreenDark.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/DaybeaconGreenDark.jpg"})))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,3,7,-1,7,6,2,-1,0,2,6,-1,6,4,0,-1,1,0,4,-1,4,5,1,-1,3,1,5,-1,5,7,3,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {2,3,7,-1,7,6,2,-1,0,2,6,-1,6,4,0,-1,1,0,4,-1,4,5,1,-1,3,1,5,-1,5,7,3,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreen1-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreen1-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance("Daybeacon_5")
                      .setMaterial(new Material().setUSE("Daybeacon_2"))
                      .setTexture(new ImageTexture().setUrl(new String[] {"Textures/DaybeaconBack.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/DaybeaconBack.jpg"})))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,0,-1,0,1,3,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {7,6,4,-1,4,5,7,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreen1-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreen1-TEXCOORD")))))
                .addChild(new Transform("DaybeaconGreen2").setRotation(0.0,-1.0,0.0,-3.14159).setTranslation(-7.36E-4,-0.091284,-0.001776)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_1"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {6,7,4,-1,5,4,7,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {6,7,4,-1,5,4,7,-1})
                      .setCoord(new Coordinate("DaybeaconGreen2-COORD").setPoint(new MFVec3f(new double[] {0.500074,-0.408716,0.748223,-0.499926,-0.408716,0.748223,0.498454,0.591285,0.748223,-0.501546,0.591285,0.748223,0.449005,-0.358715,0.748223,-0.450995,-0.358715,0.748223,0.448454,0.541285,0.748223,-0.451546,0.541285,0.748223})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconGreen2-TEXCOORD").setPoint(new MFVec2f(new double[] {0.999501,4.99E-4,0.002115,4.99E-4,0.997885,0.999501,4.99E-4,0.9995,0.948565,0.05045,0.050918,0.050449,0.948015,0.949551,0.050368,0.949551})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_4"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,3,7,-1,7,6,2,-1,0,2,6,-1,6,4,0,-1,1,0,4,-1,4,5,1,-1,3,1,5,-1,5,7,3,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {2,3,7,-1,7,6,2,-1,0,2,6,-1,6,4,0,-1,1,0,4,-1,4,5,1,-1,3,1,5,-1,5,7,3,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreen2-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreen2-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,0,-1,0,1,3,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {7,6,4,-1,4,5,7,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreen2-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreen2-TEXCOORD"))))))
              .addChild(new Transform("DaybeaconsRed").setTranslation(0.0,4.36938,0.0)
                .addChild(new Transform("DaybeaconRed1").setTranslation(0.0,-0.166405,0.75)
                  .addChild(new Shape()
                    .setAppearance(new Appearance("Daybeacon_6")
                      .setMaterial(new Material().setUSE("Daybeacon_2"))
                      .setTexture(new ImageTexture().setUrl(new String[] {"Textures/DaybeaconRed.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/DaybeaconRed.jpg"})))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {4,5,3,-1}).setNormalIndex(new int[] {0,0,0,-1}).setTexCoordIndex(new int[] {4,5,3,-1})
                      .setCoord(new Coordinate("DaybeaconRed1-COORD").setPoint(new MFVec3f(new double[] {0.0,0.666405,0.0,-0.574646,-0.333595,0.0,0.574646,-0.333595,0.0,0.0,0.555162,0.0,-0.478307,-0.277973,0.0,0.478307,-0.277974,0.0})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconRed1-TEXCOORD").setPoint(new MFVec2f(new double[] {0.5,0.999501,4.99E-4,4.99E-4,0.999501,4.99E-4,0.5,0.888369,0.08424,0.056065,0.915759,0.056065})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance("Daybeacon_7")
                      .setMaterial(new Material().setUSE("Daybeacon_2"))
                      .setTexture(new ImageTexture().setUrl(new String[] {"Textures/DaybeaconRedDark.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/DaybeaconRedDark.jpg"})))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {1,2,5,-1,5,4,1,-1,2,0,3,-1,3,5,2,-1,0,1,4,-1,4,3,0,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {1,2,5,-1,5,4,1,-1,2,0,3,-1,3,5,2,-1,0,1,4,-1,4,3,0,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRed1-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRed1-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,1,0,-1}).setNormalIndex(new int[] {1,1,1,-1}).setTexCoordIndex(new int[] {5,4,3,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRed1-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRed1-TEXCOORD")))))
                .addChild(new Transform("DaybeaconRed2").setRotation(0.0,-1.0,0.0,-3.14159).setTranslation(0.0,-0.166405,-0.75)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_6"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {4,5,3,-1}).setNormalIndex(new int[] {0,0,0,-1}).setTexCoordIndex(new int[] {4,5,3,-1})
                      .setCoord(new Coordinate("DaybeaconRed2-COORD").setPoint(new MFVec3f(new double[] {0.0,0.666405,0.0,-0.574646,-0.333595,0.0,0.574646,-0.333595,0.0,0.0,0.555162,0.0,-0.478307,-0.277973,0.0,0.478307,-0.277974,0.0})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconRed2-TEXCOORD").setPoint(new MFVec2f(new double[] {0.5,0.999501,4.99E-4,4.99E-4,0.999501,4.99E-4,0.5,0.888369,0.08424,0.056065,0.915759,0.056065})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_7"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {1,2,5,-1,5,4,1,-1,2,0,3,-1,3,5,2,-1,0,1,4,-1,4,3,0,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {1,2,5,-1,5,4,1,-1,2,0,3,-1,3,5,2,-1,0,1,4,-1,4,3,0,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRed2-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRed2-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,1,0,-1}).setNormalIndex(new int[] {1,1,1,-1}).setTexCoordIndex(new int[] {5,4,3,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRed2-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRed2-TEXCOORD"))))))
              .addChild(new Transform("DaybeaconsGreenPreferred").setTranslation(0.0,4.36938,0.0)
                .addChild(new Transform("DaybeaconGreenPreferred1a").setTranslation(7.36E-4,-0.091284,0.001776)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_1"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,5,4,-1,4,2,3,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,5,4,-1,4,2,3,-1})
                      .setCoord(new Coordinate("DaybeaconGreenPreferred1a-COORD").setPoint(new MFVec3f(new double[] {0.498454,0.591285,0.748223,-0.501546,0.591285,0.748223,0.448454,0.541285,0.748223,-0.451546,0.541285,0.748223,0.448729,0.091284,0.748223,-0.451271,0.091284,0.748223,0.499264,0.091284,0.748223,-0.500736,0.091284,0.748223})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconGreenPreferred1a-TEXCOORD").setPoint(new MFVec2f(new double[] {0.997885,0.999501,4.99E-4,0.9995,0.948015,0.949551,0.050368,0.949551,0.94829,0.5,0.050643,0.5,0.998693,0.5,0.94829,0.500001,0.001307,0.5})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_4"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,7,5,3,-1,3,1,7,-1,6,0,2,-1,2,4,6,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,8,5,3,-1,3,1,8,-1,6,0,2,-1,2,4,6,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred1a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred1a-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,6,7,-1,7,1,0,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {2,7,5,-1,5,3,2,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred1a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred1a-TEXCOORD")))))
                .addChild(new Transform("DaybeaconGreenPreferred1b").setTranslation(7.36E-4,-0.091284,0.001776)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_6"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,4,-1,4,5,3,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,2,4,-1,4,5,3,-1})
                      .setCoord(new Coordinate("DaybeaconGreenPreferred1b-COORD").setPoint(new MFVec3f(new double[] {0.500074,-0.408716,0.748223,-0.499926,-0.408716,0.748223,0.449005,-0.358715,0.748223,-0.450995,-0.358715,0.748223,0.448729,0.091284,0.748223,-0.451271,0.091284,0.748223,0.499264,0.091284,0.748223,-0.500736,0.091284,0.748223})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconGreenPreferred1b-TEXCOORD").setPoint(new MFVec2f(new double[] {0.999501,4.99E-4,0.002115,4.99E-4,0.948565,0.05045,0.050918,0.050449,0.94829,0.5,0.050643,0.5,0.998693,0.5,0.94829,0.500001,0.001307,0.5})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_7"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {6,4,2,-1,2,0,6,-1,2,3,1,-1,1,0,2,-1,7,1,3,-1,3,5,7,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {6,4,2,-1,2,0,6,-1,2,3,1,-1,1,0,2,-1,8,1,3,-1,3,5,8,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred1b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred1b-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,7,-1,7,6,0,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {2,3,5,-1,5,7,2,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred1b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred1b-TEXCOORD")))))
                .addChild(new Transform("DaybeaconGreenPreferred2a").setRotation(0.0,-1.0,0.0,-3.14159).setTranslation(-7.36E-4,-0.091284,-0.001776)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_1"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,5,4,-1,4,2,3,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,5,4,-1,4,2,3,-1})
                      .setCoord(new Coordinate("DaybeaconGreenPreferred2a-COORD").setPoint(new MFVec3f(new double[] {0.498454,0.591285,0.748223,-0.501546,0.591285,0.748223,0.448454,0.541285,0.748223,-0.451546,0.541285,0.748223,0.448729,0.091284,0.748223,-0.451271,0.091284,0.748223,0.499264,0.091284,0.748223,-0.500736,0.091284,0.748223})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconGreenPreferred2a-TEXCOORD").setPoint(new MFVec2f(new double[] {0.997885,0.999501,4.99E-4,0.9995,0.948015,0.949551,0.050368,0.949551,0.94829,0.5,0.050643,0.5,0.998693,0.5,0.94829,0.500001,0.001307,0.5})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_4"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,7,5,3,-1,3,1,7,-1,6,0,2,-1,2,4,6,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,8,5,3,-1,3,1,8,-1,6,0,2,-1,2,4,6,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred2a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred2a-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,6,7,-1,7,1,0,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {2,7,5,-1,5,3,2,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred2a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred2a-TEXCOORD")))))
                .addChild(new Transform("DaybeaconGreenPreferred2b").setRotation(0.0,-1.0,0.0,-3.14159).setTranslation(-7.36E-4,-0.091284,-0.001776)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_6"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,4,-1,4,5,3,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,2,4,-1,4,5,3,-1})
                      .setCoord(new Coordinate("DaybeaconGreenPreferred2b-COORD").setPoint(new MFVec3f(new double[] {0.500074,-0.408716,0.748223,-0.499926,-0.408716,0.748223,0.449005,-0.358715,0.748223,-0.450995,-0.358715,0.748223,0.448729,0.091284,0.748223,-0.451271,0.091284,0.748223,0.499264,0.091284,0.748223,-0.500736,0.091284,0.748223})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconGreenPreferred2b-TEXCOORD").setPoint(new MFVec2f(new double[] {0.999501,4.99E-4,0.002115,4.99E-4,0.948565,0.05045,0.050918,0.050449,0.94829,0.5,0.050643,0.5,0.998693,0.5,0.94829,0.500001,0.001307,0.5})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_7"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {6,4,2,-1,2,0,6,-1,2,3,1,-1,1,0,2,-1,7,1,3,-1,3,5,7,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {6,4,2,-1,2,0,6,-1,2,3,1,-1,1,0,2,-1,8,1,3,-1,3,5,8,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred2b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred2b-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,7,-1,7,6,0,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {2,3,5,-1,5,7,2,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconGreenPreferred2b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconGreenPreferred2b-TEXCOORD"))))))
              .addChild(new Transform("DaybeaconsRedPreferred").setTranslation(0.0,4.36938,0.0)
                .addChild(new Transform("DaybeaconRedPreferred1a").setTranslation(0.0,-0.166405,0.75)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_6"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,1,3,-1}).setNormalIndex(new int[] {0,0,0,-1}).setTexCoordIndex(new int[] {2,1,3,-1})
                      .setCoord(new Coordinate("DaybeaconRedPreferred1a-COORD").setPoint(new MFVec3f(new double[] {0.0,0.666405,0.0,0.0,0.555162,0.0,0.280072,0.067321,0.0,-0.280072,0.067321,0.0,0.344261,0.067321,0.0,-0.344261,0.067321,0.0})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconRedPreferred1a-TEXCOORD").setPoint(new MFVec2f(new double[] {0.5,0.999501,0.5,0.888369,0.743447,0.401015,0.256553,0.401015,0.799243,0.401015,0.749075,0.38975,0.200757,0.401015,0.250925,0.38975})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_7"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {5,3,1,-1,1,0,5,-1,4,0,1,-1,1,2,4,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {6,3,1,-1,1,0,6,-1,4,0,1,-1,1,2,4,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred1a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred1a-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {5,0,4,-1}).setNormalIndex(new int[] {1,1,1,-1}).setTexCoordIndex(new int[] {7,1,5,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred1a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred1a-TEXCOORD")))))
                .addChild(new Transform("DaybeaconRedPreferred1b").setTranslation(0.0,-0.166405,0.75)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_1"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,3,4,-1,4,5,2,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {2,3,4,-1,4,5,2,-1})
                      .setCoord(new Coordinate("DaybeaconRedPreferred1b-COORD").setPoint(new MFVec3f(new double[] {-0.574646,-0.333595,0.0,0.574646,-0.333595,0.0,-0.478307,-0.277973,0.0,0.478307,-0.277974,0.0,0.280072,0.067321,0.0,-0.280072,0.067321,0.0,0.344261,0.067321,0.0,-0.344261,0.067321,0.0})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconRedPreferred1b-TEXCOORD").setPoint(new MFVec2f(new double[] {4.99E-4,4.99E-4,0.999501,4.99E-4,0.08424,0.056065,0.915759,0.056065,0.743447,0.401015,0.256553,0.401015,0.799243,0.401015,0.749075,0.38975,0.200757,0.401015,0.250925,0.38975})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_4"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,6,4,3,-1,3,1,6,-1,7,0,2,-1,2,5,7,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,6,4,3,-1,3,1,6,-1,8,0,2,-1,2,5,8,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred1b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred1b-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {6,1,0,-1,0,7,6,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {7,3,2,-1,2,9,7,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred1b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred1b-TEXCOORD")))))
                .addChild(new Transform("DaybeaconRedPreferred2a").setRotation(0.0,-1.0,0.0,-3.14159).setTranslation(0.0,-0.166405,-0.75)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_6"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,1,3,-1}).setNormalIndex(new int[] {0,0,0,-1}).setTexCoordIndex(new int[] {2,1,3,-1})
                      .setCoord(new Coordinate("DaybeaconRedPreferred2a-COORD").setPoint(new MFVec3f(new double[] {0.0,0.666405,0.0,0.0,0.555162,0.0,0.280072,0.067321,0.0,-0.280072,0.067321,0.0,0.344261,0.067321,0.0,-0.344261,0.067321,0.0})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconRedPreferred2a-TEXCOORD").setPoint(new MFVec2f(new double[] {0.5,0.999501,0.5,0.888369,0.743447,0.401015,0.256553,0.401015,0.799243,0.401015,0.749075,0.38975,0.200757,0.401015,0.250925,0.38975})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_7"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {5,3,1,-1,1,0,5,-1,4,0,1,-1,1,2,4,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {6,3,1,-1,1,0,6,-1,4,0,1,-1,1,2,4,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred2a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred2a-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {5,0,4,-1}).setNormalIndex(new int[] {1,1,1,-1}).setTexCoordIndex(new int[] {7,1,5,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred2a-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred2a-TEXCOORD")))))
                .addChild(new Transform("DaybeaconRedPreferred2b").setRotation(0.0,-1.0,0.0,-3.14159).setTranslation(0.0,-0.166405,-0.75)
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_1"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {2,3,4,-1,4,5,2,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {2,3,4,-1,4,5,2,-1})
                      .setCoord(new Coordinate("DaybeaconRedPreferred2b-COORD").setPoint(new MFVec3f(new double[] {-0.574646,-0.333595,0.0,0.574646,-0.333595,0.0,-0.478307,-0.277973,0.0,0.478307,-0.277974,0.0,0.280072,0.067321,0.0,-0.280072,0.067321,0.0,0.344261,0.067321,0.0,-0.344261,0.067321,0.0})))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate("DaybeaconRedPreferred2b-TEXCOORD").setPoint(new MFVec2f(new double[] {4.99E-4,4.99E-4,0.999501,4.99E-4,0.08424,0.056065,0.915759,0.056065,0.743447,0.401015,0.256553,0.401015,0.799243,0.401015,0.749075,0.38975,0.200757,0.401015,0.250925,0.38975})))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_4"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,6,4,3,-1,3,1,6,-1,7,0,2,-1,2,5,7,-1}).setNormalIndex(new int[] {0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1,0,0,0,-1}).setTexCoordIndex(new int[] {3,2,0,-1,0,1,3,-1,6,4,3,-1,3,1,6,-1,8,0,2,-1,2,5,8,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred2b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred2b-TEXCOORD"))))
                  .addChild(new Shape()
                    .setAppearance(new Appearance().setUSE("Daybeacon_5"))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {6,1,0,-1,0,7,6,-1}).setNormalIndex(new int[] {1,1,1,-1,1,1,1,-1}).setTexCoordIndex(new int[] {7,3,2,-1,2,9,7,-1})
                      .setCoord(new Coordinate().setUSE("DaybeaconRedPreferred2b-COORD"))
                      .setNormal(new Normal().setUSE("Daybeacon_3"))
                      .setTexCoord(new TextureCoordinate().setUSE("DaybeaconRedPreferred2b-TEXCOORD"))))))))
          .addChild(new Group("DaybeaconPile")
            .addChild(new Transform("DaybeaconBase")
              .addChild(new Shape()
                .setAppearance(new Appearance()
                  .setMaterial(new Material().setUSE("Daybeacon_2"))
                  .setTexture(new ImageTexture().setUrl(new String[] {"Textures/BeaconStand06.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/BeaconStand06.jpg"})))
                .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,9,8,-1,0,1,9,-1,1,10,9,-1,1,2,10,-1,2,11,10,-1,2,3,11,-1,3,12,11,-1,3,4,12,-1,4,13,12,-1,4,5,13,-1,5,14,13,-1,5,6,14,-1,6,15,14,-1,6,7,15,-1,7,8,15,-1,7,0,8,-1}).setNormalIndex(new int[] {7,7,7,-1,7,7,7,-1,3,3,3,-1,3,3,3,-1,15,15,15,-1,15,15,15,-1,17,17,17,-1,17,17,17,-1,1,1,1,-1,1,1,1,-1,4,4,4,-1,4,4,4,-1,13,13,13,-1,13,13,13,-1,9,9,9,-1,9,9,9,-1}).setTexCoordIndex(new int[] {0,9,8,-1,0,1,9,-1,1,10,9,-1,1,2,10,-1,16,11,17,-1,16,3,11,-1,3,12,11,-1,3,4,12,-1,4,13,12,-1,4,5,13,-1,5,14,13,-1,5,6,14,-1,6,15,14,-1,6,7,15,-1,7,8,15,-1,7,0,8,-1})
                  .setCoord(new Coordinate("DaybeaconBase-COORD").setPoint(getDaybeaconBase_COORD_10_269_point()))
                  .setNormal(new Normal("Daybeacon_8").setVector(new MFVec3f(new double[] {-0.3826,0.0,-0.9238,-0.7071,0.0,-0.7071,-0.9238,0.0,-0.3826,1.0,0.0,0.0,-1.0,0.0,0.0,0.0,1.0,0.0,0.3826,0.0,0.9238,0.7071,0.0,0.7071,0.9238,0.0,0.3826,0.0,0.0,1.0,0.0,-1.0,0.0,-0.3826,0.0,0.9238,0.3826,0.0,-0.9238,-0.7071,0.0,0.7071,-0.9238,0.0,0.3826,0.7071,0.0,-0.7071,0.9238,0.0,-0.3826,0.0,0.0,-1.0})))
                  .setTexCoord(new TextureCoordinate("DaybeaconBase-TEXCOORD").setPoint(new MFVec2f(new double[] {2.25,0.235249,2.625,0.235249,3.0,0.235249,0.375,0.235249,0.75,0.235249,1.125,0.235249,1.5,0.235249,1.875,0.235249,2.25,0.963385,2.625,0.963385,3.0,0.963385,0.375,0.963385,0.75,0.963385,1.125,0.963385,1.5,0.963385,1.875,0.963385,0.0,0.235249,0.0,0.963385,-0.22078,0.316178,0.5,0.316178,0.5,0.683823,-0.22078,0.683823,-0.22078,1.22078,1.22078,1.22078,0.5,1.51934,1.51934,0.5,1.22078,-0.22078,0.5,-0.519337,-0.22078,-0.22078,-0.519337,0.5,1.22078,0.683823,1.22078,0.316178,0.5,0.326533,-0.461197,0.326533,-0.461196,0.326533,1.4612,1.4612,1.85934,0.5,0.5,1.85934,-0.461196,1.4612,-0.859337,0.5,-0.461196,-0.461196,0.5,-0.859337,1.4612,-0.461196,-0.461197,1.4612,1.4612,0.683823,1.4612,0.326533,-0.461197,0.683823,-0.461196,0.683823,0.9995,0.004994,4.99E-4,0.004994,0.9995,9.995,4.99E-4,9.995})))))
              .addChild(new Shape()
                .setAppearance(new Appearance()
                  .setMaterial(new Material().setUSE("Daybeacon_2"))
                  .setTexture(new ImageTexture().setUrl(new String[] {"Textures/BeaconStand03.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/BeaconStand03.jpg"})))
                .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {16,19,18,-1,16,20,19,-1,16,21,20,-1,16,22,21,-1,16,23,22,-1,16,17,23,-1,17,25,24,-1,17,16,25,-1,16,26,25,-1,16,18,26,-1,18,27,26,-1,18,19,27,-1,19,28,27,-1,19,20,28,-1,20,29,28,-1,20,21,29,-1,21,30,29,-1,21,22,30,-1,22,31,30,-1,22,23,31,-1,23,24,31,-1,23,17,24,-1,32,34,33,-1,32,35,34,-1,32,36,35,-1,32,37,36,-1,32,38,37,-1,32,39,38,-1,32,41,40,-1,32,33,41,-1,33,42,41,-1,33,34,42,-1,34,43,42,-1,34,35,43,-1,35,44,43,-1,35,36,44,-1,36,45,44,-1,36,37,45,-1,37,46,45,-1,37,38,46,-1,38,47,46,-1,38,39,47,-1,39,40,47,-1,39,32,40,-1,40,41,42,-1,40,42,43,-1,40,43,44,-1,40,44,45,-1,40,45,46,-1,40,46,47,-1}).setNormalIndex(new int[] {10,10,10,-1,10,10,10,-1,10,10,10,-1,10,10,10,-1,10,10,10,-1,10,10,10,-1,6,8,6,-1,6,8,8,-1,8,16,8,-1,8,16,16,-1,16,12,16,-1,16,12,12,-1,12,0,12,-1,12,0,0,-1,0,2,0,-1,0,2,2,-1,2,14,2,-1,2,14,14,-1,14,11,14,-1,14,11,11,-1,11,6,11,-1,11,6,6,-1,10,10,10,-1,10,10,10,-1,10,10,10,-1,10,10,10,-1,10,10,10,-1,10,10,10,-1,6,8,6,-1,6,8,8,-1,8,16,8,-1,8,16,16,-1,16,12,16,-1,16,12,12,-1,12,0,12,-1,12,0,0,-1,0,2,0,-1,0,2,2,-1,2,14,2,-1,2,14,14,-1,14,11,14,-1,14,11,11,-1,11,6,11,-1,11,6,6,-1,5,5,5,-1,5,5,5,-1,5,5,5,-1,5,5,5,-1,5,5,5,-1,5,5,5,-1}).setTexCoordIndex(new int[] {22,23,24,-1,22,25,23,-1,22,26,25,-1,22,27,26,-1,22,28,27,-1,22,29,28,-1,19,30,20,-1,19,31,30,-1,18,20,21,-1,18,19,20,-1,19,30,20,-1,19,31,30,-1,18,20,21,-1,18,19,20,-1,19,30,20,-1,19,31,30,-1,18,20,21,-1,18,19,20,-1,19,30,20,-1,19,31,30,-1,18,20,21,-1,18,19,20,-1,39,37,43,-1,39,35,37,-1,39,36,35,-1,39,42,36,-1,39,41,42,-1,39,40,41,-1,32,44,20,-1,32,45,44,-1,33,20,46,-1,33,32,20,-1,32,44,20,-1,32,45,44,-1,34,20,47,-1,34,32,20,-1,32,44,20,-1,32,45,44,-1,34,20,47,-1,34,32,20,-1,32,44,20,-1,32,45,44,-1,34,20,47,-1,34,32,20,-1,36,35,37,-1,36,37,38,-1,36,38,39,-1,36,39,40,-1,36,40,41,-1,36,41,42,-1})
                  .setCoord(new Coordinate().setUSE("DaybeaconBase-COORD"))
                  .setNormal(new Normal().setUSE("Daybeacon_8"))
                  .setTexCoord(new TextureCoordinate().setUSE("DaybeaconBase-TEXCOORD"))))
              .addChild(new Shape()
                .setAppearance(new Appearance()
                  .setMaterial(new Material().setUSE("Daybeacon_2"))
                  .setTexture(new ImageTexture().setUrl(new String[] {"Textures/BeaconStand08.png","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/BeaconStand08.png"})))
                .setGeometry(new IndexedFaceSet().setSolid(false).setCoordIndex(new int[] {49,48,16,-1,18,16,48,-1}).setNormalIndex(new int[] {3,3,3,-1,3,3,3,-1}).setTexCoordIndex(new int[] {48,49,50,-1,51,50,49,-1})
                  .setCoord(new Coordinate().setUSE("DaybeaconBase-COORD"))
                  .setNormal(new Normal().setUSE("Daybeacon_8"))
                  .setTexCoord(new TextureCoordinate().setUSE("DaybeaconBase-TEXCOORD")))))
            .addChild(new Transform("DaybeaconGuardInside")
              .addChild(new Shape()
                .setAppearance(new Appearance("Daybeacon_9")
                  .setMaterial(new Material().setUSE("Daybeacon_2"))
                  .setTexture(new ImageTexture().setUrl(new String[] {"Textures/BeaconStand07.png","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/NavigationAids/Textures/BeaconStand07.png"})))
                .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {8,9,1,-1,1,0,8,-1,9,10,2,-1,2,1,9,-1,10,11,3,-1,3,2,10,-1,11,12,4,-1,4,3,11,-1,12,13,5,-1,5,4,12,-1,13,14,6,-1,6,5,13,-1,14,15,7,-1,7,6,14,-1,15,8,0,-1,0,7,15,-1}).setNormalIndex(new int[] {4,7,7,-1,7,4,4,-1,7,5,5,-1,5,7,7,-1,5,1,1,-1,1,5,5,-1,1,0,0,-1,0,1,1,-1,0,3,3,-1,3,0,0,-1,3,6,6,-1,6,3,3,-1,6,2,2,-1,2,6,6,-1,2,4,4,-1,4,2,2,-1}).setTexCoordIndex(new int[] {19,18,20,-1,20,21,19,-1,0,4,5,-1,5,2,0,-1,16,6,7,-1,7,17,16,-1,22,24,25,-1,25,23,22,-1,8,10,11,-1,11,9,8,-1,10,12,13,-1,13,11,10,-1,12,14,15,-1,15,13,12,-1,14,1,3,-1,3,15,14,-1})
                  .setCoord(new Coordinate("Daybeacon_10").setPoint(new MFVec3f(new double[] {0.260098,3.90713,0.627932,0.627932,3.90713,0.260098,0.627932,3.90713,-0.260098,0.260098,3.90713,-0.627932,-0.260098,3.90713,-0.627932,-0.627932,3.90713,-0.260098,-0.627932,3.90713,0.260098,-0.260098,3.90713,0.627932,0.305287,4.60083,0.737028,0.737028,4.60083,0.305287,0.737028,4.60083,-0.305287,0.305287,4.60083,-0.737028,-0.305287,4.60083,-0.737028,-0.737028,4.60083,-0.305287,-0.737028,4.60083,0.305287,-0.305287,4.60083,0.737028})))
                  .setNormal(new Normal().setVector(new MFVec3f(new double[] {0.3772,0.1678,0.9107,-0.3772,0.1678,0.9107,0.3772,0.1678,-0.9107,0.9107,0.1678,0.3772,-0.3772,0.1678,-0.9107,-0.9107,0.1678,0.3772,0.9107,0.1678,-0.3772,-0.9107,0.1678,-0.3772})))
                  .setTexCoord(new TextureCoordinate("Daybeacon_11").setPoint(new MFVec2f(new double[] {2.625,0.9995,2.25,0.9995,2.625,4.99E-4,2.25,4.99E-4,3.0,0.9995,3.0,4.99E-4,0.375,0.9995,0.375,4.99E-4,0.75,0.9995,0.75,4.99E-4,1.125,0.9995,1.125,4.99E-4,1.5,0.9995,1.5,4.99E-4,1.875,0.9995,1.875,4.99E-4,0.0,0.9995,0.0,4.99E-4,2.51281,0.9995,2.13781,0.9995,2.51281,4.99E-4,2.13781,4.99E-4,0.131827,0.9995,0.131827,4.99E-4,0.506827,0.9995,0.506827,4.99E-4}))))))
            .addChild(new Transform("DaybeaconGuardOutside")
              .addChild(new Shape()
                .setAppearance(new Appearance().setUSE("Daybeacon_9"))
                .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {9,8,1,-1,0,1,8,-1,10,9,2,-1,1,2,9,-1,11,10,3,-1,2,3,10,-1,12,11,4,-1,3,4,11,-1,13,12,5,-1,4,5,12,-1,14,13,6,-1,5,6,13,-1,15,14,7,-1,6,7,14,-1,8,15,0,-1,7,0,15,-1}).setNormalIndex(new int[] {6,3,6,-1,3,6,3,-1,1,6,1,-1,6,1,6,-1,5,1,5,-1,1,5,1,-1,7,5,7,-1,5,7,5,-1,2,7,2,-1,7,2,7,-1,0,2,0,-1,2,0,2,-1,4,0,4,-1,0,4,0,-1,3,4,3,-1,4,3,4,-1}).setTexCoordIndex(new int[] {18,19,20,-1,21,20,19,-1,4,0,5,-1,2,5,0,-1,6,16,7,-1,17,7,16,-1,24,22,25,-1,23,25,22,-1,10,8,11,-1,9,11,8,-1,12,10,13,-1,11,13,10,-1,14,12,15,-1,13,15,12,-1,1,14,3,-1,15,3,14,-1})
                  .setCoord(new Coordinate().setUSE("Daybeacon_10"))
                  .setNormal(new Normal().setVector(new MFVec3f(new double[] {-0.9107,-0.1678,0.3772,0.9107,-0.1678,-0.3772,-0.9107,-0.1678,-0.3772,0.3772,-0.1678,0.9107,-0.3772,-0.1678,0.9107,0.3772,-0.1678,-0.9107,0.9107,-0.1678,0.3772,-0.3772,-0.1678,-0.9107})))
                  .setTexCoord(new TextureCoordinate().setUSE("Daybeacon_11")))))))))
    .addChild(new ProtoInstance("Daybeacon").setContainerField("children")));
            }
            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

		/** Large attribute array: Coordinate DEF='DaybeaconBase-COORD' point field, scene-graph level=10, element #269, 150 total numbers made up of 50 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getDaybeaconBase_COORD_10_269_point()
		{
			MFVec3f DaybeaconBase_COORD_10_269_point = new MFVec3f(new double[] {0.137639,0.0,0.33229,0.33229,0.0,0.137639,0.33229,0.0,-0.137639,0.137639,0.0,-0.33229,-0.137639,0.0,-0.33229,-0.33229,0.0,-0.137639,-0.33229,0.0,0.137639,-0.137639,0.0,0.33229,0.137639,3.65516,0.33229,0.33229,3.65516,0.137639,0.33229,3.65516,-0.137639,0.137639,3.65516,-0.33229,-0.137639,3.65516,-0.33229,-0.33229,3.65516,-0.137639,-0.33229,3.65516,0.137639,-0.137639,3.65516,0.33229,0.470872,3.65478,0.195042,0.195042,3.65478,0.470872,0.470872,3.65478,-0.195042,0.195041,3.65478,-0.470872,-0.195042,3.65478,-0.470872,-0.470872,3.65478,-0.195042,-0.470872,3.65478,0.195042,-0.195042,3.65478,0.470872,0.195042,3.78276,0.470872,0.470872,3.78276,0.195042,0.470872,3.78276,-0.195042,0.195041,3.78276,-0.470872,-0.195042,3.78276,-0.470872,-0.470872,3.78276,-0.195042,-0.470872,3.78276,0.195042,-0.195042,3.78276,0.470872,0.260098,3.78276,0.627932,0.627932,3.78276,0.260098,0.627932,3.78276,-0.260098,0.260098,3.78276,-0.627932,-0.260098,3.78276,-0.627932,-0.627932,3.78276,-0.260098,-0.627932,3.78276,0.260098,-0.260098,3.78276,0.627932,0.260098,3.90713,0.627932,0.627932,3.90713,0.260098,0.627932,3.90713,-0.260098,0.260098,3.90713,-0.627932,-0.260098,3.90713,-0.627932,-0.627932,3.90713,-0.260098,-0.627932,3.90713,0.260098,-0.260098,3.90713,0.627932,0.470872,0.0,-0.195042,0.470872,0.0,0.195042});
			return DaybeaconBase_COORD_10_269_point;
		}

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

	/** 
	 * Provide a 
	 * <a href="https://dzone.com/articles/java-copy-shallow-vs-deep-in-which-you-will-swim" target="_blank">shallow copy</a>
	 * of the X3D model.
	 * @see <a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html">X3D</a>
	 * @return DaybeaconPrototype 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 <a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#handleArguments-java.lang.String:A-">X3D.handleArguments(args)</a>
     * @see <a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#validationReport--">X3D.validationReport()</a>
     * @see <a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html">CommandLine</a>
     * @see <a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html#USAGE">CommandLine.USAGE</a>
     * @see <a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/ConfigurationProperties.html">ConfigurationProperties</a>
     */
    public static void main(String args[])
    {
        System.out.println("Build this X3D model, showing validation diagnostics...");
        X3D thisExampleX3dModel = new DaybeaconPrototype().getX3dModel();
//      System.out.println("X3D model construction complete.");
	
        // next handle command line arguments
        boolean hasArguments = (args != null) && (args.length > 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: \"Savage.HarborEquipment.NavigationAids.DaybeaconPrototype\" 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("Savage.HarborEquipment.NavigationAids.DaybeaconPrototype self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

                // experimental: test X3DJSAIL output files
                // HarborEquipment/NavigationAids/DaybeaconPrototype_JavaExport.* file validation is checked when building X3D Example Archives
                String filenameX3D  = "HarborEquipment/NavigationAids/DaybeaconPrototype_JavaExport.x3d"; 
                String filenameX3DV = "HarborEquipment/NavigationAids/DaybeaconPrototype_JavaExport.x3dv"; 
                String filenameJSON = "HarborEquipment/NavigationAids/DaybeaconPrototype_JavaExport.json";
                thisExampleX3dModel.toFileX3D        (filenameX3D);
                thisExampleX3dModel.toFileClassicVRML(filenameX3DV);
// TODO         thisExampleX3dModel.toFileJSON       (filenameJSON);
        }
    }
}
