package Savage.ShipsCivilian.SailBoats;

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.Navigation.*;
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> A Sail Boat Under Power. </p>
 <p> Related links: Catalog page <a href="../../../../ShipsCivilian/SailBoats/SailBoatUnderPowerIndex.html" target="_blank">SailBoatUnderPower</a>,  source <a href="../../../../ShipsCivilian/SailBoats/SailBoatUnderPower.java">SailBoatUnderPower.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="../../../../ShipsCivilian/SailBoats/SailBoatUnderPower.x3d">SailBoatUnderPower.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> A Sail Boat Under Power </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Donated to the MOVES Institute (Delta 3D Group) by Naval Education and Training Command. Translated from the Delta3D open asset library. </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translator </i> </td>
			<td> LT Patrick Sullivan </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 23 March 2005 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translated </i> </td>
			<td> 30 January 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/ShipsCivilian/SailBoats/SailBoatUnderPower.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/SailBoats/SailBoatUnderPower.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> X3D-Edit 3.2, <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> generator </i> </td>
			<td> VizX3D, <a href="http://www.vivaty.com/downloads/studio" target="_blank">http://www.vivaty.com/downloads/studio</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../ShipsCivilian/SailBoats/../../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 Donated to the MOVES Institute (Delta 3D Group) by Naval Education and Training Command. Translated from the Delta3D open asset library.
 */

