package Savage.ShipsCivilian.CargoShips;

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

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> Basic Orange Container Ship. </p>
 <p> Related links: Catalog page <a href="../../../../ShipsCivilian/CargoShips/ContainerShipOrangeIndex.html" target="_blank">ContainerShipOrange</a>,  source <a href="../../../../ShipsCivilian/CargoShips/ContainerShipOrange.java">ContainerShipOrange.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/CargoShips/ContainerShipOrange.x3d">ContainerShipOrange.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> Basic Orange Container Ship </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Donated to the MOVES Institute (Delta 3D Group) by Naval Education and Training Command. Translated from the Delta3D open asset library. </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translator </i> </td>
			<td> LT Patrick Sullivan </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 23 March 2005 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translated </i> </td>
			<td> 30 January 2006 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modified </i> </td>
			<td> 20 October 2019 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> identifier </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/CargoShips/ContainerShipOrange.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/CargoShips/ContainerShipOrange.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> X3D-Edit 3.2, <a href="https://www.web3d.org/x3d/tools/X3D-Edit" target="_blank">https://www.web3d.org/x3d/tools/X3D-Edit</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> VizX3D, <a href="http://www.vivaty.com/downloads/studio" target="_blank">http://www.vivaty.com/downloads/studio</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../ShipsCivilian/CargoShips/../../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 ContainerShipOrange
{
	/** Default constructor to create this object. */
	public ContainerShipOrange ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_0)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("ContainerShipOrange.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Basic Orange Container Ship"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Donated to the MOVES Institute (Delta 3D Group) by Naval Education and Training Command. Translated from the Delta3D open asset library."))
    .addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("LT Patrick Sullivan"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("23 March 2005"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATED ).setContent("30 January 2006"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 October 2019"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/CargoShips/ContainerShipOrange.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("VizX3D, http://www.vivaty.com/downloads/studio"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setInfo(new String[] {"This Web3D World was created with Vizx3D, a Web3D authoring tool","www.vizx3d.com"}).setTitle("Orange Container Ship")
      .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("reference").setValue(new String[] {"http://www.ship-technology.com/projects/contship/specs.html"})
              .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The published source of classified information, if any, contained in the Metadata."})))
            .setMetadata(new MetadataString().setName("rationale")
              .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The specific element which contains the information classifying this document."}))))
          .setMetadata(new MetadataSet().setName("IdentificationParameters")
            .setMetadata(new MetadataString().setName("name").setValue(new String[] {"Orange Container Ship"})
              .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[] {55.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[] {49.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[] {306.0})
                .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[] {10.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 MetadataFloat().setName("grossWeight").setValue(new double[] {45686731.0})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The standard operational weight of the vehicle in kilograms, usable in physics calculations."}))))
            .setMetadata(new MetadataSet().setName("DynamicResponseConstraints")
              .setMetadata(new MetadataFloat().setName("maximumSpeed").setValue(new double[] {29.63})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The maximum rated speed for this vehicle in kph."})))
              .setMetadata(new MetadataFloat().setName("cruiseSpeed").setValue(new double[] {22.24})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The published cruise speed for this vehicle in kph."}))))
            .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 the overall type of this object (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[] {61})
                .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.)."})))
              .setMetadata(new MetadataInteger().setName("entitySubCategory").setValue(new int[] {1})
                .setMetadata(new MetadataString().setName("appinfo").setValue(new String[] {"The DIS enumeration for the class designation of this vehicle (CG-47 Ticonderoga, DDG-51 Arleigh Burke, M1A2, M880, B-52, F-22, etc."}))))))))
    .addChild(new NavigationInfo("NavInfo6").setAvatarSize(new double[] {.25,1.6,.75}))
    .addChild(new Transform("dad_GROUND").setScale(.305,.305,.305)
      .addChild(new Group("GROUND")
        .addChild(new Transform("dad_Import_Base").setRotation(1.0,0.0,0.0,1.571)
          .addChild(new Group("Import_Base")
            .addChild(new Transform("dad_Group6")
              .addChild(new Group("Group6")
                .addChild(new Transform("dad_A_1")
                  .addChild(new Shape("A_1")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture("CNTSHIPO_TEX").setUrl(new String[] {"textures/CNTSHIPO.jpg","https://www.web3d.org/x3d/content/examples/Savage/ShipsCivilian/CargoShips/textures/CNTSHIPO.jpg"}))
                      .setMaterial(new Material("material0_mat").setAmbientIntensity(0.729).setDiffuseColor(.78824,.78824,.78824).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,7,8,9,-1,4,7,9,-1,4,9,10,-1,4,10,11,-1,2,4,11,-1,2,11,12,-1,2,12,13,-1,3,2,13,-1,3,13,14,-1,3,14,15,-1,15,8,7,-1,3,15,7,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,2,1,0,-1,0,3,2,-1,3,4,5,-1,2,3,5,-1,2,5,6,-1,2,6,7,-1,2,2,7,-1,2,7,6,-1,2,6,8,-1,3,2,8,-1,3,8,9,-1,3,9,10,-1,10,4,3,-1,3,10,3,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-283.4219,-21.25602,-115.65115,-283.45065,-28.0572,-115.65115,-286.24002,-25.24404,-131.15157,-286.23496,-24.04551,-131.15157,-287.43854,-25.23897,-131.15158,-290.2518,-28.02845,-115.6512,-290.22305,-21.22728,-115.6512,-287.43347,-24.04044,-131.15158,-288.66629,-22.7626,-131.1516,-289.44806,-24.62761,-131.1516,-288.68207,-26.49916,-131.1516,-286.81708,-27.28092,-131.15158,-284.94553,-26.51495,-131.15157,-284.16376,-24.64994,-131.15157,-284.92972,-22.77839,-131.15157,-286.79474,-21.99663,-131.15158})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.75,.995,.873,.995,.822,1.691,.801,1.691,.778,1.691,.811,1.691,.845,1.691,.859,1.691,.811,1.691,.778,1.691,.764,1.691}))))))
                .addChild(new Transform("dad_Box01")
                  .addChild(new Shape("Box01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material1_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-363.34882,-56.57448,-35.27011,-363.34882,-56.57448,-66.97762,-362.8913,51.68507,-66.97763,-362.8913,51.68507,-35.27011,-489.29645,-56.04222,-66.97762,-489.29644,-56.04222,-35.27011,-488.83893,52.21734,-35.27011,-488.83893,52.21734,-66.97762})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.369,.535,.369,.749,.74,.749,.74,.535,.369,.749,.369,.535,.74,.535,.74,.749}))))))
                .addChild(new Transform("dad_Box02")
                  .addChild(new Shape("Box02")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material2_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,4,6,7,-1,4,7,8,-1,9,6,5,-1,5,10,9,-1,11,1,0,-1,0,12,11,-1,13,14,15,-1,15,16,13,-1,17,12,18,-1,19,20,21,-1,22,23,24,-1,25,26,3,-1,3,2,25,-1,27,28,8,-1,8,7,27,-1,29,30,31,-1,32,33,34,-1,34,35,32,-1,36,37,26,-1,26,25,36,-1,38,39,40,-1,40,41,38,-1,42,43,44,-1,45,42,44,-1,45,44,46,-1,47,45,46,-1,47,46,48,-1,49,47,48,-1,50,49,48,-1,50,48,51,-1,51,52,53,-1,50,51,53,-1,32,37,54,-1,54,55,32,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,4,6,7,-1,4,7,8,-1,9,6,5,-1,5,5,9,-1,10,1,0,-1,0,11,10,-1,12,13,14,-1,14,15,12,-1,16,11,17,-1,18,19,19,-1,20,21,22,-1,23,24,3,-1,3,2,23,-1,25,8,8,-1,8,7,25,-1,26,27,28,-1,29,30,9,-1,9,5,29,-1,31,32,24,-1,24,23,31,-1,33,34,10,-1,10,11,33,-1,35,36,37,-1,31,35,37,-1,31,37,38,-1,39,31,38,-1,39,38,40,-1,41,39,40,-1,42,41,40,-1,42,40,43,-1,43,44,45,-1,42,43,45,-1,29,32,32,-1,32,29,29,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_80_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.574,.334,.606,.334,.606,.31,.574,.31,.465,.334,.465,.31,.433,.31,.433,.334,.465,.334,.459,.31,.581,.334,.574,.334,.574,.344,.574,.262,.465,.262,.465,.344,.574,.339,.574,.339,.459,.262,.465,.262,.459,.338,.459,.339,.459,.339,.581,.31,.574,.31,.459,.334,.581,.339,.581,.339,.581,.338,.465,.262,.459,.262,.581,.262,.574,.262,.574,.339,.581,.339,.581,.285,.581,.296,.6,.296,.6,.182,.578,.262,.44,.182,.534,.262,.459,.262,.44,.296,.459,.296,.459,.285}))))))
                .addChild(new Transform("dad_Box04")
                  .addChild(new Shape("Box04")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material3_mat").setAmbientIntensity(0.875).setDiffuseColor(.87451,.87451,.87451).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,3,2,6,-1,6,5,3,-1,2,1,7,-1,7,6,2,-1,1,0,4,-1,4,7,1,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,12,13,14,-1,14,15,12,-1,16,17,18,-1,18,19,16,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-275.04199,5.56684,-115.26825,-274.10568,3.00195,-121.93697,-274.11993,-.37098,-121.93697,-275.07791,-2.92787,-115.26825,-270.90323,5.54935,-115.26825,-270.93912,-2.94536,-115.26825,-271.87543,-.38046,-121.93697,-271.86118,2.99246,-121.93697})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.63,.957,1.551,1.151,1.449,1.151,1.371,.957,1.371,.957,1.63,.957,1.552,1.151,1.449,1.151,2.043,1.588,1.849,1.549,1.849,1.456,2.043,1.417,1.551,1.549,1.449,1.548,1.449,1.455,1.552,1.456,1.151,1.548,.957,1.587,.957,1.415,1.151,1.455}))))))
                .addChild(new Transform("dad_Box38")
                  .addChild(new Shape("Box38")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material4_mat").setAmbientIntensity(0.086).setDiffuseColor(.47843,.47843,.47843).setShininess(0.100).setSpecularColor(.70588,.70588,.70588)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,4,6,7,-1,7,5,4,-1,8,9,10,-1,10,11,8,-1,11,10,12,-1,12,13,11,-1,13,12,14,-1,14,15,13,-1,3,2,10,-1,10,9,3,-1,2,5,12,-1,12,10,2,-1,5,7,14,-1,14,12,5,-1,7,6,15,-1,15,14,7,-1,6,4,13,-1,13,15,6,-1,4,1,11,-1,11,13,4,-1,1,0,8,-1,8,11,1,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-308.83957,-59.90261,-34.93016,-308.82004,-55.2839,-38.46469,-308.83731,-59.36796,-39.37448,-308.86545,-66.02729,-34.93016,-308.8259,-56.66972,-47.00728,-308.83731,-59.36796,-45.77364,-308.90228,-74.74042,-53.61404,-308.90661,-75.77064,-52.2021,-307.50052,-59.90828,-34.93016,-307.5264,-66.03295,-34.93016,-307.49826,-59.37362,-39.37448,-307.48102,-55.28956,-38.46469,-307.49826,-59.37362,-45.77364,-307.48685,-56.67538,-47.00728,-307.56759,-75.7763,-52.2021,-307.56323,-74.74608,-53.61404}))))))
                .addChild(new Transform("dad_Box39")
                  .addChild(new Shape("Box39")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material5_mat").setAmbientIntensity(0.086).setDiffuseColor(.47843,.47843,.47843).setShininess(0.100).setSpecularColor(.70588,.70588,.70588)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,4,6,7,-1,7,5,4,-1,8,9,10,-1,10,11,8,-1,11,10,12,-1,12,13,11,-1,13,12,14,-1,14,15,13,-1,3,2,10,-1,10,9,3,-1,2,5,12,-1,12,10,2,-1,5,7,14,-1,14,12,5,-1,7,6,15,-1,15,14,7,-1,6,4,13,-1,13,15,6,-1,4,1,11,-1,11,13,4,-1,1,0,8,-1,8,11,1,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-322.80948,-59.84358,-34.93016,-322.78995,-55.22487,-38.46469,-322.80722,-59.30893,-39.37448,-322.83536,-65.96825,-34.93016,-322.79581,-56.61069,-47.00728,-322.80722,-59.30893,-45.77364,-322.87219,-74.68139,-53.61404,-322.87652,-75.7116,-52.2021,-321.47043,-59.84924,-34.93016,-321.49631,-65.97391,-34.93016,-321.46817,-59.31458,-39.37448,-321.45093,-55.23052,-38.46469,-321.46817,-59.31458,-45.77364,-321.45679,-56.61634,-47.00728,-321.53751,-75.71726,-52.2021,-321.53314,-74.68704,-53.61404}))))))
                .addChild(new Transform("dad_Box40")
                  .addChild(new Shape("Box40")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material6_mat").setAmbientIntensity(0.376).setDiffuseColor(.79608,.79608,.79608).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,3,4,5,-1,1,0,6,-1,7,8,9,-1,10,11,12,-1,13,5,4,-1,14,12,11,-1,8,7,15,-1,2,1,4,-1,16,11,8,-1,17,12,18,-1,19,7,20,-1,21,5,0,-1,22,9,8,-1,17,23,24,-1,4,25,26,-1,27,12,18,-1,28,29,30,-1,17,31,23,-1,32,26,25,-1,17,33,34,-1,17,18,33,-1,11,10,35,-1,6,19,20,-1,22,36,9,-1,13,27,18,-1,10,37,4,-1,14,15,7,-1,11,16,38,-1,3,2,4,-1,0,39,21,-1,22,1,36,-1,40,28,30,-1,35,10,4,-1,33,41,34,-1,8,17,24,-1,42,29,7,-1,28,12,29,-1,33,4,41,-1,7,12,14,-1,29,43,30,-1,42,0,30,-1,18,5,13,-1,6,0,19,-1,24,23,32,-1,28,40,18,-1,18,12,28,-1,15,16,8,-1,38,16,15,-1,37,10,27,-1,12,27,10,-1,9,20,7,-1,6,20,9,-1,11,38,14,-1,15,14,38,-1,6,36,1,-1,9,36,6,-1,25,4,1,-1,32,25,44,-1,26,41,4,-1,0,40,30,-1,12,7,29,-1,5,21,3,-1,2,3,21,-1,21,39,2,-1,2,39,0,-1,4,37,13,-1,27,13,37,-1,24,32,44,-1,17,34,31,-1,42,43,29,-1,42,30,43,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_107_point())))))
                .addChild(new Transform("dad_Box41")
                  .addChild(new Shape("Box41")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material7_mat").setAmbientIntensity(0.086).setDiffuseColor(.47843,.47843,.47843).setShininess(0.100).setSpecularColor(.70588,.70588,.70588)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,4,6,7,-1,7,5,4,-1,8,9,10,-1,10,11,8,-1,11,10,12,-1,12,13,11,-1,13,12,14,-1,14,15,13,-1,3,2,10,-1,10,9,3,-1,2,5,12,-1,12,10,2,-1,5,7,14,-1,14,12,5,-1,7,6,15,-1,15,14,7,-1,6,4,13,-1,13,15,6,-1,4,1,11,-1,11,13,4,-1,1,0,8,-1,8,11,1,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-308.32474,61.9047,-34.93016,-308.34427,57.28598,-38.46469,-308.327,61.37004,-39.37448,-308.29886,68.02936,-34.93016,-308.33841,58.6718,-47.00728,-308.327,61.37004,-45.77364,-308.26202,76.7425,-53.61404,-308.25769,77.77271,-52.2021,-306.98572,61.89904,-34.93016,-306.95981,68.02371,-34.93016,-306.98798,61.36438,-39.37448,-307.00522,57.28032,-38.46469,-306.98798,61.36438,-45.77364,-306.99936,58.66614,-47.00728,-306.91864,77.76706,-52.2021,-306.92301,76.73684,-53.61404}))))))
                .addChild(new Transform("dad_Box42")
                  .addChild(new Shape("Box42")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material8_mat").setAmbientIntensity(0.086).setDiffuseColor(.47843,.47843,.47843).setShininess(0.100).setSpecularColor(.70588,.70588,.70588)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,5,-1,5,2,1,-1,4,6,7,-1,7,5,4,-1,8,9,10,-1,10,11,8,-1,11,10,12,-1,12,13,11,-1,13,12,14,-1,14,15,13,-1,3,2,10,-1,10,9,3,-1,2,5,12,-1,12,10,2,-1,5,7,14,-1,14,12,5,-1,7,6,15,-1,15,14,7,-1,6,4,13,-1,13,15,6,-1,4,1,11,-1,11,13,4,-1,1,0,8,-1,8,11,1,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-322.29465,61.96373,-34.93016,-322.31418,57.34502,-38.46469,-322.2969,61.42907,-39.37448,-322.26877,68.0884,-34.93016,-322.30832,58.73084,-47.00728,-322.29691,61.42907,-45.77364,-322.23194,76.80154,-53.61404,-322.2276,77.83175,-52.2021,-320.95563,61.95807,-34.93016,-320.92972,68.08275,-34.93016,-320.95788,61.42342,-39.37448,-320.97513,57.33936,-38.46469,-320.95789,61.42342,-45.77364,-320.96927,58.72518,-47.00728,-320.88855,77.82609,-52.2021,-320.89292,76.79587,-53.61404}))))))
                .addChild(new Transform("dad_ChamferCyl")
                  .addChild(new Shape("ChamferCyl")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material9_mat").setAmbientIntensity(0.769).setDiffuseColor(.76863,.76863,.76863).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,3,2,4,-1,3,4,5,-1,5,4,6,-1,5,6,7,-1,7,6,8,-1,7,8,9,-1,9,8,10,-1,9,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,1,-1,23,1,0,-1,1,24,25,-1,1,25,2,-1,2,25,26,-1,2,26,4,-1,4,26,27,-1,4,27,6,-1,6,27,28,-1,6,28,8,-1,8,28,29,-1,8,29,10,-1,10,29,30,-1,10,30,12,-1,12,30,31,-1,12,31,14,-1,14,31,32,-1,14,32,16,-1,16,32,33,-1,16,33,18,-1,18,33,34,-1,18,34,20,-1,20,34,35,-1,20,35,22,-1,22,35,24,-1,22,24,1,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,3,2,4,-1,3,4,5,-1,5,4,6,-1,5,6,7,-1,7,6,8,-1,7,8,5,-1,5,8,2,-1,5,2,9,-1,9,2,10,-1,9,10,0,-1,0,10,11,-1,0,11,12,-1,12,11,13,-1,12,13,14,-1,14,13,15,-1,14,15,16,-1,16,15,13,-1,16,13,17,-1,17,13,11,-1,17,11,18,-1,18,11,1,-1,18,1,0,-1,1,19,20,-1,1,20,2,-1,2,20,21,-1,2,21,4,-1,4,21,22,-1,4,22,6,-1,6,22,21,-1,6,21,8,-1,8,21,23,-1,8,23,2,-1,2,23,19,-1,2,19,10,-1,10,19,24,-1,10,24,11,-1,11,24,25,-1,11,25,13,-1,13,25,26,-1,13,26,15,-1,15,26,27,-1,15,27,13,-1,13,27,28,-1,13,28,11,-1,11,28,19,-1,11,19,1,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_126_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.391,.466,.391,.447,.377,.446,.381,.466,.367,.446,.374,.466,.364,.446,.371,.466,.367,.446,.381,.466,.391,.447,.404,.447,.4,.466,.414,.447,.407,.466,.417,.447,.41,.466,.407,.466,.4,.466,.374,.174,.352,.174,.336,.174,.33,.174,.352,.174,.396,.175,.412,.175,.418,.175,.412,.175,.396,.175}))))))
                .addChild(new Transform("dad_Cylinder01")
                  .addChild(new Shape("Cylinder01")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material10_mat").setAmbientIntensity(0.376).setDiffuseColor(.79608,.79608,.79608).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,0,3,1,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,7,6,-1,0,8,7,-1,0,9,8,-1,0,10,9,-1,0,2,10,-1,2,11,12,-1,2,1,11,-1,1,13,11,-1,1,3,13,-1,3,14,13,-1,3,4,14,-1,4,15,14,-1,4,5,15,-1,5,16,15,-1,5,6,16,-1,6,17,16,-1,6,7,17,-1,7,18,17,-1,7,8,18,-1,8,19,18,-1,8,9,19,-1,9,20,19,-1,9,10,20,-1,10,12,20,-1,10,2,12,-1,21,12,11,-1,21,11,13,-1,21,13,14,-1,21,14,15,-1,21,15,16,-1,21,16,17,-1,21,17,18,-1,21,18,19,-1,21,19,20,-1,21,20,12,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {469.08148,-1.83343,-52.85462,468.38159,-2.78827,-52.85462,469.07648,-3.01731,-52.85462,467.95398,-2.19451,-52.85462,467.95709,-1.46283,-52.85462,468.38968,-.8727,-52.85462,469.08649,-.64954,-52.85462,469.78137,-.87858,-52.85462,470.20898,-1.47235,-52.85462,470.20587,-2.20403,-52.85462,469.77328,-2.79415,-52.85462,468.38159,-2.78827,-99.11464,469.07648,-3.01731,-99.11464,467.95398,-2.19451,-99.11464,467.95709,-1.46283,-99.11464,468.38968,-.8727,-99.11466,469.08649,-.64954,-99.11466,469.78137,-.87858,-99.11466,470.20899,-1.47235,-99.11466,470.20587,-2.20403,-99.11466,469.77329,-2.79415,-99.11464,469.08148,-1.83343,-99.11466}))))))
                .addChild(new Transform("dad_Cylinder02")
                  .addChild(new Shape("Cylinder02")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material11_mat").setAmbientIntensity(0.376).setDiffuseColor(.79608,.79608,.79608).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,0,3,1,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,7,6,-1,0,8,7,-1,0,9,8,-1,0,10,9,-1,0,2,10,-1,2,11,12,-1,2,1,11,-1,1,13,11,-1,1,3,13,-1,3,14,13,-1,3,4,14,-1,4,15,14,-1,4,5,15,-1,5,16,15,-1,5,6,16,-1,6,17,16,-1,6,7,17,-1,7,18,17,-1,7,8,18,-1,8,19,18,-1,8,9,19,-1,9,20,19,-1,9,10,20,-1,10,12,20,-1,10,2,12,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {469.08148,-1.83343,-70.73305,466.05566,-5.96127,-70.73305,469.05985,-6.95144,-70.73305,464.20734,-3.39441,-70.73305,464.2207,-.23131,-70.73305,466.09067,2.31983,-70.73305,469.10312,3.28457,-70.73305,472.1073,2.2944,-70.73305,473.95566,-.27246,-70.73305,473.94229,-3.43555,-70.73305,472.07233,-5.9867,-70.73305,466.05566,-5.96127,-73.34702,469.05985,-6.95144,-73.34702,464.20734,-3.39441,-73.34702,464.2207,-.23131,-73.34702,466.09067,2.31983,-73.34702,469.10312,3.28457,-73.34701,472.1073,2.2944,-73.34701,473.95566,-.27246,-73.34701,473.94229,-3.43555,-73.34701,472.07233,-5.9867,-73.34701}))))))
                .addChild(new Transform("dad_Cylinder04")
                  .addChild(new Shape("Cylinder04")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material12_mat").setAmbientIntensity(0.875).setDiffuseColor(.87451,.87451,.87451).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,0,3,1,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,7,6,-1,0,8,7,-1,0,9,8,-1,0,10,9,-1,0,2,10,-1,2,11,12,-1,2,1,11,-1,1,13,11,-1,1,3,13,-1,3,14,13,-1,3,4,14,-1,4,15,14,-1,4,5,15,-1,5,16,15,-1,5,6,16,-1,6,17,16,-1,6,7,17,-1,7,18,17,-1,7,8,18,-1,8,19,18,-1,8,9,19,-1,9,20,19,-1,9,10,20,-1,10,12,20,-1,10,2,12,-1,21,12,11,-1,21,11,13,-1,21,13,14,-1,21,14,15,-1,21,15,16,-1,21,16,17,-1,21,17,18,-1,21,18,19,-1,21,19,20,-1,21,20,12,-1}).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,2,10,-1,11,12,13,-1,11,14,12,-1,15,16,17,-1,15,18,16,-1,18,19,16,-1,18,20,19,-1,20,21,19,-1,20,22,21,-1,23,24,25,-1,23,26,24,-1,26,27,24,-1,26,28,27,-1,29,30,31,-1,29,32,30,-1,32,33,30,-1,32,34,33,-1,34,35,33,-1,34,36,35,-1,37,13,38,-1,37,11,13,-1,39,40,41,-1,39,41,42,-1,39,42,43,-1,39,43,44,-1,39,44,45,-1,39,45,46,-1,39,46,47,-1,39,47,48,-1,39,48,49,-1,39,49,40,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-272.91431,7.73833,-152.36813,-272.80097,7.58092,-152.36813,-272.91513,7.54436,-152.36813,-272.73007,7.67761,-152.36813,-272.72958,7.7975,-152.36813,-272.79962,7.89478,-152.36813,-272.91348,7.93231,-152.36813,-273.02765,7.89574,-152.36813,-273.09854,7.79906,-152.36813,-273.09903,7.67917,-152.36813,-273.02899,7.58189,-152.36813,-272.80097,7.58092,-147.99756,-272.91513,7.54436,-147.99756,-272.73007,7.67761,-147.99756,-272.72958,7.7975,-147.99756,-272.79962,7.89478,-147.99756,-272.91348,7.93231,-147.99756,-273.02765,7.89574,-147.99756,-273.09854,7.79906,-147.99756,-273.09903,7.67917,-147.99756,-273.02899,7.58189,-147.99756,-272.91431,7.73833,-147.99756})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {1.304,.499,1.309,.494,1.31,.499,1.306,.491,1.302,.491,1.299,.494,1.298,.499,1.299,.503,1.302,.506,1.306,.506,1.309,.503,.967,.499,1.094,.494,1.094,.499,.967,.494,1.309,1.033,1.306,.906,1.309,.906,1.306,1.033,1.302,.906,1.302,1.033,1.299,.906,1.299,1.033,2.033,.494,1.906,.499,1.906,.494,2.033,.499,1.906,.503,2.033,.503,1.701,1.033,1.698,.906,1.701,.906,1.698,1.033,1.694,.906,1.694,1.033,1.691,.906,1.691,1.033,.967,.503,1.094,.503,1.696,.499,1.69,.499,1.691,.494,1.694,.491,1.698,.491,1.701,.494,1.702,.499,1.701,.503,1.698,.506,1.694,.506,1.691,.503}))))))
                .addChild(new Transform("dad_Deck")
                  .addChild(new Shape("Deck")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material13_mat").setAmbientIntensity(0.165).setDiffuseColor(.48628,.48628,.48628).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).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,4,9,10,-1,4,10,11,-1,12,11,13,-1,13,11,14,-1,14,11,15,-1,15,11,16,-1,16,11,10,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-500.17806,60.23071,-34.98609,-429.64962,67.73134,-34.98811,-259.06686,83.23423,-34.99533,312.40715,77.99603,-35.0752,311.73728,-80.50111,-35.07527,-259.76056,-80.90902,-34.99533,-430.2062,-63.9649,-34.98809,-500.66869,-55.86842,-34.98606,-500.45821,2.18129,-34.98607,312.40718,77.99604,-35.0752,328.2899,77.92887,-42.84489,327.62004,-80.56824,-42.84497,420.38959,-66.92735,-49.7061,460.61814,-49.77952,-52.58915,498.29758,-2.03958,-55.10253,461.02299,46.01714,-52.58906,420.94083,63.50437,-49.70601}))))))
                .addChild(new Transform("dad_Line10")
                  .addChild(new Shape("Line10")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material14_mat").setAmbientIntensity(0.929).setDiffuseColor(.92941,.92941,.92941).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(getIndexedFaceSet_11_160_coordIndex()).setTexCoordIndex(getIndexedFaceSet_11_160_texCoordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_160_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.734,.045,.734,.061,.74,.044,.734,.017,.734,.024,.738,.024,.011,.105,.011,.088,.011,.133,.011,.086,.011,.133,.055,.044,.033,.066,.063,.046,.063,.035,.063,.013,.054,.013,.063,.014,.062,.104,.062,.133,.186,.086,.186,.133,.602,.086,.602,.134,.063,.086,.186,.069,.602,.077,.186,.049,.602,.047,.186,.022,.602,.023,.186,.002,.602,.008,.063,.022,.724,.046,.724,.071,.724,.023,.724,.01,.699,.023,.699,.01,.699,.046,.699,.074,.7,.086,.722,.086,.681,.086,.681,.077,.681,.046,.033,.087,.033,.105,.681,.023,.681,.009,.681,.134,.681,.161,.614,.148,.054,.022,.73,.135,.705,.135,.738,.172,.71,.167,.033,.133,.734,.045,.734,.024,.011,.088,.011,.105,.011,.133,.063,.046,.063,.035,.063,.014,.062,.133,.062,.104,.602,.086,.602,.134,.063,.086,.602,.077,.602,.047,.186,.049,.602,.023,.063,.022,.724,.046,.724,.023,.699,.023,.699,.046,.699,.074,.7,.086,.681,.077,.681,.086,.681,.046,.033,.087,.033,.105,.681,.023,.681,.134,.614,.148,.681,.161,.705,.135,.71,.167,.033,.133}))))))
                .addChild(new Transform("dad_Object01s")
                  .addChild(new Shape("Object01s")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material20_mat").setAmbientIntensity(0.584).setDiffuseColor(.58431,.58431,.58431).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,12,-1,10,12,8,-1,13,14,15,-1,16,17,14,-1,17,15,14,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,12,-1,10,12,8,-1,13,14,15,-1,16,17,14,-1,17,15,14,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {310.12227,48.8415,-82.10593,310.12228,48.8415,-35.15892,309.66479,-59.41875,-35.15893,309.66475,-59.41875,-82.10592,-246.01607,51.19182,-35.15892,-246.01606,51.19182,-82.10591,-246.4736,-57.06844,-82.10592,-246.47359,-57.06844,-35.15893,204.77733,-38.54048,-82.10592,204.77735,-58.97548,-82.10592,204.77735,-58.97548,-53.11707,204.77732,49.28671,-53.11711,204.7773,49.2867,-82.10592,-134.07211,50.71872,-53.11714,-134.07208,-57.54346,-53.11711,-134.07209,50.71872,-82.10592,-134.07208,-57.54346,-82.10592,-134.07208,28.90891,-82.10592})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.747,.99,.747,.505,.372,.505,.372,.99,.747,.505,.747,.99,.372,.99,.372,.505,.443,.99,.372,.99,.372,.69,.747,.69,.747,.99,.747,.69,.372,.69,.747,.99,.372,.99,.671,.99}))))))
                .addChild(new Transform("dad_Object02")
                  .addChild(new Shape("Object02")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material21_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,9,4,7,-1,7,10,9,-1,11,10,12,-1,12,13,11,-1,10,7,6,-1,6,12,10,-1,14,15,16,-1,16,17,14,-1,12,6,5,-1,5,18,12,-1,19,18,9,-1,9,8,19,-1,18,5,4,-1,4,9,18,-1,0,3,19,-1,19,8,0,-1,3,2,13,-1,13,19,3,-1,2,1,11,-1,11,13,2,-1,1,0,8,-1,8,11,1,-1,15,14,13,-1,13,12,15,-1,14,17,19,-1,19,13,14,-1,17,16,18,-1,18,19,17,-1,16,15,12,-1,12,18,16,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,9,4,7,-1,7,10,9,-1,11,10,12,-1,12,13,11,-1,10,7,6,-1,6,12,10,-1,14,15,16,-1,16,17,14,-1,12,6,5,-1,5,18,12,-1,19,18,9,-1,9,8,19,-1,18,5,4,-1,4,9,18,-1,0,3,19,-1,19,8,0,-1,3,2,13,-1,13,19,3,-1,2,1,11,-1,11,13,2,-1,1,0,8,-1,8,11,1,-1,15,14,13,-1,13,12,15,-1,14,17,19,-1,19,13,14,-1,17,16,18,-1,18,19,17,-1,16,15,12,-1,12,18,16,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-301.13785,-75.79278,-41.50609,-301.13831,-75.90253,-41.50609,-297.54837,-75.91984,-44.81427,-297.54788,-75.81009,-44.81427,-328.43823,-72.75804,-41.50609,-329.59497,-71.68916,-44.81427,-329.6293,-79.81265,-44.81427,-328.46356,-78.75197,-41.50609,-308.95718,-73.77479,-41.50609,-318.86908,-72.54848,-41.50609,-318.89554,-78.81244,-41.50609,-308.97452,-77.87578,-41.50609,-319.72617,-79.85835,-44.81427,-305.28729,-79.39149,-44.81427,-309.01849,-78.05609,-46.58197,-318.89218,-78.01436,-46.58197,-318.87378,-73.66045,-46.58197,-309.00009,-73.70218,-46.58197,-319.69168,-71.70029,-44.81427,-305.25699,-72.22559,-44.81427})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.579,.425,.579,.425,.598,.452,.598,.452,.441,.425,.435,.452,.435,.452,.441,.425,.54,.425,.49,.425,.489,.425,.54,.425,.485,.452,.558,.452,.539,.466,.49,.466,.49,.466,.54,.466,.485,.452,.559,.452}))))))
                .addChild(new Transform("dad_Object03")
                  .addChild(new Shape("Object03")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material22_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,3,2,-1,2,5,4,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-489.29645,-56.04221,-35.27011,-489.29645,-56.04221,-66.97762,-363.34882,-56.57448,-66.97762,-363.34882,-56.57448,-35.27011,-488.83893,52.21734,-35.27011,-362.8913,51.68507,-35.27011,-362.8913,51.68507,-66.97762,-488.83893,52.21734,-66.97763})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.38,.497,.38,.979,.744,.979,.744,.497,.38,.497,.38,.979}))))))
                .addChild(new Transform("dad_Object04")
                  .addChild(new Shape("Object04")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material23_mat").setAmbientIntensity(0).setDiffuseColor(0.0,0.0,0.0).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).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})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-323.32001,1.6387,-119.35341,-323.34546,-4.38325,-119.35341,-328.04669,-3.55658,-119.35341,-331.48142,-1.33783,-119.35341,-332.72931,1.67847,-119.35341,-331.45596,4.68412,-119.35341,-328.00259,6.87375,-119.35341,-323.29456,7.66066,-119.35341,-318.59329,6.83398,-119.35341,-315.1586,4.61524,-119.35341,-313.91071,1.59894,-119.35341,-315.18402,-1.40671,-119.35341,-318.63739,-3.59634,-119.35341}))))))
                .addChild(new Transform("dad_Object05")
                  .addChild(new Shape("Object05")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material24_mat").setAmbientIntensity(0.376).setDiffuseColor(.79608,.79608,.79608).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,8,12,13,-1,13,9,8,-1,10,14,15,-1,15,11,10,-1,10,9,16,-1,16,17,10,-1,8,11,18,-1,18,19,8,-1,20,16,9,-1,21,20,9,-1,21,9,13,-1,22,18,11,-1,23,22,11,-1,23,11,15,-1,12,8,19,-1,12,19,24,-1,12,24,25,-1,14,10,17,-1,14,17,26,-1,14,26,27,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-275.37625,56.18735,-94.7849,-275.4494,38.87509,-94.7849,-259.68075,38.80844,-94.7849,-259.60757,56.1207,-94.7849,-260.02881,-43.55291,-94.78491,-275.79749,-43.48628,-94.7849,-275.87094,-60.8672,-94.7849,-260.10227,-60.93383,-94.78491,-253.51501,51.46077,-51.17083,-253.51501,51.46077,-49.06924,-253.97005,-56.21254,-49.06925,-253.97005,-56.21254,-51.17083,-284.18695,51.5904,-51.17083,-284.18695,51.5904,-49.06925,-284.642,-56.08291,-49.06925,-284.642,-56.08291,-51.17084,-256.5217,38.7951,-49.06924,-256.86975,-43.56626,-49.06924,-256.86978,-43.56626,-51.17083,-256.52173,38.7951,-51.17083,-257.26541,38.79824,-49.06924,-284.24054,38.91224,-49.06925,-257.72452,-43.56265,-51.17083,-284.58862,-43.44912,-51.17084,-257.37643,38.79871,-51.17083,-284.24054,38.91224,-51.17083,-257.61346,-43.56312,-49.06924,-284.58859,-43.44912,-49.06925}))))))
                .addChild(new Transform("dad_Object09")
                  .addChild(new Shape("Object09")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material25_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-358.29566,52.07139,-35.1838,-358.29566,52.07139,-63.95433,-358.75387,-56.35823,-63.95433,-358.75387,-56.35823,-35.18379})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.014,.219,.014,.458,.301,.458,.301,.219}))))))
                .addChild(new Transform("dad_Object10")
                  .addChild(new Shape("Object10")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material26_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,9,4,7,-1,7,10,9,-1,11,10,12,-1,12,13,11,-1,10,7,6,-1,6,12,10,-1,14,15,16,-1,16,17,14,-1,12,6,5,-1,5,18,12,-1,19,18,9,-1,9,8,19,-1,18,5,4,-1,4,9,18,-1,0,3,19,-1,19,8,0,-1,3,2,13,-1,13,19,3,-1,2,1,11,-1,11,13,2,-1,1,0,8,-1,8,11,1,-1,15,14,13,-1,13,12,15,-1,14,17,19,-1,19,13,14,-1,17,16,18,-1,18,19,17,-1,16,15,12,-1,12,18,16,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,9,4,7,-1,7,10,9,-1,11,10,12,-1,12,13,11,-1,10,7,6,-1,6,12,10,-1,14,15,16,-1,16,17,14,-1,12,6,5,-1,5,18,12,-1,19,18,9,-1,9,8,19,-1,18,5,4,-1,4,9,18,-1,0,3,19,-1,19,8,0,-1,3,2,13,-1,13,19,3,-1,2,1,11,-1,11,13,2,-1,1,0,8,-1,8,11,1,-1,15,14,13,-1,13,12,15,-1,14,17,19,-1,19,13,14,-1,17,16,18,-1,18,19,17,-1,16,15,12,-1,12,18,16,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-301.13785,74.22355,-41.50609,-301.13831,74.1138,-41.50609,-297.54837,74.09649,-44.81427,-297.54788,74.20624,-44.81427,-328.43823,77.25829,-41.50609,-329.59497,78.32717,-44.81427,-329.6293,70.20367,-44.81427,-328.46356,71.26436,-41.50609,-308.95718,76.24154,-41.50609,-318.86908,77.46784,-41.50609,-318.89554,71.20389,-41.50609,-308.97452,72.14055,-41.50609,-319.72617,70.15798,-44.81427,-305.28729,70.62484,-44.81427,-309.01849,71.96024,-46.58197,-318.89218,72.00197,-46.58197,-318.87378,76.35587,-46.58197,-309.00009,76.31415,-46.58197,-319.69168,78.31604,-44.81427,-305.25699,77.79074,-44.81427})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.579,.425,.579,.425,.598,.452,.598,.452,.441,.425,.435,.452,.435,.452,.441,.425,.54,.425,.49,.425,.489,.425,.54,.425,.485,.452,.558,.452,.539,.466,.49,.466,.49,.466,.54,.466,.485,.452,.559,.452}))))))
                .addChild(new Transform("dad_Pyramid03")
                  .addChild(new Shape("Pyramid03")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material27_mat").setAmbientIntensity(0.729).setDiffuseColor(.78824,.78824,.78824).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,7,8,9,-1,4,7,9,-1,4,9,10,-1,4,10,11,-1,2,4,11,-1,2,11,12,-1,2,12,13,-1,3,2,13,-1,3,13,14,-1,3,14,15,-1,15,8,7,-1,3,15,7,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,2,1,4,-1,4,3,2,-1,3,5,6,-1,2,3,6,-1,2,6,7,-1,2,7,8,-1,2,2,8,-1,2,8,7,-1,2,7,9,-1,3,2,9,-1,3,9,10,-1,3,10,11,-1,11,5,3,-1,3,11,3,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-283.4219,29.92219,-115.65117,-283.45065,23.12102,-115.65117,-286.24014,25.93418,-131.15158,-286.23507,27.13272,-131.15158,-287.43865,25.93925,-131.15158,-290.25183,23.14977,-115.65117,-290.22308,29.95094,-115.65117,-287.43359,27.13778,-131.15158,-288.66641,28.41562,-131.15158,-289.44817,26.55061,-131.15158,-288.68218,24.67906,-131.15158,-286.81719,23.8973,-131.15158,-284.94564,24.66327,-131.15158,-284.16387,26.52828,-131.15158,-284.92983,28.39983,-131.15158,-286.79485,29.18159,-131.15158})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.752,.028,.872,.028,.823,.671,.802,.671,.752,.028,.779,.671,.812,.671,.845,.671,.858,.671,.812,.671,.779,.671,.766,.671}))))))
                .addChild(new Transform("dad_sides")
                  .addChild(new Shape("sides")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material28_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,0,3,-1,4,3,5,-1,4,5,6,-1,4,6,7,-1,8,9,10,-1,8,10,11,-1,8,11,12,-1,13,8,12,-1,13,12,14,-1,13,14,15,-1}).setTexCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,4,0,3,-1,4,3,5,-1,4,5,6,-1,4,6,7,-1,8,9,6,-1,8,6,5,-1,8,5,10,-1,11,8,10,-1,11,10,2,-1,11,2,12,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {204.77735,-58.97548,-53.11707,204.77735,-58.97548,-82.10592,309.66476,-59.41875,-82.10593,309.66482,-59.41875,-35.15893,-134.07208,-57.54346,-53.1171,-246.47359,-57.06844,-35.15892,-246.47359,-57.06844,-82.10592,-134.07208,-57.54346,-82.10592,-134.07211,50.71872,-53.11714,-134.07211,50.71872,-82.10592,-246.01607,51.19182,-82.10592,-246.01607,51.19182,-35.15893,310.12228,48.8415,-35.15893,204.77732,49.28671,-53.11711,310.12228,48.8415,-82.10592,204.77731,49.2867,-82.10592})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.663,.812,.663,.943,.73,.943,.73,.732,.444,.812,.372,.732,.372,.943,.444,.943,.444,.812,.444,.943,.73,.732,.662,.812,.662,.943}))))))
                .addChild(new Transform("dad_Sphere01")
                  .addChild(new Shape("Sphere01")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material29_mat").setAmbientIntensity(0.376).setDiffuseColor(.79608,.79608,.79608).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).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,1,-1,1,11,12,-1,1,12,2,-1,2,12,13,-1,2,13,3,-1,3,13,14,-1,3,14,4,-1,4,14,15,-1,4,15,5,-1,5,15,16,-1,5,16,6,-1,6,16,17,-1,6,17,7,-1,7,17,18,-1,7,18,8,-1,8,18,19,-1,8,19,9,-1,9,19,20,-1,9,20,10,-1,10,20,11,-1,10,11,1,-1,11,21,22,-1,11,22,12,-1,12,22,23,-1,12,23,13,-1,13,23,24,-1,13,24,14,-1,14,24,25,-1,14,25,15,-1,15,25,26,-1,15,26,16,-1,16,26,27,-1,16,27,17,-1,17,27,28,-1,17,28,18,-1,18,28,29,-1,18,29,19,-1,19,29,30,-1,19,30,20,-1,20,30,21,-1,20,21,11,-1,21,31,32,-1,21,32,22,-1,22,32,33,-1,22,33,23,-1,23,33,34,-1,23,34,24,-1,24,34,35,-1,24,35,25,-1,25,35,36,-1,25,36,26,-1,26,36,37,-1,26,37,27,-1,27,37,38,-1,27,38,28,-1,28,38,39,-1,28,39,29,-1,29,39,40,-1,29,40,30,-1,30,40,31,-1,30,31,21,-1,41,32,31,-1,41,33,32,-1,41,34,33,-1,41,35,34,-1,41,36,35,-1,41,37,36,-1,41,38,37,-1,41,39,38,-1,41,40,39,-1,41,31,40,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_235_point())))))
                .addChild(new Transform("dad_SuperStruc")
                  .addChild(new Shape("SuperStruc")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material30_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,4,6,7,-1,7,8,9,-1,4,7,9,-1,10,11,12,-1,12,13,10,-1,14,15,16,-1,16,17,14,-1,18,19,6,-1,18,6,5,-1,18,5,20,-1,18,20,21,-1,22,23,24,-1,25,22,24,-1,26,27,28,-1,29,26,28,-1,24,29,28,-1,24,28,30,-1,25,24,30,-1,31,32,33,-1,34,35,36,-1,36,37,38,-1,34,36,38,-1,34,38,39,-1,33,34,39,-1,31,33,39,-1,40,41,42,-1,42,43,40,-1,44,45,46,-1,46,47,44,-1,48,49,50,-1,50,51,48,-1,44,52,53,-1,44,53,54,-1,45,44,54,-1,55,56,47,-1,47,46,55,-1,57,58,59,-1,59,60,57,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,4,6,7,-1,7,8,9,-1,4,7,9,-1,10,11,12,-1,12,13,10,-1,14,15,16,-1,16,17,14,-1,18,14,6,-1,18,6,5,-1,18,5,0,-1,18,0,19,-1,20,21,22,-1,19,20,22,-1,23,24,25,-1,26,23,25,-1,22,26,25,-1,22,25,27,-1,19,22,27,-1,28,29,30,-1,31,32,33,-1,33,34,35,-1,31,33,35,-1,31,35,36,-1,30,31,36,-1,28,30,36,-1,37,38,39,-1,39,40,37,-1,41,42,43,-1,43,44,41,-1,45,3,46,-1,46,47,45,-1,41,48,49,-1,41,49,50,-1,42,41,50,-1,51,52,44,-1,44,43,51,-1,53,54,55,-1,55,56,53,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_242_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.047,.46,.002,.463,.002,.412,.047,.412,.059,.46,.059,.46,.251,.46,.251,.46,.251,.5,.059,.5,.047,.161,.263,.161,.263,.221,.047,.221,.263,.46,.263,.412,.309,.412,.309,.463,.263,.229,.047,.229,.047,.239,.047,.283,.013,.283,.047,.162,.047,.221,.014,.221,.013,.162,.014,.229,.263,.221,.263,.162,.297,.162,.297,.283,.263,.283,.263,.239,.263,.229,.296,.229,.296,.221,.263,.46,.309,.463,.309,.412,.263,.412,.251,.459,.258,.283,.18,.283,.059,.459,.047,.46,.002,.412,.002,.463,.251,.46,.263,.46,.263,.283,.047,.283,.047,.46,.251,.5,.251,.46,.059,.46,.059,.5}))))))
                .addChild(new Transform("dad_SupStructS")
                  .addChild(new Shape("SupStructS")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material31_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,12,13,14,-1,14,15,12,-1,16,17,18,-1,18,19,16,-1,9,20,17,-1,17,21,9,-1,22,23,24,-1,24,25,22,-1,16,21,17,-1,26,27,28,-1,28,29,30,-1,26,28,30,-1,9,8,20,-1,31,32,33,-1,34,31,33,-1,35,34,33,-1,36,37,38,-1,36,38,39,-1,28,40,41,-1,29,28,41,-1,42,29,41,-1,43,44,45,-1,43,45,46,-1,43,46,47,-1,46,45,35,-1,46,35,48,-1,49,46,48,-1,50,51,42,-1,42,41,50,-1,35,33,52,-1,52,48,35,-1,53,54,55,-1,53,55,56,-1,57,58,42,-1,57,42,51,-1,59,57,51,-1,60,61,62,-1,62,63,60,-1,64,65,66,-1,66,67,64,-1,15,14,24,-1,15,24,23,-1,10,44,43,-1,43,11,10,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,12,13,14,-1,14,15,12,-1,16,17,18,-1,18,19,16,-1,9,20,17,-1,17,21,9,-1,22,23,24,-1,24,25,22,-1,16,21,17,-1,26,27,28,-1,28,0,29,-1,26,28,29,-1,9,8,20,-1,18,30,31,-1,19,18,31,-1,32,19,31,-1,33,34,35,-1,33,35,36,-1,28,37,38,-1,0,28,38,-1,1,0,38,-1,39,10,40,-1,39,40,41,-1,39,41,42,-1,41,40,32,-1,41,32,43,-1,44,41,43,-1,45,46,1,-1,1,38,45,-1,32,31,47,-1,47,43,32,-1,48,49,50,-1,48,50,51,-1,52,53,1,-1,52,1,46,-1,54,52,46,-1,55,56,57,-1,57,48,55,-1,58,59,60,-1,60,47,58,-1,15,14,24,-1,15,24,23,-1,10,10,39,-1,39,11,10,-1})
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_250_point()))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.295,.414,.258,.414,.258,.463,.295,.463,.295,.463,.258,.463,.258,.414,.295,.414,.302,.46,.295,.463,.295,.46,.302,.46,.302,.46,.295,.46,.295,.464,.31,.498,.258,.463,.186,.498,.186,.46,.258,.46,.31,.498,.294,.463,.186,.46,.186,.498,.258,.463,.258,.46,.302,.46,.302,.236,.3,.236,.295,.46,.186,.288,.221,.288,.258,.414,.237,.171,.302,.171,.3,.228,.237,.228,.237,.236,.237,.246,.302,.46,.295,.414,.3,.236,.302,.236,.237,.246,.237,.236,.237,.288,.221,.288,.237,.288,.237,.171,.237,.228,.3,.228,.302,.171,.186,.46,.258,.46,.186,.288,.064,.171,.064,.288,.237,.288,.064,.288,.064,.171,.237,.171}))))))
                .addChild(new Transform("dad_Top")
                  .addChild(new Shape("Top")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material32_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,2,-1,5,6,7,-1,8,6,9,-1,9,10,8,-1,11,12,13,-1,14,11,13,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,1,4,2,-1,5,6,7,-1,8,6,5,-1,5,9,8,-1,3,4,10,-1,7,3,10,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-246.47359,-57.06844,-82.10592,-246.01607,51.19182,-82.10592,-134.07208,28.90891,-82.10592,-134.07208,-57.54346,-82.10592,-134.07211,50.71872,-82.10592,204.77732,-38.54047,-82.10592,309.66476,-59.41875,-82.10593,204.77735,-58.97548,-82.10592,310.12228,48.8415,-82.10592,204.77734,-38.54048,-82.10592,204.77732,49.2867,-82.10592,-134.07208,-57.54346,-53.1171,-134.07211,50.71872,-53.11714,204.77732,49.28671,-53.11711,204.77735,-58.97548,-53.11707})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.002,.5,.002,.996,.073,.896,.073,.5,.073,.996,.288,.593,.354,.5,.288,.5,.354,.996,.288,.996,.288,.996}))))))
                .addChild(new Transform("dad_Top01")
                  .addChild(new Shape("Top01")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material33_mat").setAmbientIntensity(0.631).setDiffuseColor(.81569,.81569,.81569).setShininess(0.010).setSpecularColor(.79608,.79608,.79608)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-363.34882,-56.57448,-66.97762,-489.29645,-56.04221,-66.97762,-488.83893,52.21734,-66.97763,-362.8913,51.68507,-66.97762})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.744,.521,.379,.521,.379,.997,.744,.997}))))))
                .addChild(new Transform("dad_TowerTop")
                  .addChild(new Shape("TowerTop")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("material34_mat").setAmbientIntensity(0.376).setDiffuseColor(.79608,.79608,.79608).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(getIndexedFaceSet_11_273_coordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_273_point())))))
                .addChild(new Transform("dad_TowSide1")
                  .addChild(new Shape("TowSide1")
                    .setAppearance(new Appearance()
                      .setTexture(new ImageTexture().setUSE("CNTSHIPO_TEX"))
                      .setMaterial(new Material("material35_mat").setAmbientIntensity(0.729).setDiffuseColor(.78824,.78824,.78824).setShininess(0.100).setSpecularColor(.89804,.89804,.89804)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.178).setCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,4,5,6,-1,6,7,4,-1,8,9,10,-1,10,11,8,-1,12,13,14,-1,14,15,12,-1}).setTexCoordIndex(new int[] {0,1,2,-1,2,3,0,-1,0,4,5,-1,5,6,0,-1,7,8,9,-1,9,10,7,-1,7,11,12,-1,12,13,7,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-286.24002,-25.24404,-131.15157,-283.45065,-28.0572,-115.65115,-290.2518,-28.02845,-115.6512,-287.43854,-25.23897,-131.15158,-286.23496,-24.04551,-131.15157,-287.43347,-24.04044,-131.15158,-290.22305,-21.22728,-115.6512,-283.4219,-21.25602,-115.65115,-286.24002,25.93418,-131.15159,-283.45065,23.12103,-115.65116,-290.2518,23.14977,-115.65121,-287.43854,25.93925,-131.15159,-286.23495,27.13271,-131.15159,-287.43347,27.13778,-131.15159,-290.22308,29.95095,-115.65121,-283.4219,29.9222,-115.65116})))
                      .setTexCoord(new TextureCoordinate().setPoint(new MFVec2f(new double[] {.824,.672,.874,.037,.752,.037,.802,.672,.802,.672,.752,.037,.874,.037,.82,.672,.87,.037,.748,.037,.798,.672,.798,.672,.748,.037,.87,.037}))))))))))))
    .addChild(new Viewpoint("VP1").setDescription("Orange Container Ship Starboard").setPosition(0.0,5.0,310.0))
    .addChild(new Viewpoint("VP2").setDescription("Orange Container Ship Front").setOrientation(0.0,1.0,0.0,1.571).setPosition(310.0,5.0,0.0))
    .addChild(new Viewpoint("VP3").setDescription("Orange Container Ship Port").setOrientation(0.0,1.0,0.0,3.142).setPosition(0.0,5.0,-310.0))
    .addChild(new Viewpoint("VP4").setDescription("Orange Container Ship Back").setOrientation(0.0,1.0,0.0,-1.571).setPosition(-310.0,5.0,0.0))
    .addChild(new Viewpoint("VP5").setDescription("Orange Container Ship Top").setOrientation(1.0,0.0,0.0,-1.571).setPosition(0.0,310.0,0.0))
    .addChild(new Viewpoint("VP6").setDescription("Orange Container Ship Bottom").setOrientation(1.0,0.0,0.0,1.571).setPosition(0.0,-310.0,0.0))
    .addChild(new Viewpoint("VP7").setDescription("Orange Container Ship Three-Quarter").setFieldOfView(0.60243).setOrientation(0.124491,-0.945607,-0.300549,-2.39496).setPosition(310.0,310.0,-310.0)));
            }
            catch (Exception ex)
            {       
                System.err.println ("*** Further hints on X3DJSAIL errors and exceptions at");
                System.err.println ("*** https://www.web3d.org/specifications/java/X3DJSAIL.html");
                throw (ex);
            }
	}
	// end of initialize() method




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


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






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


		/** Large attribute array: Coordinate point field, scene-graph level=12, element #80, 168 total numbers made up of 56 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_80_point()
		{
			MFVec3f Coordinate_12_80_point = new MFVec3f(new double[] {-260.00982,-39.15092,-107.17299,-260.10226,-61.02026,-106.84341,-275.87094,-60.95362,-106.84341,-275.7785,-39.08401,-106.84341,-260.04654,34.23479,-106.84341,-275.46839,34.29996,-106.84341,-275.37626,56.10092,-106.84341,-259.60758,56.03427,-106.84341,-259.69971,34.23333,-106.81056,-275.44941,38.78866,-106.16502,-275.46839,34.29996,-106.16502,-260.0288,-43.63934,-106.16502,-260.00985,-39.15712,-106.17177,-253.36348,-39.17873,-115.6154,-306.67129,-38.95346,-115.6154,-306.36118,34.43051,-115.6154,-253.05336,34.20524,-115.6154,-256.85357,-39.16398,-106.16502,-256.85092,-39.164,-106.17942,-306.3422,38.91922,-106.16502,-306.36118,34.43051,-106.16502,-306.36118,34.43051,-105.79398,-257.26542,38.71181,-49.06924,-256.52182,38.70867,-34.99533,-256.52167,38.70867,-49.06924,-275.79748,-43.5727,-106.16502,-275.77853,-39.0883,-106.16949,-259.68076,38.72201,-106.16501,-259.69971,34.23333,-106.16501,-256.86975,-43.65269,-49.06924,-256.8699,-43.65269,-34.99533,-257.61346,-43.64955,-49.06924,-306.36118,34.43052,-106.16502,-306.3422,38.91922,-106.16502,-275.44941,38.78866,-106.16502,-275.46839,34.29996,-106.16502,-306.69027,-43.44215,-106.16502,-306.67129,-38.95346,-106.16502,-256.85357,-39.16398,-106.16502,-256.8699,-43.65269,-106.16502,-260.0288,-43.63934,-106.16502,-260.00988,-39.15712,-106.17177,-291.72741,-43.50539,-63.95432,-284.58862,-43.53555,-63.95432,-284.64358,-56.54373,-63.95432,-306.69027,-43.44215,-63.95432,-358.75387,-56.23054,-63.95432,-306.68252,-41.60613,-63.95432,-358.29566,52.19908,-63.95432,-306.55566,-11.58967,-63.95432,-306.34223,38.91922,-63.95432,-284.18534,51.88588,-63.95432,-284.24054,38.82581,-63.95432,-291.37934,38.85598,-63.95432,-306.67129,-38.95346,-105.79399,-306.36118,34.43052,-105.79399});
			return Coordinate_12_80_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #107, 135 total numbers made up of 45 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_107_point()
		{
			MFVec3f Coordinate_12_107_point = new MFVec3f(new double[] {-272.51184,.53474,-148.13452,-272.17664,.48344,-145.67037,-272.26425,-10.07498,-147.24269,-273.73569,-10.06876,-147.24269,-273.38138,.53842,-145.62029,-273.38138,.53842,-148.13452,-260.42359,.42878,-148.13452,-272.50549,2.0408,-148.13452,-272.15692,2.07929,-145.673,-261.55563,1.97858,-147.24269,-284.32742,2.07482,-147.24269,-273.375,2.04448,-145.66582,-273.375,2.04448,-148.13452,-285.47256,.53465,-148.13452,-273.70819,13.84193,-148.13452,-272.08963,13.83509,-148.13452,-272.16803,12.69681,-147.24269,-273.375,2.04448,-145.62032,-273.81296,1.29328,-148.13452,-272.07391,1.28593,-148.13452,-260.41675,2.04734,-148.13452,-273.81406,-11.20704,-148.13452,-272.07391,1.28593,-145.68509,-272.50549,2.0408,-121.75259,-272.50549,2.0408,-145.62068,-272.51184,.53474,-145.62068,-272.51184,.53474,-121.75259,-285.4657,2.15321,-148.13452,-273.81296,1.29328,-148.87436,-272.50549,2.0408,-148.87436,-272.51184,.53474,-148.87436,-273.375,2.04447,-121.75259,-272.07391,1.28593,-121.75259,-273.81296,1.29328,-145.68471,-273.81295,1.29328,-121.75259,-273.81296,1.29328,-145.68471,-261.56186,.50716,-147.24269,-284.33365,.6034,-147.24269,-273.63943,12.70303,-147.24269,-272.1955,-11.21388,-148.13452,-273.38138,.53842,-148.13452,-273.38137,.53841,-121.75259,-272.07391,1.28593,-148.13452,-272.07391,1.28593,-148.87436,-272.07391,1.28593,-145.68509});
			return Coordinate_12_107_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #126, 108 total numbers made up of 36 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_126_point()
		{
			MFVec3f Coordinate_12_126_point = new MFVec3f(new double[] {-323.34546,-4.38325,-119.35341,-323.35516,-6.67982,-115.70641,-329.8493,-5.53788,-115.70641,-328.04669,-3.55658,-119.35341,-334.5939,-2.47298,-115.70641,-331.48142,-1.33783,-119.35341,-336.31769,1.69364,-115.70641,-332.72931,1.67847,-119.35341,-334.55875,5.84554,-115.70641,-331.45596,4.68412,-119.35341,-329.78839,8.87022,-115.7064,-328.00259,6.87375,-119.35341,-323.28485,9.95722,-115.70641,-323.29456,7.66066,-119.35341,-316.79071,8.81529,-115.70641,-318.59329,6.83398,-119.35341,-312.04608,5.75039,-115.7064,-315.1586,4.61524,-119.35341,-310.3223,1.58377,-115.70641,-313.91071,1.59894,-119.35341,-312.08124,-2.56813,-115.7064,-315.18402,-1.40671,-119.35341,-316.85159,-5.59281,-115.70641,-318.63739,-3.59634,-119.35341,-331.5734,-11.96903,-64.23311,-342.22376,-10.09625,-64.23311,-350.00494,-5.06982,-64.23311,-352.83194,1.76343,-64.23311,-349.94727,8.57255,-64.23311,-342.1239,13.53303,-64.23311,-331.45807,15.31571,-64.23311,-320.80768,13.44294,-64.2331,-313.02652,8.41651,-64.2331,-310.19953,1.58325,-64.23311,-313.08417,-5.22587,-64.23311,-320.90756,-10.18635,-64.23311});
			return Coordinate_12_126_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #160, 720 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_11_160_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_160_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_160_coordIndex_1()));
			return IndexedFaceSet_11_160_coordIndex;
		}
		/** Large attribute array: IndexedFaceSet texCoordIndex field, scene-graph level=11, element #160, 720 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_11_160_texCoordIndex()
		{
			MFInt32 IndexedFaceSet_11_160_texCoordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_160_texCoordIndex_1()));
			return IndexedFaceSet_11_160_texCoordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #160, 300 total numbers made up of 100 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_160_point()
		{
			MFVec3f Coordinate_12_160_point = new MFVec3f(new double[] {493.85459,-16.15761,11.43148,493.81778,-2.07405,3.37297,502.21653,-2.05612,12.21735,493.81446,-2.02061,26.60314,493.8827,-12.90815,22.93093,498.37208,-2.03988,22.69119,-500.65463,-50.89476,-20.10359,-500.27902,-27.46025,-10.95561,-500.45822,2.18129,-34.98608,-499.96878,2.17922,-9.71557,-500.66873,-55.86843,-34.98607,-440.07867,1.92612,12.19562,-470.23953,2.05358,.4765,-429.64501,-30.3293,11.11651,-429.71975,-1.55031,16.88153,-429.70525,1.88229,28.26349,-441.53936,1.93229,28.53947,-429.71905,-1.38545,27.83921,-429.98334,-59.02299,-19.53358,-430.20621,-63.9649,-34.9881,-259.66983,-76.4026,-9.78117,-259.76057,-80.90903,-34.99535,311.78776,-65.41096,-9.94171,311.73734,-80.50111,-35.07528,-429.9122,-58.45215,-10.00213,-259.68006,-73.32098,-.90866,311.57594,-62.51057,-5.19405,-259.63605,-59.28041,9.57905,311.69166,-36.9317,10.70824,-259.54751,-29.70789,23.68816,311.7162,-28.94603,23.39802,-259.4321,1.16269,34.38301,311.84462,-.735,31.02444,-429.71935,-1.45719,23.70843,480.20966,-24.85305,10.84769,480.36927,-1.96379,-1.80538,480.25123,-21.31034,23.34469,480.3419,-1.96368,29.96685,445.73255,-25.92565,23.34726,445.88972,-1.81808,30.18454,445.77579,-28.68559,10.98601,445.84958,-11.96982,-3.76536,446.16788,-14.59973,-9.86565,477.26132,-1.95066,-9.86037,420.67633,-25.00285,-9.86993,420.70047,-19.28892,-5.19325,420.6616,-28.48917,10.9815,-470.36465,-46.38466,-10.72915,-470.30182,-54.45568,-19.97648,420.66017,-28.82474,23.34487,420.77476,-1.71194,30.3572,420.58469,-46.68734,-35.07528,420.38968,-66.92734,-49.70611,327.62009,-80.56823,-42.84498,-440.94766,1.92979,23.79413,487.59436,-1.99432,-35.58665,453.87237,-28.40581,-35.62,498.29766,-2.03956,-55.10254,460.61819,-49.77951,-52.58916,-470.37537,-59.36995,-34.98694,493.97407,12.11554,11.43158,493.97471,8.86596,22.93103,-500.0285,31.82026,-10.95563,-500.20602,55.2571,-20.10361,-500.17807,60.23073,-34.9861,-429.37274,34.0922,11.11649,-429.69073,5.31487,16.88152,-429.69143,5.15003,27.8392,-259.01423,78.72722,-9.78117,-429.64963,67.73136,-34.98812,-429.46854,62.78773,-19.53359,-259.06684,83.23424,-34.99534,312.33006,62.90599,-9.94164,312.40717,77.99605,-35.0752,-259.05048,75.64579,-.90865,-429.40222,62.21631,-10.00215,312.09373,60.00748,-5.19397,311.99324,34.42855,10.70831,-259.12515,61.60535,9.57905,311.9503,26.44295,23.39809,-259.28659,32.03314,23.68817,-429.69112,5.22176,23.70841,480.40311,20.92599,10.84778,480.41474,17.38306,23.34478,445.93635,22.28996,23.34735,446.00288,25.04944,10.9861,445.9354,8.33364,-3.76527,446.27591,10.96076,-9.86556,420.84903,15.86504,-5.19316,420.8732,21.57897,-9.86985,420.88795,25.06529,10.98159,-469.95523,50.49116,-10.72917,-469.82419,58.56134,-19.9765,420.88935,25.40086,23.34495,420.96484,43.26346,-35.07519,328.28992,77.92888,-42.84491,420.94092,63.50439,-49.70602,454.09683,24.70124,-35.61991,461.02307,46.01716,-52.58907,-469.8562,63.47606,-34.98696});
			return Coordinate_12_160_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #235, 126 total numbers made up of 42 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_235_point()
		{
			MFVec3f Coordinate_12_235_point = new MFVec3f(new double[] {-267.61829,1.31726,-148.79219,-266.46628,1.31239,-149.1665,-266.68341,1.99046,-149.1665,-267.25766,2.41138,-149.1665,-267.96963,2.41439,-149.1665,-268.54742,1.99833,-149.1665,-268.77029,1.32212,-149.1665,-268.55316,.64406,-149.1665,-267.97891,.22313,-149.1665,-267.26694,.22012,-149.1665,-266.68915,.63618,-149.1665,-265.75427,1.30938,-150.14648,-266.10565,2.40652,-150.14648,-267.03479,3.08759,-150.14648,-268.1868,3.09246,-150.14648,-269.12167,2.41926,-150.14648,-269.4823,1.32513,-150.14648,-269.13092,.228,-150.14648,-268.20178,-.45308,-150.14648,-267.04977,-.45795,-150.14648,-266.1149,.21525,-150.14649,-265.75427,1.30938,-151.35779,-266.10565,2.40652,-151.35779,-267.03479,3.08759,-151.35779,-268.1868,3.09246,-151.35779,-269.12167,2.41926,-151.35779,-269.4823,1.32513,-151.35779,-269.13092,.228,-151.35779,-268.20178,-.45308,-151.35779,-267.04977,-.45795,-151.35779,-266.1149,.21525,-151.35779,-266.46628,1.31239,-152.33777,-266.68341,1.99046,-152.33777,-267.25766,2.41138,-152.33777,-267.96963,2.41439,-152.33777,-268.54742,1.99833,-152.33777,-268.77029,1.32212,-152.33777,-268.55316,.64406,-152.33777,-267.97891,.22313,-152.33777,-267.26694,.22012,-152.33777,-266.68915,.63618,-152.33777,-267.61829,1.31726,-152.71208});
			return Coordinate_12_235_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #242, 183 total numbers made up of 61 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_242_point()
		{
			MFVec3f Coordinate_12_242_point = new MFVec3f(new double[] {-259.68073,38.72203,-106.16501,-259.60757,56.03429,-106.8434,-259.60757,56.03429,-94.7849,-259.68073,38.72203,-94.7849,-256.5408,34.21999,-106.17942,-256.54346,34.22,-106.16501,-256.85358,-39.164,-106.16502,-256.85092,-39.16401,-106.17942,-253.3635,-39.17874,-115.6154,-253.05336,34.20524,-115.6154,-256.52182,38.70868,-34.99533,-256.8699,-43.6527,-34.99533,-256.86975,-43.6527,-49.06924,-256.52167,38.70868,-49.06923,-260.02881,-43.63935,-106.16502,-260.02881,-43.63935,-94.78491,-260.10226,-61.02028,-94.78491,-260.10226,-61.02028,-106.84341,-256.86978,-43.6527,-51.17083,-256.8699,-43.6527,-106.16502,-256.52182,38.70868,-106.16501,-256.52173,38.70868,-51.17083,-284.24054,38.82582,-53.53303,-284.24054,38.82582,-63.95432,-284.18536,51.8859,-63.95432,-284.24054,38.82582,-51.17083,-284.24054,38.82582,-35.18378,-284.24054,38.82582,-49.06924,-284.18695,51.50399,-49.06924,-284.18533,51.8859,-35.18378,-284.18695,51.50399,-51.17083,-284.58862,-43.53556,-49.06924,-284.58862,-43.53556,-35.18377,-284.64358,-56.54375,-35.18377,-284.64358,-56.54374,-63.95432,-284.58862,-43.53556,-63.95432,-284.58862,-43.53556,-53.53303,-284.58862,-43.53556,-51.17084,-284.642,-56.16936,-51.17084,-284.642,-56.16936,-49.06924,-275.79748,-43.5727,-106.16502,-275.87094,-60.95362,-106.84341,-275.87094,-60.95362,-94.7849,-275.79748,-43.5727,-94.7849,-306.67129,-38.95345,-105.79399,-306.68252,-41.60612,-63.95432,-306.55566,-11.58966,-63.95432,-306.36117,34.43052,-105.79399,-275.4494,38.78866,-106.16502,-275.4494,38.78866,-94.7849,-275.37625,56.10092,-94.7849,-275.37625,56.10092,-106.84341,-306.67129,-38.95345,-106.16502,-306.69028,-43.44214,-106.16502,-306.69028,-43.44214,-63.95432,-306.34219,38.91922,-63.95432,-306.34219,38.91922,-106.16502,-306.67129,-38.95345,-115.6154,-306.67129,-38.95345,-106.16502,-306.36117,34.43052,-106.16502,-306.36117,34.43052,-115.6154});
			return Coordinate_12_242_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #250, 204 total numbers made up of 68 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_250_point()
		{
			MFVec3f Coordinate_12_250_point = new MFVec3f(new double[] {-260.10226,-61.02026,-94.78491,-275.87094,-60.95362,-94.7849,-275.87094,-60.95362,-106.84341,-260.10226,-61.02026,-106.84341,-259.60757,56.03427,-106.84341,-275.37625,56.10092,-106.84341,-275.37625,56.10092,-94.7849,-259.60757,56.03427,-94.7849,-256.5408,34.21998,-106.17942,-259.69971,34.23333,-106.81056,-259.69971,34.23333,-106.16501,-256.54346,34.21999,-106.16501,-256.85092,-39.164,-106.17942,-260.00986,-39.15712,-106.17177,-260.00986,-39.15092,-107.17299,-253.36348,-39.17873,-115.6154,-275.46838,34.29996,-106.84341,-306.36117,34.43052,-115.6154,-306.36117,34.43052,-106.16502,-275.46838,34.29996,-106.16502,-253.05336,34.20524,-115.6154,-260.04654,34.23479,-106.84341,-306.67129,-38.95345,-106.16502,-306.67129,-38.95345,-115.6154,-275.7785,-39.08401,-106.84341,-275.77853,-39.0883,-106.16949,-256.8699,-43.65269,-106.16502,-256.86978,-43.65269,-51.17083,-257.72452,-43.64908,-51.17083,-260.02881,-43.63934,-94.78491,-260.02881,-43.63934,-106.16502,-306.34219,38.91922,-106.16502,-306.34222,38.91922,-63.95432,-291.37933,38.85598,-63.95432,-275.4494,38.78866,-106.16502,-275.4494,38.78866,-94.7849,-284.24054,38.82581,-35.18378,-256.52182,38.70867,-34.99533,-257.26541,38.71181,-49.06924,-284.24054,38.82581,-49.06924,-284.58862,-43.53555,-51.17084,-284.58862,-43.53555,-53.53303,-275.79748,-43.5727,-94.7849,-256.52182,38.70867,-106.16501,-259.68076,38.72201,-106.16501,-259.68073,38.72201,-94.7849,-257.37643,38.71228,-51.17083,-256.52173,38.70867,-51.17083,-284.24054,38.82581,-53.53303,-284.24054,38.82581,-51.17083,-284.58862,-43.53555,-63.95432,-291.72742,-43.50538,-63.95432,-284.24054,38.82581,-63.95432,-284.58862,-43.53555,-35.18378,-284.58862,-43.53555,-49.06924,-257.61346,-43.64955,-49.06924,-256.8699,-43.65269,-34.99533,-306.69028,-43.44214,-106.16502,-275.79748,-43.5727,-106.16502,-306.69028,-43.44214,-63.95432,-358.7539,-56.23053,-35.18377,-358.7539,-56.23053,-63.95432,-284.64358,-56.54373,-63.95432,-284.64358,-56.54373,-35.18378,-358.29565,52.19909,-63.95432,-358.29565,52.19909,-35.18378,-284.18533,51.88589,-35.18378,-284.18533,51.88589,-63.95432});
			return Coordinate_12_250_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #273, 576 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_11_273_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_273_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_273_coordIndex_1()));
			return IndexedFaceSet_11_273_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #273, 246 total numbers made up of 82 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_12_273_point()
		{
			MFVec3f Coordinate_12_273_point = new MFVec3f(new double[] {-286.80585,-24.63877,-138.80908,-286.81012,-25.64988,-138.60796,-287.52383,-25.35071,-138.60797,-287.81696,-24.6345,-138.60796,-287.51779,-23.92079,-138.60796,-286.80157,-23.62766,-138.60796,-286.08786,-23.92683,-138.60796,-285.79474,-24.64304,-138.60796,-286.0939,-25.35675,-138.60796,-288.13251,-25.95426,-138.03522,-286.81375,-26.50705,-138.03522,-288.67413,-24.63088,-138.03522,-288.12134,-23.31211,-138.03522,-286.79794,-22.77049,-138.0352,-285.47919,-23.32328,-138.0352,-284.93756,-24.64667,-138.0352,-285.49036,-25.96543,-138.0352,-288.53922,-26.35754,-137.17804,-286.81616,-27.0798,-137.17802,-289.24689,-24.62845,-137.17804,-288.52463,-22.90541,-137.17802,-286.79553,-22.19775,-137.17802,-285.07251,-22.92,-137.17801,-284.36484,-24.64909,-137.17801,-285.0871,-26.37213,-137.17801,-288.68204,-26.49915,-136.16692,-286.81702,-27.28092,-136.1669,-289.448,-24.6276,-136.16693,-288.66626,-22.76259,-136.16692,-286.79471,-21.99662,-136.1669,-284.92969,-22.77839,-136.1669,-284.16373,-24.64994,-136.16689,-284.94549,-26.51495,-136.1669,-288.68207,-26.49915,-131.1516,-286.81708,-27.28092,-131.15158,-289.44803,-24.6276,-131.1516,-288.66629,-22.76259,-131.1516,-286.79474,-21.99663,-131.15158,-284.92972,-22.77839,-131.15157,-284.16376,-24.64994,-131.15155,-284.94553,-26.51495,-131.15157,-286.80585,26.53945,-138.80908,-286.81012,25.52835,-138.60795,-287.52384,25.82751,-138.60797,-287.81696,26.54372,-138.60795,-287.5178,27.25743,-138.60795,-286.80158,27.55056,-138.60795,-286.08787,27.25139,-138.60795,-285.79474,26.53518,-138.60795,-286.09391,25.82147,-138.60795,-288.13251,25.22396,-138.03521,-286.81376,24.67117,-138.03521,-288.67414,26.54735,-138.03521,-288.12134,27.86611,-138.03521,-286.79798,28.40773,-138.0352,-285.47922,27.85494,-138.0352,-284.93757,26.53156,-138.0352,-285.49036,25.21279,-138.0352,-288.53922,24.82068,-137.17804,-286.8162,24.09842,-137.17802,-289.24689,26.54977,-137.17804,-288.52463,28.27281,-137.17802,-286.79554,28.98048,-137.17802,-285.07252,28.25822,-137.17801,-284.36484,26.52913,-137.17801,-285.0871,24.80609,-137.17801,-288.68204,24.67907,-136.16691,-286.81705,23.8973,-136.1669,-289.44803,26.55062,-136.16693,-288.66627,28.41563,-136.16691,-286.79471,29.1816,-136.1669,-284.92969,28.39983,-136.1669,-284.16373,26.52829,-136.16688,-284.9455,24.66327,-136.1669,-288.6821,24.67907,-131.15159,-286.81708,23.8973,-131.15158,-289.44806,26.55062,-131.15159,-288.66629,28.41563,-131.15159,-286.79474,29.1816,-131.15158,-284.92972,28.39984,-131.15156,-284.16376,26.52829,-131.15156,-284.94553,24.66327,-131.15156});
			return Coordinate_12_273_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 ContainerShipOrange 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 ContainerShipOrange().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.CargoShips.ContainerShipOrange\" 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.CargoShips.ContainerShipOrange self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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