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 Sail. </p>
 <p> Related links: Catalog page <a href="../../../../ShipsCivilian/SailBoats/SailBoatUnderSailIndex.html" target="_blank">SailBoatUnderSail</a>,  source <a href="../../../../ShipsCivilian/SailBoats/SailBoatUnderSail.java">SailBoatUnderSail.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/SailBoatUnderSail.x3d">SailBoatUnderSail.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> A Sail Boat under Sail </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/SailBoatUnderSail.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/SailBoats/SailBoatUnderSail.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 SailBoatUnderSail
{
	/** Default constructor to create this object. */
	public SailBoatUnderSail ()
	{
	  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("SailBoatUnderSail.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("A Sail Boat under Sail"))
    .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/SailBoatUnderSail.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("SailBoatUnderSail.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_SailBoatUnderSail").setRotation(1.0,0.0,0.0,1.571)
          .addChild(new Group("SailBoatUnderSail")
            .addChild(new Transform("dad_Group13")
              .addChild(new Group("Group13")
                .addChild(new Transform("dad_Box04")
                  .addChild(new Shape("Box04")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material0_mat").setAmbientIntensity(1).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("SBOATMAP").setUrl(new String[] {"SBOATMAP.JPG","https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/SailBoats/SBOATMAP.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(getCoordinate_12_24_point()))
                      .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()
                      .setMaterial(new Material("material2_mat").setAmbientIntensity(1).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,0,3,1,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,7,6,-1,0,8,7,-1,0,9,8,-1,0,10,9,-1,0,2,10,-1,2,11,12,-1,2,1,11,-1,1,13,11,-1,1,3,13,-1,3,14,13,-1,3,4,14,-1,4,15,14,-1,4,5,15,-1,5,16,15,-1,5,6,16,-1,6,17,16,-1,6,7,17,-1,7,18,17,-1,7,8,18,-1,8,19,18,-1,8,9,19,-1,9,20,19,-1,9,10,20,-1,10,12,20,-1,10,2,12,-1,21,12,11,-1,21,11,13,-1,21,13,14,-1,21,14,15,-1,21,15,16,-1,21,16,17,-1,21,17,18,-1,21,18,19,-1,21,19,20,-1,21,20,12,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-12.92875,-.62426,-8.33319,-12.92875,-.83265,-8.50805,-12.92875,-.89563,-8.35216,-12.92875,-.69007,-8.59715,-12.92875,-.52235,-8.58542,-12.92875,-.39355,-8.47735,-12.92875,-.35288,-8.31421,-12.92875,-.41586,-8.15832,-12.92875,-.55844,-8.06923,-12.92875,-.72616,-8.08096,-12.92875,-.85496,-8.18903,3.31055,-.83265,-8.50805,3.31055,-.89563,-8.35216,3.31055,-.69007,-8.59715,3.31055,-.52235,-8.58542,3.31055,-.39355,-8.47735,3.31055,-.35288,-8.31421,3.31055,-.41586,-8.15832,3.31055,-.55844,-8.06923,3.31055,-.72617,-8.08096,3.31055,-.85496,-8.18903,3.31055,-.62426,-8.33319}))))))
                .addChild(new Transform("dad_Cylinder03")
                  .addChild(new Shape("Cylinder03")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material3_mat").setAmbientIntensity(1).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_37_point())))))
                .addChild(new Transform("dad_Line01")
                  .addChild(new Shape("Line01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOATMAP"))
                      .setMaterial(new Material("material4_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,3,4,5,-1,3,5,6,-1,3,6,7,-1,3,7,8,-1,3,8,9,-1,3,9,10,-1,3,10,11,-1,3,11,12,-1,3,12,13,-1,3,13,14,-1,3,14,15,-1,3,15,16,-1,3,16,17,-1,18,3,17,-1,19,18,17,-1,20,19,17,-1,21,20,17,-1,22,21,17,-1,23,22,17,-1,24,23,17,-1,25,24,17,-1,25,17,26,-1,27,25,26,-1,28,27,26,-1,29,28,26,-1,30,29,26,-1,31,30,26,-1,32,31,26,-1,32,26,0,-1,33,32,0,-1,34,33,0,-1,35,34,0,-1,35,0,2,-1,35,2,36,-1}).setTexCoordIndex(new int[] {0,1,2,-1,3,4,5,-1,3,5,6,-1,3,6,7,-1,3,7,8,-1,3,8,9,-1,3,9,10,-1,3,10,11,-1,3,11,12,-1,3,12,13,-1,3,13,14,-1,3,14,15,-1,3,15,16,-1,3,16,17,-1,18,3,17,-1,19,18,17,-1,20,19,17,-1,21,20,17,-1,22,21,17,-1,23,22,17,-1,24,23,17,-1,25,24,17,-1,25,17,26,-1,27,25,26,-1,28,27,26,-1,29,28,26,-1,30,29,26,-1,31,30,26,-1,32,31,26,-1,32,26,0,-1,33,32,0,-1,34,33,0,-1,35,34,0,-1,35,0,2,-1,35,2,36,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-11.52154,-.44331,-10.78444,-11.60051,-.58282,-8.78942,-10.99091,-.53349,-8.78597,-.52306,.8694,-8.68787,2.30498,-.58282,-8.78942,3.1514,2.51311,-53.06332,2.30498,2.44481,-52.08647,.88394,2.23466,-49.08128,-.51278,2.00882,-45.85155,-1.86085,1.78622,-42.66824,-3.13594,1.56849,-39.55455,-4.31374,1.35725,-36.53371,-5.36991,1.15413,-33.62891,-6.28015,.96074,-30.86338,-7.20306,.74997,-27.84922,-8.24443,.50571,-24.35608,-9.30061,.2461,-20.6435,-10.26795,-.01071,-16.97101,-.91426,.97333,-8.6806,-1.32479,1.07309,-8.67363,-1.74865,1.16436,-8.66724,-2.17985,1.24285,-8.66176,-2.61243,1.30424,-8.65746,-3.0404,1.34423,-8.65467,-3.45777,1.35852,-8.65367,-3.85541,1.3668,-8.65309,-11.0428,-.24656,-13.59815,-4.32739,1.35421,-8.65397,-4.86169,1.31553,-8.65667,-5.4463,1.24552,-8.66157,-6.06921,1.13896,-8.66902,-6.71842,.99062,-8.67939,-7.38191,.79528,-8.69305,-8.0644,.55688,-8.70972,-8.69136,.29698,-8.7279,-9.28013,.03679,-8.74609,-10.41255,-.39965,-8.77661})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.864,.527,.903,.526,.903,.535,.903,.692,.903,.735,.039,.748,.058,.735,.117,.713,.18,.693,.242,.672,.303,.653,.362,.635,.418,.62,.472,.606,.531,.592,.599,.576,.672,.561,.743,.546,.903,.686,.903,.68,.903,.674,.903,.667,.903,.661,.903,.655,.903,.648,.903,.642,.809,.534,.903,.635,.903,.627,.903,.618,.903,.609,.903,.599,.903,.589,.903,.579,.903,.57,.903,.561,.903,.544}))))))
                .addChild(new Transform("dad_Line02")
                  .addChild(new Shape("Line02")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOATMAP"))
                      .setMaterial(new Material("material5_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,3,4,5,-1,3,5,6,-1,3,6,7,-1,3,7,8,-1,3,8,9,-1,3,9,10,-1,3,10,11,-1,3,11,12,-1,3,12,13,-1,3,13,14,-1,3,14,15,-1,3,15,16,-1,3,16,17,-1,18,3,17,-1,19,18,17,-1,20,19,17,-1,21,20,17,-1,22,21,17,-1,23,22,17,-1,24,23,17,-1,25,24,17,-1,25,17,26,-1,27,25,26,-1,28,27,26,-1,29,28,26,-1,30,29,26,-1,31,30,26,-1,32,31,26,-1,32,26,0,-1,33,32,0,-1,34,33,0,-1,35,34,0,-1,35,0,2,-1,35,2,36,-1}).setTexCoordIndex(new int[] {0,1,2,-1,3,4,5,-1,3,5,6,-1,3,6,7,-1,3,7,8,-1,3,8,9,-1,3,9,10,-1,3,10,11,-1,3,11,12,-1,3,12,13,-1,3,13,14,-1,3,14,15,-1,3,15,16,-1,3,16,17,-1,18,3,17,-1,19,18,17,-1,20,19,17,-1,21,20,17,-1,22,21,17,-1,23,22,17,-1,24,23,17,-1,25,24,17,-1,25,17,26,-1,27,25,26,-1,28,27,26,-1,29,28,26,-1,30,29,26,-1,31,30,26,-1,32,31,26,-1,32,26,0,-1,33,32,0,-1,34,33,0,-1,35,34,0,-1,35,0,2,-1,35,2,36,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {18.38279,-.6014,-7.67068,18.95453,-.79558,-4.45654,18.3721,-.64833,-4.57122,8.45627,2.42998,-6.5087,4.32115,1.64672,-7.3708,3.99974,2.84068,-53.76858,4.69494,2.74858,-52.3525,5.89718,2.5006,-49.09544,7.03068,2.30801,-45.86069,7.84133,2.12382,-42.67233,8.8388,1.83101,-39.55981,9.74042,1.60885,-36.53637,10.42726,1.39506,-33.62908,11.32836,1.19404,-30.8611,12.23324,.95718,-27.84475,13.26907,.7166,-24.34818,14.57151,.42694,-20.63285,16.21803,.01447,-14.8313,8.85087,2.46957,-6.42735,9.26353,2.5019,-6.34253,9.68779,2.5237,-6.25561,10.1172,2.53166,-6.168,10.54531,2.5225,-6.08111,10.96567,2.49292,-5.99633,11.37182,2.43963,-5.91507,11.75796,2.38359,-5.83795,17.4791,-.38448,-10.48654,12.21283,2.29489,-5.7477,12.72401,2.17033,-5.64692,13.27907,2.00666,-5.53824,13.86559,1.80066,-5.42426,14.47114,1.54909,-5.30761,15.08328,1.24873,-5.19089,15.70721,.90272,-5.07297,16.27408,.54442,-4.96698,16.80395,.192,-4.86837,17.8329,-.42254,-4.67505})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.92,7.963,.982,7.971,.979,7.962,.93,7.825,.916,7.768,.033,7.769,.06,7.779,.123,7.795,.185,7.81,.246,7.821,.306,7.835,.364,7.847,.42,7.856,.474,7.868,.532,7.88,.599,7.894,.671,7.912,.782,7.934,.932,7.831,.933,7.836,.935,7.842,.937,7.848,.938,7.854,.94,7.86,.942,7.866,.944,7.871,.866,7.951,.946,7.877,.948,7.884,.951,7.892,.954,7.9,.957,7.909,.96,7.917,.964,7.926,.967,7.933,.97,7.941,.976,7.955}))))))
                .addChild(new Transform("dad_Object01")
                  .addChild(new Shape("Object01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOATMAP"))
                      .setMaterial(new Material("material12_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(getIndexedFaceSet_11_60_coordIndex()).setTexCoordIndex(getIndexedFaceSet_11_60_texCoordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_60_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(getTextureCoordinate_12_61_point())))))
                .addChild(new Transform("dad_Object02")
                  .addChild(new Shape("Object02")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOATMAP"))
                      .setMaterial(new Material("material13_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,-.97574,-3.18848,13.73403,-2.40663,-3.28919,5.34374,-3.63584,-5.1746,5.34374,1.92883,-4.78547,13.73405,.44918,-3.08949,-7.89788,-3.63635,-5.16726,-7.90119,-2.01146,-5.107,-7.1003,-2.01143,-5.1075,-6.22933,-2.01139,-5.10804,-6.22933,.31931,-4.94506,-7.1003,.31927,-4.94452,-7.90119,.31923,-4.94402,-7.89788,1.92832,-4.77814})))
                      .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("SBOATMAP"))
                      .setMaterial(new Material("material14_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,33,34,-1,35,28,2,-1,2,1,35,-1,25,26,36,-1,36,31,25,-1,37,0,3,-1,4,38,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(getCoordinate_12_76_point()))
                      .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("SBOATMAP"))
                      .setMaterial(new Material("material15_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,-3.35547,-.26281,-19.33881,-3.08147,-.20977,-19.34362,-1.19243,-.07162,-19.33881,.69725,.05447,-19.31193,.97597,.04008,-19.24226,1.13434,-.03666,-19.0161,1.59621,-.28936,-18.73861,2.06644,-.60619,-18.38105,2.54726,-1.02319,-17.90766,3.04432,-1.58501,-17.27102,3.56799,-2.35072,-16.85711,3.83858,-2.85342,-16.85711,-.9832,-3.19059,-16.85711,-5.78754,-3.52654,-17.27101,-5.58955,-2.99108,-17.90766,-5.17753,-2.15994,-18.38105,-4.7635,-1.53441,-18.73861,-4.34539,-1.05455,-19.0161,-3.92383,-.67536,-19.24226,-3.50162,-.36083})))
                      .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("material16_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,-2.04064,-4.68973,-7.09298,-2.12388,-3.49932,-7.09298,.20681,-3.33634,-7.09298,.29005,-4.52675,-6.25285,-2.04064,-4.68973,-6.25285,.29005,-4.52675}))))))
                .addChild(new Transform("dad_Object06")
                  .addChild(new Shape("Object06")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material17_mat").setAmbientIntensity(1).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,.29005,-4.52675,-7.09298,.20681,-3.33634,-8.02593,.20696,-3.3384,-8.01685,.29005,-4.52675,-7.1003,.31927,-4.94452,-7.90119,.31923,-4.94402,-6.22933,-2.01139,-5.10804,-6.25285,-2.04064,-4.68973,-6.25285,.29005,-4.52675,-6.22933,.31931,-4.94506,-8.01715,-2.04056,-4.69093,-8.02593,-2.12374,-3.50137,-7.09298,-2.12388,-3.49932,-7.09298,-2.04064,-4.68973,-7.90119,-2.01146,-5.107,-7.09298,-2.01135,-5.10869}))))))
                .addChild(new Transform("dad_Torus01")
                  .addChild(new Shape("Torus01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("SBOATMAP"))
                      .setMaterial(new Material("material18_mat").setAmbientIntensity(0.588).setDiffuseColor(.58823,.58823,.58823).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCoordIndex(getIndexedFaceSet_11_104_coordIndex()).setTexCoordIndex(getIndexedFaceSet_11_104_texCoordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_104_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_60_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,95,65,71,-1,71,97,95,-1,98,74,68,-1,68,96,98,-1,97,71,75,-1,75,99,97,-1,100,76,74,-1,74,98,100,-1,99,75,78,-1,78,101,99,-1,102,79,76,-1,76,100,102,-1,101,78,79,-1,79,102,101,-1,81,103,80,-1,82,103,81,-1,83,103,82,-1,103,83,84,-1,84,104,103,-1,104,84,85,-1,85,105,104,-1,105,85,86,-1,86,106,105,-1,106,86,87,-1,87,107,106,-1,107,87,88,-1,88,108,107,-1,108,88,89,-1,89,109,108,-1,109,89,90,-1,90,110,109,-1,110,90,91,-1,91,111,110,-1,111,91,92,-1,92,112,111,-1,112,92,93,-1,93,113,112,-1,113,93,94,-1,94,114,113,-1,114,94,95,-1,95,115,114,-1,116,117,96,-1,115,95,97,-1,97,118,115,-1,96,117,98,-1,118,97,99,-1,99,119,118,-1,120,100,98,-1,98,117,120,-1,119,99,101,-1,101,121,119,-1,100,120,102,-1,121,101,102,-1,102,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_60_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,96,116,67,-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,211,210,229,-1,229,230,211,-1,96,212,117,-1,213,211,230,-1,230,231,213,-1,212,214,232,-1,232,117,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_60_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,93,65,71,-1,71,95,93,-1,96,72,68,-1,68,94,96,-1,95,71,73,-1,73,97,95,-1,98,74,72,-1,72,96,98,-1,97,73,76,-1,76,99,97,-1,100,77,74,-1,74,98,100,-1,99,76,77,-1,77,100,99,-1,79,101,78,-1,80,101,79,-1,81,101,80,-1,101,81,82,-1,82,102,101,-1,102,82,83,-1,83,103,102,-1,103,83,84,-1,84,104,103,-1,104,84,85,-1,85,105,104,-1,105,85,86,-1,86,106,105,-1,106,86,87,-1,87,107,106,-1,107,87,88,-1,88,108,107,-1,108,88,89,-1,89,109,108,-1,109,89,90,-1,90,110,109,-1,110,90,91,-1,91,111,110,-1,111,91,92,-1,92,112,111,-1,112,92,93,-1,93,113,112,-1,114,115,94,-1,113,93,95,-1,95,116,113,-1,94,115,96,-1,116,95,97,-1,97,117,116,-1,118,98,96,-1,96,115,118,-1,117,97,99,-1,99,119,117,-1,98,118,100,-1,119,99,100,-1,100,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_60_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,94,114,67,-1,167,164,93,-1,93,95,167,-1,165,168,96,-1,96,94,165,-1,169,167,95,-1,95,97,169,-1,168,170,98,-1,98,96,168,-1,172,169,97,-1,97,99,172,-1,170,173,176,-1,176,98,170,-1,173,172,99,-1,99,176,173,-1,79,78,177,-1,80,79,177,-1,81,80,177,-1,82,81,177,-1,177,102,82,-1,174,82,102,-1,102,103,174,-1,84,174,103,-1,103,104,84,-1,85,84,104,-1,104,105,85,-1,86,85,105,-1,105,106,86,-1,87,86,106,-1,106,107,87,-1,88,87,107,-1,107,108,88,-1,89,88,108,-1,108,109,89,-1,175,89,109,-1,109,110,175,-1,91,175,110,-1,110,111,91,-1,92,91,111,-1,111,112,92,-1,93,92,112,-1,112,113,93,-1,95,93,113,-1,113,116,95,-1,94,96,115,-1,97,95,116,-1,116,178,97,-1,96,98,118,-1,118,115,96,-1,99,97,178,-1,178,179,99,-1,98,176,118,-1,176,99,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_60_point_1()
		{
			double[] value = {18.48309,-.71769,-3.17202,16.22705,-.97846,-.09659,16.37452,-1.18835,-.11036,18.65628,-.97404,-3.18995,18.27894,-.50495,-3.15715,16.0532,-.79729,-.08392,17.8999,-.24542,-3.139,15.73042,-.57629,-.06847,17.17112,.1077,-3.11431,15.10983,-.27559,-.04744,15.91769,.60119,-3.0798,14.04245,.14457,-.01716,13.96477,1.28187,-3.0322,12.09323,.72428,.02248,11.13745,2.19648,-2.96825,9.42147,1.50313,.07694,7.26086,3.39185,-2.88466,5.02113,2.52106,.14812,2.85796,4.44022,-2.81135,1.62971,3.41381,.21055,-1.35297,4.96366,-2.77474,-1.42592,3.85955,.24172,-5.2539,5.08368,-2.76635,-4.7478,3.96176,.24886,-9.70383,4.92171,-2.77768,-8.88765,3.82376,.24012,-12.63066,4.59926,-2.80023,-10.83923,3.54925,.22002,-14.89342,4.23775,-2.82551,-12.70206,3.2414,.19849,-16.37404,3.95867,-2.84502,-14.96931,3.00374,.18187,-17.02081,2.80304,.16875,-16.85711,3.83858,-2.85342,-17.27102,3.56799,-2.35072,-19.22282,1.11657,.04991,-19.24226,1.13434,-.03666,-19.31193,.97598,.04008,-17.90766,3.04432,-1.58501,-17.67071,2.54391,.14972,-18.93953,1.51246,.07759,-19.0161,1.59621,-.28936,-18.38105,2.54726,-1.02319,-18.18967,2.2359,.12818,-18.73861,2.06644,-.60619,-18.60388,1.88881,.10391,15.47627,-1.27271,1.06422,16.37452,-1.18835,-.11036,15.36067,-1.08963,1.07631,15.22441,-.94763,1.08624,14.97141,-.7744,1.09836,14.48497,-.5387,1.11484,14.04245,.14464,-.01806,13.64836,-.20933,1.13787,11.50134,.24501,1.16964,8.80555,.85548,1.21233,3.89384,1.65334,1.26812,1.1592,2.35308,1.31705,-1.65144,2.70247,1.34148,-4.7478,3.96176,.24886,-4.25518,2.78258,1.34708,-8.88765,3.82383,.23922,-7.55023,2.67446,1.33952,-9.50379,2.45924,1.32448,-11.01409,2.21795,1.3076,-12.00236,2.03166,1.29458,-19.34362,-1.19243,-.07162,-14.5861,-1.25736,.82605,-14.5624,.23452,1.16891,-19.33881,.69725,.05447,-17.02081,2.80304,.16874,-12.63491,1.87437,1.28429,-19.22282,1.11657,.04991,-19.31193,.97597,.04008,-14.36088,.55248,1.19114,-13.14432,1.67124,1.26937,-14.13883,.86278,1.21284,-18.18966,2.2359,.12818,-13.55107,1.42982,1.25249,-13.87575,1.15776,1.23347,4.23717,-1.37406,2.51287,4.21143,-1.36597,2.51264,4.18107,-1.36039,2.51303,4.1247,-1.35358,2.51351,4.01634,-1.34431,2.51416,3.82997,-1.33137,2.51506,3.53958,-1.31352,2.51631,3.11918,-1.28952,2.51799,2.54276,-1.25816,2.52018,1.99271,-1.23066,2.5221,1.36658,-1.21693,2.52306,.78654,-1.21378,2.52328,.66326,-1.19625,2.5245,.26055,-1.20589,2.52382,-.12301,-1.2167,2.52307,-.37398,-1.22505,2.52249,-1.03015,-1.37411,2.51206,-.53463,-1.23215,2.5229,-.97296,-1.29133,2.51785,-.664,-1.2412,2.52136};
			return value;
		}
		private double[] getCoordinate_12_60_point_2()
		{
			double[] value = {-.91657,-1.27742,2.51882,-.7673,-1.25202,2.5206,-.84975,-1.26421,2.51975,1.99373,-1.68456,6.93222,1.88783,-1.65212,6.93459,1.75389,-1.63894,6.93551,1.5452,-1.62074,6.93678,1.24308,-1.5963,6.93849,.82883,-1.56434,6.94073,.43354,-1.53631,6.94269,-.01644,-1.52232,6.94367,-.43328,-1.51911,6.94389,-.80439,-1.52344,6.94359,-1.05825,-1.53206,6.94298,-1.30005,-1.54173,6.94231,-1.45827,-1.54919,6.94179,-1.03015,-1.37411,2.51206,-1.85293,-1.69723,6.93143,-1.55954,-1.55549,6.94144,-1.64109,-1.56362,6.94078,-1.77925,-1.59009,6.93893,-1.70621,-1.57329,6.9401,16.37452,-1.18835,-.11036,16.22705,-1.40105,-.12614,18.4831,-1.23127,-3.20794,16.0532,-1.58221,-.13881,18.27895,-1.44402,-3.22281,15.73042,-1.80321,-.15426,17.89991,-1.70354,-3.24096,15.10983,-2.10392,-.17529,17.17113,-2.05666,-3.26565,14.04245,-2.52421,-.20378,15.91769,-2.55015,-3.30016,12.09323,-3.10379,-.24521,13.96477,-3.23083,-3.34776,9.42147,-3.88264,-.29967,11.13744,-4.14544,-3.41172,5.02113,-4.90057,-.37085,7.26086,-5.34081,-3.4953,1.62971,-5.79331,-.43328,2.85796,-6.38918,-3.56861,-1.42592,-6.23907,-.46445,-1.35297,-6.91263,-3.60522,-4.07948,-6.33307,-.48503,-5.2539,-7.03264,-3.61361,-8.88765,-6.2034,-.46105,-9.70383,-6.87067,-3.60228,-10.83923,-5.92876,-.44275,-12.63066,-6.54822,-3.57973,-12.70206,-5.62091,-.42122,-14.89342,-6.18671,-3.55445,-14.96931,-5.38325,-.4046,-16.37404,-5.90763,-3.53494,-17.02081,-5.18268,-.38967,-17.27101,-5.58955,-2.99108,-16.85711,-5.78754,-3.52654,-19.22282,-3.49608,-.27264,-19.31193,-3.35548,-.26281,-19.24226,-3.50162,-.36083,-19.0161,-3.92383,-.67536,-18.93953,-3.89197,-.30032,-17.67071,-4.92342,-.37245,-18.18967,-4.61541,-.35091,-18.38105,-4.7635,-1.53441,-17.90766,-5.17753,-2.15994,-18.60388,-4.26831,-.32664,-18.73861,-4.34539,-1.05455,15.36067,-1.45421,1.05082,15.22441,-1.59621,1.04089,14.97141,-1.76943,1.02878,14.48497,-2.00513,1.0123,14.04245,-2.52415,-.20468,13.64836,-2.33452,.98926,11.50135,-2.78884,.95749,8.80555,-3.39932,.9148,3.89384,-4.19718,.85901,1.1592,-4.89694,.81008,-1.65144,-5.24632,.78565,-4.25518,-5.32642,.78005,-8.88765,-6.20334,-.46195,-7.55023,-5.21831,.78761,-9.50379,-5.00309,.80266,-11.0141,-4.7618,.81953,-12.00236,-4.57552,.83256,-14.5624,-2.77838,.95822,-19.33881,-3.08147,-.20977,-17.02081,-5.18268,-.38967,-12.63491,-4.41831,.84426,-19.22282,-3.49607,-.27264,-14.36088,-3.09633,.93599,-19.31193,-3.35547,-.26281,-13.14432,-4.2151,.85776,-14.13883,-3.40664,.91429,-18.18966,-4.61541,-.35091,-13.55107,-3.97367,.87464,-13.87575,-3.70162,.89367,4.21143,-1.38113,2.51158,4.18107,-1.38671,2.51119,4.1247,-1.39352,2.51071,4.01634,-1.40279,2.51007};
			return value;
		}
		private double[] getCoordinate_12_60_point_3()
		{
			double[] value = {3.82997,-1.41573,2.50916,3.53958,-1.43359,2.50791,3.11918,-1.45758,2.50624,2.54276,-1.48894,2.50404,1.99271,-1.51644,2.50212,1.36658,-1.53017,2.50116,.78654,-1.53332,2.50094,.66326,-1.55084,2.4997,.26055,-1.5412,2.50038,-.12301,-1.53039,2.50113,-.37398,-1.52204,2.50172,-.53463,-1.51506,2.50311,-.97296,-1.45577,2.50635,-.664,-1.50589,2.50285,-.91657,-1.46967,2.50538,-.7673,-1.49507,2.5036,-.84975,-1.48289,2.50446,1.99373,-1.68456,6.93222,1.88783,-1.71219,6.93039,1.75389,-1.72538,6.92947,1.5452,-1.74357,6.92819,1.24308,-1.76802,6.92648,.82883,-1.79998,6.92425,.43354,-1.828,6.92229,-.01644,-1.842,6.92131,-.43328,-1.8452,6.92109,-.80439,-1.84087,6.92139,-1.05825,-1.83225,6.92199,-1.30005,-1.82259,6.92267,-1.45827,-1.81513,6.92319,-1.55954,-1.80884,6.92373,-1.64109,-1.80069,6.9242,-1.77925,-1.77422,6.92605,-1.70621,-1.79103,6.92488};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getTextureCoordinate_12_61_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,.495,.12,.483,.12,.492,.12,.485,.12,.489,.12};
			return value;
		}
		private double[] getTextureCoordinate_12_61_point_2()
		{
			double[] value = {.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,.482,.12,.46,.003,.468,.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_104_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_104_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_104_point_1()
		{
			double[] value = {-13.84399,-.71296,-3.63461,-13.84399,-.77421,-3.88026,-13.84399,-.92766,-3.50045,-13.74399,-.89762,-3.93012,-13.74399,-.79852,-3.53265,-13.74399,-1.05107,-3.55031,-13.84399,-1.12161,-3.66318,-13.74399,-1.11232,-3.79596,-13.8018,-2.0316,-4.68014,-13.85272,-2.40579,-3.82752,-13.74987,-2.40579,-3.82752,-13.80129,-2.16348,-2.93943,-13.80129,-2.52964,-3.83618,-13.72857,-2.45709,-3.83111,-13.74987,-2.26877,-2.87363,-13.85272,-2.13735,-4.75306,-13.85272,.31803,-2.69275,-13.85272,.23925,-2.75886,-13.87402,-.53439,-2.21777,-13.87402,.63778,-3.6147,-13.80129,.22293,-2.77255,-13.72857,.27864,-2.7258,-13.72857,-.53439,-2.21777,-13.74987,.58647,-3.61828,-13.72857,-1.49075,-2.28464,-13.85272,-1.51002,-2.23696,-13.74987,-.52194,-2.16787,-13.85272,-1.47149,-2.33233,-13.74987,-1.47149,-2.33233,-13.80129,-.55198,-2.28834,-13.85272,-2.05856,-4.68695,-13.87402,-1.28493,-5.22804,-13.87402,-2.45709,-3.83111,-13.74987,-2.05856,-4.68695,-13.72857,-2.09795,-4.72,-13.72857,-1.28493,-5.22804,-13.85272,-.3093,-5.20884,-13.85272,-.34783,-5.11348,-13.87402,.40585,-4.54492,-13.80129,-.35581,-5.09373,-13.72857,-.32856,-5.16116,-13.74987,.36223,-4.51767,-13.74987,.44946,-4.57217,-13.72857,.63778,-3.6147,-13.80129,.34417,-4.50638,-13.80129,.56523,-3.61977,-13.74987,-1.29737,-5.27793,-13.80129,-1.26734,-5.15747,-13.80129,.71033,-3.60962,-13.87402,-2.22516,-2.90089,-13.72857,-2.22516,-2.90089,-13.84399,-.79852,-3.53265,-13.74399,-.70368,-3.76738,-13.84399,-1.02676,-3.89792,-13.85272,-2.18155,-2.92814,-13.85272,-.54683,-2.26767,-13.84399,-1.11232,-3.79596,-13.74399,-1.12161,-3.66318,-13.74399,-.71296,-3.63461,-13.80314,.1837,-2.74718,-13.83602,-1.3174,-5.14232,-13.75612,-1.27395,-5.17432,-13.75651,-.95221,-3.91651,-13.83541,-1.00762,-3.90269,-13.83604,-1.22594,-5.16829,-13.83513,.31941,-4.54456,-13.75999,.35891,-4.51452,-13.77989,-.73374,-3.81549,-13.83513,-.76564,-3.86654,-13.83513,.36848,-4.46399,-13.83602,-.90919,-3.50505,-13.80129,-.58583,-2.2907,-13.83466,-.51121,-2.29831,-13.75332,.22399,-2.75093,-13.83513,-.7306,-3.61359,-13.83533,.23373,-2.76349,-13.83253,-.79036,-3.54237,-13.80129,.18407,-2.74827,-13.83513,-2.07784,-4.62073,-13.75332,-2.06372,-4.67055,-13.75332,-1.07476,-3.84072,-13.83513,-1.0444,-3.8769,-13.83513,-2.05298,-4.68226,-13.83513,-1.11988,-3.68781,-13.83513,-1.11329,-3.78205,-13.83513,-2.38088,-3.87069,-13.80129,-2.37687,-3.79529,-13.75332,-1.11659,-3.73493,-13.83513,-1.10513,-3.80453,-13.8356,-1.0332,-3.54308,-13.83602,-.94581,-3.50778,-13.80129,-1.48564,-2.37065,-13.836,-1.41953,-2.33529,-13.83513,.56781,-3.6645,-13.80129,.55336,-3.59039,-13.75958,-.7082,-3.70275,-13.83513,-.71124,-3.65923,-13.75332,-.76096,-3.5774,-13.83559,-.79258,-3.88768,-13.80129,-.33413,-5.07554};
			return value;
		}
		private double[] getCoordinate_12_104_point_2()
		{
			double[] value = {-13.836,-.40016,-5.11054,-13.75659,-.83009,-3.90284,-13.83513,-2.13592,-2.89889,-13.83513,-1.10789,-3.64123,-13.80129,-2.16999,-2.96553,-13.83513,-1.06297,-3.56935,-13.76141,-.86304,-3.51656,-13.80129,-.53189,-2.30089,-13.83602,-.91609,-3.92551,-13.83561,-.81722,-3.52799,-13.76766,-.85611,-3.51829};
			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,-2.12388,-3.49932,-8.02593,-2.12374,-3.50137,-8.02593,.20696,-3.3384,-7.09298,.20681,-3.33634,-15.85575,1.68827,-3.01779,-15.85587,2.16364,-2.98455,-15.85884,1.83863,-3.49551,-15.85587,1.71965,-3.42742,-15.09243,2.16356,-2.98197,5.34702,2.1537,-2.97446,5.34702,2.1537,-2.97446,-8.70119,1.76198,-4.03285,-8.02594,1.68827,-3.01782,-8.70119,-3.5645,-4.40531,-15.85587,-3.60683,-3.79988,-15.85586,-3.63818,-3.39027,-8.02593,-3.63821,-3.39026,-8.02593,.20696,-3.33839,-8.02593,-2.12374,-3.50137,5.34702,2.1537,-2.97446,5.34702,2.1537,-2.97446,-15.85884,-3.72605,-3.88463,-15.85587,-4.12444,-3.42426,-8.02593,-3.781,-1.3483,-8.02593,1.54548,-.97584,-15.85587,1.54548,-.97584,-15.85586,-3.781,-1.3483,-8.02593,1.54548,-.97584,-8.02593,1.54548,-.97584,-8.02593,1.54548,-.97584,-8.02594,1.68827,-3.01782,-16.85711,-.9832,-3.19059,-16.85711,3.83858,-2.85342,-16.37404,3.95867,-2.84502,-14.89342,4.23775,-2.82551,-12.63066,4.59926,-2.80023,7.26086,3.39185,-2.88466,2.85796,4.44022,-2.81135,-1.35297,4.96366,-2.77474,-5.2539,5.08368,-2.76635,-9.70383,4.92171,-2.77768,13.73758,-.97574,-3.18848,13.73405,.44918,-3.08949,18.65628,-.97404,-3.18995,18.48309,-.71769,-3.17202,18.27894,-.50495,-3.15715,17.8999,-.24542,-3.139,17.17112,.1077,-3.11431,15.91769,.60119,-3.0798,13.96477,1.28187,-3.0322,11.13745,2.19648,-2.96825,18.4831,-1.23127,-3.20794,11.13744,-4.14544,-3.41172,13.73403,-2.40663,-3.28919,13.96477,-3.23083,-3.34776,15.91769,-2.55015,-3.30016,17.17113,-2.05666,-3.26565,17.89991,-1.70354,-3.24096,18.27895,-1.44402,-3.22281,5.34701,-4.11056,-3.41251,7.26086,-5.34081,-3.4953,2.85796,-6.38918,-3.56861,-1.35297,-6.91263,-3.60522,-5.2539,-7.03264,-3.61361,-9.70383,-6.87067,-3.60228,-12.63066,-6.54822,-3.57973,-14.89342,-6.18671,-3.55445,-16.37404,-5.90763,-3.53494,-16.85711,-5.78754,-3.52654,5.34701,-4.11056,-3.41251});
			return Coordinate_12_17_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #24, 111 total numbers made up of 37 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_24_point()
		{
			MFVec3f Coordinate_12_24_point = new MFVec3f(new double[] {-12.9743,-.92031,-1.13472,-13.1906,-1.23248,-1.28027,-13.1906,-1.03628,-1.26655,-12.97429,-1.36567,-1.16586,-13.36093,-1.33057,-1.28713,-13.36093,-1.58834,-1.18143,-13.53125,-1.23248,-1.28027,-13.74756,-1.36567,-1.16586,-13.53125,-1.03628,-1.26655,-13.74756,-.92031,-1.13472,-13.36093,-.93819,-1.25969,-13.36093,-.69763,-1.11915,-13.36093,-.91411,-4.42345,-13.18778,-.81438,-4.41648,-13.18778,-1.01383,-4.43043,-13.36093,-1.11356,-4.4374,-13.53408,-1.01383,-4.43043,-13.53408,-.81438,-4.41648,-13.36093,-.71466,-4.40951,-13.1906,-1.10575,-3.09257,-13.1906,-.90956,-3.07884,-13.36093,-1.20384,-3.09942,-13.53125,-1.10575,-3.09257,-13.53125,-.90956,-3.07884,-13.36093,-.81146,-3.07199,-13.05964,-1.14752,-3.57917,-13.05964,-.80047,-3.5549,-13.36093,-1.32104,-3.5913,-13.66221,-1.14752,-3.57917,-13.66221,-.80047,-3.5549,-13.36093,-.62695,-3.54277,-13.05964,-1.10566,-4.17771,-13.05964,-.75862,-4.15344,-13.36093,-1.27918,-4.18984,-13.66221,-1.10566,-4.17771,-13.66221,-.75862,-4.15344,-13.36093,-.5851,-4.1413});
			return Coordinate_12_24_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #37, 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_37_point()
		{
			MFVec3f Coordinate_12_37_point = new MFVec3f(new double[] {3.57571,-1.75352,-31.51313,3.63112,-1.74965,-31.56841,3.68653,-1.75352,-31.51313,3.63112,-1.75739,-31.45785,3.63112,.68883,-31.21418,3.68653,.68496,-31.1589,3.60211,.6868,-31.18525,3.57571,.704,-31.15614,3.63106,.6811,-31.10369,3.63112,3.73695,-31.18475,3.68653,3.73308,-31.12947,3.68653,1.2732,-31.11808,3.63112,1.27706,-31.17336,3.60211,1.27504,-31.14442,3.57571,1.25396,-31.11799,3.57571,3.73308,-31.12947,3.63106,1.26934,-31.06286,3.63112,3.72922,-31.07419,3.60211,1.27136,-31.09174,3.60211,.68312,-31.13257,4.00791,2.55521,-53.67812,3.9487,2.73698,-53.66541,3.9487,-.67817,-4.82667,4.00791,-.85994,-4.83939,3.7937,2.84932,-53.65756,3.7937,-.56583,-4.81882,3.60211,-.56583,-4.81882,3.60211,2.84932,-53.65755,3.44711,2.73698,-53.66541,3.38791,2.55521,-53.67812,3.38791,-.85994,-4.83939,3.44711,-.67817,-4.82667,3.44711,2.37344,-53.69083,3.44711,-1.04171,-4.8521,3.60211,-1.15405,-4.85995,3.60211,2.2611,-53.69868,3.7937,2.2611,-53.69869,3.9487,2.37344,-53.69083,3.9487,-1.04171,-4.8521,3.7937,-1.15405,-4.85995});
			return Coordinate_12_37_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #60, 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_60_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_60_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_60_coordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_11_60_coordIndex_2()));
			return IndexedFaceSet_11_60_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=11, element #60, 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_60_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_11_60_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_60_texCoordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_11_60_texCoordIndex_2()));
			return IndexedFaceSet_11_60_texCoordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #60, 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_60_point()
		{
			MFVec3f Coordinate_12_60_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_12_60_point_1()))
				.append(new MFVec3f(getCoordinate_12_60_point_2()))
				.append(new MFVec3f(getCoordinate_12_60_point_3()));
			return Coordinate_12_60_point;
		}
		/** Large attribute array: TextureCoordinate point field, scene-graph level=12, element #61, 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_61_point()
		{
			MFVec2f TextureCoordinate_12_61_point = new MFVec2f()/*2.finalize*/
				.append(new MFVec2f(getTextureCoordinate_12_61_point_1()))
				.append(new MFVec2f(getTextureCoordinate_12_61_point_2()));
			return TextureCoordinate_12_61_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #76, 117 total numbers made up of 39 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_76_point()
		{
			MFVec3f Coordinate_12_76_point = new MFVec3f(new double[] {5.34374,1.92883,-4.78547,-7.89788,1.92832,-4.77814,-7.99273,1.90311,-4.41769,5.34702,2.1537,-2.97446,5.34701,-4.11056,-3.41251,5.34374,-3.63584,-5.1746,13.73403,-2.40663,-3.28919,-8.30119,1.76946,-4.13977,-8.70119,1.76198,-4.03285,-8.69804,1.87842,-4.06457,-8.29287,1.88504,-4.15918,-15.85587,1.71965,-3.42742,-15.85884,1.83863,-3.49551,5.34702,2.1537,-2.97446,-15.09243,2.16356,-2.98197,-15.85587,2.16364,-2.98455,5.34702,2.1537,-2.97446,-8.69804,-3.68625,-4.45369,-8.29287,-3.67964,-4.54831,-7.99273,-3.66156,-4.80681,-7.89788,-3.63635,-5.16726,-15.85587,-3.60683,-3.79988,-8.70119,-3.5645,-4.40531,-15.85884,-3.72605,-3.88463,-8.30119,-3.55702,-4.51223,-8.02593,-3.53782,-4.78682,-8.02593,-3.63821,-3.39026,-8.02593,1.78866,-4.41436,-8.01715,.29014,-4.52795,-8.02593,.20696,-3.33839,-8.02594,1.68827,-3.01782,-8.01715,-2.04056,-4.69093,-7.90119,-2.01146,-5.107,-7.89788,-3.63635,-5.16726,-8.01715,-2.04056,-4.69092,-7.90119,.31923,-4.94402,-8.02593,-2.12374,-3.50137,13.73405,.44918,-3.08949,-15.85587,-4.12444,-3.42426});
			return Coordinate_12_76_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #104, 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_104_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_104_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_104_coordIndex_1()));
			return IndexedFaceSet_11_104_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=11, element #104, 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_104_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_11_104_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_104_texCoordIndex_1()));
			return IndexedFaceSet_11_104_texCoordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #104, 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_104_point()
		{
			MFVec3f Coordinate_12_104_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_12_104_point_1()))
				.append(new MFVec3f(getCoordinate_12_104_point_2()));
			return Coordinate_12_104_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 SailBoatUnderSail 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 SailBoatUnderSail().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.SailBoatUnderSail\" 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.SailBoatUnderSail self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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