public class SailBoatUnderPower
{
	/** Default constructor to create this object. */
	public SailBoatUnderPower ()
	{
	  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_1)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("SailBoatUnderPower.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("A Sail Boat Under Power"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Donated to the MOVES Institute (Delta 3D Group) by Naval Education and Training Command. Translated from the Delta3D open asset library."))
    .addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("LT Patrick Sullivan"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("23 March 2005"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATED ).setContent("30 January 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/ShipsCivilian/SailBoats/SailBoatUnderPower.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("VizX3D, http://www.vivaty.com/downloads/studio"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("SailBoatUnderPower.x3d"))
    .addChild(new Viewpoint().setDescription("Side View").setPosition(0.0,20.0,100.0))
    .addChild(new Transform("dad_GROUND")
      .addChild(new Group("GROUND")
        .addChild(new Transform("dad_SailBoat").setRotation(1.0,0.0,0.0,1.571)
          .addChild(new Group("SailBoat")
            .addChild(new Transform("dad_Group12")
              .addChild(new Group("Group12")
                .addChild(new Transform("dad_Box04")
                  .addChild(new Shape("Box04")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material0_mat").setAmbientIntensity(0.588).setDiffuseColor(1.0,1.0,1.0).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,4,7,11,-1,4,11,12,-1,13,14,15,-1,15,16,13,-1,16,12,17,-1,17,18,16,-1,10,9,19,-1,19,9,20,-1,15,14,21,-1,15,21,22,-1,12,16,23,-1,23,24,12,-1,15,4,25,-1,25,26,15,-1,27,28,12,-1,25,23,26,-1,28,29,25,-1,25,29,23,-1,30,12,28,-1,30,28,25,-1,4,30,25,-1,16,15,26,-1,16,26,23,-1,4,31,32,-1,32,33,34,-1,34,35,8,-1,32,34,8,-1,32,8,5,-1,4,32,5,-1,36,20,37,-1,38,37,39,-1,40,39,35,-1,8,35,9,-1,37,20,39,-1,35,39,9,-1,20,39,9,-1,41,42,43,-1,44,43,45,-1,46,45,47,-1,48,47,49,-1,50,49,36,-1,20,36,42,-1,43,42,45,-1,47,45,49,-1,36,49,42,-1,49,45,42,-1,43,51,41,-1,52,53,54,-1,55,54,56,-1,57,56,58,-1,51,58,41,-1,53,41,54,-1,56,54,58,-1,54,41,58,-1,59,53,52,-1,52,60,61,-1,61,62,63,-1,63,64,65,-1,65,66,59,-1,59,52,61,-1,61,63,65,-1,61,65,59,-1,59,66,67,-1,67,68,31,-1,31,15,22,-1,67,31,22,-1,59,67,22,-1,59,22,69,-1,15,31,4,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_17_point())))))
                .addChild(new Transform("dad_Cylinder01")
                  .addChild(new Shape("Cylinder01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture("SBOAT2").setUrl(new String[] {"SBOAT2.JPG","https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/SailBoats/SBOAT2.JPG"}))
                      .setMaterial(new Material("material1_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,0,3,1,-1,3,4,1,-1,3,5,4,-1,5,6,4,-1,5,7,6,-1,7,8,6,-1,7,9,8,-1,9,10,8,-1,9,11,10,-1,11,2,10,-1,11,0,2,-1,12,13,14,-1,12,14,15,-1,12,15,16,-1,12,16,17,-1,12,17,18,-1,12,18,13,-1,2,1,19,-1,19,20,2,-1,1,4,21,-1,21,19,1,-1,4,6,22,-1,22,21,4,-1,6,8,23,-1,23,22,6,-1,8,10,24,-1,24,23,8,-1,10,2,20,-1,20,24,10,-1,20,19,25,-1,25,26,20,-1,19,21,27,-1,27,25,19,-1,21,22,28,-1,28,27,21,-1,22,23,29,-1,29,28,22,-1,23,24,30,-1,30,29,23,-1,24,20,26,-1,26,30,24,-1,26,25,31,-1,31,32,26,-1,25,27,33,-1,33,31,25,-1,27,28,34,-1,34,33,27,-1,28,29,35,-1,35,34,28,-1,29,30,36,-1,36,35,29,-1,30,26,32,-1,32,36,30,-1,32,31,14,-1,14,13,32,-1,31,33,15,-1,15,14,31,-1,33,34,16,-1,16,15,33,-1,34,35,17,-1,17,16,34,-1,35,36,18,-1,18,17,35,-1,36,32,13,-1,13,18,36,-1}).setTexCoordIndex(new int[] {0,1,1,-1,0,2,1,-1,2,3,1,-1,2,4,3,-1,4,5,3,-1,4,6,5,-1,6,5,5,-1,6,7,5,-1,7,3,5,-1,7,4,3,-1,4,1,3,-1,4,0,1,-1,8,9,9,-1,8,9,8,-1,8,8,10,-1,8,10,10,-1,8,10,8,-1,8,8,9,-1,1,1,11,-1,11,11,1,-1,1,3,12,-1,12,11,1,-1,3,5,13,-1,13,12,3,-1,5,5,13,-1,13,13,5,-1,5,3,12,-1,12,13,5,-1,3,1,11,-1,11,12,3,-1,11,11,14,-1,14,14,11,-1,11,12,15,-1,15,14,11,-1,12,13,16,-1,16,15,12,-1,13,13,17,-1,17,16,13,-1,13,12,18,-1,18,17,13,-1,12,11,14,-1,14,18,12,-1,14,14,19,-1,19,19,14,-1,14,15,20,-1,20,19,14,-1,15,16,21,-1,21,20,15,-1,16,17,21,-1,21,21,16,-1,17,18,22,-1,22,21,17,-1,18,14,19,-1,19,22,18,-1,19,19,9,-1,9,9,19,-1,19,20,8,-1,8,9,19,-1,20,21,10,-1,10,8,20,-1,21,21,10,-1,10,10,21,-1,21,22,8,-1,8,10,21,-1,22,19,9,-1,9,8,22,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-12.9743,1.31724,-1.25356,-13.1906,.99568,-1.37698,-13.1906,1.19235,-1.37698,-12.97429,.87079,-1.25356,-13.36093,.89734,-1.37698,-13.36093,.64757,-1.25356,-13.53125,.99568,-1.37698,-13.74756,.87079,-1.25356,-13.53125,1.19235,-1.37698,-13.74756,1.31724,-1.25356,-13.36093,1.29069,-1.37698,-13.36093,1.54046,-1.25356,-13.36093,1.09402,-4.53472,-13.18778,1.19398,-4.53472,-13.18778,.99405,-4.53472,-13.36093,.89408,-4.53472,-13.53408,.99405,-4.53472,-13.53408,1.19398,-4.53472,-13.36093,1.29395,-4.53472,-13.1906,.99568,-3.1937,-13.1906,1.19235,-3.1937,-13.36093,.89734,-3.1937,-13.53125,.99568,-3.1937,-13.53125,1.19235,-3.1937,-13.36093,1.29069,-3.1937,-13.05964,.92007,-3.67621,-13.05964,1.26796,-3.67621,-13.36093,.74612,-3.67621,-13.66221,.92007,-3.67621,-13.66221,1.26796,-3.67621,-13.36093,1.44191,-3.67621,-13.05964,.92007,-4.27621,-13.05964,1.26796,-4.27621,-13.36093,.74612,-4.27621,-13.66221,.92007,-4.27621,-13.66221,1.26796,-4.27621,-13.36093,1.44191,-4.27621})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.671,.017,.683,.034,.671,.017,.683,.047,.671,.047,.683,.06,.671,.077,.671,.077,.995,.047,.995,.034,.995,.061,.863,.034,.863,.047,.863,.06,.911,.024,.911,.047,.911,.071,.911,.071,.911,.047,.97,.024,.97,.047,.97,.071,.97,.047}))))))
                .addChild(new Transform("dad_Cylinder02")
                  .addChild(new Shape("Cylinder02")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOAT2"))
                      .setMaterial(new Material("material2_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,4,6,7,-1,7,5,4,-1,6,8,9,-1,9,7,6,-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,0,3,-1,3,15,14,-1,12,10,8,-1,8,6,4,-1,4,1,0,-1,8,4,0,-1,12,8,0,-1,14,12,0,-1,16,17,18,-1,18,19,20,-1,20,21,22,-1,18,20,22,-1,16,18,22,-1,23,16,22,-1,3,2,24,-1,24,25,3,-1,2,5,26,-1,26,24,2,-1,5,7,27,-1,27,26,5,-1,7,9,28,-1,28,27,7,-1,9,11,29,-1,29,28,9,-1,11,13,30,-1,30,29,11,-1,13,15,31,-1,31,30,13,-1,15,3,25,-1,25,31,15,-1,24,26,17,-1,17,16,24,-1,26,27,18,-1,18,17,26,-1,27,28,19,-1,19,18,27,-1,28,29,20,-1,20,19,28,-1,29,30,21,-1,21,20,29,-1,30,31,22,-1,22,21,30,-1,25,24,16,-1,16,23,25,-1,31,25,23,-1,23,22,31,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,4,1,2,-1,2,5,4,-1,1,0,3,-1,3,2,1,-1,0,6,7,-1,7,3,0,-1,6,8,9,-1,9,7,6,-1,8,6,7,-1,7,9,8,-1,6,0,3,-1,3,7,6,-1,8,6,0,-1,0,1,4,-1,4,1,0,-1,0,4,0,-1,8,0,0,-1,6,8,0,-1,10,11,10,-1,10,12,13,-1,13,14,13,-1,10,13,13,-1,10,10,13,-1,15,10,13,-1,3,2,16,-1,16,17,3,-1,2,5,18,-1,18,16,2,-1,5,2,16,-1,16,18,5,-1,2,3,19,-1,19,16,2,-1,3,7,20,-1,20,19,3,-1,7,9,21,-1,21,20,7,-1,9,7,20,-1,20,21,9,-1,7,3,17,-1,17,20,7,-1,16,18,11,-1,11,10,16,-1,18,16,10,-1,10,11,18,-1,16,19,12,-1,12,10,16,-1,19,20,13,-1,13,12,19,-1,20,21,14,-1,14,13,20,-1,21,20,13,-1,13,14,21,-1,17,16,10,-1,10,15,17,-1,20,17,15,-1,15,13,20,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-12.92875,.83839,-8.45514,-12.92875,.91807,-8.64751,-11.49019,.91807,-8.64751,-11.49019,.83839,-8.45514,-12.92875,1.11043,-8.72718,-11.49019,1.11043,-8.72719,-12.92875,1.30279,-8.64751,-11.49019,1.30279,-8.64751,-12.92875,1.38247,-8.45514,-11.49019,1.38247,-8.45514,-12.92875,1.30279,-8.26278,-11.49019,1.30279,-8.26278,-12.92875,1.11043,-8.1831,-11.49019,1.11043,-8.1831,-12.92875,.91807,-8.26278,-11.49019,.91807,-8.26278,3.24513,.69512,-10.0051,3.24513,1.11043,-10.47125,3.24513,1.52575,-10.0051,3.24513,1.69778,-9.10755,3.24514,1.52575,-8.37161,3.24514,1.11043,-8.17789,3.24514,.69512,-8.37161,3.24514,.52309,-9.10755,.0076,.97245,-9.25361,.0076,.9153,-8.87973,.0076,1.11043,-9.40848,.0076,1.24841,-9.25361,.0076,1.30556,-8.87973,.0076,1.24841,-8.34352,.0076,1.11043,-8.18866,.0076,.97245,-8.34352})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.985,.685,.985,.697,1.075,.697,1.075,.685,.985,.702,1.075,.702,.985,.673,1.075,.673,.985,.668,1.075,.668,1.996,.782,1.996,.811,1.996,.725,1.996,.679,1.996,.667,1.996,.725,1.793,.735,1.793,.711,1.793,.744,1.793,.711,1.793,.678,1.793,.668}))))))
                .addChild(new Transform("dad_Cylinder03")
                  .addChild(new Shape("Cylinder03")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material3_mat").setAmbientIntensity(0.588).setDiffuseColor(1.0,1.0,1.0).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,6,4,1,-1,6,1,0,-1,6,0,7,-1,2,5,8,-1,8,3,2,-1,9,10,11,-1,11,12,9,-1,13,14,15,-1,15,9,12,-1,13,15,12,-1,16,17,15,-1,18,16,15,-1,18,15,14,-1,10,9,15,-1,15,17,10,-1,10,17,16,-1,16,11,10,-1,3,8,19,-1,0,3,19,-1,7,0,19,-1,20,21,22,-1,22,23,20,-1,21,24,25,-1,25,22,21,-1,16,18,26,-1,11,16,26,-1,11,26,25,-1,11,25,24,-1,27,13,12,-1,24,27,12,-1,11,24,12,-1,28,29,30,-1,30,31,28,-1,29,32,33,-1,33,30,29,-1,7,19,34,-1,7,34,33,-1,7,33,32,-1,32,35,6,-1,7,32,6,-1,36,37,38,-1,38,39,36,-1,37,20,23,-1,23,38,37,-1,36,35,32,-1,32,29,28,-1,28,27,24,-1,24,21,20,-1,28,24,20,-1,32,28,20,-1,36,32,20,-1,37,36,20,-1,22,25,26,-1,26,31,30,-1,30,33,34,-1,34,39,38,-1,30,34,38,-1,26,30,38,-1,22,26,38,-1,23,22,38,-1,4,6,35,-1,5,4,35,-1,5,35,36,-1,5,36,39,-1,34,19,8,-1,39,34,8,-1,5,39,8,-1,13,27,28,-1,14,13,28,-1,14,28,31,-1,31,26,18,-1,14,31,18,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_39_point())))))
                .addChild(new Transform("dad_Cylinder04")
                  .addChild(new Shape("Cylinder04")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material4_mat").setAmbientIntensity(0.051).setDiffuseColor(.06274,.01569,.36471).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,0,3,1,-1,0,2,3,-1,2,4,5,-1,2,1,4,-1,1,6,4,-1,1,3,6,-1,3,5,6,-1,3,2,5,-1,7,5,4,-1,7,4,6,-1,7,6,5,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {18.03621,1.1493,-3.53712,17.92632,.9513,-3.50561,18.25598,1.1493,-3.60013,17.92632,1.3473,-3.50561,3.94682,.9513,-52.2579,4.27649,1.1493,-52.35243,3.94682,1.3473,-52.2579,4.05671,1.1493,-52.28941}))))))
                .addChild(new Transform("dad_Object01")
                  .addChild(new Shape("Object01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOAT2"))
                      .setMaterial(new Material("material9_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(getIndexedFaceSet_11_52_coordIndex()).setTexCoordIndex(getIndexedFaceSet_11_52_texCoordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_52_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(getTextureCoordinate_12_53_point())))))
                .addChild(new Transform("dad_Object02")
                  .addChild(new Shape("Object02")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOAT2"))
                      .setMaterial(new Material("material10_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,5,6,7,-1,5,7,8,-1,2,5,8,-1,3,2,8,-1,8,9,3,-1,10,11,12,-1,10,12,3,-1,9,10,3,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,5,6,7,-1,5,7,8,-1,2,5,8,-1,3,2,8,-1,8,9,3,-1,10,11,12,-1,10,12,3,-1,9,10,3,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {13.73758,1.11868,-3.29845,13.73403,-.31575,-3.2991,5.34374,-1.67348,-5.09417,5.34374,3.90478,-5.09417,13.73405,2.54704,-3.2991,-7.89788,-1.67348,-5.08682,-7.90119,-.04835,-5.14005,-7.1003,-.04835,-5.14055,-6.22933,-.04835,-5.14109,-6.22933,2.28804,-5.14109,-7.1003,2.28804,-5.14055,-7.90119,2.28804,-5.14005,-7.89788,3.90478,-5.08682})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.005,.426,1.004,.47,.617,.511,.617,.341,1.004,.382,.006,.511,.006,.462,.042,.462,.083,.462,.083,.39,.042,.39,.006,.39,.006,.341}))))))
                .addChild(new Transform("dad_Object03")
                  .addChild(new Shape("Object03")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOAT2"))
                      .setMaterial(new Material("material11_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,5,6,-1,7,8,9,-1,9,10,7,-1,11,12,9,-1,9,8,11,-1,13,9,12,-1,14,13,12,-1,14,12,15,-1,3,2,10,-1,10,16,3,-1,13,16,10,-1,10,9,13,-1,4,17,18,-1,4,18,19,-1,5,4,19,-1,20,5,19,-1,21,22,17,-1,17,23,21,-1,18,17,22,-1,22,24,18,-1,25,19,18,-1,18,24,25,-1,26,25,24,-1,27,2,28,-1,7,10,2,-1,2,27,7,-1,24,22,26,-1,27,28,29,-1,29,30,27,-1,19,25,31,-1,20,19,31,-1,32,20,31,-1,33,28,2,-1,2,1,33,-1,25,26,34,-1,34,31,25,-1,35,0,3,-1,4,36,23,-1,4,23,17,-1,30,7,27,-1,8,7,30,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,0,5,-1,6,7,8,-1,8,9,6,-1,10,11,8,-1,8,7,10,-1,3,8,11,-1,12,3,11,-1,12,11,13,-1,3,2,9,-1,9,3,3,-1,3,3,9,-1,9,8,3,-1,4,14,15,-1,4,15,16,-1,0,4,16,-1,17,0,16,-1,18,19,14,-1,14,20,18,-1,15,14,19,-1,19,21,15,-1,22,16,15,-1,15,21,22,-1,23,22,21,-1,24,2,25,-1,6,9,2,-1,2,24,6,-1,21,19,23,-1,24,25,26,-1,26,27,24,-1,16,22,28,-1,17,16,28,-1,29,30,31,-1,32,25,2,-1,2,1,32,-1,22,23,26,-1,26,28,22,-1,33,0,3,-1,4,34,20,-1,4,20,14,-1,27,6,24,-1,7,6,27,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {5.34374,3.90478,-5.09417,-7.89788,3.90478,-5.08682,-7.99273,3.90478,-4.72548,5.34702,4.25543,-3.30326,5.34701,-2.02413,-3.30326,5.34374,-1.67348,-5.09417,13.73403,-.31575,-3.2991,-8.30119,3.79083,-4.43892,-8.70119,3.79083,-4.33174,-8.69804,3.90478,-4.3715,-8.29287,3.90478,-4.46635,-15.85587,3.79083,-3.72483,-15.85884,3.90478,-3.80105,5.34702,4.25543,-3.30326,-15.09243,4.26474,-3.31144,-15.85587,4.26464,-3.31401,5.34702,4.25543,-3.30326,-8.69804,-1.67348,-4.3715,-8.29287,-1.67348,-4.46635,-7.99273,-1.67348,-4.72548,-7.89788,-1.67348,-5.08682,-15.85587,-1.54865,-3.72483,-8.70119,-1.54865,-4.33174,-15.85884,-1.67348,-3.80105,-8.30119,-1.54865,-4.43892,-8.02593,-1.54865,-4.71418,-8.02593,-1.55138,-3.31401,-8.02593,3.79083,-4.71418,-8.01715,2.28804,-4.72296,-8.02593,2.28804,-3.5305,-8.02594,3.7881,-3.31404,-8.01715,-.04835,-4.72296,-7.90119,-.04835,-5.14005,-7.90119,2.28804,-5.14005,-8.02593,-.04835,-3.5305,13.73405,2.54704,-3.2991,-15.85587,-2.0388,-3.31401})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.716,.339,.269,.339,.266,.327,.716,.279,.716,.279,1.0,.279,.256,.317,.242,.314,.242,.315,.256,.318,.001,.293,0.0,.296,.026,.279,.001,.279,.242,.315,.256,.318,.266,.327,.269,.339,.001,.293,.242,.314,.001,.296,.256,.317,.265,.326,.265,.279,.265,.326,.265,.327,.265,.286,.265,.279,.265,.327,.269,.341,.269,.339,.265,.327,.269,.341,1.0,.279,.001,.279}))))))
                .addChild(new Transform("dad_Object04")
                  .addChild(new Shape("Object04")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOAT2"))
                      .setMaterial(new Material("material12_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,2,3,4,-1,4,5,6,-1,2,4,6,-1,6,7,8,-1,9,10,11,-1,8,9,11,-1,6,8,11,-1,12,13,14,-1,11,12,14,-1,14,15,16,-1,16,17,18,-1,14,16,18,-1,11,14,18,-1,6,11,18,-1,2,6,18,-1,0,2,18,-1,0,18,19,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,4,-1,4,5,6,-1,2,4,6,-1,6,7,8,-1,9,10,11,-1,8,9,11,-1,6,8,11,-1,12,13,14,-1,11,12,14,-1,14,15,16,-1,16,17,18,-1,14,16,18,-1,11,14,18,-1,6,11,18,-1,2,6,18,-1,0,2,18,-1,0,18,19,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-19.31193,-1.05117,-.2139,-19.33881,-.77413,-.18011,-19.34362,1.11994,-.17406,-19.33881,3.01381,-.18011,-19.31193,3.29085,-.2139,-19.24226,3.44348,-.3015,-19.0161,3.8866,-.58581,-18.73861,4.33358,-.93466,-18.38105,4.78414,-1.38419,-17.90766,5.2408,-1.97931,-17.27102,5.70979,-2.77969,-16.85711,5.94464,-3.30004,-16.85711,1.11109,-3.30004,-16.85711,-3.70498,-3.30004,-17.27101,-3.47012,-2.77969,-17.90766,-3.00113,-1.97931,-18.38105,-2.54447,-1.38419,-18.73861,-2.09391,-.93466,-19.0161,-1.64692,-.58581,-19.24226,-1.2038,-.3015})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.099,.983,.109,.982,.172,.982,.235,.982,.244,.983,.249,.987,.264,.998,.279,1.012,.293,1.03,.309,1.054,.324,1.086,.332,1.106,.171,1.106,.011,1.106,.019,1.086,.035,1.054,.05,1.03,.065,1.012,.08,.998,.094,.987}))))))
                .addChild(new Transform("dad_Object05")
                  .addChild(new Shape("Object05")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material13_mat").setAmbientIntensity(0).setDiffuseColor(0.0,0.0,0.0).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,0,3,-1,3,5,4,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-7.09298,-.04835,-4.72176,-7.09298,-.04835,-3.52844,-7.09298,2.28804,-3.52844,-7.09298,2.28804,-4.72176,-6.25285,-.04835,-4.72176,-6.25285,2.28804,-4.72176}))))))
                .addChild(new Transform("dad_Object06")
                  .addChild(new Shape("Object06")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material14_mat").setAmbientIntensity(0.588).setDiffuseColor(1.0,1.0,1.0).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,0,3,-1,3,5,4,-1,6,7,8,-1,8,9,6,-1,10,11,12,-1,12,13,10,-1,14,10,13,-1,13,15,14,-1,8,0,4,-1,4,9,8,-1,6,15,13,-1,13,7,6,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-7.09298,2.28804,-4.72176,-7.09298,2.28804,-3.52844,-8.02593,2.28804,-3.5305,-8.01685,2.28804,-4.72176,-7.1003,2.28804,-5.14055,-7.90119,2.28804,-5.14005,-6.22933,-.04835,-5.14109,-6.25285,-.04835,-4.72176,-6.25285,2.28804,-4.72176,-6.22933,2.28804,-5.14109,-8.01715,-.04835,-4.72296,-8.02593,-.04835,-3.5305,-7.09298,-.04835,-3.52844,-7.09298,-.04835,-4.72176,-7.90119,-.04835,-5.14005,-7.09298,-.04835,-5.14174}))))))
                .addChild(new Transform("dad_Torus01")
                  .addChild(new Shape("Torus01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOAT2"))
                      .setMaterial(new Material("material15_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(getIndexedFaceSet_11_96_coordIndex()).setTexCoordIndex(getIndexedFaceSet_11_96_texCoordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_96_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.93,.029,.934,.03,.927,.032,.935,.032,.928,.03,.928,.035,.93,.036,.932,.036,.947,.054,.931,.06,.915,.054,.931,.062,.931,.061,.914,.056,.948,.056,.914,.009,.915,.01,.904,.024,.931,.004,.915,.01,.914,.009,.931,.005,.904,.041,.903,.041,.903,.023,.905,.041,.905,.024,.947,.055,.958,.041,.948,.055,.959,.023,.957,.024,.948,.009,.957,.024,.958,.024,.947,.01,.948,.009,.947,.01,.931,.005,.959,.041,.957,.041,.931,.003,.914,.055,.932,.029,.934,.035,.915,.055,.905,.024,.915,.011,.957,.042,.957,.041,.935,.033,.934,.034,.957,.04,.948,.011,.947,.01,.933,.029,.934,.03,.946,.01,.927,.032,.905,.025,.906,.023,.915,.01,.929,.029,.915,.01,.928,.03,.915,.011,.946,.055,.947,.055,.933,.035,.934,.035,.947,.054,.93,.036,.932,.036,.932,.059,.931,.059,.931,.036,.932,.036,.928,.034,.927,.033,.906,.041,.905,.04,.932,.005,.931,.005,.931,.029,.93,.029,.929,.029,.934,.03,.957,.024,.957,.025,.935,.031,.915,.054,.929,.036,.916,.054,.928,.035,.927,.031,.906,.024,.935,.033,.928,.03,.927,.031})))))))))))));
            }
            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_11_52_coordIndex_1()
		{
			int[] value = {0,1,2,-1,2,3,0,-1,4,5,1,-1,1,0,4,-1,6,7,5,-1,5,4,6,-1,8,9,7,-1,7,6,8,-1,10,11,9,-1,9,8,10,-1,12,13,11,-1,11,10,12,-1,14,15,13,-1,13,12,14,-1,16,17,15,-1,15,14,16,-1,18,19,17,-1,17,16,18,-1,20,21,19,-1,19,18,20,-1,22,23,21,-1,21,20,22,-1,24,25,23,-1,23,22,24,-1,26,27,25,-1,25,24,26,-1,28,29,27,-1,27,26,28,-1,30,31,29,-1,29,28,30,-1,32,31,30,-1,32,30,33,-1,32,33,34,-1,35,36,37,-1,32,34,38,-1,38,39,32,-1,36,35,40,-1,40,41,36,-1,39,38,42,-1,42,43,39,-1,42,44,45,-1,45,43,42,-1,41,40,45,-1,45,44,41,-1,46,47,1,-1,1,48,46,-1,48,1,5,-1,5,49,48,-1,49,5,7,-1,7,50,49,-1,50,7,9,-1,9,51,50,-1,51,9,52,-1,52,53,51,-1,53,52,13,-1,13,54,53,-1,54,13,15,-1,15,55,54,-1,55,15,17,-1,17,56,55,-1,56,17,19,-1,19,57,56,-1,57,19,21,-1,21,58,57,-1,58,21,59,-1,59,60,58,-1,60,59,61,-1,61,62,60,-1,62,61,27,-1,27,63,62,-1,63,27,29,-1,29,64,63,-1,64,29,31,-1,31,65,64,-1,66,67,68,-1,68,69,66,-1,65,31,70,-1,70,71,65,-1,72,73,69,-1,72,69,68,-1,72,68,74,-1,71,70,39,-1,39,75,71,-1,76,40,72,-1,72,74,76,-1,75,39,77,-1,77,78,75,-1,79,45,40,-1,40,76,79,-1,78,77,45,-1,45,79,78,-1,80,46,48,-1,48,81,80,-1,81,48,49,-1,49,82,81,-1,82,49,50,-1,50,83,82,-1,83,50,51,-1,51,84,83,-1,84,51,53,-1,53,85,84,-1,85,53,54,-1,54,86,85,-1,86,54,55,-1,55,87,86,-1,87,55,56,-1,56,88,87,-1,88,56,57,-1,57,89,88,-1,89,57,58,-1,58,90,89,-1,90,58,60,-1,60,91,90,-1,91,60,62,-1,62,92,91,-1,92,62,63,-1,63,93,92,-1,93,63,64,-1,64,94,93,-1,94,64,65,-1,65,95,94,-1,96,68,67,-1,67,97,96,-1,95,65,71,-1,71,98,95,-1,99,74,68,-1,68,96,99,-1,98,71,75,-1,75,100,98,-1,101,76,74,-1,74,99,101,-1,100,75,78,-1,78,102,100,-1,103,79,76,-1,76,101,103,-1,102,78,79,-1,79,103,102,-1,81,104,80,-1,82,104,81,-1,83,104,82,-1,104,83,84,-1,84,105,104,-1,105,84,85,-1,85,106,105,-1,106,85,86,-1,86,107,106,-1,107,86,87,-1,87,108,107,-1,108,87,88,-1,88,109,108,-1,109,88,89,-1,89,110,109,-1,110,89,90,-1,90,111,110,-1,111,90,91,-1,91,112,111,-1,112,91,92,-1,92,113,112,-1,113,92,93,-1,93,114,113,-1,114,93,94,-1,94,115,114,-1,115,94,95,-1,95,116,115,-1,116,95,98,-1,98,117,116,-1,96,118,99,-1,117,98,100,-1,100,119,117,-1,120,101,99,-1,99,118,120,-1,119,100,102,-1,102,121,119,-1,101,120,103,-1,121,102,103,-1,103,120,121,-1,122,123,124,-1,124,3,122,-1,123,125,126,-1,126,124,123,-1,125,127,128,-1,128,126,125,-1,127,129,130,-1,130,128,127,-1,129,131,132,-1,132,130,129,-1,131,133,134,-1,134,132,131,-1,133,135,136,-1,136,134,133,-1,135,137,138,-1,138,136,135,-1,137,139,140,-1,140,138,137,-1,139,141,142,-1,142,140,139,-1,141,143,144,-1,144,142,141,-1,143,145,146,-1,146,144,143,-1,145,147,148,-1,148,146,145,-1,147,149,150,-1,150,148,147,-1,149,151,152,-1,152,150,149,-1,153,154,155,-1,153,155,152,-1,153,152,151,-1,156,157,158,-1,158,159,160,-1,160,156,158,-1,161,162,163,-1,163,164,161,-1,163,162,165,-1,165,166,163,-1,166,165,160,-1,160,159,166,-1,123,122,46,-1,46,167,123,-1,125,123,167,-1,167,168,125,-1,127,125,168,-1,168,169,127,-1,129,127,169,-1,169,170,129,-1,171,129,170,-1,170,172,171,-1,133,171,172,-1,172,173,133,-1,135,133,173,-1,173,174,135,-1,137,135,174,-1,174,175,137,-1,139,137,175,-1,175,176,139,-1,141,139,176,-1,176,177,141,-1,143,141,177,-1,177,178,143,-1,179,143,178,-1,178,180,179,-1,147,179,180,-1,180,181,147,-1,149,147,181,-1,181,182,149,-1,151,149,182,-1,182,183,151,-1,184,67,66,-1,66,185,184,-1};
			return value;
		}
		private int[] getIndexedFaceSet_11_52_coordIndex_2()
		{
			int[] value = {186,151,183,-1,183,187,186,-1,188,189,184,-1,188,184,185,-1,188,185,190,-1,161,186,187,-1,187,191,161,-1,188,160,192,-1,192,189,188,-1,193,161,191,-1,191,194,193,-1,160,165,195,-1,195,192,160,-1,165,193,194,-1,194,195,165,-1,167,46,80,-1,80,196,167,-1,168,167,196,-1,196,197,168,-1,169,168,197,-1,197,198,169,-1,170,169,198,-1,198,199,170,-1,172,170,199,-1,199,200,172,-1,173,172,200,-1,200,201,173,-1,174,173,201,-1,201,202,174,-1,175,174,202,-1,202,203,175,-1,176,175,203,-1,203,204,176,-1,177,176,204,-1,204,205,177,-1,178,177,205,-1,205,206,178,-1,180,178,206,-1,206,207,180,-1,181,180,207,-1,207,208,181,-1,182,181,208,-1,208,209,182,-1,183,182,209,-1,209,210,183,-1,67,184,96,-1,187,183,210,-1,210,211,187,-1,184,189,212,-1,212,96,184,-1,191,187,211,-1,211,213,191,-1,189,192,214,-1,214,212,189,-1,194,191,213,-1,213,215,194,-1,192,195,216,-1,216,214,192,-1,195,194,215,-1,215,216,195,-1,196,80,217,-1,197,196,217,-1,198,197,217,-1,199,198,217,-1,217,218,199,-1,200,199,218,-1,218,219,200,-1,201,200,219,-1,219,220,201,-1,202,201,220,-1,220,221,202,-1,203,202,221,-1,221,222,203,-1,204,203,222,-1,222,223,204,-1,205,204,223,-1,223,224,205,-1,206,205,224,-1,224,225,206,-1,207,206,225,-1,225,226,207,-1,208,207,226,-1,226,227,208,-1,209,208,227,-1,227,228,209,-1,210,209,228,-1,228,229,210,-1,97,96,118,-1,211,210,229,-1,229,230,211,-1,96,212,118,-1,213,211,230,-1,230,231,213,-1,212,214,232,-1,232,118,212,-1,215,213,231,-1,231,233,215,-1,214,216,232,-1,216,215,233,-1,233,232,216,-1,153,161,164,-1,164,154,153,-1};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_11_52_texCoordIndex_1()
		{
			int[] value = {0,1,2,-1,2,3,0,-1,4,5,1,-1,1,0,4,-1,6,7,5,-1,5,4,6,-1,8,9,7,-1,7,6,8,-1,10,11,9,-1,9,8,10,-1,12,13,11,-1,11,10,12,-1,14,15,13,-1,13,12,14,-1,16,17,15,-1,15,14,16,-1,18,19,17,-1,17,16,18,-1,20,21,19,-1,19,18,20,-1,22,23,21,-1,21,20,22,-1,24,25,23,-1,23,22,24,-1,26,27,25,-1,25,24,26,-1,28,29,27,-1,27,26,28,-1,30,31,29,-1,29,28,30,-1,32,31,30,-1,32,30,33,-1,32,33,34,-1,35,36,37,-1,32,34,38,-1,38,39,32,-1,36,35,40,-1,40,41,36,-1,39,38,42,-1,42,43,39,-1,42,44,45,-1,45,43,42,-1,41,40,45,-1,45,44,41,-1,46,47,1,-1,1,48,46,-1,48,1,5,-1,5,49,48,-1,49,5,7,-1,7,50,49,-1,50,7,9,-1,9,51,50,-1,51,9,52,-1,52,53,51,-1,53,52,13,-1,13,54,53,-1,54,13,15,-1,15,55,54,-1,55,15,17,-1,17,56,55,-1,56,17,19,-1,19,57,56,-1,57,19,21,-1,21,58,57,-1,58,21,59,-1,59,60,58,-1,60,59,61,-1,61,62,60,-1,62,61,27,-1,27,63,62,-1,63,27,29,-1,29,64,63,-1,64,29,31,-1,31,65,64,-1,66,67,68,-1,68,69,66,-1,65,31,70,-1,70,71,65,-1,35,37,69,-1,35,69,68,-1,35,68,72,-1,71,70,39,-1,39,73,71,-1,74,40,35,-1,35,72,74,-1,73,39,75,-1,75,76,73,-1,77,45,40,-1,40,74,77,-1,76,75,45,-1,45,77,76,-1,78,46,48,-1,48,79,78,-1,79,48,49,-1,49,80,79,-1,80,49,50,-1,50,81,80,-1,81,50,51,-1,51,82,81,-1,82,51,53,-1,53,83,82,-1,83,53,54,-1,54,84,83,-1,84,54,55,-1,55,85,84,-1,85,55,56,-1,56,86,85,-1,86,56,57,-1,57,87,86,-1,87,57,58,-1,58,88,87,-1,88,58,60,-1,60,89,88,-1,89,60,62,-1,62,90,89,-1,90,62,63,-1,63,91,90,-1,91,63,64,-1,64,92,91,-1,92,64,65,-1,65,93,92,-1,94,68,67,-1,67,95,94,-1,93,65,71,-1,71,96,93,-1,97,72,68,-1,68,94,97,-1,96,71,73,-1,73,98,96,-1,99,74,72,-1,72,97,99,-1,98,73,76,-1,76,100,98,-1,101,77,74,-1,74,99,101,-1,100,76,77,-1,77,101,100,-1,79,102,78,-1,80,102,79,-1,81,102,80,-1,102,81,82,-1,82,103,102,-1,103,82,83,-1,83,104,103,-1,104,83,84,-1,84,105,104,-1,105,84,85,-1,85,106,105,-1,106,85,86,-1,86,107,106,-1,107,86,87,-1,87,108,107,-1,108,87,88,-1,88,109,108,-1,109,88,89,-1,89,110,109,-1,110,89,90,-1,90,111,110,-1,111,90,91,-1,91,112,111,-1,112,91,92,-1,92,113,112,-1,113,92,93,-1,93,114,113,-1,114,93,96,-1,96,115,114,-1,94,116,97,-1,115,96,98,-1,98,117,115,-1,118,99,97,-1,97,116,118,-1,117,98,100,-1,100,119,117,-1,99,118,101,-1,119,100,101,-1,101,118,119,-1,2,1,0,-1,0,3,2,-1,1,5,4,-1,4,0,1,-1,5,7,6,-1,6,4,5,-1,7,9,120,-1,120,6,7,-1,9,11,121,-1,121,120,9,-1,11,13,12,-1,12,121,11,-1,13,15,122,-1,122,12,13,-1,15,123,124,-1,124,122,15,-1,123,125,126,-1,126,124,123,-1,125,127,128,-1,128,126,125,-1,127,129,130,-1,130,128,127,-1,129,131,132,-1,132,130,129,-1,131,133,134,-1,134,132,131,-1,133,135,136,-1,136,134,133,-1,135,137,138,-1,138,136,135,-1,139,140,141,-1,139,141,138,-1,139,138,137,-1,142,143,144,-1,144,145,146,-1,146,142,144,-1,147,148,149,-1,149,150,147,-1,149,148,151,-1,151,152,149,-1,152,151,146,-1,146,145,152,-1,1,2,46,-1,46,48,1,-1,5,1,48,-1,48,153,5,-1,7,5,153,-1,153,50,7,-1,9,7,50,-1,50,51,9,-1,52,9,51,-1,51,154,52,-1,13,52,154,-1,154,155,13,-1,15,13,155,-1,155,55,15,-1,123,15,55,-1,55,156,123,-1,125,123,156,-1,156,157,125,-1,127,125,157,-1,157,158,127,-1,129,127,158,-1,158,159,129,-1,160,129,159,-1,159,161,160,-1,133,160,161,-1,161,162,133,-1,135,133,162,-1,162,163,135,-1,137,135,163,-1,163,164,137,-1,165,67,66,-1,66,166,165,-1};
			return value;
		}
		private int[] getIndexedFaceSet_11_52_texCoordIndex_2()
		{
			int[] value = {139,137,164,-1,164,167,139,-1,142,168,165,-1,142,165,166,-1,142,166,143,-1,147,139,167,-1,167,169,147,-1,142,146,170,-1,170,168,142,-1,171,147,169,-1,169,172,171,-1,146,151,173,-1,173,170,146,-1,151,171,172,-1,172,173,151,-1,48,46,78,-1,78,79,48,-1,153,48,79,-1,79,80,153,-1,50,153,80,-1,80,81,50,-1,51,50,81,-1,81,82,51,-1,154,51,82,-1,82,174,154,-1,155,154,174,-1,174,84,155,-1,55,155,84,-1,84,85,55,-1,156,55,85,-1,85,86,156,-1,157,156,86,-1,86,87,157,-1,158,157,87,-1,87,88,158,-1,159,158,88,-1,88,89,159,-1,161,159,89,-1,89,175,161,-1,162,161,175,-1,175,91,162,-1,163,162,91,-1,91,92,163,-1,164,163,92,-1,92,93,164,-1,67,165,94,-1,167,164,93,-1,93,96,167,-1,165,168,97,-1,97,94,165,-1,169,167,96,-1,96,98,169,-1,168,170,99,-1,99,97,168,-1,172,169,98,-1,98,100,172,-1,170,173,176,-1,176,99,170,-1,173,172,100,-1,100,176,173,-1,79,78,177,-1,80,79,177,-1,81,80,177,-1,82,81,177,-1,177,103,82,-1,174,82,103,-1,103,104,174,-1,84,174,104,-1,104,105,84,-1,85,84,105,-1,105,106,85,-1,86,85,106,-1,106,107,86,-1,87,86,107,-1,107,108,87,-1,88,87,108,-1,108,109,88,-1,89,88,109,-1,109,110,89,-1,175,89,110,-1,110,111,175,-1,91,175,111,-1,111,112,91,-1,92,91,112,-1,112,113,92,-1,93,92,113,-1,113,114,93,-1,95,94,116,-1,96,93,114,-1,114,115,96,-1,94,97,116,-1,98,96,115,-1,115,178,98,-1,97,99,118,-1,118,116,97,-1,100,98,178,-1,178,179,100,-1,99,176,118,-1,176,100,179,-1,179,118,176,-1,139,147,150,-1,150,140,139,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_12_52_point_1()
		{
			double[] value = {18.48309,1.37725,-3.30004,16.22705,1.33164,-.2139,16.37452,1.12131,-.213,18.65627,1.12027,-3.30004,18.27894,1.59051,-3.30004,16.0532,1.51326,-.2139,17.8999,1.85068,-3.30003,15.73042,1.7348,-.2139,17.17112,2.20466,-3.30004,15.10983,2.03623,-.2139,15.91769,2.69935,-3.30004,14.04245,2.45749,-.213,13.96477,3.38169,-3.30004,12.09323,3.03854,-.2139,11.13745,4.29854,-3.30004,9.42147,3.8193,-.2139,7.26086,5.49682,-3.30004,5.02113,4.83971,-.21391,2.85796,6.54775,-3.30004,1.62971,5.73465,-.2139,-1.35297,7.07248,-3.30004,-1.42592,6.18148,-.2139,-5.2539,7.19279,-3.30004,-4.7478,6.28393,-.2139,-9.70383,7.03042,-3.30004,-8.88765,6.14566,-.213,-12.63066,6.70719,-3.30004,-10.83923,5.87041,-.2139,-14.89342,6.34479,-3.30004,-12.70206,5.56181,-.2139,-16.37404,6.06503,-3.30004,-14.96931,5.32357,-.2139,-17.02081,5.12245,-.213,-16.85711,5.94464,-3.30004,-17.27102,5.70979,-2.77969,-19.22282,3.4318,-.2139,-19.24226,3.44348,-.3015,-19.31193,3.29086,-.2139,-17.90766,5.2408,-1.97931,-17.67071,4.86262,-.2139,-18.93953,3.82865,-.2139,-19.0161,3.8866,-.58581,-18.38105,4.78414,-1.38419,-18.18967,4.55386,-.2139,-18.73861,4.33358,-.93466,-18.60388,4.20592,-.2139,15.47627,1.11909,.96461,16.37452,1.12131,-.213,15.36067,1.30257,.9639,15.22441,1.44492,.9639,14.97141,1.61856,.9639,14.48497,1.85484,.9639,14.04245,2.45749,-.2139,13.64836,2.18502,.9639,11.50134,2.64046,.9639,8.80555,3.25243,.9639,3.89384,4.05223,.9639,1.1592,4.75368,.9639,-1.65144,5.10392,.9639,-4.7478,6.28393,-.2139,-4.25518,5.18423,.9639,-8.88765,6.14567,-.2139,-7.55023,5.07584,.9639,-9.50379,4.8601,.9639,-11.01409,4.61822,.9639,-12.00236,4.43148,.9639,-19.34362,1.11994,-.17406,-14.5861,1.11778,.72594,-14.5624,2.62995,.9639,-19.33881,3.01381,-.18011,-17.02081,5.12245,-.213,-12.63491,4.27385,.96461,-19.22282,3.43179,-.2139,-19.31193,3.29085,-.2139,-14.36088,2.94869,.9639,-13.14432,4.07018,.9639,-14.13883,3.25974,.9639,-18.18966,4.55386,-.2139,-13.55107,3.82817,.9639,-13.87575,3.55545,.9639,4.23717,1.11904,2.41679,4.21143,1.12709,2.416,4.18107,1.13268,2.416,4.1247,1.13951,2.416,4.01634,1.1488,2.416,3.82997,1.16177,2.416,3.53958,1.17967,2.416,3.11918,1.20373,2.416,2.54276,1.23516,2.416,1.99271,1.26273,2.416,1.36658,1.2765,2.416,.78654,1.27966,2.416,.66326,1.29723,2.41599,.26055,1.28756,2.41599,-.12301,1.27673,2.41599,-.37398,1.26835,2.41599,-1.03015,1.11893,2.416,-1.03015,1.11893,2.416,-.53463,1.2613,2.4169,-.97296,1.20192,2.416};
			return value;
		}
		private double[] getCoordinate_12_52_point_2()
		{
			double[] value = {-.664,1.25217,2.416,-.91657,1.21585,2.41599,-.7673,1.24132,2.41599,-.84975,1.2291,2.41599,1.99373,1.11757,6.84705,1.88783,1.1501,6.84714,1.75389,1.16332,6.84714,1.5452,1.18156,6.84714,1.24308,1.20606,6.84714,.82883,1.23809,6.84714,.43354,1.26619,6.84714,-.01644,1.28021,6.84714,-.43328,1.28343,6.84714,-.80439,1.27909,6.84714,-1.05825,1.27045,6.84714,-1.30005,1.26076,6.84714,-1.45827,1.25328,6.84714,-1.55954,1.24697,6.84724,-1.85293,1.10488,6.84714,-1.64109,1.23882,6.84714,-1.77925,1.21228,6.84714,-1.70621,1.22913,6.84714,16.37452,1.12131,-.213,16.22705,.90803,-.2139,18.48309,.86242,-3.30004,16.0532,.72642,-.2139,18.27894,.64915,-3.30004,15.73042,.50488,-.2139,17.8999,.38899,-3.30003,15.10983,.20344,-.2139,17.17113,.03501,-3.30004,14.04245,-.21781,-.213,15.91769,-.45969,-3.30004,12.09323,-.79887,-.2139,13.96477,-1.14203,-3.30003,9.42147,-1.57963,-.2139,11.13744,-2.05887,-3.30004,5.02113,-2.60004,-.2139,7.26086,-3.25716,-3.30004,1.62971,-3.49497,-.2139,2.85797,-4.30809,-3.30004,-1.42592,-3.9418,-.2139,-1.35297,-4.83281,-3.30004,-4.07948,-4.03701,-.22788,-5.2539,-4.95312,-3.30003,-8.88765,-3.90599,-.213,-9.70383,-4.79075,-3.30003,-10.83923,-3.63074,-.2139,-12.63066,-4.46752,-3.30004,-12.70206,-3.32214,-.2139,-14.89342,-4.10513,-3.30003,-14.96931,-3.0839,-.2139,-16.37404,-3.82536,-3.30004,-17.02081,-2.88278,-.213,-17.27101,-3.47012,-2.77969,-16.85711,-3.70498,-3.30004,-19.22282,-1.19212,-.2139,-19.31193,-1.05118,-.2139,-19.24226,-1.2038,-.3015,-19.0161,-1.64692,-.58581,-18.93953,-1.58897,-.2139,-17.67071,-2.62294,-.2139,-18.18967,-2.31418,-.2139,-18.38105,-2.54447,-1.38419,-17.90766,-3.00113,-1.97931,-18.60388,-1.96624,-.2139,-18.73861,-2.09391,-.93466,15.36067,.9371,.9639,15.22441,.79475,.9639,14.97141,.6211,.9639,14.48497,.38483,.9639,14.04245,-.21781,-.2139,13.64836,.05464,.9639,11.50135,-.40079,.9639,8.80555,-1.01276,.9639,3.89384,-1.81258,.9639,1.1592,-2.51404,.9639,-1.65144,-2.86427,.9639,-4.25518,-2.94457,.9639,-8.88765,-3.90599,-.2139,-7.55023,-2.8362,.9639,-9.50379,-2.62045,.9639,-11.0141,-2.37857,.9639,-12.00236,-2.19184,.9639,-14.5624,-.39031,.9639,-19.33881,-.77413,-.18011,-17.02081,-2.88278,-.213,-12.63491,-2.03419,.96461,-19.22282,-1.19211,-.2139,-14.36088,-.70903,.9639,-19.31193,-1.05117,-.2139,-13.14432,-1.83054,.9639,-14.13883,-1.0201,.9639,-18.18966,-2.31418,-.2139,-13.55107,-1.58852,.9639,-13.87575,-1.3158,.9639,4.21143,1.1119,2.416,4.18107,1.1063,2.416,4.1247,1.09947,2.416,4.01634,1.09019,2.416};
			return value;
		}
		private double[] getCoordinate_12_52_point_3()
		{
			double[] value = {3.82997,1.07721,2.416,3.53958,1.05931,2.416,3.11918,1.03526,2.416,2.54276,1.00382,2.416,1.99271,.97625,2.416,1.36658,.96249,2.416,.78654,.95933,2.416,.66326,.94177,2.41599,.26055,.95143,2.41599,-.12301,.96227,2.41599,-.37398,.97064,2.41599,-.53463,.9777,2.4169,-.97296,1.03708,2.41599,-.664,.98683,2.416,-.91657,1.02314,2.41599,-.7673,.99767,2.41599,-.84975,1.00989,2.41599,1.99373,1.11757,6.84705,1.88783,1.08988,6.84714,1.75389,1.07666,6.84714,1.5452,1.05842,6.84714,1.24308,1.03391,6.84714,.82883,1.00188,6.84714,.43354,.97379,6.84714,-.01644,.95976,6.84714,-.43328,.95655,6.84714,-.80439,.96089,6.84714,-1.05825,.96953,6.84714,-1.30005,.97921,6.84714,-1.45827,.98669,6.84714,-1.55954,.993,6.84724,-1.64109,1.00116,6.84714,-1.77925,1.0277,6.84714,-1.70621,1.01085,6.84714};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getTextureCoordinate_12_53_point_1()
		{
			double[] value = {.995,.27,.936,.189,.94,.189,1.0,.27,.99,.27,.931,.189,.98,.27,.923,.189,.96,.27,.906,.189,.928,.27,.878,.189,.876,.27,.827,.189,.802,.27,.757,.189,.7,.27,.641,.189,.584,.27,.552,.189,.473,.27,.472,.189,.371,.27,.384,.189,.254,.27,.275,.189,.177,.27,.224,.189,.117,.27,.175,.189,.079,.27,.115,.189,.062,.189,.066,.27,.055,.257,.004,.189,.003,.191,.001,.189,.038,.236,.044,.189,.011,.189,.009,.199,.026,.22,.031,.189,.016,.208,.02,.189,.916,.158,.94,.189,.913,.158,.909,.158,.903,.158,.89,.158,.878,.189,.868,.158,.811,.158,.741,.158,.611,.158,.54,.158,.466,.158,.384,.189,.397,.158,.275,.189,.311,.158,.259,.158,.219,.158,.193,.158,.001,.188,.126,.164,.126,.158,.001,.188,.062,.189,.177,.158,.131,.158,.163,.158,.137,.158,.031,.189,.153,.158,.144,.158,.62,.12,.62,.12,.619,.12,.617,.12,.615,.12,.61,.12,.602,.12,.591,.12,.576,.12,.561,.12,.545,.12,.53,.12,.526,.12,.516,.12,.506,.12,.499,.12,.482,.12,.482,.12,.495,.12,.483,.12,.492,.12,.485,.12};
			return value;
		}
		private double[] getTextureCoordinate_12_53_point_2()
		{
			double[] value = {.489,.12,.487,.12,.561,.003,.559,.003,.555,.003,.55,.003,.542,.003,.531,.003,.52,.003,.509,.003,.498,.003,.488,.003,.481,.003,.475,.003,.471,.003,.468,.003,.46,.003,.466,.003,.462,.003,.464,.003,.96,.27,.928,.27,.802,.27,.641,.189,.7,.27,.552,.189,.584,.27,.472,.189,.473,.27,.402,.189,.371,.27,.275,.189,.254,.27,.224,.189,.177,.27,.175,.189,.117,.27,.115,.189,.079,.27,.062,.189,.055,.257,.066,.27,.004,.189,.001,.189,.003,.191,.009,.199,.011,.189,.044,.189,.031,.189,.026,.22,.038,.236,.02,.189,.016,.208,.909,.158,.868,.158,.811,.158,.611,.158,.54,.158,.466,.158,.397,.158,.275,.189,.311,.158,.259,.158,.219,.158,.193,.158,.126,.158,.001,.188,.177,.158,.131,.158,.163,.158,.137,.158,.031,.189,.153,.158,.144,.158,.61,.12,.526,.12,.487,.12,.561,.003,.466,.003,.464,.003};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_11_96_coordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,1,6,2,-1,7,3,5,-1,8,9,10,-1,10,9,11,-1,12,13,14,-1,13,12,15,-1,16,17,18,-1,17,16,19,-1,20,21,22,-1,21,20,23,-1,24,25,14,-1,25,24,26,-1,11,27,28,-1,28,27,29,-1,15,30,31,-1,30,15,32,-1,33,34,35,-1,34,33,10,-1,36,37,38,-1,37,36,31,-1,39,40,41,-1,40,39,35,-1,41,42,43,-1,42,41,40,-1,38,44,45,-1,44,38,37,-1,26,18,25,-1,18,26,16,-1,29,22,24,-1,22,29,20,-1,46,31,36,-1,31,46,15,-1,39,47,35,-1,47,33,35,-1,48,19,16,-1,19,48,42,-1,23,43,21,-1,43,23,41,-1,14,49,32,-1,49,14,25,-1,11,50,13,-1,50,11,28,-1,0,2,51,-1,3,52,4,-1,1,53,6,-1,52,3,1,-1,49,54,9,-1,54,49,27,-1,18,55,27,-1,55,18,17,-1,19,45,17,-1,45,19,38,-1,31,47,37,-1,47,31,30,-1,21,16,26,-1,16,21,43,-1,42,38,19,-1,38,42,36,-1,34,15,46,-1,15,34,13,-1,40,36,42,-1,36,40,46,-1,25,27,49,-1,27,25,18,-1,53,56,6,-1,7,5,57,-1,9,32,49,-1,32,9,30,-1,1,0,52,-1,58,0,51,-1,3,53,1,-1,3,7,53,-1,5,2,6,-1,5,4,2,-1,20,17,45,-1,29,17,59,-1,8,30,9,-1,30,8,47,-1,60,61,62,-1,60,63,64,-1,65,66,67,-1,65,68,69,-1,44,37,39,-1,39,37,47,-1,44,39,41,-1,23,44,41,-1,28,24,50,-1,24,28,29,-1,35,46,40,-1,46,35,34,-1,43,48,16,-1,48,43,42,-1,32,12,14,-1,12,32,15,-1,70,71,72,-1,73,74,75,-1,76,77,75,-1,78,79,80,-1,78,81,82,-1,83,84,85,-1,86,87,83,-1,78,88,81,-1,81,80,79,-1,89,90,91,-1,92,90,89,-1,86,85,87,-1,85,86,83,-1,93,94,95,-1,96,94,93,-1,75,74,76,-1,97,77,76,-1,89,91,92,-1,92,91,90,-1,98,99,100,-1,100,99,101,-1,100,101,98,-1,99,98,101,-1,102,103,104,-1,102,104,105,-1,95,96,93,-1,95,94,96,-1,71,70,106,-1,103,105,104,-1,102,105,103,-1,13,10,11,-1,10,13,34,-1,71,106,107,-1,63,108,64,-1,60,62,63,-1,59,17,20,-1,20,29,59,-1,109,72,110,-1,51,2,4,-1,51,4,58,-1,56,53,7,-1,6,56,7,-1,97,73,77,-1,108,61,64,-1,82,81,79,-1,0,58,52,-1,52,58,4,-1,67,66,69,-1,6,7,57,-1,6,57,5,-1,68,67,69,-1,68,65,67,-1,29,27,55,-1,29,55,17,-1,11,54,27,-1,11,9,54,-1,23,45,44,-1,45,23,20,-1,22,26,24,-1,26,22,21,-1,50,14,13,-1,14,50,24,-1,109,70,72,-1,88,78,80,-1,85,84,87,-1,8,10,33,-1,47,8,33,-1,73,97,74,-1,108,62,61,-1};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_11_96_texCoordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,1,6,2,-1,7,3,5,-1,8,9,9,-1,9,9,10,-1,11,12,13,-1,12,11,14,-1,15,16,17,-1,16,15,18,-1,19,20,17,-1,20,19,21,-1,22,23,13,-1,23,22,24,-1,10,25,25,-1,25,25,26,-1,14,27,28,-1,27,14,12,-1,27,29,28,-1,29,27,9,-1,30,31,32,-1,31,30,28,-1,33,34,35,-1,34,33,28,-1,35,36,18,-1,36,35,34,-1,32,37,38,-1,37,32,31,-1,24,17,23,-1,17,24,15,-1,26,17,22,-1,17,26,19,-1,39,28,30,-1,28,39,14,-1,33,40,28,-1,40,27,28,-1,41,18,15,-1,18,41,36,-1,21,18,20,-1,18,21,35,-1,13,42,12,-1,42,13,23,-1,10,42,12,-1,42,10,25,-1,0,2,4,-1,3,43,4,-1,1,44,6,-1,43,3,1,-1,42,45,9,-1,45,42,25,-1,17,46,25,-1,46,17,16,-1,18,38,16,-1,38,18,32,-1,28,40,31,-1,40,28,27,-1,20,15,24,-1,15,20,18,-1,36,32,18,-1,32,36,30,-1,29,14,39,-1,14,29,12,-1,34,30,36,-1,30,34,39,-1,23,25,42,-1,25,23,17,-1,44,7,6,-1,7,5,6,-1,9,12,42,-1,12,9,27,-1,1,0,43,-1,0,0,4,-1,3,44,1,-1,3,7,44,-1,5,2,6,-1,5,4,2,-1,19,16,38,-1,26,16,47,-1,8,27,9,-1,27,8,40,-1,48,49,50,-1,48,51,52,-1,53,54,55,-1,53,56,57,-1,37,31,33,-1,33,31,40,-1,37,33,35,-1,21,37,35,-1,25,22,42,-1,22,25,26,-1,28,39,34,-1,39,28,29,-1,18,41,15,-1,41,18,36,-1,12,11,13,-1,11,12,14,-1,58,59,60,-1,61,62,63,-1,64,65,63,-1,66,67,68,-1,66,69,70,-1,71,72,73,-1,74,75,71,-1,66,76,69,-1,69,68,67,-1,77,78,79,-1,80,78,77,-1,74,73,75,-1,73,74,71,-1,81,82,83,-1,84,82,81,-1,63,62,64,-1,85,65,64,-1,77,79,80,-1,80,79,78,-1,86,87,88,-1,88,87,89,-1,88,89,86,-1,87,86,89,-1,90,91,92,-1,90,92,93,-1,83,84,81,-1,83,82,84,-1,59,58,94,-1,91,93,92,-1,90,93,91,-1,12,9,10,-1,9,12,29,-1,59,94,95,-1,51,96,52,-1,48,50,51,-1,47,16,19,-1,19,26,47,-1,97,60,98,-1,4,2,4,-1,4,4,0,-1,7,44,7,-1,6,7,7,-1,85,61,65,-1,96,49,52,-1,70,69,67,-1,0,0,43,-1,43,0,4,-1,55,54,57,-1,6,7,6,-1,6,6,5,-1,56,55,57,-1,56,53,55,-1,26,25,46,-1,26,46,16,-1,10,45,25,-1,10,9,45,-1,21,38,37,-1,38,21,19,-1,17,24,22,-1,24,17,20,-1,42,13,12,-1,13,42,22,-1,97,58,60,-1,76,66,68,-1,73,72,75,-1,8,9,27,-1,40,8,27,-1,61,85,62,-1,96,50,49,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_12_96_point_1()
		{
			double[] value = {-13.84399,1.3497,-3.76183,-13.84399,1.27146,-4.00261,-13.84399,1.14488,-3.61301,-13.74399,1.14488,-4.04374,-13.74399,1.27146,-3.65414,-13.74399,1.01829,-3.65414,-13.84399,.94006,-3.76183,-13.74399,.94006,-3.89493,-13.8018,-.03866,-4.71282,-13.85272,-.35246,-3.83618,-13.74987,-.35246,-3.83618,-13.80129,-.0488,-2.96715,-13.80129,-.47662,-3.83618,-13.72857,-.40389,-3.83618,-13.74987,-.14924,-2.89418,-13.85272,-.14924,-4.77819,-13.85272,2.44388,-2.89418,-13.85272,2.36068,-2.95463,-13.87402,1.62667,-2.36089,-13.87402,2.69854,-3.83618,-13.80129,2.34344,-2.96715,-13.72857,2.40228,-2.9244,-13.72857,1.62667,-2.36089,-13.74987,2.64711,-3.83618,-13.72857,.66797,-2.36089,-13.85272,.65208,-2.31198,-13.74987,1.64257,-2.31199,-13.85272,.68386,-2.4098,-13.74987,.68386,-2.4098,-13.80129,1.6042,-2.43006,-13.85272,-.06603,-4.71774,-13.87402,.66797,-5.31147,-13.87402,-.40389,-3.83618,-13.74987,-.06603,-4.71774,-13.72857,-.10763,-4.74796,-13.72857,.66797,-5.31147,-13.85272,1.64257,-5.36038,-13.85272,1.61078,-5.26256,-13.87402,2.40228,-4.74796,-13.80129,1.6042,-5.24231,-13.72857,1.62667,-5.31147,-13.74987,2.36068,-4.71774,-13.74987,2.44388,-4.77819,-13.72857,2.69854,-3.83618,-13.80129,2.34344,-4.70521,-13.80129,2.62581,-3.83618,-13.74987,.65208,-5.36038,-13.80129,.69045,-5.24231,-13.80129,2.77126,-3.83618,-13.87402,-.10763,-2.9244,-13.72857,-.10763,-2.9244,-13.84399,1.27146,-3.65414,-13.74399,1.3497,-3.89493,-13.84399,1.01829,-4.00261,-13.85272,-.06603,-2.95463,-13.85272,1.61078,-2.4098,-13.84399,.94006,-3.89493,-13.74399,.94006,-3.76183,-13.74399,1.3497,-3.76183,-13.80314,2.30608,-2.93911,-13.83602,.64156,-5.2237,-13.75612,.68268,-5.25866,-13.75651,1.09136,-4.02635,-13.83541,1.03705,-4.0087,-13.83604,.73099,-5.25599,-13.83513,2.31608,-4.74157,-13.75998,2.35758,-4.71437,-13.77989,1.31636,-3.94082,-13.83513,1.28097,-3.98952,-13.83513,2.37065,-4.66463,-13.83602,1.16298,-3.6189,-13.80129,1.57026,-2.43006,-13.83466,1.64418,-2.44286,-13.75332,2.34601,-2.94566,-13.83513,1.33357,-3.73963,-13.83533,2.35485,-2.95886,-13.83253,1.27893,-3.66441,-13.80129,2.30637,-2.94022,-13.83513,-.08064,-4.65034,-13.75332,-.07003,-4.70102,-13.75332,.9744,-3.94219,-13.83513,1.00217,-3.98041,-13.83513,-.06014,-4.71345,-13.83513,.94006,-3.78651,-13.83513,.94006,-3.88098,-13.83513,-.33062,-3.88098,-13.80129,-.32137,-3.80605,-13.75332,.94006,-3.83375,-13.83513,.94663,-3.90398,-13.8356,1.03663,-3.64819,-13.83602,1.12627,-3.61906,-13.80129,.66707,-2.44704,-13.836,.73549,-2.41639,-13.83513,2.62527,-3.88098,-13.80129,2.61602,-3.80605,-13.75958,1.3497,-3.83013,-13.83513,1.3497,-3.78651,-13.75332,1.30581,-3.70141,-13.83559,1.25262,-4.00873,-13.80129,1.62709,-5.22567};
			return value;
		}
		private double[] getCoordinate_12_96_point_2()
		{
			double[] value = {-13.836,1.55879,-5.25598,-13.75659,1.21415,-4.02123,-13.83513,-.01847,-2.92864,-13.83513,.95527,-3.74088,-13.80129,-.05711,-2.99274,-13.83513,1.0051,-3.67231,-13.76141,1.20822,-3.63359,-13.80129,1.62336,-2.44398,-13.83602,1.12677,-4.03785,-13.83561,1.25314,-3.64819,-13.76766,1.21501,-3.6358};
			return value;
		}

		/** Large attribute array: Coordinate point field, scene-graph level=12, element #17, 210 total numbers made up of 70 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 getCoordinate_12_17_point()
		{
			MFVec3f Coordinate_12_17_point = new MFVec3f(new double[] {-7.09298,-.04835,-3.52844,-8.02593,-.04835,-3.5305,-8.02593,2.28804,-3.5305,-7.09298,2.28804,-3.52844,-15.85575,3.78811,-3.31401,-15.85587,4.26464,-3.31401,-15.85884,3.90478,-3.80105,-15.85587,3.79083,-3.72483,-15.09243,4.26474,-3.31144,5.34702,4.25543,-3.30326,5.34702,4.25543,-3.30326,-8.70119,3.79083,-4.33174,-8.02594,3.7881,-3.31404,-8.70119,-1.54865,-4.33174,-15.85587,-1.54865,-3.72483,-15.85586,-1.55135,-3.31403,-8.02593,-1.55138,-3.31401,-8.02593,2.28804,-3.5305,-8.02593,-.04835,-3.5305,5.34702,4.25543,-3.30326,5.34702,4.25543,-3.30326,-15.85884,-1.67348,-3.80105,-15.85587,-2.0388,-3.31401,-8.02593,-1.55138,-1.26707,-8.02593,3.7881,-1.26707,-15.85587,3.78811,-1.26707,-15.85586,-1.55138,-1.26707,-8.02593,3.78811,-1.26707,-8.02593,3.78811,-1.26707,-8.02593,3.78811,-1.26707,-8.02594,3.7881,-3.31404,-16.85711,1.11109,-3.30004,-16.85711,5.94464,-3.30004,-16.37404,6.06503,-3.30004,-14.89342,6.34479,-3.30004,-12.63066,6.70719,-3.30004,7.26086,5.49682,-3.30004,2.85796,6.54775,-3.30004,-1.35297,7.07248,-3.30004,-5.2539,7.19279,-3.30004,-9.70383,7.03042,-3.30004,13.73758,1.11868,-3.29845,13.73405,2.54704,-3.2991,18.65627,1.12027,-3.30004,18.48309,1.37725,-3.30004,18.27894,1.59051,-3.30004,17.8999,1.85068,-3.30003,17.17112,2.20466,-3.30004,15.91769,2.69935,-3.30004,13.96477,3.38169,-3.30003,11.13745,4.29854,-3.30004,18.48309,.86242,-3.30004,11.13744,-2.05887,-3.30004,13.73403,-.31575,-3.2991,13.96477,-1.14203,-3.30003,15.91769,-.45969,-3.30004,17.17113,.03501,-3.30004,17.8999,.38899,-3.30003,18.27894,.64915,-3.30004,5.34701,-2.02413,-3.30326,7.26086,-3.25716,-3.30004,2.85797,-4.30809,-3.30004,-1.35297,-4.83281,-3.30003,-5.2539,-4.95312,-3.30003,-9.70383,-4.79075,-3.30003,-12.63066,-4.46752,-3.30004,-14.89342,-4.10513,-3.30003,-16.37404,-3.82536,-3.30003,-16.85711,-3.70498,-3.30004,5.34701,-2.02413,-3.30326});
			return Coordinate_12_17_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #39, 120 total numbers made up of 40 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 getCoordinate_12_39_point()
		{
			MFVec3f Coordinate_12_39_point = new MFVec3f(new double[] {3.57571,-1.63303,-31.49985,3.63112,-1.63303,-31.55526,3.68653,-1.63303,-31.49985,3.63112,-1.63303,-31.44444,3.63112,.82422,-31.372,3.68653,.82422,-31.31659,3.60211,.82422,-31.34299,3.57571,.8434,-31.31516,3.63106,.82422,-31.26124,3.63112,3.86697,-31.55526,3.68653,3.86697,-31.49985,3.68653,1.41387,-31.3169,3.63112,1.41387,-31.37231,3.60211,1.41387,-31.3433,3.57571,1.39469,-31.31547,3.57571,3.86697,-31.49985,3.63106,1.41387,-31.26155,3.63112,3.86697,-31.44444,3.60211,1.41387,-31.29049,3.60211,.82422,-31.29018,4.00791,1.11905,-53.91141,3.9487,1.30126,-53.91141,3.9487,1.30125,-4.95341,4.00791,1.11904,-4.95341,3.7937,1.41387,-53.91141,3.7937,1.41387,-4.95341,3.60211,1.41387,-4.95341,3.60211,1.41387,-53.91141,3.44711,1.30126,-53.91141,3.3879,1.11905,-53.91141,3.3879,1.11904,-4.95341,3.44711,1.30126,-4.95341,3.44711,.93683,-53.91141,3.44711,.93683,-4.95341,3.60211,.82421,-4.95341,3.60211,.82422,-53.91141,3.7937,.82422,-53.91141,3.9487,.93683,-53.91141,3.9487,.93683,-4.95341,3.7937,.82421,-4.95341});
			return Coordinate_12_39_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #52, 1408 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_11_52_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_52_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_52_coordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_11_52_coordIndex_2()));
			return IndexedFaceSet_11_52_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=11, element #52, 1408 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_11_52_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_11_52_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_52_texCoordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_11_52_texCoordIndex_2()));
			return IndexedFaceSet_11_52_texCoordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #52, 702 total numbers made up of 234 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 getCoordinate_12_52_point()
		{
			MFVec3f Coordinate_12_52_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_12_52_point_1()))
				.append(new MFVec3f(getCoordinate_12_52_point_2()))
				.append(new MFVec3f(getCoordinate_12_52_point_3()));
			return Coordinate_12_52_point;
		}
		/** Large attribute array: TextureCoordinate point field, scene-graph level=12, element #53, 360 total numbers made up of 180 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 getTextureCoordinate_12_53_point()
		{
			MFVec2f TextureCoordinate_12_53_point = new MFVec2f()/*2.finalize*/
				.append(new MFVec2f(getTextureCoordinate_12_53_point_1()))
				.append(new MFVec2f(getTextureCoordinate_12_53_point_2()));
			return TextureCoordinate_12_53_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #96, 660 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_11_96_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_96_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_96_coordIndex_1()));
			return IndexedFaceSet_11_96_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=11, element #96, 660 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_11_96_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_11_96_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_96_texCoordIndex_1()));
			return IndexedFaceSet_11_96_texCoordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #96, 333 total numbers made up of 111 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 getCoordinate_12_96_point()
		{
			MFVec3f Coordinate_12_96_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_12_96_point_1()))
				.append(new MFVec3f(getCoordinate_12_96_point_2()));
			return Coordinate_12_96_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 SailBoatUnderPower 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 SailBoatUnderPower().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.ShipsCivilian.SailBoats.SailBoatUnderPower\" 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.ShipsCivilian.SailBoats.SailBoatUnderPower self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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