package Savage.ShipsCivilian.Trawlers;

import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.EnvironmentalSensor.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Geometry3D.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.Interpolation.*;
import org.web3d.x3d.jsail.Navigation.*;
import org.web3d.x3d.jsail.Rendering.*;
import org.web3d.x3d.jsail.Shape.*;
import org.web3d.x3d.jsail.Texturing.*;
import org.web3d.x3d.jsail.Time.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> A fishing trawler with lines in the water. </p>
 <p> Related links: Catalog page <a href="../../../../ShipsCivilian/Trawlers/TrawlerIndex.html" target="_blank">Trawler</a>,  source <a href="../../../../ShipsCivilian/Trawlers/Trawler.java">Trawler.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/Trawlers/Trawler.x3d">Trawler.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> A fishing trawler with lines in the water. </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> 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> 24 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> TODO </i> </td>
			<td> Check scale and positioning </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> identifier </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/Trawler.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/Trawler.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../ShipsCivilian/Trawlers/../../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 Trawler
{
	/** Default constructor to create this object. */
	public Trawler ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_INTERACTIVE).setVersion(X3D.VERSION_3_1)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("Trawler.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("A fishing trawler with lines in the water."))
    .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("Patrick Sullivan"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("23 March 2005"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATED ).setContent("24 January 2006"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 October 2019"))
    .addMeta(new meta().setName(meta.NAME_TODO       ).setContent("Check scale and positioning"))
    .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_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/Trawler.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new Viewpoint().setDescription("Fishing Trawler").setPosition(0.0,0.0,30.0))
    .addChild(new WorldInfo().setTitle("FishingTrawler")
      .setMetadata(new MetadataSet().setName("SMAL").setReference("https://www.web3d.org/x3d/content/examples/Savage/Tools/SMAL/SMAL.html")
        .setMetadata(new MetadataString().setName("version").setValue(new String[] {"1.0"})
          .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"This is the version of SMAL employed, not of the model."})))
        .setMetadata(new MetadataSet().setName("EntityDefinition")
          .addComments(" Identifying metadata for the current simulation of interest ")
          .setMetadata(new MetadataSet().setName("Classification")
            .setMetadata(new MetadataString().setName("level").setValue(new String[] {"UNCLASSIFIED"})
              .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"UNCLASSIFIED","FOUO","CONFIDENTIAL","SECRET"})))
            .setMetadata(new MetadataString().setName("rationale")
              .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"All values in this model are generic estimations of this type of platform"}))))
          .setMetadata(new MetadataSet().setName("IdentificationParameters")
            .setMetadata(new MetadataString().setName("name").setValue(new String[] {"Trawler"})
              .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The plain language name of the vehicle this model represents, i.e. the base class (DDG-51), or vehicle designation (M1A2)."}))))
          .setMetadata(new MetadataSet().setName("X3DArchiveModel")
            .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"This is a placeholder element which ensures the proper validation of autogenerated SMAL code."})))
          .setMetadata(new MetadataSet().setName("PhysicalParameters")
            .setMetadata(new MetadataSet().setName("PhysicalConstraints")
              .setMetadata(new MetadataFloat().setName("height").setValue(new double[] {10.0})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The maximum structural height of the object in meters. This may be used for clearance checking or other calculations."})))
              .setMetadata(new MetadataFloat().setName("width").setValue(new double[] {11.0})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The maximum width, beam, or wingspan of the vehicle in meters. This may be used for clearance checking or other calculations."})))
              .setMetadata(new MetadataFloat().setName("length").setValue(new double[] {28.6})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The maximum structural length of the object in meters. This may be used for clearance checking or other calculations."})))
              .setMetadata(new MetadataFloat().setName("draft").setValue(new double[] {3.0})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The vertical distance in meters from the deepest point (keel or other structure) to the waterline of a vehicle at its stated displacement or gross weight."}))))
            .setMetadata(new MetadataSet().setName("DynamicResponseConstraints")
              .setMetadata(new MetadataFloat().setName("maximumSpeed").setValue(new double[] {12.5})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The maximum rated speed for this vehicle in knots."})))
              .setMetadata(new MetadataFloat().setName("maximumAcceleration").setValue(new double[] {1.1})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The ideal maximum acceleration achievable by this vehicle in meters per second squared, as in at maximum Power excess for aircraft."})))
              .setMetadata(new MetadataFloat().setName("maximumFuelCapacity").setValue(new double[] {2000.0})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The maximum usable fuel capacity in liters."}))))
            .setMetadata(new MetadataSet().setName("TacticalConstraints")
              .addComments(" none defined ")))
          .setMetadata(new MetadataSet().setName("NetworkedCommunicationParameterSet")
            .setMetadata(new MetadataSet().setName("DisConfiguration")
              .setMetadata(new MetadataInteger().setName("entityKind").setValue(new int[] {1})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The DIS enumeration for this objects overall type (for vehicles this value should be 1)."})))
              .setMetadata(new MetadataInteger().setName("entityDomain").setValue(new int[] {3})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The DIS enumeration for the domain of operations of this object (air, surface, sub-surface, etc.)."})))
              .setMetadata(new MetadataInteger().setName("entityCountry").setValue(new int[] {225})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The DIS enumeration for the country of origin of this object (the value for United States is 225)."})))
              .setMetadata(new MetadataInteger().setName("entityCategory").setValue(new int[] {0})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The DIS enumeration for the type of this vehicle (cruiser or destroyer, tank or truck, bomber or fighter, etc.)."}))))))))
    .addChild(new Transform("trawler").setScale(.5,.5,.5)
      .addChild(new Group("Import_Base0")
        .addChild(new NavigationInfo("NavInfo1").setAvatarSize(new double[] {.25,1.6,.75}))
        .addChild(new Transform("dad_Group1").setRotation(1.0,0.0,0.0,1.571)
          .addChild(new Group("Group1")
            .addChild(new Transform("dad_Cylinder01")
              .addChild(new Shape("Cylinder01")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material1_mat").setAmbientIntensity(0.189).setDiffuseColor(.19216,.18824,.18039).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .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[] {9.87,5.14,-16.37,9.91,5.21,-16.38,9.8,5.14,-16.35,9.91,5.07,-16.36,7.59,2.38,-31.66,7.47,2.31,-31.63,7.59,2.24,-31.63,7.55,2.31,-31.64}))))))
            .addChild(new Transform("dad_Cylinder02")
              .addComments(" ## Hint: For maximum scene portability, append alternate online address for revised url=' \"maps/REDDRUM2.jpg\" \"http://...address.../maps/REDDRUM2.jpg\"' ")
              .addChild(new Shape("Cylinder02")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture("REDDRUM2").setUrl(new String[] {"maps/REDDRUM2.jpg","https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/maps/REDDRUM2.jpg"}))
                  .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,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,12,10,-1,11,13,12,-1,13,14,12,-1,13,15,14,-1,15,16,14,-1,15,17,16,-1,17,18,16,-1,17,19,18,-1,19,20,18,-1,19,21,20,-1,21,22,20,-1,21,23,22,-1,23,2,22,-1,23,0,2,-1}).setTexCoordIndex(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,12,10,-1,11,13,12,-1,13,14,12,-1,13,15,14,-1,15,16,14,-1,15,17,16,-1,17,18,16,-1,17,19,18,-1,19,20,18,-1,19,21,20,-1,21,22,20,-1,21,23,22,-1,23,2,22,-1,23,0,2,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-132.15,28.97,.41,-135.03,29.43,-.06,-135.0,29.55,.41,-132.18,28.85,-.06,-135.1,29.09,-.41,-132.25,28.51,-.41,-135.19,28.63,-.53,-132.34,28.05,-.53,-135.28,28.17,-.41,-132.43,27.59,-.41,-135.35,27.84,-.06,-132.5,27.26,-.06,-135.38,27.71,.41,-132.53,27.13,.41,-135.35,27.84,.87,-132.5,27.26,.87,-135.28,28.17,1.22,-132.43,27.59,1.22,-135.19,28.63,1.34,-132.34,28.05,1.34,-135.1,29.09,1.22,-132.25,28.51,1.22,-135.03,29.43,.87,-132.18,28.85,.87})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.0,0.0,.93,1.0,1.0,1.0,.93,0.0,.75,1.0,.75,0.0,.5,1.0,.5,0.0,.25,1.0,.25,0.0,.07,1.0,.07,0.0,0.0,1.0,0.0,0.0,.07,1.0,.07,0.0,.25,1.0,.25,0.0,.5,1.0,.5,0.0,.75,1.0,.75,0.0,.93,1.0,.93,0.0}))))))
            .addChild(new Transform("dad_Cylinder03")
              .addChild(new Shape("Cylinder03")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("REDDRUM2"))
                  .setMaterial(new Material("material3_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,12,10,-1,11,13,12,-1,13,14,12,-1,13,15,14,-1,15,16,14,-1,15,17,16,-1,17,18,16,-1,17,19,18,-1,19,20,18,-1,19,21,20,-1,21,22,20,-1,21,23,22,-1,23,2,22,-1,23,0,2,-1}).setTexCoordIndex(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,12,10,-1,11,13,12,-1,13,14,12,-1,13,15,14,-1,15,16,14,-1,15,17,16,-1,17,18,16,-1,17,19,18,-1,19,20,18,-1,19,21,20,-1,21,22,20,-1,21,23,22,-1,23,2,22,-1,23,0,2,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-117.83,-31.9,.41,-120.46,-33.13,-.06,-120.51,-33.01,.41,-117.78,-32.02,-.06,-120.33,-33.45,-.41,-117.65,-32.34,-.41,-120.15,-33.88,-.53,-117.47,-32.77,-.53,-119.97,-34.31,-.41,-117.29,-33.2,-.41,-119.84,-34.63,-.06,-117.16,-33.52,-.06,-119.79,-34.75,.41,-117.11,-33.63,.41,-119.84,-34.63,.87,-117.16,-33.52,.87,-119.97,-34.31,1.22,-117.29,-33.2,1.22,-120.15,-33.88,1.34,-117.47,-32.77,1.34,-120.33,-33.45,1.22,-117.65,-32.34,1.22,-120.46,-33.13,.87,-117.78,-32.02,.87})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.0,0.0,.93,1.0,1.0,1.0,.93,0.0,.75,1.0,.75,0.0,.5,1.0,.5,0.0,.25,1.0,.25,0.0,.07,1.0,.07,0.0,0.0,1.0,0.0,0.0,.07,1.0,.07,0.0,.25,1.0,.25,0.0,.5,1.0,.5,0.0,.75,1.0,.75,0.0,.93,1.0,.93,0.0}))))))
            .addChild(new Transform("dad_Object01")
              .addComments(" ## Hint: For maximum scene portability, append alternate online address for revised url=' \"maps/TRAWLER.jpg\" \"http://...address.../maps/TRAWLER.jpg\"' ")
              .addChild(new Shape("Object01")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture("TRAWLER").setUrl(new String[] {"maps/TRAWLER.jpg","https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/maps/TRAWLER.jpg"}))
                  .setMaterial(new Material("material9_mat").setAmbientIntensity(0.976).setDiffuseColor(.97647,.97647,.97647).setShininess(0.250).setSpecularColor(.36863,.36863,.36863)))
                .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,5,6,-1,4,6,7,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,5,6,-1,4,6,7,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {5.0,-1.48,-16.29,5.0,-8.93,-16.29,2.97,-8.87,-10.4,2.97,-1.48,-10.42,5.0,9.93,-16.29,5.0,2.48,-16.29,2.97,2.48,-10.42,2.97,9.86,-10.4})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.3,.75,.5,.75,.5,.51,.3,.52,0.0,.75,.2,.75,.2,.52,.01,.51}))))))
            .addChild(new Transform("dad_Object02")
              .addChild(new Shape("Object02")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material10_mat").setAmbientIntensity(0.833).setDiffuseColor(.85098,.83137,.79608).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(getIndexedFaceSet_9_91_coordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_91_point())))))
            .addChild(new Transform("dad_Object03")
              .addChild(new Shape("Object03")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material11_mat").setAmbientIntensity(0.833).setDiffuseColor(.85098,.83137,.79608).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,5,1,-1,4,1,0,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {1.37,2.0,-5.86,1.37,-1.0,-5.86,1.37,-1.0,-2.79,1.37,2.0,-2.79,1.37,2.0,-8.79,1.37,-1.0,-8.79}))))))
            .addChild(new Transform("dad_Object04")
              .addChild(new Shape("Object04")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material12_mat").setAmbientIntensity(0.189).setDiffuseColor(.19216,.18824,.18039).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,1,4,5,-1,1,5,2,-1,6,7,8,-1,6,8,9,-1,7,10,11,-1,7,11,8,-1,1,0,3,-1,4,2,5,-1,10,12,13,-1,10,13,11,-1,12,6,9,-1,12,9,13,-1,14,15,16,-1,14,16,17,-1,18,14,17,-1,18,17,19,-1,20,18,19,-1,20,19,21,-1,15,20,21,-1,15,21,16,-1,22,23,24,-1,22,24,25,-1,26,22,25,-1,26,25,27,-1,23,25,24,-1,22,26,27,-1,22,27,25,-1,28,29,30,-1,28,30,31,-1,32,33,34,-1,32,34,35,-1,29,32,36,-1,29,36,37,-1,37,38,39,-1,37,39,30,-1,40,41,31,-1,40,31,42,-1,43,44,45,-1,43,45,34,-1,28,41,43,-1,28,43,33,-1,38,40,42,-1,38,42,39,-1,44,46,47,-1,44,47,45,-1,40,38,46,-1,40,46,44,-1,10,7,12,-1,13,9,11,-1,3,1,2,-1,20,15,18,-1,25,23,22,-1,34,33,35,-1,36,32,37,-1,43,41,33,-1,2,4,1,-1,6,12,7,-1,8,11,9,-1,14,18,15,-1,32,35,33,-1,29,37,32,-1,42,31,41,-1,44,43,34,-1,42,41,40,-1,40,44,34,-1,42,40,34,-1,35,36,46,-1,46,38,37,-1,47,35,46,-1,45,47,46,-1,45,46,37,-1,34,45,37,-1,39,34,37,-1,28,33,41,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {13.19,.26,-19.79,15.19,.26,-19.79,15.19,.26,-19.44,13.19,.26,-19.29,17.19,.26,-19.79,17.19,.26,-19.29,15.04,.11,-19.29,15.34,.11,-19.29,15.5,-0.0,-18.79,15.0,-0.0,-18.79,15.34,.41,-19.29,15.5,.5,-18.79,15.04,.41,-19.29,15.0,.5,-18.79,8.59,.36,-23.29,8.59,.66,-23.29,8.75,.75,-22.79,8.75,.25,-22.79,8.29,.36,-23.29,8.25,.25,-22.79,8.29,.66,-23.29,8.25,.75,-22.79,8.44,.51,-23.79,10.44,.51,-23.79,10.44,.51,-23.29,8.44,.51,-23.44,6.44,.51,-23.79,6.44,.51,-23.29,14.5,-6.5,-18.79,15.5,-6.5,-18.79,15.5,-6.5,-17.21,14.5,-6.5,-17.18,15.5,7.5,-18.79,14.5,7.5,-18.79,14.5,7.5,-17.18,15.5,7.5,-17.21,15.5,7.5,-18.67,15.5,-6.5,-18.67,15.5,-6.38,-18.67,15.5,-6.38,-17.21,14.5,-6.38,-18.67,14.5,-6.5,-18.67,14.5,-6.38,-17.18,14.5,7.5,-18.67,14.5,7.37,-18.67,14.5,7.37,-17.18,15.5,7.37,-18.67,15.5,7.37,-17.21}))))))
            .addChild(new Transform("dad_Object06")
              .addChild(new Shape("Object06")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("TRAWLER"))
                  .setMaterial(new Material("material13_mat").setAmbientIntensity(0.976).setDiffuseColor(.97647,.97647,.97647).setShininess(0.250).setSpecularColor(.36863,.36863,.36863)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.175).setCoordIndex(getIndexedFaceSet_9_110_coordIndex()).setTexCoordIndex(getIndexedFaceSet_9_110_texCoordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_110_point()))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.22,.44,1.37,.44,1.37,.44,1.12,.45,1.06,.44,1.06,.43,1.13,.44,1.05,.5,1.1,.5,1.05,.5,1.1,.5,1.22,.47,1.32,.47,1.28,.45,1.22,.45,1.06,.44,1.04,.44,1.03,.43,1.22,.44,1.06,.44,1.04,.44,1.11,.47,1.22,.47,1.11,.47,1.22,.45,1.33,.46,1.34,.44,1.28,.45,1.34,.44,1.22,.44,1.03,.43,1.32,.47,1.06,.44,1.15,.5,1.11,.47,1.11,.47,1.15,.5,1.06,.44,1.33,.46,1.22,.45,1.37,.46,1.37,.41,1.22,.41,1.41,.41,1.43,.46,1.42,.41,1.41,.41,1.42,.46,1.22,.41,1.37,.41,1.37,.46,1.22,.45,1.0,.43,1.03,.43,1.03,.44,1.01,.44,1.03,.44,1.22,.44,1.03,.43,1.01,.44,1.0,.43,1.37,.44,1.42,.44,1.42,.44,1.42,.44,1.42,.44,1.37,.44,1.37,.44,1.42,.46,1.03,.4,1.03,.4,1.22,.44,1.22,.44}))))))
            .addChild(new Transform("dad_Object07")
              .addChild(new Shape("Object07")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("TRAWLER"))
                  .setMaterial(new Material("material14_mat").setAmbientIntensity(0.976).setDiffuseColor(.97647,.97647,.97647).setShininess(0.250).setSpecularColor(.36863,.36863,.36863)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.175).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,1,4,5,-1,1,5,2,-1,3,6,7,-1,3,7,8,-1,2,3,8,-1,2,8,9,-1,4,10,11,-1,4,11,5,-1,5,2,9,-1,5,9,12,-1,11,5,12,-1,11,12,13,-1,14,15,16,-1,14,16,17,-1,15,18,19,-1,15,19,16,-1,18,20,19,-1,0,21,6,-1,0,6,3,-1,19,20,21,-1,19,21,0,-1,1,0,3,-1,1,3,2,-1,16,19,0,-1,16,0,1,-1,4,1,2,-1,4,2,5,-1,17,16,1,-1,17,1,4,-1,10,4,5,-1,10,5,11,-1,22,17,4,-1,22,4,10,-1,23,18,19,-1,23,19,20,-1,18,15,16,-1,18,16,19,-1,15,14,17,-1,15,17,16,-1,24,22,17,-1,24,17,14,-1,6,3,8,-1,6,8,7,-1,3,2,9,-1,3,9,8,-1,2,5,12,-1,2,12,9,-1,5,11,13,-1,5,13,12,-1,21,0,3,-1,21,3,6,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,1,4,5,-1,1,5,2,-1,3,6,7,-1,3,7,8,-1,2,3,8,-1,2,8,9,-1,4,10,11,-1,4,11,5,-1,5,2,9,-1,5,9,12,-1,11,5,12,-1,11,12,13,-1,14,15,16,-1,14,16,17,-1,15,18,19,-1,15,19,16,-1,18,20,19,-1,0,21,6,-1,0,6,3,-1,19,20,21,-1,19,21,0,-1,1,0,3,-1,1,3,2,-1,16,19,0,-1,16,0,1,-1,4,1,2,-1,4,2,5,-1,17,16,1,-1,17,1,4,-1,10,4,5,-1,10,5,11,-1,22,17,4,-1,22,4,10,-1,23,18,19,-1,23,19,20,-1,18,15,16,-1,18,16,19,-1,15,14,17,-1,15,17,16,-1,24,22,17,-1,24,17,14,-1,6,3,8,-1,6,8,7,-1,3,2,9,-1,3,9,8,-1,2,5,12,-1,2,12,9,-1,5,11,13,-1,5,13,12,-1,21,0,3,-1,21,3,6,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {16.75,-3.5,-12.79,17.0,.5,-12.79,17.23,.5,-11.9,16.98,-3.5,-11.88,16.75,4.5,-12.79,16.98,4.5,-11.88,16.62,-6.75,-11.84,17.06,-6.75,-10.07,17.43,-3.5,-10.09,17.68,.5,-10.1,16.38,7.75,-12.79,16.62,7.75,-11.84,17.43,4.5,-10.09,17.06,7.75,-10.07,18.5,4.5,-16.29,18.75,.5,-16.29,17.0,.5,-13.04,16.75,4.5,-13.04,18.5,-3.5,-16.29,16.75,-3.5,-13.04,16.38,-6.75,-13.04,16.38,-6.75,-12.79,16.38,7.75,-13.04,18.1,-6.75,-16.29,18.1,7.75,-16.29})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.89,.85,.75,.85,.75,.82,.89,.82,.62,.85,.62,.82,.99,.82,.99,.75,.89,.75,.75,.75,.51,.85,.51,.82,.62,.75,.51,.75,.62,.99,.75,.99,.75,.86,.62,.86,.89,.99,.89,.86,.99,.86,.99,.85,.51,.86,.99,.99,.51,.99}))))))
            .addChild(new Transform("dad_Object08")
              .addComments(" ## Hint: For maximum scene portability, append alternate online address for revised url=' \"maps/RDRUMTOP.jpg\" \"http://...address.../maps/RDRUMTOP.jpg\"' ")
              .addChild(new Shape("Object08")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture("RDRUMTOP").setUrl(new String[] {"maps/RDRUMTOP.jpg","https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/Trawlers/maps/RDRUMTOP.jpg"}))
                  .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,0,2,3,-1,0,3,4,-1,0,4,5,-1,0,5,6,-1,0,6,7,-1,0,7,8,-1,0,8,9,-1,0,9,10,-1,0,10,11,-1,0,11,12,-1,0,12,1,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,0,4,5,-1,0,5,6,-1,0,6,7,-1,0,7,8,-1,0,8,9,-1,0,9,10,-1,0,10,11,-1,0,11,12,-1,0,12,1,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-135.19,28.63,.41,-135.0,29.55,.41,-135.03,29.43,-.06,-135.1,29.09,-.41,-135.19,28.63,-.53,-135.28,28.17,-.41,-135.35,27.84,-.06,-135.38,27.71,.41,-135.35,27.84,.87,-135.28,28.17,1.22,-135.19,28.63,1.34,-135.1,29.09,1.22,-135.03,29.43,.87})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.5,.75,1.0,.75,.93,.88,.75,.97,.5,1.0,.25,.97,.07,.88,0.0,.75,.07,.63,.25,.54,.5,.5,.75,.54,.93,.63}))))))
            .addChild(new Transform("dad_Object09")
              .addChild(new Shape("Object09")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("RDRUMTOP"))
                  .setMaterial(new Material("material16_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,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,11,10,-1,0,12,11,-1,0,2,12,-1}).setTexCoordIndex(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,11,10,-1,0,12,11,-1,0,2,12,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-132.34,28.05,.41,-132.18,28.85,-.06,-132.15,28.97,.41,-132.25,28.51,-.41,-132.34,28.05,-.53,-132.43,27.59,-.41,-132.5,27.26,-.06,-132.53,27.13,.41,-132.5,27.26,.87,-132.43,27.59,1.22,-132.34,28.05,1.34,-132.25,28.51,1.22,-132.18,28.85,.87})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.48,.25,1.92,.38,1.98,.25,1.73,.47,1.48,.5,1.23,.47,1.05,.38,.98,.25,1.05,.13,1.23,.04,1.48,0.0,1.73,.04,1.92,.13}))))))
            .addChild(new Transform("dad_Object10")
              .addChild(new Shape("Object10")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("RDRUMTOP"))
                  .setMaterial(new Material("material17_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,0,4,5,-1,0,5,6,-1,0,6,7,-1,0,7,8,-1,0,8,9,-1,0,9,10,-1,0,10,11,-1,0,11,12,-1,0,12,1,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,0,4,5,-1,0,5,6,-1,0,6,7,-1,0,7,8,-1,0,8,9,-1,0,9,10,-1,0,10,11,-1,0,11,12,-1,0,12,1,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-120.15,-33.88,.41,-120.51,-33.01,.41,-120.46,-33.13,-.06,-120.33,-33.45,-.41,-120.15,-33.88,-.53,-119.97,-34.31,-.41,-119.84,-34.63,-.06,-119.79,-34.75,.41,-119.84,-34.63,.87,-119.97,-34.31,1.22,-120.15,-33.88,1.34,-120.33,-33.45,1.22,-120.46,-33.13,.87})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.5,.75,1.0,.75,.93,.88,.75,.97,.5,1.0,.25,.97,.07,.88,0.0,.75,.07,.63,.25,.54,.5,.5,.75,.54,.93,.63}))))))
            .addChild(new Transform("dad_Object11")
              .addChild(new Shape("Object11")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("RDRUMTOP"))
                  .setMaterial(new Material("material18_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,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,11,10,-1,0,12,11,-1,0,2,12,-1}).setTexCoordIndex(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,11,10,-1,0,12,11,-1,0,2,12,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-117.47,-32.77,.41,-117.78,-32.02,-.06,-117.83,-31.9,.41,-117.65,-32.34,-.41,-117.47,-32.77,-.53,-117.29,-33.2,-.41,-117.16,-33.52,-.06,-117.11,-33.63,.41,-117.16,-33.52,.87,-117.29,-33.2,1.22,-117.47,-32.77,1.34,-117.65,-32.34,1.22,-117.78,-32.02,.87})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.48,.25,1.92,.38,1.98,.25,1.73,.47,1.48,.5,1.23,.47,1.05,.38,.98,.25,1.05,.13,1.23,.04,1.48,0.0,1.73,.04,1.92,.13}))))))
            .addChild(new Transform("dad_pilothouse")
              .addChild(new Shape("pilothouse")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("TRAWLER"))
                  .setMaterial(new Material("material19_mat").setAmbientIntensity(0.976).setDiffuseColor(.97647,.97647,.97647).setShininess(0.250).setSpecularColor(.36863,.36863,.36863)))
                .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,1,3,4,-1,3,5,6,-1,7,8,9,-1,10,7,8,-1,10,8,11,-1,1,2,4,-1,12,13,14,-1,12,14,15,-1,16,17,18,-1,19,18,20,-1,21,20,22,-1,3,4,6,-1,5,6,9,-1,7,5,9,-1,23,22,14,-1,13,23,14,-1,23,21,22,-1,21,19,20,-1,19,16,18,-1}).setTexCoordIndex(new int[] {0,1,2,-1,1,3,4,-1,3,5,6,-1,7,8,9,-1,10,7,8,-1,10,8,11,-1,1,2,4,-1,12,13,14,-1,12,14,15,-1,16,17,18,-1,19,18,20,-1,21,20,22,-1,3,4,6,-1,5,6,9,-1,7,5,9,-1,23,22,14,-1,13,23,14,-1,23,21,22,-1,21,19,20,-1,19,16,18,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {18.1,-6.75,-16.29,16.33,-7.19,-16.29,16.25,-7.0,-13.04,14.55,-7.63,-16.29,14.94,-7.38,-13.04,12.78,-8.06,-16.29,13.63,-7.75,-13.04,11.0,-8.5,-16.29,11.0,-8.5,-13.04,12.32,-8.13,-13.04,7.4,-8.93,-16.29,5.82,-9.0,-13.04,5.82,9.99,-13.04,11.0,9.5,-13.04,11.0,9.5,-16.29,7.4,9.93,-16.29,16.25,8.0,-13.04,18.1,7.75,-16.29,16.33,8.19,-16.29,14.94,8.37,-13.04,14.55,8.62,-16.29,13.63,8.75,-13.04,12.78,9.06,-16.29,12.32,9.12,-13.04})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.51,.99,.45,.99,.45,.88,.39,.99,.4,.88,.33,.99,.35,.88,.26,.99,.26,.88,.31,.88,.14,.99,.08,.88,.08,.88,.26,.88,.26,.99,.14,.99,.45,.88,.51,.99,.45,.99,.4,.88,.39,.99,.35,.88,.33,.99,.31,.88}))))))
            .addChild(new Transform("dad_rail")
              .addChild(new Shape("rail")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("TRAWLER"))
                  .setMaterial(new Material("material20_mat").setAmbientIntensity(0.976).setDiffuseColor(.97647,.97647,.97647).setShininess(0.250).setSpecularColor(.36863,.36863,.36863)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.785).setCoordIndex(getIndexedFaceSet_9_166_coordIndex()).setTexCoordIndex(getIndexedFaceSet_9_166_texCoordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_166_point()))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.69,.19,.82,.2,.82,.14,.69,.13,.87,.21,.87,.14,.11,.14,.19,.13,.19,.07,.11,.08,.02,.09,.02,.02,.51,.12,.7,.02,.51,.02,.87,.02,.98,.14,.94,.02,.29,.12,.29,.02,.19,.02,.53,.18,.53,.12,.11,.02,.04,.08,.04,.08,.04,.02,.04,.02,.03,.08,.03,.02,.03,.08,.03,.02,.03,.08,.03,.02,.04,.15,.05,.14,.04,.15,.04,.15,.03,.15,.03,.15,.29,.07,.51,.07,.53,.07}))))))
            .addChild(new Transform("dad_Sqdeck01")
              .addChild(new Shape("Sqdeck01")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material21_mat").setAmbientIntensity(0.833).setDiffuseColor(.85098,.83137,.79608).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(getIndexedFaceSet_9_173_coordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_173_point())))))
            .addChild(new Transform("dad_Sqhull01")
              .addChild(new Shape("Sqhull01")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material22_mat").setAmbientIntensity(0.833).setDiffuseColor(.85098,.83137,.79608).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(getIndexedFaceSet_9_179_coordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_179_point())))))
            .addChild(new Transform("dad_Sqhull01_1")
              .addChild(new Shape("Sqhull01_1")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material23_mat").setAmbientIntensity(0.189).setDiffuseColor(.19216,.18824,.18039).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,2,4,5,-1,2,5,3,-1,6,7,8,-1,6,8,9,-1,10,11,8,-1,10,8,9,-1,7,6,9,-1,7,9,8,-1,4,3,5,-1,1,0,3,-1,12,13,14,-1,12,14,15,-1,16,17,18,-1,12,19,18,-1,12,18,13,-1,13,15,14,-1,20,21,22,-1,20,22,23,-1,24,25,26,-1,24,26,27,-1,28,24,27,-1,29,30,21,-1,29,21,20,-1,25,31,26,-1,23,22,32,-1,23,32,33,-1,31,28,27,-1,31,27,26,-1,34,35,36,-1,37,33,32,-1,37,32,38,-1,39,37,38,-1,39,38,40,-1,41,42,39,-1,41,39,40,-1,43,44,42,-1,43,42,41,-1,30,29,44,-1,30,44,43,-1,3,4,2,-1,9,45,11,-1,45,10,11,-1,13,16,19,-1,16,18,19,-1,13,15,12,-1,38,22,41,-1,44,20,39,-1,31,25,28,-1,35,46,36,-1,46,35,34,-1,2,1,3,-1,10,47,45,-1,11,8,9,-1,9,10,45,-1,19,12,13,-1,13,18,16,-1,21,30,22,-1,43,41,30,-1,40,38,41,-1,32,22,38,-1,30,41,22,-1,23,33,20,-1,37,39,33,-1,42,44,39,-1,29,20,44,-1,33,39,20,-1,24,28,25,-1,34,36,46,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-58.5,.5,.21,-58.75,.5,.21,-23.5,.5,-27.32,-23.5,.5,-26.95,-22.25,.5,-28.29,-21.98,.5,-28.12,-53.5,22.5,.21,-53.15,22.44,.21,-23.5,15.25,-21.29,-23.5,15.22,-21.57,-18.5,14.0,-25.2,-18.5,14.04,-24.92,-23.5,-14.22,-21.57,-23.5,-14.26,-21.29,-53.15,-21.45,.21,-53.5,-21.5,.21,-9.58,-10.85,-31.67,-9.44,-10.85,-31.48,-18.5,-13.04,-24.92,-18.5,-13.01,-25.2,-22.25,-.25,-22.04,-21.25,-.25,-22.04,-21.25,.5,-21.79,-22.25,.5,-21.79,-21.87,.37,-24.79,-21.62,.37,-24.79,-21.62,.5,-24.54,-21.87,.5,-24.54,-21.87,.62,-24.79,-22.25,-.5,-22.79,-21.25,-.5,-22.79,-21.62,.62,-24.79,-21.25,1.25,-22.04,-22.25,1.25,-22.04,-21.85,.5,-24.79,-18.5,.5,-25.84,-21.65,.5,-24.79,-22.25,1.5,-22.79,-21.25,1.5,-22.79,-22.25,1.25,-23.54,-21.25,1.25,-23.54,-21.37,.5,-23.79,-22.12,.5,-23.79,-21.25,-.25,-23.54,-22.25,-.25,-23.54,-9.44,11.84,-31.48,-18.57,.5,-25.89,-9.58,11.84,-31.67}))))))
            .addChild(new Transform("dad_Sqhull02")
              .addChild(new Shape("Sqhull02")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("TRAWLER"))
                  .setMaterial(new Material("material24_mat").setAmbientIntensity(0.976).setDiffuseColor(.97647,.97647,.97647).setShininess(0.250).setSpecularColor(.36863,.36863,.36863)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.785).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,6,0,3,-1,3,7,6,-1,4,8,9,-1,9,5,4,-1,10,6,7,-1,7,11,10,-1,8,12,13,-1,13,9,8,-1,14,10,11,-1,11,15,14,-1,12,16,17,-1,17,13,12,-1,18,14,15,-1,15,19,18,-1,16,20,21,-1,21,17,16,-1,22,18,19,-1,19,23,22,-1,20,24,25,-1,25,21,20,-1,26,27,28,-1,28,29,26,-1,30,31,32,-1,32,33,30,-1,27,34,35,-1,35,28,27,-1,36,30,33,-1,33,37,36,-1,31,22,23,-1,23,32,31,-1,24,26,29,-1,29,25,24,-1,34,38,39,-1,39,35,34,-1,40,36,37,-1,37,41,40,-1,42,40,41,-1,41,43,42,-1,44,42,43,-1,43,45,44,-1,46,44,45,-1,45,47,46,-1,48,46,47,-1,47,49,48,-1,38,48,49,-1,49,39,38,-1,3,2,50,-1,2,5,50,-1,7,3,50,-1,5,9,50,-1,11,7,50,-1,9,13,50,-1,15,11,50,-1,13,17,50,-1,19,15,50,-1,17,21,50,-1,23,19,50,-1,21,25,50,-1,29,28,50,-1,33,32,50,-1,28,35,50,-1,37,33,50,-1,32,23,50,-1,25,29,50,-1,35,39,50,-1,41,37,50,-1,43,41,50,-1,45,43,50,-1,47,45,50,-1,49,47,50,-1,39,49,50,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,6,0,3,-1,3,7,6,-1,4,8,9,-1,9,5,4,-1,10,6,7,-1,7,11,10,-1,8,12,13,-1,13,9,8,-1,14,10,11,-1,11,15,14,-1,12,16,17,-1,17,13,12,-1,18,14,15,-1,15,19,18,-1,16,20,21,-1,21,17,16,-1,22,18,19,-1,19,23,22,-1,20,24,25,-1,25,21,20,-1,26,27,28,-1,28,29,26,-1,30,31,32,-1,32,33,30,-1,27,34,35,-1,35,28,27,-1,36,30,33,-1,33,37,36,-1,31,22,23,-1,23,32,31,-1,24,26,29,-1,29,25,24,-1,34,38,39,-1,39,35,34,-1,40,36,37,-1,37,41,40,-1,42,40,41,-1,41,43,42,-1,44,42,43,-1,43,45,44,-1,46,44,45,-1,45,47,46,-1,48,46,47,-1,47,49,48,-1,38,48,49,-1,49,39,38,-1,3,2,50,-1,2,5,50,-1,7,3,50,-1,5,9,50,-1,11,7,50,-1,9,13,50,-1,15,11,50,-1,13,17,50,-1,19,15,50,-1,17,21,50,-1,23,19,50,-1,21,25,50,-1,29,28,50,-1,33,32,50,-1,28,35,50,-1,37,33,50,-1,32,23,50,-1,25,29,50,-1,35,39,50,-1,41,37,50,-1,43,41,50,-1,45,43,50,-1,47,45,50,-1,49,47,50,-1,39,49,50,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {21.5,-5.76,.21,25.5,.5,.21,18.34,.5,4.59,15.27,-4.29,4.86,21.5,6.76,.21,15.27,5.29,4.86,11.5,-8.5,.21,7.62,-6.39,4.86,11.5,9.5,.21,7.62,7.39,4.86,0.0,-9.5,.21,-3.27,-7.16,4.9,0.0,10.5,.21,-3.27,8.15,4.9,-12.5,-9.5,.21,-12.84,-7.16,5.03,-12.5,10.5,.21,-12.84,8.15,5.03,-18.5,-9.5,.21,-17.43,-7.16,5.03,-18.5,10.5,.21,-17.43,8.15,5.03,-23.5,-9.5,.21,-21.26,-7.16,5.03,-23.5,10.5,.21,-21.25,8.15,5.03,-27.39,10.06,.39,-27.76,9.94,.33,-24.52,7.72,4.86,-24.23,7.82,4.9,-27.76,-8.94,.33,-27.39,-9.06,.39,-24.23,-6.82,4.9,-24.52,-6.73,4.86,-28.0,9.81,.29,-24.7,7.63,4.83,-28.0,-8.82,.29,-24.7,-6.63,4.83,-28.25,9.56,.25,-24.89,7.43,4.79,-28.25,-8.57,.25,-24.89,-6.44,4.79,-28.37,-8.32,.23,-24.99,-6.25,4.78,-28.5,-8.07,.21,-25.08,-6.06,4.76,-28.5,9.06,.21,-25.08,7.05,4.76,-28.37,9.31,.23,-24.99,7.24,4.78,-6.14,.5,6.14})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.9,.38,.97,.38,.85,.33,.79,.32,.9,.38,.79,.32,.73,.38,.66,.32,.73,.38,.66,.32,.53,.38,.47,.32,.53,.38,.47,.32,.31,.38,.3,.32,.31,.38,.3,.32,.2,.38,.22,.32,.2,.38,.22,.32,.12,.38,.15,.32,.12,.38,.15,.32,.05,.37,.04,.38,.1,.32,.1,.32,.04,.38,.05,.37,.1,.32,.1,.32,.04,.38,.09,.33,.04,.38,.09,.33,.03,.38,.09,.33,.03,.38,.09,.33,.03,.38,.09,.33,.03,.38,.09,.33,.03,.38,.09,.33,.03,.38,.09,.33,.42,.31}))))))
            .addChild(new Transform("dad_Sqwht01")
              .addChild(new Shape("Sqwht01")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material25_mat").setAmbientIntensity(0.833).setDiffuseColor(.85098,.83137,.79608).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.175).setCoordIndex(getIndexedFaceSet_9_199_coordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_199_point())))))
            .addChild(new Transform("dad_top")
              .addChild(new Shape("top")
                .setAppearance(new Appearance()
                  .setTexture(new ImageTexture().setUSE("TRAWLER"))
                  .setMaterial(new Material("material26_mat").setAmbientIntensity(0.976).setDiffuseColor(.97647,.97647,.97647).setShininess(0.250).setSpecularColor(.36863,.36863,.36863)))
                .setGeometry(new IndexedFaceSet().setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,5,3,-1,4,3,6,-1,7,4,6,-1,7,6,8,-1,9,10,11,-1,12,13,10,-1,12,10,9,-1,1,14,15,-1,1,15,2,-1,8,6,16,-1,17,18,16,-1,17,16,6,-1,14,19,20,-1,14,20,15,-1,21,22,23,-1,7,11,10,-1,7,10,4,-1,4,10,0,-1,4,0,5,-1,19,24,25,-1,19,25,20,-1,23,25,24,-1,24,21,23,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,5,3,-1,4,3,6,-1,7,4,6,-1,7,6,8,-1,9,10,11,-1,12,13,10,-1,12,10,9,-1,1,14,15,-1,1,15,2,-1,8,6,16,-1,17,18,16,-1,17,16,6,-1,14,19,20,-1,14,20,15,-1,21,22,23,-1,7,11,10,-1,7,10,4,-1,4,10,0,-1,4,0,5,-1,19,24,25,-1,19,25,20,-1,23,25,24,-1,24,21,23,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-23.5,11.5,-3.17,-18.5,11.5,-2.92,-18.5,-10.5,-2.92,-23.5,-10.5,-3.17,-27.39,.5,-3.36,-23.5,.5,-3.17,-27.39,-10.13,-3.36,-28.5,.5,-3.54,-28.5,-9.13,-3.54,-28.25,10.62,-3.5,-27.39,11.12,-3.36,-28.5,10.12,-3.54,-28.0,10.87,-3.46,-27.76,11.0,-3.42,-12.5,11.5,-2.79,-12.5,-10.5,-2.79,-28.25,-9.63,-3.5,-27.76,-10.0,-3.42,-28.0,-9.88,-3.46,0.0,11.5,-2.79,0.0,-10.5,-2.79,21.5,8.76,-6.73,27.81,.5,-7.0,21.5,-7.76,-6.73,1.5,11.37,-2.79,1.5,-10.37,-2.79})))
                  .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.91,.43,.87,.43,.87,.7,.91,.7,.94,.56,.91,.56,.94,.69,.95,.56,.95,.68,.94,.44,.94,.44,.95,.45,.94,.44,.94,.44,.83,.43,.83,.7,.94,.69,.94,.69,.94,.69,.74,.43,.74,.7,.58,.46,.53,.56,.58,.66,.73,.43,.73,.7}))))))
            .addChild(new Transform("dad_top01")
              .addChild(new Shape("top01")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("material27_mat").setAmbientIntensity(0.833).setDiffuseColor(.85098,.83137,.79608).setShininess(0.250).setSpecularColor(.64314,.64314,.64314)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.349).setCoordIndex(new int[] {0,1,2,-1,1,3,2,-1,2,3,4,-1,3,5,4,-1,4,5,6,-1,7,6,5,-1,7,8,6,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {3.25,-9.43,-16.79,3.25,10.43,-16.79,7.24,-9.29,-16.93,7.4,9.93,-16.29,11.0,-8.35,-17.06,11.0,9.35,-17.06,17.85,-6.75,-17.29,17.85,7.75,-17.29,18.5,.5,-17.29}))))))))))
    .addChild(new Group("shipRollAnimation")
      .addChild(new TimeSensor("shipRollClock").setCycleInterval(40.000).setLoop(true).setStartTime(1))
      .addChild(new OrientationInterpolator("shipRoll").setKey(new double[] {0.0,.25,.5,.75,1.0}).setKeyValue(new MFRotation(new double[] {1.0,0.0,0.0,0.0,1.0,0.0,0.0,-.056,1.0,0.0,0.0,0.0,1.0,0.0,0.0,.052,1.0,0.0,0.0,0.0})))
      .addChild(new ROUTE().setFromNode("shipRollClock").setFromField("fraction_changed").setToNode("shipRoll").setToField("set_fraction"))
      .addChild(new ROUTE().setFromNode("shipRoll").setFromField("value_changed").setToNode("trawler").setToField("set_rotation"))
      .addChild(new ProximitySensor("animationActivator").setSize(200.0,200.0,200.0))
      .addChild(new ROUTE().setFromNode("animationActivator").setFromField("isActive").setToNode("shipRollClock").setToField("enabled"))));
            }
            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_9_91_coordIndex_1()
		{
			int[] value = {0,1,2,-1,0,2,3,-1,4,5,6,-1,4,6,7,-1,8,9,7,-1,8,7,6,-1,10,11,12,-1,10,12,13,-1,14,15,11,-1,14,11,10,-1,13,12,16,-1,13,16,17,-1,15,14,17,-1,15,17,16,-1,10,13,0,-1,10,0,18,-1,1,19,20,-1,1,20,2,-1,14,10,18,-1,14,18,19,-1,21,22,23,-1,21,23,24,-1,19,18,25,-1,19,25,20,-1,26,27,28,-1,26,28,29,-1,27,30,31,-1,27,31,28,-1,30,32,33,-1,30,33,31,-1,32,26,29,-1,32,29,33,-1,32,30,9,-1,32,9,34,-1,21,24,35,-1,21,35,36,-1,27,26,4,-1,27,4,7,-1,28,31,37,-1,28,37,38,-1,29,28,38,-1,29,38,39,-1,40,41,42,-1,40,42,22,-1,43,40,22,-1,43,22,21,-1,44,43,21,-1,44,21,36,-1,41,44,36,-1,41,36,42,-1,31,33,45,-1,31,45,37,-1,33,29,39,-1,33,39,45,-1,2,20,46,-1,2,46,47,-1,20,25,48,-1,20,48,46,-1,26,32,34,-1,26,34,4,-1,13,17,1,-1,13,1,0,-1,35,24,49,-1,35,49,50,-1,18,0,3,-1,18,3,25,-1,23,51,52,-1,30,27,7,-1,30,7,9,-1,48,25,3,-1,48,3,53,-1,42,36,35,-1,42,35,51,-1,51,35,50,-1,51,50,52,-1,17,14,19,-1,17,19,1,-1,3,2,47,-1,3,47,53,-1,23,22,42,-1,23,42,51,-1,54,43,44,-1,54,44,55,-1,56,40,43,-1,56,43,54,-1,40,56,57,-1,40,57,41,-1,41,57,55,-1,41,55,44,-1,34,58,5,-1,34,5,4,-1,9,8,58,-1,9,58,34,-1,59,60,61,-1,59,61,62,-1,63,64,65,-1,63,65,66,-1,67,68,69,-1,67,69,70,-1,68,71,69,-1,72,73,74,-1,72,74,75,-1,76,59,77,-1,76,77,78,-1,59,79,77,-1,80,79,59,-1,78,77,81,-1,78,81,82,-1,73,72,75,-1,73,75,74,-1,77,79,83,-1,77,83,81,-1,84,83,79,-1,84,79,80,-1,80,59,85,-1,86,84,80,-1,86,80,85,-1,87,88,89,-1,87,89,90,-1,88,91,92,-1,88,92,89,-1,91,93,94,-1,91,94,92,-1,93,95,96,-1,93,96,94,-1,97,81,88,-1,97,88,98,-1,83,99,100,-1,83,100,91,-1,101,84,93,-1,101,93,102,-1,88,87,90,-1,88,90,89,-1,81,97,98,-1,81,98,88,-1,91,88,89,-1,99,83,91,-1,99,91,100,-1,84,101,102,-1,84,102,93,-1,59,103,96,-1,59,96,104,-1,76,59,104,-1,76,104,105,-1,95,94,96,-1,90,106,107,-1,90,107,87,-1,82,108,109,-1,82,109,78,-1,78,109,60,-1,78,60,76,-1,110,111,112,-1,110,112,113,-1,114,103,115,-1,114,115,116,-1,111,117,118,-1,111,118,112,-1,117,119,120,-1,117,120,118,-1,121,122,123,-1,121,123,124,-1,125,121,124,-1,125,124,126,-1,127,125,126,-1,127,126,128,-1,129,130,131,-1,129,131,132,-1,130,133,134,-1,113,112,135,-1,120,136,118,-1,131,137,136,-1,131,136,132,-1,122,127,128,-1,122,128,123,-1,106,90,87,-1,106,87,107,-1,138,139,140,-1,138,140,141,-1,142,143,144,-1,142,144,145,-1,103,59,62,-1,103,62,115,-1,106,146,147,-1,145,148,141,-1,145,141,140,-1,60,114,116,-1,60,116,61,-1,149,150,151,-1,149,151,152,-1,146,149,152,-1,146,152,147,-1,139,142,145,-1,139,145,140,-1,153,60,154,-1,154,155,156,-1,154,156,157,-1,153,154,157,-1,153,157,158,-1,60,155,154,-1,108,156,155,-1,108,155,109,-1,109,155,60,-1,147,159,160,-1,147,160,156,-1,161,107,108,-1,161,108,162,-1,163,152,157,-1,163,157,164,-1,146,106,107,-1,149,147,152,-1,150,149,152,-1,150,152,151,-1,152,163,164,-1,152,164,157,-1,107,161,162,-1,107,162,108,-1,159,147,156,-1,159,156,160,-1,145,144,148,-1,105,165,60,-1,105,60,76,-1,165,150,114,-1,165,114,60,-1,150,126,166,-1,150,166,114,-1,64,63,66,-1,64,66,65,-1,103,126,96,-1,167,168,68,-1,167,68,67,-1,169,167,67,-1,169,67,70,-1,168,170,71,-1,168,71,68,-1,171,172,173,-1,171,173,174,-1,175,176,172,-1,175,172,171,-1,177,178,179,-1,177,179,180,-1,181,182,178,-1,181,178,177,-1,181,183,182,-1,184,175,171,-1,184,171,185,-1,180,186,187,-1,180,187,177,-1,185,171,174,-1,185,174,188,-1,177,187,189,-1};
			return value;
		}
		private int[] getIndexedFaceSet_9_91_coordIndex_2()
		{
			int[] value = {177,189,181,-1,188,174,190,-1,188,190,191,-1,181,189,192,-1,181,192,183,-1,191,190,173,-1,191,173,193,-1,183,192,194,-1,183,194,182,-1,193,173,172,-1,193,172,195,-1,182,194,196,-1,182,196,178,-1,195,172,176,-1,195,176,197,-1,178,196,198,-1,178,198,179,-1,199,200,197,-1,199,197,176,-1,201,202,179,-1,201,179,198,-1,199,176,175,-1,201,198,203,-1,200,204,197,-1,200,184,204,-1,200,199,175,-1,200,175,184,-1,201,203,186,-1,202,201,186,-1,202,186,180,-1,202,180,179,-1,201,200,205,-1,201,205,206,-1,200,201,206,-1,200,206,205,-1,173,190,174,-1,8,6,58,-1,16,12,15,-1,23,50,42,-1,39,38,45,-1,53,47,48,-1,56,54,57,-1,114,126,105,-1,115,62,116,-1,69,170,167,-1,81,86,59,-1,91,92,89,-1,93,92,91,-1,93,94,92,-1,104,126,103,-1,95,94,93,-1,76,60,156,-1,135,112,118,-1,127,122,125,-1,126,124,128,-1,148,143,142,-1,207,208,209,-1,147,106,107,-1,146,147,107,-1,197,184,193,-1,192,187,196,-1,5,58,6,-1,11,15,12,-1,49,24,23,-1,23,52,50,-1,50,35,36,-1,50,36,42,-1,35,49,23,-1,36,35,23,-1,42,36,23,-1,37,45,38,-1,46,48,47,-1,55,57,54,-1,59,103,114,-1,114,166,126,-1,126,150,165,-1,105,59,114,-1,126,165,105,-1,61,116,62,-1,169,70,69,-1,69,71,170,-1,170,168,167,-1,167,169,69,-1,59,76,78,-1,81,83,84,-1,86,85,59,-1,59,78,81,-1,81,84,86,-1,93,91,89,-1,103,59,104,-1,104,96,126,-1,126,166,103,-1,156,108,82,-1,82,78,76,-1,60,153,158,-1,158,157,156,-1,156,82,76,-1,60,158,156,-1,117,111,110,-1,119,117,110,-1,120,119,110,-1,136,120,110,-1,136,110,113,-1,136,113,135,-1,118,136,135,-1,121,125,122,-1,123,128,124,-1,132,136,137,-1,134,210,135,-1,134,135,211,-1,142,139,138,-1,138,141,148,-1,148,144,143,-1,142,138,148,-1,212,209,208,-1,147,152,150,-1,149,146,147,-1,185,188,184,-1,191,193,188,-1,195,197,193,-1,204,184,197,-1,188,193,184,-1,186,203,187,-1,198,196,203,-1,194,192,196,-1,189,187,192,-1,203,196,187,-1,213,214,215,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_10_91_point_1()
		{
			double[] value = {1.61,-1.44,-16.74,1.61,-1.76,-16.74,1.94,-1.48,-16.29,1.94,-1.17,-16.29,0.0,4.08,-18.88,-9.58,12.0,-31.67,-9.58,11.68,-31.67,0.0,3.76,-18.88,-9.36,11.68,-31.92,0.0,3.95,-19.43,0.0,-2.95,-19.43,-9.36,-10.69,-31.92,-9.58,-10.69,-31.67,0.0,-2.77,-18.88,0.0,-3.27,-19.43,-9.36,-11.0,-31.92,-9.58,-11.0,-31.67,0.0,-3.08,-18.88,2.01,-1.3,-16.75,2.01,-1.61,-16.75,2.35,-1.33,-16.29,0.0,.25,-14.07,0.0,.75,-14.07,2.75,.75,-12.29,2.75,.25,-12.29,2.35,-1.01,-16.29,1.61,2.75,-16.74,1.61,2.44,-16.74,1.94,2.16,-16.29,1.94,2.48,-16.29,2.01,2.29,-16.75,2.35,2.01,-16.29,2.01,2.6,-16.75,2.35,2.32,-16.29,0.0,4.26,-19.43,2.25,.25,-12.29,0.0,.25,-13.76,2.73,1.7,-15.79,2.5,1.7,-15.54,2.5,2.01,-15.54,-18.5,.75,-26.03,-18.5,.75,-25.84,0.0,.75,-13.76,-18.5,.25,-26.03,-18.5,.25,-25.84,2.73,2.01,-15.79,2.73,-1.02,-15.79,2.5,-1.02,-15.54,2.73,-.7,-15.79,2.91,.25,-11.79,2.5,.25,-11.79,2.25,.75,-12.29,2.5,.75,-11.79,2.5,-.7,-15.54,-22.0,.25,-28.29,-22.25,.25,-28.29,-22.0,.75,-28.29,-22.25,.75,-28.29,-9.36,12.0,-31.92,4.0,-.77,-28.04,4.0,1.76,-28.04,5.49,1.99,-16.87,5.49,-1.0,-16.87,1.7,.5,-36.29,1.24,.5,-36.29,1.25,.5,-36.14,1.71,.5,-36.14,3.46,.24,-33.19,3.46,.76,-33.19,2.6,.5,-33.19,2.36,.24,-33.19,2.36,.76,-33.19,1.43,.5,-33.44,1.89,.5,-33.44,1.9,.5,-33.29,1.44,.5,-33.29,4.0,.5,-28.04,7.0,-.75,-28.54,7.0,.5,-28.54,5.45,-2.5,-28.54,2.5,-2.5,-28.54,7.0,-.75,-28.79,7.0,.5,-28.79,5.45,-2.5,-28.79,2.49,-2.5,-28.79,2.15,-.78,-28.54,2.14,-.77,-28.79,7.5,.5,-31.54,7.5,-.75,-31.54,7.5,-.75,-31.79,7.5,.5,-31.79,5.45,-2.5,-31.54,5.45,-2.5,-31.79,2.49,-2.5,-31.54,2.49,-2.5,-31.79,2.02,-.72,-31.54,2.0,-.71,-31.79,7.0,-.5,-28.79,7.5,-.5,-31.54,5.2,-2.5,-28.79};
			return value;
		}
		private double[] getCoordinate_10_91_point_2()
		{
			double[] value = {5.2,-2.5,-31.54,2.74,-2.5,-28.79,2.74,-2.5,-31.54,2.17,-.78,-28.04,3.5,-.69,-31.79,3.5,.5,-31.79,7.5,1.75,-31.79,7.5,1.75,-31.54,7.0,1.75,-28.79,7.0,1.75,-28.54,4.7,-.87,-22.79,10.0,-.87,-22.79,10.0,-.87,-22.54,4.74,-.88,-22.54,2.17,1.78,-28.04,2.68,-1.0,-16.77,2.68,1.99,-16.77,10.0,1.87,-22.79,10.0,1.87,-22.54,4.7,1.87,-22.79,4.74,1.88,-22.54,1.81,.24,-38.29,2.06,.5,-38.29,2.75,.5,-31.79,2.38,.12,-31.79,1.57,.5,-38.29,2.0,.5,-31.79,1.81,.76,-38.29,2.38,.87,-31.79,4.74,1.25,-22.79,6.24,1.25,-22.79,6.24,1.25,-22.18,4.8,1.25,-22.04,6.24,-.25,-22.79,6.24,-.25,-22.18,4.8,-.89,-22.04,4.8,1.89,-22.04,6.24,1.88,-22.18,2.03,.24,-36.29,3.27,.24,-36.29,3.27,.24,-36.04,2.05,.24,-36.04,3.27,.76,-36.29,2.03,.76,-36.29,2.05,.76,-36.04,3.27,.76,-36.04,5.45,3.5,-31.79,5.45,3.5,-31.54,2.29,.5,-36.04,2.49,3.49,-31.79,2.0,1.71,-31.79,2.02,1.71,-31.54,2.49,3.49,-31.54,2.15,1.77,-28.54,2.5,3.5,-28.54,5.45,3.5,-28.54,5.45,3.5,-28.79,2.49,3.49,-28.79,2.14,1.77,-28.79,5.2,3.5,-31.54,5.2,3.5,-28.79,7.5,1.5,-31.54,7.0,1.5,-28.79,2.74,3.49,-31.54,2.74,3.49,-28.79,3.5,1.69,-31.79,2.17,.5,-28.04,3.46,.24,-33.44,3.46,.76,-33.44,2.33,.24,-33.44,2.33,.76,-33.44,-22.5,1.5,-22.79,-22.5,-.5,-22.79,-22.5,-.25,-22.04,-22.5,1.25,-22.04,-22.5,1.25,-23.54,-22.5,-.25,-23.54,-21.0,1.5,-22.79,-21.0,-.5,-22.79,-21.0,-.25,-23.54,-21.0,1.25,-23.54,-21.0,1.25,-22.04,-21.0,-.25,-22.04,-21.0,.5,-21.79,-22.25,1.25,-23.54,-22.25,1.5,-22.79,-21.25,1.25,-23.54,-21.25,1.5,-22.79,-22.25,1.25,-22.04,-21.25,1.25,-22.04,-22.5,.5,-21.79,-22.25,.5,-21.79,-21.25,.5,-21.79,-22.25,-.25,-22.04,-21.25,-.25,-22.04,-22.25,-.5,-22.79,-21.25,-.5,-22.79,-22.25,-.25,-23.54,-21.25,-.25,-23.54,-22.37,.5,-24.54};
			return value;
		}
		private double[] getCoordinate_10_91_point_3()
		{
			double[] value = {-22.12,.5,-24.54,-21.37,.5,-24.54,-21.12,.5,-24.54,-21.37,.5,-23.79,-22.12,.5,-23.79,-22.12,.5,-24.42,-21.37,.5,-24.42,8.25,.25,-22.79,8.75,.25,-22.79,8.25,.75,-22.79,6.24,-.89,-22.18,4.8,-.25,-22.04,8.75,.75,-22.79,15.5,-6.38,-17.21,14.5,-6.38,-17.18,14.5,7.5,-17.18};
			return value;
		}


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


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_9_110_texCoordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,3,5,6,-1,4,3,6,-1,4,6,5,-1,7,8,4,-1,9,4,10,-1,11,12,13,-1,11,13,14,-1,10,10,4,-1,10,4,15,-1,14,16,17,-1,14,17,18,-1,10,19,20,-1,21,11,14,-1,22,23,24,-1,25,13,18,-1,25,18,26,-1,27,28,29,-1,24,27,29,-1,20,24,29,-1,20,29,30,-1,31,22,24,-1,31,24,27,-1,8,16,32,-1,12,11,14,-1,12,14,13,-1,8,21,16,-1,8,33,34,-1,21,14,16,-1,35,10,20,-1,35,20,23,-1,36,10,35,-1,13,26,18,-1,14,13,18,-1,8,8,37,-1,8,37,4,-1,16,14,18,-1,16,18,17,-1,38,27,29,-1,38,29,28,-1,23,20,24,-1,24,20,30,-1,24,30,29,-1,39,40,41,-1,39,41,42,-1,40,43,41,-1,44,45,43,-1,46,44,47,-1,48,49,50,-1,48,50,51,-1,52,53,54,-1,52,54,55,-1,56,39,57,-1,56,57,58,-1,59,56,58,-1,59,58,60,-1,44,44,45,-1,44,45,45,-1,61,61,62,-1,61,62,63,-1,64,65,63,-1,64,63,62,-1,63,66,61,-1,62,61,67,-1,68,44,43,-1,53,58,69,-1,53,69,70,-1,61,66,57,-1,61,57,71,-1,67,61,71,-1,67,71,72,-1,40,68,43,-1,51,54,53,-1,51,53,72,-1,55,54,53,-1,55,53,52,-1,54,51,72,-1,54,72,53,-1,51,50,67,-1,51,67,72,-1,50,47,62,-1,50,62,67,-1,47,44,64,-1,47,64,62,-1,44,68,63,-1,44,63,65,-1,68,40,63,-1,40,66,63,-1,40,39,57,-1,40,57,66,-1,39,56,58,-1,39,58,57,-1,56,59,60,-1,56,60,58,-1,44,46,45,-1,50,49,46,-1,47,50,46,-1,72,57,58,-1,72,58,53,-1,53,58,60,-1,53,60,52,-1,52,60,58,-1,52,58,53,-1};
			return value;
		}



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


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_9_166_texCoordIndex_1()
		{
			int[] value = {0,1,2,-1,0,2,3,-1,1,0,3,-1,1,3,2,-1,1,0,3,-1,1,3,2,-1,0,1,2,-1,0,2,3,-1,1,4,5,-1,1,5,2,-1,4,1,2,-1,4,2,5,-1,6,7,8,-1,6,8,9,-1,7,6,9,-1,7,9,8,-1,10,10,11,-1,10,11,11,-1,12,3,13,-1,12,13,14,-1,3,5,15,-1,3,15,13,-1,5,16,15,-1,16,17,15,-1,7,18,19,-1,7,19,20,-1,16,15,17,-1,13,15,5,-1,13,5,3,-1,14,13,3,-1,14,3,12,-1,21,0,3,-1,21,3,22,-1,19,14,12,-1,19,12,18,-1,20,19,18,-1,20,18,7,-1,7,6,23,-1,7,23,20,-1,0,21,22,-1,0,22,3,-1,24,25,26,-1,24,26,27,-1,18,12,14,-1,18,14,19,-1,28,24,27,-1,28,27,29,-1,30,28,29,-1,30,29,31,-1,32,30,31,-1,32,31,33,-1,10,32,33,-1,10,33,11,-1,34,35,25,-1,34,25,24,-1,36,34,24,-1,36,24,28,-1,37,36,28,-1,37,28,30,-1,38,37,30,-1,38,30,32,-1,39,38,32,-1,39,32,10,-1,6,9,25,-1,39,39,10,-1,39,10,10,-1,30,28,36,-1,30,36,37,-1,32,30,37,-1,32,37,38,-1,33,31,30,-1,33,30,32,-1,31,29,28,-1,31,28,30,-1,29,27,24,-1,29,24,28,-1,27,26,25,-1,27,25,24,-1,38,39,10,-1,38,10,32,-1,39,37,30,-1,39,30,10,-1,32,10,11,-1,32,11,33,-1,6,7,20,-1,6,20,23,-1,35,25,6,-1,6,25,26,-1,6,26,23,-1,37,36,28,-1,37,28,30,-1,36,34,24,-1,36,24,28,-1,34,35,25,-1,34,25,24,-1,39,39,10,-1,39,10,10,-1,6,25,9,-1,6,35,25,-1,35,34,24,-1,35,24,25,-1,34,36,28,-1,34,28,24,-1,25,6,23,-1,25,23,26,-1,36,37,30,-1,36,30,28,-1,37,39,10,-1,37,10,30,-1,39,39,10,-1,39,10,10,-1,39,39,10,-1,39,10,10,-1,10,10,11,-1,10,11,11,-1,7,18,40,-1,7,40,8,-1,18,7,8,-1,18,8,40,-1,18,12,41,-1,18,41,40,-1,24,25,35,-1,24,35,34,-1,12,18,40,-1,12,40,41,-1,12,22,42,-1,12,42,41,-1,22,12,41,-1,22,41,42,-1,28,24,34,-1,28,34,36,-1,21,22,12,-1,21,12,22,-1,5,15,16,-1};
			return value;
		}



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


		/** Define subarrays using type double[] */
		private double[] getCoordinate_10_173_point_1()
		{
			double[] value = {.8,.5,-42.79,1.07,.5,-38.79,1.5,.5,-32.29,.91,.5,-38.79,-26.89,-11.13,-7.61,-23.5,-11.5,-7.04,-23.5,-11.5,-6.79,-26.89,-11.13,-7.36,-28.0,11.12,-7.54,-27.5,11.87,-7.46,-27.5,11.87,-7.71,-28.0,11.12,-7.79,-26.89,12.12,-7.36,-26.89,12.12,-7.61,-23.5,12.5,-6.79,-23.5,12.5,-7.04,-18.5,12.5,-6.29,-18.5,12.5,-6.54,-12.5,12.5,-6.04,-12.5,12.5,-6.29,0.0,12.5,-6.04,0.0,12.5,-6.29,-28.0,-10.13,-7.79,-28.0,-10.13,-7.54,11.5,-10.5,-11.74,11.3,-10.52,-11.74,11.3,-10.52,-11.29,11.5,-10.5,-11.31,11.5,-10.5,-11.92,16.23,-8.82,-11.8,15.5,-9.07,-11.72,-12.5,-11.5,-6.04,-12.25,-11.5,-6.04,-12.25,-11.5,-5.79,-12.5,-11.5,-5.79,-18.5,-11.5,-6.54,-18.5,-11.5,-6.29,-7.5,-11.5,-6.04,-7.25,-11.5,-6.04,-7.25,-11.5,-5.79,-7.5,-11.5,-5.79,-2.5,-11.5,-6.04,-2.25,-11.5,-6.04,-2.25,-11.5,-5.79,-2.5,-11.5,-5.79,1.5,-11.37,-11.54,1.43,-11.37,-11.79,.5,-11.37,-10.17,.69,-11.37,-10.19,11.0,-10.55,-11.91,11.0,-10.55,-11.73,-7.5,12.5,-5.79,-7.25,12.5,-5.79,-7.25,12.5,-6.04,-7.5,12.5,-6.04,-2.5,12.5,-5.79,-2.25,12.5,-5.79,-2.25,12.5,-6.04,-2.5,12.5,-6.04,-12.25,12.5,-6.04,-12.5,12.5,-5.79,-12.25,12.5,-5.79,-23.25,12.5,-6.77,-23.5,12.5,-6.54,-23.25,12.5,-6.52,-12.5,-11.5,-6.29,-28.0,10.87,-7.54,-28.0,10.87,-7.29,-28.0,11.12,-7.29,-28.0,6.87,-7.54,-28.0,6.62,-7.54,-28.0,6.62,-7.29,-28.0,6.87,-7.29,-28.0,.62,-7.54,-28.0,.37,-7.54,-28.0,.37,-7.29,-28.0,.62,-7.29,-28.0,-5.88,-7.29,-28.0,-5.63,-7.29,-28.0,-5.63,-7.54,-28.0,-5.88,-7.54,-23.25,-11.5,-6.77,-23.25,-11.5,-6.52,-23.5,-11.5,-6.54,-28.0,-9.88,-7.54,-28.0,-10.13,-7.29,-28.0,-9.88,-7.29,0.0,-11.5,-6.29,0.0,-11.5,-6.04,-18.26,12.5,-6.28,-18.26,12.5,-6.03,-18.5,12.5,-6.04,-27.5,-10.88,-7.71,-27.5,-10.88,-7.46,-18.26,-11.5,-6.28,-18.26,-11.5,-6.03,-18.5,-11.5,-6.04,-27.12,-11.05,-7.15,-26.89,-11.13,-7.11,-27.12,-11.03,-7.4};
			return value;
		}
		private double[] getCoordinate_10_173_point_2()
		{
			double[] value = {-27.12,12.03,-7.4,-26.89,12.12,-7.11,-27.12,12.04,-7.15,6.4,-10.95,-11.64,6.63,-10.93,-11.65,6.63,-10.93,-10.8,6.4,-10.95,-10.78,6.4,11.94,-10.78,6.63,11.92,-10.8,6.63,11.92,-11.65,6.4,11.94,-11.64,1.5,12.37,-11.54,11.0,11.54,-11.73,11.0,11.54,-11.91,1.43,12.37,-11.79,.69,12.37,-10.19,11.3,11.51,-11.29,11.5,11.5,-11.31,11.5,11.5,-11.74,11.3,11.51,-11.74,15.5,10.07,-11.72,16.23,9.81,-11.8,11.5,11.5,-11.92,.5,12.37,-10.17,5.82,-9.0,-13.04,11.0,-8.5,-13.04,11.0,-8.5,-12.79,5.75,-9.0,-12.79,16.25,-7.0,-13.04,16.25,-7.0,-12.79,16.38,-6.75,-13.04,16.38,-6.75,-12.79,16.75,-3.5,-13.04,16.75,-3.5,-12.79,17.0,.5,-13.04,17.0,.5,-12.79,16.75,4.5,-13.04,16.75,4.5,-12.79,16.38,7.75,-13.04,16.38,7.75,-12.79,16.25,8.0,-13.04,16.25,8.0,-12.79,11.0,9.5,-13.04,11.0,9.5,-12.79,5.82,9.99,-13.04,5.75,10.0,-12.79};
			return value;
		}


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


		/** Define subarrays using type double[] */
		private double[] getCoordinate_10_179_point_1()
		{
			double[] value = {-3.36,.75,-16.99,-3.6,.75,-16.85,-3.64,.75,-16.58,-3.5,.75,-16.33,-3.09,.75,-16.96,-3.22,.75,-16.3,-2.94,.75,-16.72,-2.98,.75,-16.44,.82,-2.1,-17.79,.89,-2.35,-17.69,.66,-2.47,-17.8,.59,-2.22,-17.89,.4,-2.54,-17.73,.33,-2.29,-17.83,.27,-2.51,-17.48,.2,-2.26,-17.58,.31,-2.41,-17.22,.24,-2.16,-17.32,.54,-2.29,-17.12,.47,-2.03,-17.22,.8,-2.21,-17.19,.73,-1.96,-17.29,.93,-2.25,-17.44,.86,-1.99,-17.54,.33,3.29,-17.83,.4,3.54,-17.73,.66,3.46,-17.8,.59,3.21,-17.89,.2,3.25,-17.58,.27,3.5,-17.48,.24,3.15,-17.32,.31,3.4,-17.22,.47,3.03,-17.22,.54,3.28,-17.12,.73,2.95,-17.29,.8,3.21,-17.19,.86,2.99,-17.54,.93,3.24,-17.44,.82,3.09,-17.79,.89,3.34,-17.69,-2.77,.75,-15.43,-2.77,.25,-15.43,-3.01,.25,-15.29,-3.01,.75,-15.29,-3.05,.25,-15.01,-3.05,.75,-15.01,-2.5,.75,-15.4,-2.5,.25,-15.4,-2.91,.25,-14.77,-2.91,.75,-14.77,-2.63,.25,-14.74,-2.63,.75,-14.74,-2.39,.25,-14.88,-2.39,.75,-14.88,-2.35,.25,-15.15,-2.35,.75,-15.15,-3.36,.25,-16.99,-3.09,.25,-16.96,-3.22,.25,-16.3,-3.5,.25,-16.33,-2.94,.25,-16.72,-2.98,.25,-16.44,-3.6,.25,-16.85,-3.64,.25,-16.58,1.64,.37,-38.79,1.77,.29,-38.79,1.81,.29,-38.29,1.69,.37,-38.29,1.89,.37,-38.79,1.94,.37,-38.29,1.96,.5,-38.79,2.01,.5,-38.29,1.89,.63,-38.79,1.77,.71,-38.79,1.81,.71,-38.29,1.94,.63,-38.29,1.64,.63,-38.79,1.69,.63,-38.29,1.57,.5,-38.79,1.62,.5,-38.29,1.75,.5,-38.92,1.79,.5,-38.92,1.8,.5,-38.79,1.77,.5,-38.79,2.99,.5,-36.92,3.05,.5,-36.92,3.05,.5,-36.79,2.99,.5,-36.79,3.18,.5,-34.07,3.24,.5,-34.07,3.24,.5,-33.94,3.18,.5,-33.94,2.9,.28,-36.79,3.15,.28,-36.79,3.15,.28,-36.29,2.9,.28,-36.29,2.77,.5,-36.79,2.77,.5,-36.29,2.9,.71,-36.79,2.9,.71,-36.29};
			return value;
		}
		private double[] getCoordinate_10_179_point_2()
		{
			double[] value = {3.15,.71,-36.79,3.15,.71,-36.29,3.27,.5,-36.79,3.27,.5,-36.29,2.96,.5,-33.94,3.09,.28,-33.94,3.09,.28,-33.44,2.96,.5,-33.44,3.34,.28,-33.94,3.34,.28,-33.44,3.46,.5,-33.94,3.46,.5,-33.44,3.09,.71,-33.94,3.09,.71,-33.44,3.34,.71,-33.94,3.34,.71,-33.44};
			return value;
		}


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


		/** Define subarrays using type double[] */
		private double[] getCoordinate_10_199_point_1()
		{
			double[] value = {2.5,-1.02,-15.54,2.73,-1.02,-15.79,2.77,-1.04,-14.79,2.5,-1.04,-14.79,2.5,.75,-11.79,2.5,.25,-11.79,2.5,.25,-11.04,2.5,.75,-11.04,2.75,.25,-12.29,2.75,.75,-12.29,2.91,.75,-11.79,2.91,.25,-11.79,2.94,.25,-11.04,2.94,.75,-11.04,2.75,-.5,-15.79,2.5,-.7,-15.54,2.5,-.7,-14.79,2.75,-.5,-14.79,2.75,1.49,-14.79,2.77,2.03,-14.79,2.5,2.03,-14.79,2.5,1.7,-14.79,2.73,2.01,-15.79,2.5,2.01,-15.54,2.5,1.7,-15.54,2.75,1.49,-15.79,2.73,-.7,-15.79,2.73,1.7,-15.79,2.97,9.86,-10.4,2.97,-8.87,-10.4,3.02,-8.84,-9.37,3.02,9.84,-9.37,2.68,-1.0,-16.77,3.25,-1.0,-16.79,3.0,-1.01,-16.29,2.71,-1.01,-16.29,2.71,2.0,-16.29,2.97,-1.12,-10.42,2.97,2.11,-10.42,3.25,1.99,-16.79,2.68,1.99,-16.77,3.0,2.0,-16.29,3.0,-9.93,-16.29,18.1,-6.75,-16.29,18.75,.5,-16.29,16.25,-7.0,-12.79,16.38,-6.75,-12.79,16.62,-6.75,-11.84,16.5,-7.0,-11.83,7.4,-9.93,-16.29,10.55,-8.34,-16.29,11.0,-9.5,-16.29,18.1,7.75,-16.29,3.0,10.93,-16.29,18.1,8.75,-16.29,11.0,10.5,-16.29,10.55,9.34,-16.29,7.4,10.93,-16.29,17.85,7.75,-17.29,11.0,-8.35,-17.06,17.85,-6.75,-17.29,11.0,9.35,-17.06,7.24,10.29,-16.93,7.24,-9.29,-16.93,3.25,-9.43,-16.79,3.25,10.43,-16.79,2.68,.5,-16.77,2.71,.5,-16.29,19.12,7.75,-16.29,16.94,-7.0,-10.07,17.06,-6.75,-10.07,16.5,8.0,-11.83,16.62,7.75,-11.84,17.06,7.75,-10.07,16.94,8.0,-10.07,14.15,8.6,-11.58,16.25,8.0,-12.79,16.23,8.07,-11.8,16.38,7.75,-12.79,16.38,7.75,-13.04,16.25,8.0,-13.04,18.5,-3.5,-16.29,16.38,-6.75,-13.04,16.25,-7.0,-13.04,11.0,-8.5,-13.04,11.0,-8.5,-12.79,14.15,-7.6,-11.58,16.23,-7.07,-11.8,18.5,.5,-17.29,19.12,-6.75,-16.29,5.0,-8.93,-16.29,5.82,-9.0,-13.04,5.75,-9.0,-12.79,11.0,-9.5,-16.29,18.1,-7.75,-16.29,18.1,-6.75,-16.29,18.88,8.43,-16.29,19.12,7.75,-16.29,17.85,7.75,-17.29,17.85,-6.75,-17.29};
			return value;
		}
		private double[] getCoordinate_10_199_point_2()
		{
			double[] value = {19.12,-6.75,-16.29,18.88,-7.44,-16.29,18.1,8.75,-16.29,18.5,.5,-17.29,19.77,.5,-16.29,18.75,.5,-16.29,18.1,7.75,-16.29};
			return value;
		}

		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #91, 1512 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_9_91_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_91_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_91_coordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_9_91_coordIndex_2()));
			return IndexedFaceSet_9_91_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #91, 648 total numbers made up of 216 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_10_91_point()
		{
			MFVec3f Coordinate_10_91_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_10_91_point_1()))
				.append(new MFVec3f(getCoordinate_10_91_point_2()))
				.append(new MFVec3f(getCoordinate_10_91_point_3()));
			return Coordinate_10_91_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #110, 416 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_9_110_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_110_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_110_coordIndex_1()));
			return IndexedFaceSet_9_110_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=9, element #110, 416 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_9_110_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_9_110_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_110_texCoordIndex_1()));
			return IndexedFaceSet_9_110_texCoordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #110, 252 total numbers made up of 84 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_10_110_point()
		{
			MFVec3f Coordinate_10_110_point = new MFVec3f(new double[] {11.0,.5,-9.79,18.5,5.38,-10.15,18.5,-4.39,-10.15,6.3,2.11,-10.77,2.97,2.11,-10.42,3.02,2.13,-9.37,6.47,2.14,-9.54,2.97,-1.12,-10.42,6.3,-1.12,-10.77,6.47,-1.15,-9.54,3.02,-1.14,-9.37,2.71,-1.01,-16.29,5.0,-1.0,-16.29,2.71,2.0,-16.29,5.0,1.99,-16.29,11.0,-8.5,-12.79,16.25,-7.0,-12.79,14.15,-7.6,-11.58,11.0,-8.5,-11.26,5.0,2.48,-16.29,2.97,2.48,-10.42,2.07,-8.91,-10.3,1.5,-8.91,-9.32,11.0,-8.5,-9.77,5.0,9.93,-16.29,2.97,9.86,-10.4,2.07,9.9,-10.3,5.75,-9.0,-12.79,11.0,9.5,-12.79,5.75,10.0,-12.79,11.0,9.5,-11.26,16.5,-7.0,-11.83,16.94,-7.0,-10.07,14.15,8.6,-11.58,16.94,8.0,-10.07,11.0,9.5,-9.77,1.5,9.9,-9.32,16.25,8.0,-12.79,5.0,-8.93,-16.29,2.97,-8.87,-10.4,7.4,-8.93,-16.29,5.82,-9.0,-13.04,5.82,9.99,-13.04,7.4,9.93,-16.29,5.0,-1.48,-16.29,2.97,-1.48,-10.42,16.5,8.0,-11.83,11.0,-10.55,-11.26,18.5,-8.0,-12.03,18.5,-8.0,-6.6,11.0,-10.55,-6.27,20.5,-6.0,-6.68,21.5,-1.5,-12.34,21.0,-1.5,-6.71,20.5,7.0,-6.68,21.5,2.5,-12.34,21.26,7.0,-12.32,11.0,11.54,-6.27,18.5,9.0,-6.6,18.5,9.0,-12.03,11.0,11.54,-11.26,0.0,12.37,-9.29,1.5,12.37,-9.29,1.5,12.37,-10.27,.5,12.37,-10.17,1.5,-11.37,-10.27,11.0,-10.55,-9.77,1.5,-11.37,-9.29,.5,-11.37,-10.17,0.0,-11.37,-9.29,21.0,2.5,-6.71,18.5,-4.39,-10.15,18.5,5.38,-10.15,20.98,7.0,-10.27,20.98,-6.0,-10.27,21.32,2.5,-10.28,21.32,-1.5,-10.28,18.5,-8.0,-10.14,18.5,9.0,-10.14,21.26,-6.0,-12.32,1.5,-11.37,-5.86,1.5,12.37,-5.86,11.0,.5,-9.79,11.0,11.54,-9.77});
			return Coordinate_10_110_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #166, 536 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_9_166_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_166_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_166_coordIndex_1()));
			return IndexedFaceSet_9_166_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=9, element #166, 536 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_9_166_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_9_166_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_166_texCoordIndex_1()));
			return IndexedFaceSet_9_166_texCoordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #166, 273 total numbers made up of 91 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_10_166_point()
		{
			MFVec3f Coordinate_10_166_point = new MFVec3f(new double[] {11.0,-10.55,-9.77,18.5,-8.56,-10.5,18.5,-8.56,-6.6,11.0,-10.55,-6.27,18.5,9.55,-10.5,11.0,11.54,-9.77,11.0,11.54,-6.27,18.5,9.55,-6.6,21.5,-7.76,-10.79,21.5,-7.76,-6.73,-23.5,12.5,-6.54,-18.5,12.5,-6.04,-18.5,11.5,-2.92,-23.5,11.5,-3.17,-18.5,-11.5,-6.04,-23.5,-11.5,-6.54,-23.5,-10.5,-3.17,-18.5,-10.5,-2.92,-28.5,10.12,-3.54,-28.5,.5,-3.54,-28.5,.5,.21,-28.5,9.06,.21,0.0,-11.5,-5.79,11.0,-10.55,-6.27,11.5,-8.5,.21,0.0,-9.5,.21,21.5,-7.76,-6.73,21.5,-5.76,.21,27.81,.5,-7.0,25.5,.5,.21,-12.5,-11.5,-5.79,-12.5,-9.5,.21,-18.5,-9.5,.21,21.5,6.76,.21,11.5,9.5,.21,21.5,8.76,-6.73,11.0,11.54,-6.27,0.0,10.5,.21,0.0,12.5,-5.79,1.5,-11.37,-9.29,11.0,-10.55,-9.77,1.5,-11.37,-5.86,-12.5,10.5,.21,-12.5,12.5,-5.79,-18.5,10.5,.21,-23.5,10.5,.21,11.0,11.54,-9.77,1.5,12.37,-9.29,1.5,12.37,-5.86,-27.76,-10.0,-3.42,-27.39,-10.13,-3.36,-27.39,-9.06,.39,-27.76,-8.94,.33,-28.0,-9.88,-3.46,-28.0,-8.82,.29,-28.25,-9.63,-3.5,-28.25,-8.57,.25,-28.37,-9.38,-3.52,-28.37,-8.32,.23,-28.5,-9.13,-3.54,-28.5,-8.07,.21,-27.26,-11.0,-7.17,-26.89,-11.13,-7.11,-27.5,-10.88,-7.21,-27.75,-10.63,-7.25,-27.87,-10.38,-7.27,-28.0,-10.13,-7.29,-27.39,11.12,-3.36,-28.0,11.12,-7.29,-28.0,.5,-7.29,-28.25,10.62,-3.5,-28.0,10.87,-3.46,-27.5,11.87,-7.21,-27.75,11.62,-7.25,-28.37,10.37,-3.52,-27.87,11.37,-7.27,-28.37,9.31,.23,-28.25,9.56,.25,-28.0,9.81,.29,-27.76,9.94,.33,-27.76,11.0,-3.42,-27.39,10.06,.39,-23.5,-9.5,.21,-26.89,12.12,-7.11,-27.26,12.0,-7.17,-12.5,11.5,-2.79,-12.5,-10.5,-2.79,0.0,11.5,-2.79,0.0,-10.5,-2.79,1.5,11.37,-2.79,1.5,-10.37,-2.79});
			return Coordinate_10_166_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #173, 728 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_9_173_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_173_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_173_coordIndex_1()));
			return IndexedFaceSet_9_173_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #173, 438 total numbers made up of 146 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_10_173_point()
		{
			MFVec3f Coordinate_10_173_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_10_173_point_1()))
				.append(new MFVec3f(getCoordinate_10_173_point_2()));
			return Coordinate_10_173_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #179, 768 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_9_179_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_179_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_179_coordIndex_1()));
			return IndexedFaceSet_9_179_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #179, 348 total numbers made up of 116 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_10_179_point()
		{
			MFVec3f Coordinate_10_179_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_10_179_point_1()))
				.append(new MFVec3f(getCoordinate_10_179_point_2()));
			return Coordinate_10_179_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #199, 468 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_9_199_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_199_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_199_coordIndex_1()));
			return IndexedFaceSet_9_199_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #199, 321 total numbers made up of 107 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_10_199_point()
		{
			MFVec3f Coordinate_10_199_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_10_199_point_1()))
				.append(new MFVec3f(getCoordinate_10_199_point_2()));
			return Coordinate_10_199_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 Trawler 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 Trawler().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.Trawlers.Trawler\" 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.Trawlers.Trawler self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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