package Savage.HarborEquipment.Buoys;

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> Mooring Buoy. </p>
 <p> Related links: Catalog page <a href="../../../../HarborEquipment/Buoys/MooringBuoyHighDetailIndex.html" target="_blank">MooringBuoyHighDetail</a>,  source <a href="../../../../HarborEquipment/Buoys/MooringBuoyHighDetail.java">MooringBuoyHighDetail.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/Buoys/MooringBuoyHighDetail.x3d">MooringBuoyHighDetail.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> Mooring Buoy </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> 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/Buoys/MooringBuoyHighDetail.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Buoys/MooringBuoyHighDetail.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> X3D-Edit, <a href="https://www.web3d.org/x3d/tools/X3D-Edit" target="_blank">https://www.web3d.org/x3d/tools/X3D-Edit</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../HarborEquipment/Buoys/../../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 MooringBuoyHighDetail
{
	/** Default constructor to create this object. */
	public MooringBuoyHighDetail ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_INTERCHANGE).setVersion(X3D.VERSION_3_0)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("MooringBuoyHighDetail.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Mooring Buoy"))
    .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_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/Buoys/MooringBuoyHighDetail.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit, https://www.web3d.org/x3d/tools/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("MooringBuoyHighDetail.x3d"))
    .addChild(new Transform("MooringBuoy").setScale(0.3,0.3,0.3)
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material("MooringBuoy-MATERIAL").setAmbientIntensity(0.0).setDiffuseColor(0.588235,0.588235,0.588235).setShininess(0.145))
          .setTexture(new ImageTexture().setUrl(new String[] {"textures/MooringBuoy03.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Buoys/textures/MooringBuoy03.jpg"})))
        .setGeometry(new IndexedFaceSet().setCoordIndex(getIndexedFaceSet_5_19_coordIndex()).setNormalIndex(new int[] {56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,51,51,51,-1,51,51,51,-1,51,51,51,-1,51,51,51,-1,98,46,98,-1,98,46,46,-1,46,10,46,-1,46,3,10,-1,3,56,10,-1,3,56,56,-1,56,109,56,-1,56,103,109,-1,103,9,109,-1,103,9,9,-1,9,98,9,-1,9,98,98,-1,17,17,17,-1,17,17,17,-1,17,17,17,-1,17,17,17,-1,17,40,40,-1,40,17,17,-1,40,74,74,-1,40,74,119,-1,40,119,119,-1,40,119,40,-1,74,51,51,-1,51,74,74,-1,51,35,35,-1,35,51,51,-1,35,4,4,-1,35,4,87,-1,35,87,87,-1,35,87,35,-1,4,17,17,-1,17,4,4,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,56,56,56,-1,119,119,119,-1,119,119,119,-1,87,87,87,-1,87,87,87,-1,17,17,17,-1,17,17,17,-1,51,51,51,-1,51,51,51,-1,51,51,51,-1,51,51,51,-1,54,54,54,-1,54,54,54,-1,17,17,17,-1,17,17,17,-1,89,89,89,-1,89,89,89,-1}).setTexCoordIndex(getIndexedFaceSet_5_19_texCoordIndex())
          .setCoord(new Coordinate("MooringBuoy-COORD").setPoint(getMooringBuoy_COORD_6_19_point()))
          .setNormal(new Normal("MooringBuoy-NORMAL").setVector(getMooringBuoy_NORMAL_6_20_vector()))
          .setTexCoord(new TextureCoordinate("MooringBuoy-TEXCOORD").setPoint(getMooringBuoy_TEXCOORD_6_21_point()))))
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material().setUSE("MooringBuoy-MATERIAL"))
          .setTexture(new ImageTexture().setRepeatT(false).setUrl(new String[] {"textures/MooringBuoy01.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Buoys/textures/MooringBuoy01.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,8,9,18,-1,18,17,8,-1,9,10,19,-1,19,18,9,-1,10,11,20,-1,20,19,10,-1,11,12,21,-1,21,20,11,-1,12,13,22,-1,22,21,12,-1,13,14,23,-1,23,22,13,-1,14,15,24,-1,24,23,14,-1,15,8,17,-1,17,24,15,-1,175,174,176,-1,176,174,177,-1,177,174,178,-1,178,174,179,-1,179,174,180,-1,180,174,181,-1,181,174,182,-1,182,174,175,-1,7,6,182,-1,181,182,6,-1,3,2,178,-1,177,178,2,-1,6,5,181,-1,180,181,5,-1,2,1,177,-1,176,177,1,-1,5,4,180,-1,179,180,4,-1,1,0,176,-1,175,176,0,-1,4,3,179,-1,178,179,3,-1,0,7,175,-1,182,175,7,-1}).setNormalIndex(new int[] {17,108,17,-1,17,108,108,-1,108,119,108,-1,108,119,119,-1,119,5,119,-1,119,5,5,-1,5,51,5,-1,5,51,51,-1,51,104,51,-1,51,104,104,-1,104,87,104,-1,104,87,87,-1,87,77,87,-1,87,77,77,-1,77,17,77,-1,77,17,17,-1,43,110,110,-1,110,43,43,-1,110,6,6,-1,6,110,110,-1,6,7,7,-1,7,6,6,-1,7,76,76,-1,76,7,7,-1,76,106,106,-1,106,76,76,-1,106,105,105,-1,105,106,106,-1,105,79,79,-1,79,105,105,-1,79,43,43,-1,43,79,79,-1,98,98,98,-1,98,98,98,-1,98,98,98,-1,98,98,98,-1,98,98,98,-1,98,98,98,-1,98,98,98,-1,98,98,98,-1,123,42,123,-1,42,123,42,-1,59,80,59,-1,80,59,80,-1,42,19,42,-1,19,42,19,-1,80,27,80,-1,27,80,27,-1,19,124,19,-1,124,19,124,-1,27,97,27,-1,97,27,97,-1,124,59,124,-1,59,124,59,-1,97,123,97,-1,123,97,123,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,3,1,-1,3,4,1,-1,3,5,4,-1,24,6,25,-1,24,7,6,-1,7,8,6,-1,7,9,8,-1,9,10,8,-1,9,11,10,-1,11,12,10,-1,11,13,12,-1,13,14,12,-1,13,15,14,-1,15,2,14,-1,15,0,2,-1,2,1,16,-1,16,17,2,-1,1,4,18,-1,18,16,1,-1,25,6,19,-1,19,26,25,-1,6,8,20,-1,20,19,6,-1,8,10,21,-1,21,20,8,-1,10,12,22,-1,22,21,10,-1,12,14,23,-1,23,22,12,-1,14,2,17,-1,17,23,14,-1,287,288,289,-1,289,288,290,-1,290,288,291,-1,291,288,292,-1,292,288,293,-1,293,288,294,-1,294,288,295,-1,295,288,287,-1,283,284,285,-1,286,285,284,-1,284,283,286,-1,285,286,283,-1,283,284,285,-1,286,285,284,-1,284,283,286,-1,285,286,283,-1,283,284,285,-1,286,285,284,-1,284,283,286,-1,285,286,283,-1,283,284,285,-1,286,285,284,-1,284,283,286,-1,285,286,283,-1})
          .setCoord(new Coordinate().setUSE("MooringBuoy-COORD"))
          .setNormal(new Normal().setUSE("MooringBuoy-NORMAL"))
          .setTexCoord(new TextureCoordinate().setUSE("MooringBuoy-TEXCOORD"))))
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material().setUSE("MooringBuoy-MATERIAL"))
          .setTexture(new ImageTexture().setUrl(new String[] {"textures/MooringBuoy02.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Buoys/textures/MooringBuoy02.jpg"})))
        .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {17,18,26,-1,26,25,17,-1,18,19,27,-1,27,26,18,-1,19,20,28,-1,28,27,19,-1,20,21,29,-1,29,28,20,-1,21,22,30,-1,30,29,21,-1,22,23,31,-1,31,30,22,-1,23,24,32,-1,32,31,23,-1,24,17,25,-1,25,32,24,-1,34,35,43,-1,43,42,34,-1,35,36,44,-1,44,43,35,-1,36,37,45,-1,45,44,36,-1,37,38,46,-1,46,45,37,-1,38,39,47,-1,47,46,38,-1,39,40,48,-1,48,47,39,-1,40,41,49,-1,49,48,40,-1,41,34,42,-1,42,49,41,-1}).setNormalIndex(new int[] {17,108,108,-1,108,17,17,-1,108,119,119,-1,119,108,108,-1,119,5,5,-1,5,119,119,-1,5,51,51,-1,51,5,5,-1,51,104,104,-1,104,51,51,-1,104,87,87,-1,87,104,104,-1,87,77,77,-1,77,87,87,-1,77,17,17,-1,17,77,77,-1,17,108,108,-1,108,17,17,-1,108,119,119,-1,119,108,108,-1,119,5,5,-1,5,119,119,-1,5,51,51,-1,51,5,5,-1,51,104,104,-1,104,51,51,-1,104,87,87,-1,87,104,104,-1,87,77,77,-1,77,87,87,-1,77,17,17,-1,17,77,77,-1}).setTexCoordIndex(new int[] {27,28,29,-1,29,30,27,-1,43,31,32,-1,32,44,43,-1,31,33,34,-1,34,32,31,-1,33,35,36,-1,36,34,33,-1,35,37,38,-1,38,36,35,-1,37,39,40,-1,40,38,37,-1,39,41,42,-1,42,40,39,-1,41,27,30,-1,30,42,41,-1,45,46,30,-1,30,42,45,-1,46,47,29,-1,29,30,46,-1,53,48,32,-1,32,44,53,-1,48,49,34,-1,34,32,48,-1,49,50,36,-1,36,34,49,-1,50,51,38,-1,38,36,50,-1,51,52,40,-1,40,38,51,-1,52,45,42,-1,42,40,52,-1})
          .setCoord(new Coordinate().setUSE("MooringBuoy-COORD"))
          .setNormal(new Normal().setUSE("MooringBuoy-NORMAL"))
          .setTexCoord(new TextureCoordinate().setUSE("MooringBuoy-TEXCOORD"))))
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material().setUSE("MooringBuoy-MATERIAL"))
          .setTexture(new ImageTexture().setUrl(new String[] {"textures/MooringBuoy04.jpg","https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Buoys/textures/MooringBuoy04.jpg"})))
        .setGeometry(new IndexedFaceSet().setCoordIndex(getIndexedFaceSet_5_43_coordIndex()).setNormalIndex(getIndexedFaceSet_5_43_normalIndex()).setTexCoordIndex(getIndexedFaceSet_5_43_texCoordIndex())
          .setCoord(new Coordinate().setUSE("MooringBuoy-COORD"))
          .setNormal(new Normal().setUSE("MooringBuoy-NORMAL"))
          .setTexCoord(new TextureCoordinate().setUSE("MooringBuoy-TEXCOORD"))))));
            }
            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

		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_5_19_coordIndex_1()
		{
			int[] value = {16,25,26,-1,16,26,27,-1,16,27,28,-1,16,28,29,-1,16,29,30,-1,16,30,31,-1,16,31,32,-1,16,32,25,-1,33,42,43,-1,33,43,44,-1,33,44,45,-1,33,45,46,-1,33,46,47,-1,33,47,48,-1,33,48,49,-1,33,49,42,-1,50,52,51,-1,50,53,52,-1,50,55,54,-1,50,51,55,-1,51,57,56,-1,51,52,57,-1,52,58,57,-1,52,53,58,-1,53,59,58,-1,53,50,59,-1,50,60,59,-1,50,54,60,-1,54,61,60,-1,54,55,61,-1,55,56,61,-1,55,51,56,-1,59,56,57,-1,59,57,58,-1,59,60,61,-1,59,61,56,-1,150,151,157,-1,157,156,150,-1,151,152,158,-1,151,158,162,-1,151,162,165,-1,151,165,157,-1,152,153,159,-1,159,158,152,-1,153,154,160,-1,160,159,153,-1,154,155,161,-1,154,161,164,-1,154,164,163,-1,154,163,160,-1,155,150,156,-1,156,161,155,-1,156,157,165,-1,156,165,164,-1,161,156,164,-1,159,160,163,-1,158,159,163,-1,162,158,163,-1,170,171,172,-1,172,173,170,-1,165,162,166,-1,166,169,165,-1,163,164,168,-1,168,167,163,-1,164,165,169,-1,169,168,164,-1,162,163,167,-1,167,166,162,-1,166,167,171,-1,171,170,166,-1,167,168,172,-1,172,171,167,-1,168,169,173,-1,173,172,168,-1,169,166,170,-1,170,173,169,-1};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_5_19_texCoordIndex_1()
		{
			int[] value = {54,55,56,-1,54,56,57,-1,54,57,58,-1,54,58,59,-1,54,59,60,-1,54,60,61,-1,54,61,62,-1,54,62,55,-1,63,64,65,-1,63,65,66,-1,63,66,67,-1,63,67,68,-1,63,68,69,-1,63,69,70,-1,63,70,71,-1,63,71,64,-1,84,85,86,-1,84,87,85,-1,84,88,89,-1,84,86,88,-1,73,79,78,-1,73,74,79,-1,90,80,91,-1,90,75,80,-1,75,81,80,-1,75,72,81,-1,72,82,81,-1,72,76,82,-1,76,83,82,-1,76,77,83,-1,77,78,83,-1,77,73,78,-1,84,86,85,-1,84,85,87,-1,84,89,88,-1,84,88,86,-1,243,261,251,-1,251,262,243,-1,244,263,264,-1,244,264,265,-1,244,265,266,-1,244,266,267,-1,245,243,262,-1,262,250,245,-1,243,261,251,-1,251,262,243,-1,244,263,264,-1,244,264,268,-1,244,268,269,-1,244,269,267,-1,245,243,262,-1,262,250,245,-1,55,246,270,-1,55,270,271,-1,249,55,271,-1,59,248,272,-1,247,59,272,-1,273,247,272,-1,274,275,276,-1,276,277,274,-1,266,265,253,-1,253,256,266,-1,269,268,278,-1,278,254,269,-1,252,251,279,-1,279,255,252,-1,250,251,279,-1,279,255,250,-1,255,279,280,-1,280,281,255,-1,254,278,282,-1,282,258,254,-1,255,279,280,-1,280,259,255,-1,256,253,257,-1,257,260,256,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getMooringBuoy_COORD_6_19_point_1()
		{
			double[] value = {0.999988,-0.2523,0.0,0.707098,-0.2523,-0.707098,0.0,-0.2523,-0.999988,-0.707098,-0.2523,-0.707098,-0.999988,-0.2523,0.0,-0.707098,-0.2523,0.707098,0.0,-0.2523,0.999988,0.707098,-0.2523,0.707098,0.999988,0.713344,0.0,0.707098,0.713344,-0.707098,0.0,0.713344,-0.999988,-0.707098,0.713344,-0.707098,-0.999988,0.713344,0.0,-0.707098,0.713344,0.707098,0.0,0.713344,0.999988,0.707098,0.713344,0.707098,0.0,0.894626,0.0,0.8306,0.827379,0.0,0.587323,0.827379,-0.587323,0.0,0.827379,-0.8306,-0.587323,0.827379,-0.587323,-0.8306,0.827379,0.0,-0.587323,0.827379,0.587323,0.0,0.827379,0.8306,0.587323,0.827379,0.587323,0.8306,0.894626,0.0,0.587323,0.894626,-0.587323,0.0,0.894626,-0.8306,-0.587323,0.894626,-0.587323,-0.8306,0.894626,0.0,-0.587323,0.894626,0.587323,0.0,0.894626,0.8306,0.587323,0.894626,0.587323,5.3173E-5,0.947062,0.0,0.602536,0.894933,0.0,0.426073,0.894933,-0.42602,5.31484E-5,0.894933,-0.602483,-0.425967,0.894933,-0.42602,-0.60243,0.894933,0.0,-0.425967,0.894933,0.42602,5.32491E-5,0.894933,0.602483,0.426073,0.894933,0.42602,0.602536,0.947062,0.0,0.426073,0.947062,-0.42602,5.31484E-5,0.947062,-0.602483,-0.425967,0.947062,-0.42602,-0.60243,0.947062,0.0,-0.425967,0.947062,0.42602,5.32491E-5,0.947062,0.602483,0.426073,0.947062,0.42602,-0.099242,1.11872,0.012982,-0.099242,1.03762,0.012982,-0.099242,1.05789,-0.022135,-0.099242,1.09844,-0.022135,-0.099242,1.09844,0.0481,-0.099242,1.05789,0.0481,0.099242,1.03762,0.012982,0.099242,1.05789,-0.022135,0.099242,1.09844,-0.022135,0.099242,1.11872,0.012982,0.099242,1.09844,0.0481,0.099242,1.05789,0.0481,-0.001269,0.96788,-0.45232,-0.001269,0.998341,-0.433114,-0.001269,0.979076,-0.402671,-0.001269,0.948611,-0.4219,0.071785,1.05516,-0.065295,0.046295,1.08002,-0.070902,0.020806,1.05516,-0.065295,0.046295,1.03029,-0.059688,0.071785,1.04649,-0.103721,0.046295,1.07136,-0.109328,0.020806,1.04649,-0.103721,0.046295,1.02163,-0.098114,0.071222,1.04044,-0.130564,0.046295,1.06269,-0.147754,0.021368,1.03521,-0.153731,0.046295,1.01296,-0.13654,0.142153,1.02958,-0.178703,0.120566,1.05113,-0.199006,0.098979,1.02295,-0.208094,0.120566,1.0014,-0.187791,0.177342,1.00617,-0.282539,0.150373,1.03104,-0.288114,0.123404,1.00618,-0.282474,0.150373,0.981309,-0.2769,0.123338,0.978807,-0.403866,0.103502,1.008,-0.390287,0.083666,0.98746,-0.365493,0.103502,0.958268,-0.379073,0.071785,1.11672,-0.027309,0.046295,1.13477,-0.031379,0.020806,1.11672,-0.027309,0.071785,1.02674,-0.007018,0.020806,1.02674,-0.007018,0.046295,1.00869,-0.002948,0.071785,1.12882,0.024874,0.046295,1.14687,0.020803,0.020806,1.12882,0.024874,0.071785,1.03854,0.044603};
			return value;
		}
		private double[] getMooringBuoy_COORD_6_19_point_2()
		{
			double[] value = {0.02015,1.0389,0.044521,0.046295,1.02049,0.048674,0.071785,1.10873,0.06857,0.046295,1.12245,0.077713,0.020806,1.10873,0.06857,0.071774,1.07569,0.076017,0.046285,1.06784,0.089815,0.020795,1.07569,0.076017,-0.074324,1.05516,-0.065277,-0.048834,1.08003,-0.070884,-0.023345,1.05516,-0.065277,-0.048834,1.03029,-0.05967,-0.074324,1.04649,-0.103703,-0.048834,1.07136,-0.109311,-0.023345,1.04649,-0.103703,-0.048834,1.02163,-0.098096,-0.073761,1.04044,-0.130546,-0.048834,1.06269,-0.147737,-0.023907,1.03522,-0.153713,-0.048834,1.01296,-0.136522,-0.144692,1.02959,-0.178685,-0.123105,1.05114,-0.198988,-0.101519,1.02296,-0.208076,-0.123105,1.00141,-0.187773,-0.17988,1.00617,-0.282522,-0.152912,1.03104,-0.288096,-0.125943,1.00619,-0.282457,-0.152912,0.981313,-0.276882,-0.125877,0.978811,-0.403848,-0.106041,1.008,-0.390269,-0.086205,0.987464,-0.365475,-0.106041,0.958272,-0.379055,-0.074324,1.11672,-0.027291,-0.048834,1.13477,-0.031361,-0.023345,1.11672,-0.027291,-0.074324,1.02674,-0.0070,-0.023345,1.02674,-0.0070,-0.048834,1.00869,-0.00293,-0.074324,1.12882,0.024892,-0.048834,1.14687,0.020821,-0.023345,1.12882,0.024892,-0.074324,1.03854,0.044621,-0.022689,1.03891,0.044539,-0.048834,1.02049,0.048691,-0.074324,1.10873,0.068588,-0.048834,1.12246,0.077731,-0.023345,1.10873,0.068588,-0.074313,1.0757,0.076035,-0.048823,1.06784,0.089833,-0.023334,1.0757,0.076035,0.127987,0.893723,0.0,0.063993,0.893723,-0.11084,-0.063993,0.893723,-0.11084,-0.127987,0.893723,0.0,-0.063993,0.893723,0.11084,0.063993,0.893723,0.11084,0.127987,0.992486,0.0,0.063993,0.992486,-0.11084,-0.063993,0.992486,-0.11084,-0.127987,0.992486,0.0,-0.063993,0.992486,0.11084,0.063993,0.992486,0.11084,-0.023975,0.992486,-0.11084,-0.023975,0.992486,0.11084,0.021596,0.992486,0.11084,0.021596,0.992486,-0.11084,-0.023975,1.07002,-0.11084,-0.023975,1.07002,0.11084,0.021596,1.07002,0.11084,0.021596,1.07002,-0.11084,-0.023975,1.1603,-0.066556,-0.023975,1.1603,0.066556,0.021596,1.1603,0.066556,0.021596,1.1603,-0.066556,0.0,-1.12955,0.0,0.30253,-1.12955,0.0,0.213921,-1.12955,-0.213921,0.0,-1.12955,-0.30253,-0.213921,-1.12955,-0.213921,-0.30253,-1.12955,0.0,-0.213921,-1.12955,0.213921,0.0,-1.12955,0.30253,0.213921,-1.12955,0.213921};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getMooringBuoy_NORMAL_6_20_vector_1()
		{
			double[] value = {0.8047,0.1315,0.5787,0.5874,-0.7889,0.1803,-0.9999,-0.0027,-0.012,0.0,0.4999,-0.866,0.5,0.0,0.866,-0.7071,0.0,-0.7071,0.0,0.8295,-0.5584,-0.3948,0.8295,-0.3948,0.9999,0.0081,0.0037,0.0,-0.4999,0.866,0.0,0.5,-0.866,0.0,0.9214,-0.3885,-0.5067,0.7922,0.3399,-0.9999,0.0069,-0.0016,-0.5223,-0.5492,0.6522,0.108,0.9854,-0.1309,0.9999,-0.0012,-0.0053,1.0,0.0,0.0,0.5385,0.7655,0.352,-0.5534,-0.6223,0.5534,-0.9999,-0.0022,-0.0099,0.4778,0.5141,-0.7122,-0.9999,-3.0E-4,-1.0E-4,-0.4228,0.1959,0.8847,0.8843,0.104,0.455,-0.8064,-0.13,-0.5767,-0.5874,-0.7888,0.1803,0.5534,-0.6223,-0.5534,0.9991,-0.0078,-0.041,0.5049,-0.566,0.6515,0.9999,0.0,2.0E-4,-0.8047,0.1315,0.5787,-0.5874,-0.7889,0.1803,0.1056,-0.9893,0.1004,5.0E-4,0.9746,-0.2237,-0.4999,0.0,0.866,0.9998,0.0039,0.0159,0.5731,0.4303,-0.6973,0.1728,0.9344,-0.3112,-0.9999,0.0081,0.0037,0.4999,0.0,-0.866,0.8898,-0.1003,-0.445,0.0,-0.6223,0.7827,0.5584,0.8295,0.0,1.0E-4,0.2199,0.9755,0.4229,0.1961,0.8846,0.0,-0.4999,-0.866,-0.108,0.9854,-0.1309,-0.9999,-0.0012,-0.0053,0.1077,-0.9468,0.3032,0.1739,-0.9773,0.1202,-1.0,0.0,0.0,0.4181,0.1996,0.8861,-0.5385,0.7655,0.352,0.0,0.4403,0.8978,-0.4778,0.5141,-0.7122,0.0,1.0,0.0,-0.8843,0.104,0.455,0.1111,0.9381,-0.3278,-0.5534,-0.6223,-0.5534,0.0,0.9755,-0.2199,-0.9991,-0.0078,-0.041,-0.5049,-0.566,0.6515,0.0,-0.2231,-0.9747,-0.9999,0.0,2.0E-4,0.0,-0.9755,0.2199,0.5222,-0.5505,0.6512,-0.1056,-0.9893,0.1005,-5.0E-4,0.9746,-0.2237,-0.9998,0.0039,0.0159,-0.5731,0.4303,-0.6973,0.6989,-0.1578,-0.6974,-0.1728,0.9344,-0.3112,0.5029,-0.567,0.6523,-0.5,0.0,-0.866,-0.8898,-0.1003,-0.445,-0.5584,0.8295,0.0,0.7071,0.0,0.7071,-0.4229,0.1961,0.8846,0.3948,0.8295,0.3948,0.0,-0.6223,-0.7827,0.0,-0.9991,0.0413,-0.1077,-0.9468,0.3032,-0.1739,-0.9773,0.1202,-0.4181,0.1996,0.8861,0.1576,-0.9658,0.2055,0.1589,0.9598,-0.2311,0.0,0.0,1.0,-0.1111,0.9381,-0.3277,0.0,0.4403,-0.8978,0.9972,0.0164,0.0729,0.5853,-0.7907,0.1791,0.6152,-0.7085,-0.3455,5.0E-4,-0.9763,0.2162,0.5874,0.7883,-0.1828,-0.5222,-0.5505,0.6512,0.5176,-0.7996,-0.3044,0.7827,-0.6223,0.0,0.0,-1.0,0.0,0.6965,0.1578,0.6999};
			return value;
		}
		private double[] getMooringBuoy_NORMAL_6_20_vector_2()
		{
			double[] value = {0.4181,0.1998,0.8861,-0.699,-0.1578,-0.6974,-0.5029,-0.567,0.6523,0.0,0.4999,0.866,-0.7071,0.0,0.7071,0.0,0.8295,0.5584,-0.3948,0.8295,0.3948,0.9999,-0.0027,-0.012,0.7071,0.0,-0.7071,0.0,0.5,0.866,0.3948,0.8295,-0.3948,-0.1576,-0.9658,0.2055,-0.1589,0.9598,-0.2311,0.9999,0.0069,-0.0016,0.5067,0.7922,0.3399,0.5223,-0.5492,0.6522,-0.9972,0.0164,0.0729,-0.5853,-0.7907,0.1791,-0.6152,-0.7085,-0.3455,0.0,0.0,-1.0,-5.0E-4,-0.9763,0.2162,-0.5874,0.7883,-0.1828,-0.5176,-0.7996,-0.3044,0.5534,-0.6223,0.5534,-0.7827,-0.6223,0.0,0.9999,-0.0022,-0.0099,0.9999,-3.0E-4,-1.0E-4,0.4228,0.1959,0.8847,0.8064,-0.13,-0.5767,0.5874,-0.7888,0.1803,-0.6965,0.1578,0.6999,-0.4181,0.1998,0.8861};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getMooringBuoy_TEXCOORD_6_21_point_1()
		{
			double[] value = {6.0,4.99E-4,7.0,0.869659,6.0,0.869658,7.0,4.99E-4,8.0,0.869658,8.0,4.99E-4,1.0,0.869659,1.0,4.99E-4,2.0,0.869658,2.0,4.99E-4,3.0,0.869658,3.0,4.99E-4,4.0,0.869659,4.0,4.99E-4,5.0,0.869658,5.0,4.99E-4,7.0,0.999501,6.0,0.999501,8.0,0.99950,11.0,0.99950,12.0,0.99950,13.0,0.99950,14.0,0.99950,15.0,0.999501,0.0,4.99E-4,0.0,0.869658,0.0,0.99950,16.88889,4.99E-4,7.88889,4.99E-4,7.88889,0.9995,6.88889,0.9995,0.888889,4.99E-4,0.888889,0.9995,1.88889,4.99E-4,1.88889,0.9995,2.88889,4.99E-4,2.88889,0.9995,3.88889,4.99E-4,3.88889,0.9995,4.88889,4.99E-4,4.88889,0.9995,5.88889,4.99E-4,5.88889,0.9995,-0.111112,4.99E-4,-0.111112,0.9995,5.88889,4.99E-4,6.88889,4.99E-4,7.88889,4.99E-4,0.888889,4.99E-4,1.88889,4.99E-4,2.88889,4.99E-4,3.88889,4.99E-4,4.88889,4.99E-4,-0.111112,4.99E-4,0.5,0.5,0.999501,0.5,0.8532,0.8532,0.5,0.999501,0.1468,0.8532,4.99E-4,0.5,0.1468,0.1468,0.5,4.99E-4,0.8532,0.1468,0.500032,0.5,0.862349,0.5,0.756229,0.756197,0.500032,0.862317,0.243835,0.756197,0.137715,0.5,0.243835,0.243803,0.500032,0.137683,0.756229,0.243803,0.25,4.99E-4,0.75,4.99E-4,0.906416,4.99E-4,0.093583,4.99E-4,0.406416,4.99E-4,0.593584,4.99E-4,0.75,0.999501,0.906416,0.999501,0.093583,0.999501,0.25,0.999501,0.406416,0.999501,0.593584,0.999501,0.5,-0.076773,0.067419,0.788387,0.5,1.07677,0.067419,0.211613,0.93258,0.788387,0.93258,0.211613,-0.093583,4.99E-4,-0.093583,0.999501,0.5,0.9995,0.5,0.953389,0.5,0.907236,0.28027,0.455724,0.63302,0.28027,0.71973,0.455724,0.36698,0.28027,0.295697,0.351679};
			return value;
		}
		private double[] getMooringBuoy_TEXCOORD_6_21_point_2()
		{
			double[] value = {0.63302,0.351679,0.438264,0.351679,0.36698,0.351679,0.29727,0.401562,0.63302,0.423088,0.436691,0.444615,0.36698,0.423088,0.098907,0.491022,0.840724,0.518332,0.219645,0.545641,0.159276,0.518332,0.999501,0.683988,0.92408,0.683927,0.15134,0.683867,0.07592,0.683927,0.151524,0.909456,0.793003,0.873801,0.262469,0.838145,0.206997,0.873801,0.188544,0.854319,0.63302,0.188544,0.811456,0.854318,0.188544,0.143166,0.811456,0.143166,0.36698,0.188544,0.091435,0.856834,0.63302,0.091435,0.908565,0.856834,0.092547,0.144362,0.907452,0.147223,0.36698,0.092547,0.022174,0.631594,0.63302,0.719326,0.977825,0.631594,0.022179,0.370501,0.36701,9.1E-4,0.97782,0.370501,0.719763,0.455724,0.36698,0.280237,0.280237,0.455724,0.63302,0.280237,0.704303,0.351646,0.36698,0.351646,0.561736,0.351646,0.63302,0.351646,0.70273,0.401529,0.36698,0.423055,0.563309,0.444582,0.63302,0.423055,0.901092,0.490989,0.159276,0.518299,0.780355,0.545608,0.840724,0.518299,4.99E-4,0.683955,0.07592,0.683894,0.84866,0.683834,0.92408,0.683894,0.848475,0.909423,0.206997,0.873768,0.737531,0.838112,0.793003,0.873768,0.811489,0.854318,0.36698,0.188511,0.188511,0.854318,0.811489,0.143166,0.188511,0.143166,0.63302,0.188511,0.908598,0.856834,0.36698,0.091401,0.091401,0.856834,0.907485,0.144362,0.092514,0.147223,0.63302,0.092514,0.977859,0.631593,0.36698,0.719326,0.022141,0.631593,0.977853,0.370501,0.63299,8.77E-4,0.022146,0.370501,0.704303,0.28027,0.704303,0.351679,0.561736,0.351679,0.561736,0.28027,0.438264,0.28027,0.295697,0.28027,0.70273,0.401562,0.563309,0.444615,0.901092,0.491022,0.780355,0.545641,0.84866,0.683867,4.99E-4,0.683988,0.848476,0.909456,0.737531,0.838145,0.704303,0.188544,0.561736,0.188544,0.438264,0.188544,0.295697,0.188544,0.704303,0.091435,0.561736,0.091435,0.295697,0.092547};
			return value;
		}
		private double[] getMooringBuoy_TEXCOORD_6_21_point_3()
		{
			double[] value = {0.440099,0.092547,0.63302,5.32E-4,0.704303,0.022174,0.561736,0.022174,0.704303,0.631594,0.63299,0.288011,0.704273,0.370501,0.561736,0.631594,0.561706,0.370501,0.295727,0.022179,0.438294,0.022179,0.295697,0.280237,0.295697,0.351646,0.438264,0.280237,0.438264,0.351646,0.561736,0.280237,0.704303,0.280237,0.29727,0.401529,0.436691,0.444582,0.098907,0.490989,0.219645,0.545608,0.15134,0.683834,0.9995,0.683955,0.151525,0.909423,0.262469,0.838112,0.295697,0.188511,0.438264,0.188511,0.561737,0.188511,0.704303,0.188511,0.295697,0.091401,0.438263,0.091401,0.704304,0.092514,0.559902,0.092514,0.36698,4.99E-4,0.295696,0.022141,0.438263,0.022141,0.295696,0.631593,0.36701,0.288011,0.295726,0.370501,0.438293,0.370501,0.438263,0.631593,0.704274,0.022146,0.561707,0.022146,0.5,4.99E-4,0.25025,4.99E-4,4.99E-4,4.99E-4,0.74975,0.9995,0.25025,0.9995,0.25025,4.99E-4,0.74975,4.99E-4,4.99E-4,0.37062,0.9995,0.37062,4.99E-4,0.37062,0.593571,0.661169,0.406429,0.661169,4.99E-4,0.661169,0.415714,0.661169,0.593571,0.999501,0.406429,0.999501,0.200064,0.999501,0.415714,0.999501,0.9995,4.99E-4,0.5,0.37062,0.74975,4.99E-4,0.74975,0.37062,0.593571,0.37062,0.415714,0.37062,0.25025,0.37062,0.584286,0.37062,0.406429,0.37062,0.584286,0.9995,0.584286,4.99E-4,0.406429,4.99E-4,0.406429,0.9995,0.406429,0.799937,0.406429,0.200064,0.584286,0.200064,0.584286,0.799936,0.584286,0.661169,0.9995,0.661169,0.799936,0.999501,0.200063,0.999501,0.584286,0.999501,1.0,0.0,1.0,0.2,0.0,0.067,0.0,0.131,0.539813,0.0997,0.445754,0.0997,0.512264,0.166211,0.445754,0.19376,0.379244,0.166211,0.351694,0.0997,0.379244,0.03319,0.445754,0.005641,0.512264,0.03319};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_5_43_coordIndex_1()
		{
			int[] value = {66,71,67,-1,71,66,70,-1,71,72,68,-1,68,67,71,-1,68,73,69,-1,73,68,72,-1,73,70,66,-1,66,69,73,-1,74,75,71,-1,71,70,74,-1,75,76,71,-1,72,71,76,-1,76,77,73,-1,73,72,76,-1,73,74,70,-1,74,73,77,-1,74,79,75,-1,79,74,78,-1,79,80,76,-1,76,75,79,-1,76,81,77,-1,81,76,80,-1,77,78,74,-1,78,77,81,-1,78,83,79,-1,83,78,82,-1,79,84,80,-1,84,79,83,-1,84,85,81,-1,81,80,84,-1,81,82,78,-1,82,81,85,-1,82,87,83,-1,87,86,63,-1,83,88,84,-1,88,83,87,-1,88,89,85,-1,85,84,88,-1,85,86,82,-1,86,85,89,-1,86,87,82,-1,63,86,62,-1,63,64,88,-1,88,87,63,-1,88,65,89,-1,65,88,64,-1,89,62,86,-1,62,89,65,-1,67,90,66,-1,90,67,91,-1,92,91,67,-1,67,68,92,-1,95,94,69,-1,68,69,94,-1,93,95,69,-1,69,66,93,-1,97,96,90,-1,90,91,97,-1,92,97,91,-1,97,92,98,-1,99,101,93,-1,95,93,101,-1,101,100,94,-1,94,95,101,-1,68,94,92,-1,100,92,94,-1,92,100,98,-1,90,93,66,-1,93,96,99,-1,96,93,90,-1,96,97,103,-1,103,102,96,-1,103,98,104,-1,98,103,97,-1,102,103,106,-1,106,105,102,-1,106,104,107,-1,104,106,103,-1,99,106,101,-1,106,99,105,-1,106,107,100,-1,100,101,106,-1,104,100,107,-1,100,104,98,-1,105,96,102,-1,96,105,99,-1,108,109,113,-1,113,112,108,-1,113,110,114,-1,110,113,109,-1,110,111,115,-1,115,114,110,-1,115,108,112,-1,108,115,111,-1,116,113,117,-1,113,116,112,-1,117,113,118,-1,114,118,113,-1,118,115,119,-1,115,118,114,-1,115,112,116,-1,116,119,115,-1,116,117,121,-1,121,120,116,-1,121,118,122,-1,118,121,117,-1,118,119,123,-1,123,122,118,-1,119,116,120,-1,120,123,119,-1,120,121,125,-1,125,124,120,-1,121,122,126,-1,126,125,121,-1,126,123,127,-1,123,126,122,-1,123,120,124,-1,124,127,123,-1,124,125,129,-1,129,63,128,-1,125,126,130,-1,130,129,125,-1,130,127,131,-1,127,130,126,-1,127,124,128,-1,128,131,127,-1,128,124,129,-1,63,62,128,-1,63,130,64,-1,130,63,129,-1,130,131,65,-1,65,64,130,-1,131,128,62,-1,62,65,131,-1,109,108,132,-1,132,133,109,-1,134,109,133,-1,109,134,110,-1,137,111,136,-1,110,136,111,-1,135,111,137,-1,111,135,108,-1,139,132,138,-1,132,139,133,-1,134,133,139,-1,139,140,134,-1,141,135,143,-1,137,143,135,-1,143,136,142,-1,136,143,137,-1,110,134,136,-1,142,136,134,-1,134,140,142,-1,132,108,135,-1,135,141,138,-1,138,132,135,-1,138,145,139,-1,145,138,144,-1,145,146,140,-1,140,139,145,-1,144,148,145,-1,148,144,147,-1,148,149,146,-1,146,145,148,-1,141,143,148,-1,148,147,141,-1,148,142,149,-1,142,148,143,-1,146,149,142,-1,142,140,146,-1,147,144,138,-1,138,141,147,-1};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_5_43_normalIndex_1()
		{
			int[] value = {17,34,60,-1,34,17,125,-1,34,48,51,-1,51,60,34,-1,51,93,65,-1,93,51,48,-1,93,125,17,-1,17,65,93,-1,24,72,34,-1,34,125,24,-1,72,75,34,-1,48,34,75,-1,75,83,93,-1,93,48,75,-1,93,24,125,-1,24,93,83,-1,24,15,72,-1,15,24,0,-1,15,25,75,-1,75,72,15,-1,75,49,83,-1,49,75,25,-1,83,0,24,-1,0,83,49,-1,0,86,15,-1,86,0,28,-1,15,116,25,-1,116,15,86,-1,116,85,49,-1,49,25,116,-1,49,28,0,-1,28,49,85,-1,28,58,86,-1,58,71,11,-1,86,130,116,-1,130,86,58,-1,130,33,85,-1,85,116,130,-1,85,71,28,-1,71,85,33,-1,71,58,28,-1,11,71,63,-1,11,44,130,-1,130,58,11,-1,130,81,33,-1,81,130,44,-1,33,63,71,-1,63,33,81,-1,37,37,37,-1,21,21,21,-1,55,55,55,-1,70,70,70,-1,122,122,122,-1,118,118,118,-1,96,96,96,-1,92,92,92,-1,94,94,94,-1,94,94,94,-1,121,121,121,-1,121,121,121,-1,1,1,1,-1,1,1,1,-1,117,117,117,-1,32,32,32,-1,51,51,51,-1,2,2,2,-1,13,13,13,-1,17,17,17,-1,17,17,17,-1,17,17,17,-1,114,114,114,-1,18,18,18,-1,53,53,53,-1,12,12,12,-1,127,127,127,-1,52,52,52,-1,131,131,131,-1,78,78,78,-1,29,29,29,-1,66,66,66,-1,14,14,14,-1,102,102,102,-1,69,69,69,-1,39,39,39,-1,126,126,126,-1,30,30,30,-1,51,60,68,-1,68,20,51,-1,68,17,16,-1,17,68,60,-1,17,65,120,-1,120,16,17,-1,120,51,20,-1,51,120,65,-1,57,68,38,-1,68,57,20,-1,38,68,41,-1,16,41,68,-1,41,120,50,-1,120,41,16,-1,120,20,57,-1,57,50,120,-1,57,38,47,-1,47,31,57,-1,47,41,128,-1,41,47,38,-1,41,50,82,-1,82,128,41,-1,50,57,31,-1,31,82,50,-1,31,47,112,-1,112,61,31,-1,47,128,90,-1,90,112,47,-1,90,82,111,-1,82,90,128,-1,82,31,61,-1,61,111,82,-1,61,112,88,-1,88,11,101,-1,112,90,99,-1,99,88,112,-1,99,111,67,-1,111,99,90,-1,111,61,101,-1,101,67,111,-1,101,61,88,-1,11,63,101,-1,11,99,44,-1,99,11,88,-1,99,67,81,-1,81,44,99,-1,67,101,63,-1,63,81,67,-1,70,70,70,-1,55,55,55,-1,21,21,21,-1,37,37,37,-1,96,96,96,-1,92,92,92,-1,122,122,122,-1,118,118,118,-1,121,121,121,-1,121,121,121,-1,94,94,94,-1,94,94,94,-1,32,32,32,-1,26,26,26,-1,91,91,91,-1,129,129,129,-1,17,17,17,-1,107,107,107,-1,113,113,113,-1,51,51,51,-1,51,51,51,-1,51,51,51,-1,12,12,12,-1,53,53,53,-1,18,18,18,-1,114,114,114,-1,23,23,23,-1,84,84,84,-1,100,100,100,-1,45,45,45,-1,62,62,62,-1,95,95,95,-1,115,115,115,-1,73,73,73,-1,36,36,36,-1,8,8,8,-1,22,22,22,-1,64,64,64,-1};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_5_43_texCoordIndex_1()
		{
			int[] value = {179,100,96,-1,100,179,180,-1,100,181,182,-1,182,96,100,-1,183,102,98,-1,102,183,101,-1,102,99,184,-1,184,98,102,-1,185,104,100,-1,100,180,185,-1,104,186,100,-1,181,100,186,-1,105,106,102,-1,102,101,105,-1,102,103,99,-1,103,102,106,-1,185,108,104,-1,108,185,187,-1,108,188,186,-1,186,104,108,-1,105,110,106,-1,110,105,109,-1,106,107,103,-1,107,106,110,-1,187,112,108,-1,112,187,111,-1,108,189,188,-1,189,108,112,-1,113,114,110,-1,110,109,113,-1,110,190,107,-1,190,110,114,-1,111,116,112,-1,116,191,93,-1,112,192,189,-1,192,112,116,-1,117,118,114,-1,114,113,117,-1,114,115,190,-1,115,114,118,-1,191,116,111,-1,93,191,92,-1,93,94,192,-1,192,116,93,-1,117,93,118,-1,93,117,94,-1,118,92,115,-1,92,118,93,-1,96,193,179,-1,193,96,120,-1,194,120,96,-1,96,182,194,-1,124,195,98,-1,183,98,195,-1,196,124,98,-1,98,184,196,-1,126,197,193,-1,193,120,126,-1,194,126,120,-1,126,194,198,-1,199,130,196,-1,124,196,130,-1,130,200,195,-1,195,124,130,-1,97,123,121,-1,129,121,123,-1,121,129,127,-1,119,122,95,-1,122,125,128,-1,125,122,119,-1,197,126,201,-1,201,202,197,-1,201,198,203,-1,198,201,126,-1,204,132,205,-1,205,206,204,-1,205,207,208,-1,207,205,132,-1,199,135,130,-1,135,199,209,-1,135,210,200,-1,200,130,135,-1,133,129,136,-1,129,133,127,-1,134,125,131,-1,125,134,128,-1,211,138,142,-1,142,212,211,-1,142,213,214,-1,213,142,138,-1,215,140,144,-1,144,143,215,-1,144,216,141,-1,216,144,140,-1,217,142,146,-1,142,217,212,-1,146,142,218,-1,214,218,142,-1,147,144,148,-1,144,147,143,-1,144,141,145,-1,145,148,144,-1,217,146,150,-1,150,219,217,-1,150,218,220,-1,218,150,146,-1,147,148,152,-1,152,151,147,-1,148,145,149,-1,149,152,148,-1,219,150,154,-1,154,153,219,-1,150,220,221,-1,221,154,150,-1,155,152,156,-1,152,155,151,-1,152,149,222,-1,222,156,152,-1,153,154,158,-1,158,93,223,-1,154,221,224,-1,224,158,154,-1,159,156,160,-1,156,159,155,-1,156,222,157,-1,157,160,156,-1,223,153,158,-1,93,92,223,-1,93,224,94,-1,224,93,158,-1,159,160,93,-1,93,94,159,-1,160,157,92,-1,92,93,160,-1,138,211,225,-1,225,162,138,-1,226,138,162,-1,138,226,213,-1,166,140,227,-1,215,227,140,-1,228,140,166,-1,140,228,216,-1,168,225,229,-1,225,168,162,-1,226,162,168,-1,168,230,226,-1,231,228,172,-1,166,172,228,-1,172,227,232,-1,227,172,166,-1,139,163,165,-1,171,165,163,-1,163,169,171,-1,161,137,164,-1,164,170,167,-1,167,161,164,-1,229,233,168,-1,233,229,234,-1,233,235,230,-1,230,168,233,-1,236,237,174,-1,237,236,238,-1,237,239,240,-1,240,174,237,-1,231,172,177,-1,177,241,231,-1,177,232,242,-1,232,177,172,-1,175,178,171,-1,171,169,175,-1,176,173,167,-1,167,170,176,-1};
			return value;
		}

		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=5, element #19, 304 total numbers.
		 * 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 MFInt32 getIndexedFaceSet_5_19_coordIndex()
		{
			MFInt32 IndexedFaceSet_5_19_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_5_19_coordIndex_1()));
			return IndexedFaceSet_5_19_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=5, element #19, 304 total numbers.
		 * 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 MFInt32 getIndexedFaceSet_5_19_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_5_19_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_5_19_texCoordIndex_1()));
			return IndexedFaceSet_5_19_texCoordIndex;
		}
		/** Large attribute array: Coordinate DEF='MooringBuoy-COORD' point field, scene-graph level=6, element #19, 549 total numbers made up of 183 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 getMooringBuoy_COORD_6_19_point()
		{
			MFVec3f MooringBuoy_COORD_6_19_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getMooringBuoy_COORD_6_19_point_1()))
				.append(new MFVec3f(getMooringBuoy_COORD_6_19_point_2()));
			return MooringBuoy_COORD_6_19_point;
		}
		/** Large attribute array: Normal DEF='MooringBuoy-NORMAL' vector field, scene-graph level=6, element #20, 396 total numbers made up of 132 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 getMooringBuoy_NORMAL_6_20_vector()
		{
			MFVec3f MooringBuoy_NORMAL_6_20_vector = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getMooringBuoy_NORMAL_6_20_vector_1()))
				.append(new MFVec3f(getMooringBuoy_NORMAL_6_20_vector_2()));
			return MooringBuoy_NORMAL_6_20_vector;
		}
		/** Large attribute array: TextureCoordinate DEF='MooringBuoy-TEXCOORD' point field, scene-graph level=6, element #21, 592 total numbers made up of 296 2-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 MFVec2f getMooringBuoy_TEXCOORD_6_21_point()
		{
			MFVec2f MooringBuoy_TEXCOORD_6_21_point = new MFVec2f()/*2.finalize*/
				.append(new MFVec2f(getMooringBuoy_TEXCOORD_6_21_point_1()))
				.append(new MFVec2f(getMooringBuoy_TEXCOORD_6_21_point_2()))
				.append(new MFVec2f(getMooringBuoy_TEXCOORD_6_21_point_3()));
			return MooringBuoy_TEXCOORD_6_21_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=5, element #43, 688 total numbers.
		 * 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 MFInt32 getIndexedFaceSet_5_43_coordIndex()
		{
			MFInt32 IndexedFaceSet_5_43_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_5_43_coordIndex_1()));
			return IndexedFaceSet_5_43_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet normalIndex field, scene-graph level=5, element #43, 688 total numbers.
		 * 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 MFInt32 getIndexedFaceSet_5_43_normalIndex()
		{
			MFInt32 IndexedFaceSet_5_43_normalIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_5_43_normalIndex_1()));
			return IndexedFaceSet_5_43_normalIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=5, element #43, 688 total numbers.
		 * 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 MFInt32 getIndexedFaceSet_5_43_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_5_43_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_5_43_texCoordIndex_1()));
			return IndexedFaceSet_5_43_texCoordIndex;
		}

	/** 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 MooringBuoyHighDetail 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 MooringBuoyHighDetail().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.Buoys.MooringBuoyHighDetail\" 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.Buoys.MooringBuoyHighDetail self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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