package Savage.HarborEquipment.Brow;

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

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> A brow with a customize brow skirt that includes the ships name and seal. </p>
 <p> Related links: Catalog page <a href="../../../../HarborEquipment/Brow/BrowPrototypeIndex.html" target="_blank">BrowPrototype</a>,  source <a href="../../../../HarborEquipment/Brow/BrowPrototype.java">BrowPrototype.java</a>, <a href="https://www.web3d.org/x3d/content/examples/X3dResources.html" target="_blank">X3D Resources</a>, <a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html" target="_blank">X3D Scene Authoring Hints</a>, and <a href="https://www.web3d.org/x3d/content/X3dTooltips.html" target="_blank">X3D Tooltips</a>. </p>
	<table style="color:black; border:0px solid; border-spacing:10px 0px;">
        <caption>Scene Meta Information</caption>
		<tr style="background-color:silver; border-color:silver;">
			<td style="text-align:center; padding:10px 0px;"><i>meta tags</i></td>
			<td style="text-align:left;   padding:10px 0px;">&nbsp; Document Metadata </td>
		</tr>

		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> title </i> </td>
			<td> <a href="../../../../HarborEquipment/Brow/BrowPrototype.x3d">BrowPrototype.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> A brow with a customize brow skirt that includes the ships name and seal. </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </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> modified </i> </td>
			<td> 20 October 2019 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> identifier </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Brow/BrowPrototype.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Brow/BrowPrototype.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> generator </i> </td>
			<td> Wings3D, <a href="http://www.wings3d.com" target="_blank">http://www.wings3d.com</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../HarborEquipment/Brow/../../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 LT Patrick Sullivan
 */

public class BrowPrototype
{
	/** Default constructor to create this object. */
	public BrowPrototype ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_1)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("BrowPrototype.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("A brow with a customize brow skirt that includes the ships name and seal."))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("LT Patrick Sullivan"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("23 March 2005"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 October 2019"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/HarborEquipment/Brow/BrowPrototype.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_GENERATOR  ).setContent("Wings3D, http://www.wings3d.com"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("BrowPrototype.x3d"))
    .addChild(new ProtoDeclare("Brow").setName("Brow")
      .setProtoInterface(new ProtoInterface()
        .addField(new field().setName("ShipName").setType(field.TYPE_MFSTRING).setAccessType(field.ACCESSTYPE_INITIALIZEONLY))
        .addField(new field().setName("SealURL").setType(field.TYPE_MFSTRING).setAccessType(field.ACCESSTYPE_INITIALIZEONLY))
        .addField(new field().setName("translation").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(new SFVec3f(0.0,0.0,0.0)).setAppinfo("The translation for this brow. Used only for raising the brow for a pier riser. Scene using this object should have a transform which explicity states the location of the brow."))
        .addComments(" NOTE: Pier Riser default translation is 0.373266 0.026101 -0.753776 "))
      .setProtoBody(new ProtoBody()
        .addChild(new Transform("Brow").setScale(1.465,1.465,1.465)
          .setIS(new IS()
            .addConnect(new connect().setNodeField("translation").setProtoField("translation")))
          .addChild(new Group("GROUND")
            .addChild(new Transform()
              .addChild(new Group("Import_Base")
                .addChild(new Transform("dad_cylinder5_copy15")
                  .addChild(new Shape("cylinder5_copy15")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("Aluminum_mat").setAmbientIntensity(1).setDiffuseColor(.4,.4,.4).setShininess(0.600).setSpecularColor(.7746,.7746,.7746)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-.6316,.41951,.29194,-.63266,.41951,.2973,-.63266,.01068,.2973,-.6316,.01068,.29194,-.63266,.41951,.28659,-.6357,.41951,.28204,-.64024,.41951,.27901,-.6456,.41951,.27794,-.65095,.41951,.27901,-.6555,.41951,.28204,-.65853,.41951,.28659,-.6596,.41951,.29194,-.65853,.41951,.2973,-.6555,.41951,.30184,-.65095,.41951,.30488,-.6456,.41951,.30594,-.64024,.41951,.30488,-.6357,.41951,.30184,-.63266,.01068,.28659,-.6357,.01068,.30184,-.64024,.01068,.30488,-.6456,.01068,.30594,-.65095,.01068,.30488,-.6555,.01068,.30184,-.65853,.01068,.2973,-.6596,.01068,.29194,-.65853,.01068,.28659,-.6555,.01068,.28204,-.65095,.01068,.27901,-.6456,.01068,.27794,-.64024,.01068,.27901,-.6357,.01068,.28204}))))))
                .addChild(new Transform("dad_cylinder5_copy14")
                  .addChild(new Shape("cylinder5_copy14")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-1.16005,.41674,.29194,-1.16112,.41674,.2973,-1.16112,.01068,.2973,-1.16005,.01068,.29194,-1.16112,.41674,.28659,-1.16416,.41674,.28204,-1.1687,.41674,.27901,-1.17405,.41674,.27794,-1.17941,.41674,.27901,-1.18395,.41674,.28204,-1.18699,.41674,.28659,-1.18805,.41674,.29194,-1.18699,.41674,.2973,-1.18395,.41674,.30184,-1.17941,.41674,.30488,-1.17405,.41674,.30594,-1.1687,.41674,.30488,-1.16416,.41674,.30184,-1.16112,.01068,.28659,-1.16416,.01068,.30184,-1.1687,.01068,.30488,-1.17405,.01068,.30594,-1.17941,.01068,.30488,-1.18395,.01068,.30184,-1.18699,.01068,.2973,-1.18805,.01068,.29194,-1.18699,.01068,.28659,-1.18395,.01068,.28204,-1.17941,.01068,.27901,-1.17405,.01068,.27794,-1.1687,.01068,.27901,-1.16416,.01068,.28204}))))))
                .addChild(new Transform("dad_cylinder5_copy13")
                  .addChild(new Shape("cylinder5_copy13")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {1.03916,.40668,.29194,1.03809,.40668,.2973,1.03809,.01068,.2973,1.03916,.01068,.29194,1.03809,.40668,.28659,1.03506,.40668,.28204,1.03051,.40668,.27901,1.02516,.40668,.27794,1.0198,.40668,.27901,1.01526,.40668,.28204,1.01222,.40668,.28659,1.01116,.40668,.29194,1.01222,.40668,.2973,1.01526,.40668,.30184,1.0198,.40668,.30488,1.02516,.40668,.30594,1.03051,.40668,.30488,1.03506,.40668,.30184,1.03809,.01068,.28659,1.03506,.01068,.30184,1.03051,.01068,.30488,1.02516,.01068,.30594,1.0198,.01068,.30488,1.01526,.01068,.30184,1.01222,.01068,.2973,1.01116,.01068,.29194,1.01222,.01068,.28659,1.01526,.01068,.28204,1.0198,.01068,.27901,1.02516,.01068,.27794,1.03051,.01068,.27901,1.03506,.01068,.28204}))))))
                .addChild(new Transform("dad_cylinder5_copy12")
                  .addChild(new Shape("cylinder5_copy12")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {.5107,.40668,.29194,.50963,.40668,.2973,.50963,.01068,.2973,.5107,.01068,.29194,.50963,.40668,.28659,.5066,.40668,.28204,.50206,.40668,.27901,.4967,.40668,.27794,.49134,.40668,.27901,.4868,.40668,.28204,.48376,.40668,.28659,.4827,.40668,.29194,.48376,.40668,.2973,.4868,.40668,.30184,.49134,.40668,.30488,.4967,.40668,.30594,.50206,.40668,.30488,.5066,.40668,.30184,.50963,.01068,.28659,.5066,.01068,.30184,.50206,.01068,.30488,.4967,.01068,.30594,.49134,.01068,.30488,.4868,.01068,.30184,.48376,.01068,.2973,.4827,.01068,.29194,.48376,.01068,.28659,.4868,.01068,.28204,.49134,.01068,.27901,.4967,.01068,.27794,.50206,.01068,.27901,.5066,.01068,.28204}))))))
                .addChild(new Transform("dad_cylinder5_copy11")
                  .addChild(new Shape("cylinder5_copy11")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {.014,.40668,.29194,.01293,.40668,.2973,.01293,.01068,.2973,.014,.01068,.29194,.01293,.40668,.28659,.0099,.40668,.28204,.00536,.40668,.27901,-0.0,.40668,.27794,-.00536,.40668,.27901,-.0099,.40668,.28204,-.01293,.40668,.28659,-.014,.40668,.29194,-.01293,.40668,.2973,-.0099,.40668,.30184,-.00536,.40668,.30488,-0.0,.40668,.30594,.00536,.40668,.30488,.0099,.40668,.30184,.01293,.01068,.28659,.0099,.01068,.30184,.00536,.01068,.30488,-0.0,.01068,.30594,-.00536,.01068,.30488,-.0099,.01068,.30184,-.01293,.01068,.2973,-.014,.01068,.29194,-.01293,.01068,.28659,-.0099,.01068,.28204,-.00536,.01068,.27901,-0.0,.01068,.27794,.00536,.01068,.27901,.0099,.01068,.28204}))))))
                .addChild(new Transform("dad_cylinder5_copy10")
                  .addChild(new Shape("cylinder5_copy10")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-.6316,.42647,-.28901,-.63266,.42647,-.28365,-.63266,.01068,-.28365,-.6316,.01068,-.28901,-.63266,.42647,-.29437,-.6357,.42647,-.29891,-.64024,.42647,-.30194,-.6456,.42647,-.30301,-.65095,.42647,-.30194,-.6555,.42647,-.29891,-.65853,.42647,-.29437,-.6596,.42647,-.28901,-.65853,.42647,-.28365,-.6555,.42647,-.27911,-.65095,.42647,-.27608,-.6456,.42647,-.27501,-.64024,.42647,-.27608,-.6357,.42647,-.27911,-.63266,.01068,-.29437,-.6357,.01068,-.27911,-.64024,.01068,-.27608,-.6456,.01068,-.27501,-.65095,.01068,-.27608,-.6555,.01068,-.27911,-.65853,.01068,-.28365,-.6596,.01068,-.28901,-.65853,.01068,-.29437,-.6555,.01068,-.29891,-.65095,.01068,-.30194,-.6456,.01068,-.30301,-.64024,.01068,-.30194,-.6357,.01068,-.29891}))))))
                .addChild(new Transform("dad_cylinder5_copy9")
                  .addChild(new Shape("cylinder5_copy9")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-1.16005,.41674,-.28901,-1.16112,.41674,-.28365,-1.16112,.01068,-.28365,-1.16005,.01068,-.28901,-1.16112,.41674,-.29437,-1.16416,.41674,-.29891,-1.1687,.41674,-.30194,-1.17405,.41674,-.30301,-1.17941,.41674,-.30194,-1.18395,.41674,-.29891,-1.18699,.41674,-.29437,-1.18805,.41674,-.28901,-1.18699,.41674,-.28365,-1.18395,.41674,-.27911,-1.17941,.41674,-.27608,-1.17405,.41674,-.27501,-1.1687,.41674,-.27608,-1.16416,.41674,-.27911,-1.16112,.01068,-.29437,-1.16416,.01068,-.27911,-1.1687,.01068,-.27608,-1.17405,.01068,-.27501,-1.17941,.01068,-.27608,-1.18395,.01068,-.27911,-1.18699,.01068,-.28365,-1.18805,.01068,-.28901,-1.18699,.01068,-.29437,-1.18395,.01068,-.29891,-1.17941,.01068,-.30194,-1.17405,.01068,-.30301,-1.1687,.01068,-.30194,-1.16416,.01068,-.29891}))))))
                .addChild(new Transform("dad_cylinder5_copy8")
                  .addChild(new Shape("cylinder5_copy8")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {1.03916,.40668,-.28901,1.03809,.40668,-.28365,1.03809,.01068,-.28365,1.03916,.01068,-.28901,1.03809,.40668,-.29437,1.03506,.40668,-.29891,1.03051,.40668,-.30194,1.02516,.40668,-.30301,1.0198,.40668,-.30194,1.01526,.40668,-.29891,1.01222,.40668,-.29437,1.01116,.40668,-.28901,1.01222,.40668,-.28365,1.01526,.40668,-.27911,1.0198,.40668,-.27608,1.02516,.40668,-.27501,1.03051,.40668,-.27608,1.03506,.40668,-.27911,1.03809,.01068,-.29437,1.03506,.01068,-.27911,1.03051,.01068,-.27608,1.02516,.01068,-.27501,1.0198,.01068,-.27608,1.01526,.01068,-.27911,1.01222,.01068,-.28365,1.01116,.01068,-.28901,1.01222,.01068,-.29437,1.01526,.01068,-.29891,1.0198,.01068,-.30194,1.02516,.01068,-.30301,1.03051,.01068,-.30194,1.03506,.01068,-.29891}))))))
                .addChild(new Transform("dad_cylinder5_copy7")
                  .addChild(new Shape("cylinder5_copy7")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {.5107,.40668,-.28901,.50963,.40668,-.28365,.50963,.01068,-.28365,.5107,.01068,-.28901,.50963,.40668,-.29437,.5066,.40668,-.29891,.50206,.40668,-.30194,.4967,.40668,-.30301,.49134,.40668,-.30194,.4868,.40668,-.29891,.48376,.40668,-.29437,.4827,.40668,-.28901,.48376,.40668,-.28365,.4868,.40668,-.27911,.49134,.40668,-.27608,.4967,.40668,-.27501,.50206,.40668,-.27608,.5066,.40668,-.27911,.50963,.01068,-.29437,.5066,.01068,-.27911,.50206,.01068,-.27608,.4967,.01068,-.27501,.49134,.01068,-.27608,.4868,.01068,-.27911,.48376,.01068,-.28365,.4827,.01068,-.28901,.48376,.01068,-.29437,.4868,.01068,-.29891,.49134,.01068,-.30194,.4967,.01068,-.30301,.50206,.01068,-.30194,.5066,.01068,-.29891}))))))
                .addChild(new Transform("dad_cylinder5_copy6")
                  .addChild(new Shape("cylinder5_copy6")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material("default_mat").setAmbientIntensity(1).setDiffuseColor(1.0,1.0,1.0).setShininess(1).setSpecularColor(1.0,1.0,1.0)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {.5107,.40668,-.28901,.50963,.40668,-.28365,.50963,.01068,-.28365,.5107,.01068,-.28901,.50963,.40668,-.29437,.5066,.40668,-.29891,.50206,.40668,-.30194,.4967,.40668,-.30301,.49134,.40668,-.30194,.4868,.40668,-.29891,.48376,.40668,-.29437,.4827,.40668,-.28901,.48376,.40668,-.28365,.4868,.40668,-.27911,.49134,.40668,-.27608,.4967,.40668,-.27501,.50206,.40668,-.27608,.5066,.40668,-.27911,.50963,.01068,-.29437,.5066,.01068,-.27911,.50206,.01068,-.27608,.4967,.01068,-.27501,.49134,.01068,-.27608,.4868,.01068,-.27911,.48376,.01068,-.28365,.4827,.01068,-.28901,.48376,.01068,-.29437,.4868,.01068,-.29891,.49134,.01068,-.30194,.4967,.01068,-.30301,.50206,.01068,-.30194,.5066,.01068,-.29891}))))))
                .addChild(new Transform("dad_cylinder5")
                  .addChild(new Shape("cylinder5")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-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,13,-1,0,13,14,-1,0,14,15,-1,0,15,16,-1,0,16,17,-1,0,17,1,-1,0,3,18,-1,0,18,4,-1,1,17,19,-1,1,19,2,-1,17,16,20,-1,17,20,19,-1,16,15,21,-1,16,21,20,-1,15,14,22,-1,15,22,21,-1,14,13,23,-1,14,23,22,-1,13,12,24,-1,13,24,23,-1,12,11,25,-1,12,25,24,-1,11,10,26,-1,11,26,25,-1,10,9,27,-1,10,27,26,-1,9,8,28,-1,9,28,27,-1,8,7,29,-1,8,29,28,-1,7,6,30,-1,7,30,29,-1,6,5,31,-1,6,31,30,-1,5,4,18,-1,5,18,31,-1,3,2,19,-1,3,19,20,-1,3,20,21,-1,3,21,22,-1,3,22,23,-1,3,23,24,-1,3,24,25,-1,3,25,26,-1,3,26,27,-1,3,27,28,-1,3,28,29,-1,3,29,30,-1,3,30,31,-1,3,31,18,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {.014,.40668,-.28901,.01293,.40668,-.28365,.01293,.01068,-.28365,.014,.01068,-.28901,.01293,.40668,-.29437,.0099,.40668,-.29891,.00536,.40668,-.30194,-0.0,.40668,-.30301,-.00536,.40668,-.30194,-.0099,.40668,-.29891,-.01293,.40668,-.29437,-.014,.40668,-.28901,-.01293,.40668,-.28365,-.0099,.40668,-.27911,-.00536,.40668,-.27608,-0.0,.40668,-.27501,.00536,.40668,-.27608,.0099,.40668,-.27911,.01293,.01068,-.29437,.0099,.01068,-.27911,.00536,.01068,-.27608,-0.0,.01068,-.27501,-.00536,.01068,-.27608,-.0099,.01068,-.27911,-.01293,.01068,-.28365,-.014,.01068,-.28901,-.01293,.01068,-.29437,-.0099,.01068,-.29891,-.00536,.01068,-.30194,-0.0,.01068,-.30301,.00536,.01068,-.30194,.0099,.01068,-.29891}))))))
                .addChild(new Transform("dad_cylinder2_copy4")
                  .addChild(new Shape("cylinder2_copy4")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(getIndexedFaceSet_11_87_coordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_87_point())))))
                .addChild(new Transform("dad_cylinder2")
                  .addChild(new Shape("cylinder2")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(getIndexedFaceSet_11_93_coordIndex())
                      .setCoord(new Coordinate().setPoint(getCoordinate_12_93_point())))))
                .addChild(new Transform("dad_cube1")
                  .addChild(new Shape("cube1")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setUSE("Aluminum_mat")))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,4,5,-1,0,5,1,-1,0,6,7,-1,0,7,4,-1,0,3,8,-1,0,8,6,-1,1,5,9,-1,1,9,10,-1,1,10,11,-1,1,11,2,-1,5,4,7,-1,5,7,9,-1,6,10,9,-1,6,9,7,-1,6,8,11,-1,6,11,10,-1,3,2,11,-1,3,11,8,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-1.7832,-.01756,.33509,-1.7832,.01756,.33509,-1.83819,-.012,.33509,-1.80365,-.01838,.33509,1.83182,-.01756,.33509,1.83182,.01756,.33509,-1.7832,-.01756,-.33509,1.83182,-.01756,-.33509,-1.80365,-.01838,-.33509,1.83182,.01756,-.33509,-1.7832,.01756,-.33509,-1.83819,-.012,-.33509}))))))))
            .addChild(new Group("BrowSkirt")
              .addChild(new Transform().setTranslation(.198,.206,.323)
                .addChild(new Shape()
                  .setAppearance(new Appearance()
                    .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0)))
                  .setGeometry(new Box().setSize(1.751,.366,.03)))
                .addChild(new Transform().setTranslation(0.0,.15,.02)
                  .addChild(new Shape()
                    .setGeometry(new Text()
                      .setIS(new IS()
                        .addConnect(new connect().setNodeField("string").setProtoField("ShipName")))
                      .setFontStyle(new FontStyle().setJustify(FontStyle.JUSTIFY_MIDDLE).setSize(.25).setCssStyle("BOLD")))
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setAmbientIntensity(0).setDiffuseColor(0.0,0.0,0.0))))))
              .addChild(new Transform().setRotation(0.0,0.0,1.0,.001).setTranslation(-.819,.206,.323)
                .addChild(new Shape()
                  .setAppearance(new Appearance()
                    .setTexture(new ImageTexture().setRepeatS(false).setRepeatT(false)
                      .setIS(new IS()
                        .addConnect(new connect().setNodeField("url").setProtoField("SealURL"))))
                    .setMaterial(new Material().setDiffuseColor(0.0,0.0,0.0)))
                  .setGeometry(new Box().setSize(.3,.366,.03)))))
            .addChild(new Transform().setRotation(0.0,1.0,0.0,3.14).setTranslation(0.0,0.0,-.01)
              .addChild(new Group().setUSE("BrowSkirt"))))))));
            }
            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_87_coordIndex_1()
		{
			int[] value = {0,1,2,-1,0,2,3,-1,0,4,5,-1,0,5,6,-1,0,3,7,-1,0,7,4,-1,0,6,8,-1,0,8,1,-1,1,9,10,-1,1,10,2,-1,1,8,11,-1,1,11,9,-1,9,12,13,-1,9,13,10,-1,9,11,14,-1,9,14,12,-1,12,15,16,-1,12,16,13,-1,12,14,17,-1,12,17,15,-1,15,18,19,-1,15,19,16,-1,15,17,20,-1,15,20,18,-1,18,21,22,-1,18,22,19,-1,18,20,23,-1,18,23,21,-1,21,24,25,-1,21,25,22,-1,21,23,26,-1,21,26,24,-1,24,27,28,-1,24,28,25,-1,24,26,29,-1,24,29,27,-1,27,30,31,-1,27,31,28,-1,27,29,32,-1,27,32,30,-1,30,33,34,-1,30,34,31,-1,30,32,35,-1,30,35,33,-1,33,36,37,-1,33,37,34,-1,33,35,38,-1,33,38,36,-1,36,39,40,-1,36,40,37,-1,36,38,41,-1,36,41,39,-1,39,42,43,-1,39,43,40,-1,39,41,44,-1,39,44,42,-1,42,45,46,-1,42,46,43,-1,42,44,47,-1,42,47,45,-1,45,4,7,-1,45,7,46,-1,45,47,5,-1,45,5,4,-1,3,2,10,-1,3,10,13,-1,3,13,16,-1,3,16,19,-1,3,19,22,-1,3,22,25,-1,3,25,28,-1,3,28,31,-1,3,31,34,-1,3,34,37,-1,3,37,40,-1,3,40,43,-1,3,43,46,-1,3,46,7,-1,8,6,48,-1,8,48,49,-1,8,49,50,-1,8,50,11,-1,6,5,51,-1,6,51,48,-1,5,47,52,-1,5,52,51,-1,47,44,53,-1,47,53,52,-1,44,41,54,-1,44,54,53,-1,41,38,55,-1,41,55,54,-1,38,35,56,-1,38,56,55,-1,35,32,57,-1,35,57,56,-1,32,29,58,-1,32,58,57,-1,29,26,59,-1,29,59,58,-1,26,23,60,-1,26,60,59,-1,23,20,61,-1,23,61,60,-1,20,17,62,-1,20,62,61,-1,17,14,63,-1,17,63,62,-1,14,11,50,-1,14,50,63,-1,49,48,64,-1,49,64,65,-1,49,65,66,-1,49,66,50,-1,48,51,67,-1,48,67,64,-1,51,52,68,-1,51,68,67,-1,52,53,69,-1,52,69,68,-1,53,54,70,-1,53,70,69,-1,54,55,71,-1,54,71,70,-1,55,56,72,-1,55,72,71,-1,56,57,73,-1,56,73,72,-1,57,58,74,-1,57,74,73,-1,58,59,75,-1,58,75,74,-1,59,60,76,-1,59,76,75,-1,60,61,77,-1,60,77,76,-1,61,62,78,-1,61,78,77,-1,62,63,79,-1,62,79,78,-1,63,50,66,-1,63,66,79,-1,65,64,80,-1,65,80,81,-1,65,81,82,-1,65,82,66,-1,64,67,83,-1,64,83,80,-1,67,68,84,-1,67,84,83,-1,68,69,85,-1,68,85,84,-1,69,70,86,-1,69,86,85,-1,70,71,87,-1,70,87,86,-1,71,72,88,-1,71,88,87,-1,72,73,89,-1,72,89,88,-1,73,74,90,-1,73,90,89,-1,74,75,91,-1,74,91,90,-1,75,76,92,-1,75,92,91,-1,76,77,93,-1,76,93,92,-1,77,78,94,-1,77,94,93,-1,78,79,95,-1,78,95,94,-1,79,66,82,-1,79,82,95,-1,81,80,83,-1,81,83,84,-1,81,84,85,-1,81,85,86,-1,81,86,87,-1,81,87,88,-1,81,88,89,-1,81,89,90,-1,81,90,91,-1,81,91,92,-1,81,92,93,-1,81,93,94,-1,81,94,95,-1,81,95,82,-1,96,97,98,-1,96,98,99,-1,96,100,101,-1,96,101,102,-1,96,99,103,-1,96,103,100,-1,96,102,104,-1,96,104,97,-1,97,105,106,-1,97,106,98,-1,97,104,107,-1,97,107,105,-1,105,108,109,-1,105,109,106,-1,105,107,110,-1,105,110,108,-1,108,111,112,-1,108,112,109,-1,108,110,113,-1,108,113,111,-1,111,114,115,-1,111,115,112,-1,111,113,116,-1,111,116,114,-1,114,117,118,-1,114,118,115,-1,114,116,119,-1,114,119,117,-1,117,120,121,-1,117,121,118,-1,117,119,122,-1,117,122,120,-1,120,123,124,-1,120,124,121,-1,120,122,125,-1,120,125,123,-1,123,126,127,-1,123,127,124,-1,123,125,128,-1,123,128,126,-1,126,129,130,-1,126,130,127,-1,126,128,131,-1,126,131,129,-1,129,132,133,-1,129,133,130,-1,129,131,134,-1,129,134,132,-1,132,135,136,-1,132,136,133,-1,132,134,137,-1,132,137,135,-1,135,138,139,-1,135,139,136,-1,135,137,140,-1,135,140,138,-1,138,141,142,-1,138,142,139,-1,138,140,143,-1,138,143,141,-1,141,100,103,-1,141,103,142,-1};
			return value;
		}
		private int[] getIndexedFaceSet_11_87_coordIndex_2()
		{
			int[] value = {141,143,101,-1,141,101,100,-1,99,98,106,-1,99,106,109,-1,99,109,112,-1,99,112,115,-1,99,115,118,-1,99,118,121,-1,99,121,124,-1,99,124,127,-1,99,127,130,-1,99,130,133,-1,99,133,136,-1,99,136,139,-1,99,139,142,-1,99,142,103,-1,104,102,144,-1,104,144,145,-1,104,145,146,-1,104,146,107,-1,102,101,147,-1,102,147,144,-1,101,143,148,-1,101,148,147,-1,143,140,149,-1,143,149,148,-1,140,137,150,-1,140,150,149,-1,137,134,151,-1,137,151,150,-1,134,131,152,-1,134,152,151,-1,131,128,153,-1,131,153,152,-1,128,125,154,-1,128,154,153,-1,125,122,155,-1,125,155,154,-1,122,119,156,-1,122,156,155,-1,119,116,157,-1,119,157,156,-1,116,113,158,-1,116,158,157,-1,113,110,159,-1,113,159,158,-1,110,107,146,-1,110,146,159,-1,145,144,160,-1,145,160,161,-1,145,161,162,-1,145,162,146,-1,144,147,163,-1,144,163,160,-1,147,148,164,-1,147,164,163,-1,148,149,165,-1,148,165,164,-1,149,150,166,-1,149,166,165,-1,150,151,167,-1,150,167,166,-1,151,152,168,-1,151,168,167,-1,152,153,169,-1,152,169,168,-1,153,154,170,-1,153,170,169,-1,154,155,171,-1,154,171,170,-1,155,156,172,-1,155,172,171,-1,156,157,173,-1,156,173,172,-1,157,158,174,-1,157,174,173,-1,158,159,175,-1,158,175,174,-1,159,146,162,-1,159,162,175,-1,161,160,176,-1,161,176,177,-1,161,177,178,-1,161,178,162,-1,160,163,179,-1,160,179,176,-1,163,164,180,-1,163,180,179,-1,164,165,181,-1,164,181,180,-1,165,166,182,-1,165,182,181,-1,166,167,183,-1,166,183,182,-1,167,168,184,-1,167,184,183,-1,168,169,185,-1,168,185,184,-1,169,170,186,-1,169,186,185,-1,170,171,187,-1,170,187,186,-1,171,172,188,-1,171,188,187,-1,172,173,189,-1,172,189,188,-1,173,174,190,-1,173,190,189,-1,174,175,191,-1,174,191,190,-1,175,162,178,-1,175,178,191,-1,177,176,179,-1,177,179,180,-1,177,180,181,-1,177,181,182,-1,177,182,183,-1,177,183,184,-1,177,184,185,-1,177,185,186,-1,177,186,187,-1,177,187,188,-1,177,188,189,-1,177,189,190,-1,177,190,191,-1,177,191,178,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_12_87_point_1()
		{
			double[] value = {-1.66707,.38771,-.28624,-1.66828,.38771,-.28011,-1.66828,.01756,-.28011,-1.66707,.01756,-.28624,-1.66828,.38771,-.29236,-1.65738,.41026,-.29236,-1.65646,.40946,-.28624,-1.66828,.01756,-.29236,-1.65738,.41026,-.28011,-1.67175,.38771,-.27492,-1.67175,.01756,-.27492,-1.65999,.41255,-.27492,-1.67694,.38771,-.27145,-1.67694,.01756,-.27145,-1.66389,.41597,-.27145,-1.68307,.38771,-.27024,-1.68307,.01756,-.27024,-1.66849,.42002,-.27024,-1.68919,.38771,-.27145,-1.68919,.01756,-.27145,-1.67309,.42406,-.27145,-1.69438,.38771,-.27492,-1.69438,.01756,-.27492,-1.67699,.42748,-.27492,-1.69785,.38771,-.28011,-1.69785,.01756,-.28011,-1.6796,.42977,-.28011,-1.69907,.38771,-.28624,-1.69907,.01756,-.28624,-1.68051,.43057,-.28624,-1.69785,.38771,-.29236,-1.69785,.01756,-.29236,-1.6796,.42977,-.29236,-1.69438,.38771,-.29755,-1.69438,.01756,-.29755,-1.67699,.42748,-.29755,-1.68919,.38771,-.30102,-1.68919,.01756,-.30102,-1.67309,.42406,-.30102,-1.68307,.38771,-.30223,-1.68307,.01756,-.30223,-1.66849,.42002,-.30223,-1.67694,.38771,-.30102,-1.67694,.01756,-.30102,-1.66389,.41597,-.30102,-1.67175,.38771,-.29755,-1.67175,.01756,-.29755,-1.65999,.41255,-.29755,-1.65075,.41274,-.28624,-1.65101,.41393,-.28011,-1.65175,.41732,-.27492,-1.65101,.41393,-.29236,-1.65175,.41732,-.29755,-1.65285,.4224,-.30102,-1.65416,.42838,-.30223,-1.65546,.43436,-.30102,-1.65657,.43943,-.29755,-1.65731,.44282,-.29236,-1.65757,.44401,-.28624,-1.65731,.44282,-.28011,-1.65657,.43943,-.27492,-1.65546,.43436,-.27145,-1.65416,.42838,-.27024,-1.65285,.4224,-.27145,-1.63868,.41595,-.28624,-1.63863,.41716,-.28012,-1.63848,.42062,-.27494,-1.63863,.41716,-.29235,-1.63848,.42062,-.29753,-1.63826,.42579,-.30099,-1.63801,.4319,-.3022,-1.63775,.438,-.30099,-1.63753,.44318,-.29753,-1.63739,.44664,-.29235,-1.63734,.44785,-.28624,-1.63739,.44664,-.28012,-1.63753,.44318,-.27494,-1.63775,.438,-.27148,-1.63801,.4319,-.27027,-1.63826,.42579,-.27148,.0536,.3939,-.28624,.05366,.39511,-.28012,.0538,.39857,-.27494,.05366,.39511,-.29235,.0538,.39857,-.29753,.05402,.40375,-.30099,.05427,.40985,-.3022,.05453,.41596,-.30099,.05475,.42113,-.29753,.05489,.42459,-.29235,.05494,.42581,-.28624,.05489,.42459,-.28012,.05475,.42113,-.27494,.05453,.41596,-.27148,.05427,.40985,-.27027,.05402,.40375,-.27148,1.76591,.33836,-.28624,1.76712,.33832,-.29235,1.75668,.01989,-.29235,1.75546,.01993,-.28624};
			return value;
		}
		private double[] getCoordinate_12_87_point_2()
		{
			double[] value = {1.76712,.33832,-.28012,1.75688,.36113,-.28012,1.75594,.36036,-.28624,1.75668,.01989,-.28012,1.75688,.36113,-.29235,1.77058,.33823,-.29753,1.76014,.0198,-.29753,1.75954,.36334,-.29753,1.77576,.33808,-.30099,1.76532,.01965,-.30099,1.76353,.36665,-.30099,1.78187,.33791,-.3022,1.77143,.01948,-.3022,1.76824,.37055,-.3022,1.78798,.33774,-.30099,1.77753,.0193,-.30099,1.77294,.37445,-.30099,1.79316,.33759,-.29753,1.78271,.01916,-.29753,1.77693,.37776,-.29753,1.79662,.33749,-.29235,1.78617,.01906,-.29235,1.77959,.37996,-.29235,1.79783,.33746,-.28624,1.78739,.01903,-.28624,1.78053,.38074,-.28624,1.79662,.33749,-.28012,1.78617,.01906,-.28012,1.77959,.37996,-.28012,1.79316,.33759,-.27494,1.78271,.01916,-.27494,1.77693,.37776,-.27494,1.78798,.33774,-.27148,1.77753,.0193,-.27148,1.77294,.37445,-.27148,1.78187,.33791,-.27027,1.77143,.01948,-.27027,1.76824,.37055,-.27027,1.77576,.33808,-.27148,1.76532,.01965,-.27148,1.76353,.36665,-.27148,1.77058,.33823,-.27494,1.76014,.0198,-.27494,1.75954,.36334,-.27494,1.75034,.3638,-.28624,1.75063,.36497,-.29235,1.75146,.36834,-.29753,1.75063,.36497,-.28012,1.75146,.36834,-.27494,1.75271,.37336,-.27148,1.75418,.37929,-.27027,1.75565,.38523,-.27148,1.75689,.39025,-.27494,1.75773,.39361,-.28012,1.75802,.39479,-.28624,1.75773,.39361,-.29235,1.75689,.39025,-.29753,1.75565,.38523,-.30099,1.75418,.37929,-.3022,1.75271,.37336,-.30099,1.73838,.36733,-.28624,1.73837,.36854,-.29233,1.73832,.372,-.2975,1.73837,.36854,-.28014,1.73832,.372,-.27497,1.73825,.37716,-.27151,1.73817,.38326,-.2703,1.73808,.38936,-.27151,1.73801,.39453,-.27497,1.73797,.39798,-.28014,1.73795,.3992,-.28624,1.73797,.39798,-.29233,1.73801,.39453,-.2975,1.73808,.38936,-.30096,1.73817,.38326,-.30217,1.73825,.37716,-.30096,.04954,.39308,-.28624,.04952,.39429,-.29233,.04948,.39775,-.2975,.04952,.39429,-.28014,.04948,.39775,-.27497,.04941,.40292,-.27151,.04932,.40902,-.2703,.04924,.41511,-.27151,.04917,.42028,-.27497,.04912,.42374,-.28014,.04911,.42495,-.28624,.04912,.42374,-.29233,.04917,.42028,-.2975,.04924,.41511,-.30096,.04932,.40902,-.30217,.04941,.40292,-.30096};
			return value;
		}


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


		/** Define subarrays using type double[] */
		private double[] getCoordinate_12_93_point_1()
		{
			double[] value = {-1.66707,.38771,.29775,-1.66828,.38771,.30388,-1.66828,.01756,.30388,-1.66707,.01756,.29775,-1.66828,.38771,.29163,-1.65738,.41026,.29163,-1.65646,.40946,.29775,-1.66828,.01756,.29163,-1.65738,.41026,.30388,-1.67175,.38771,.30907,-1.67175,.01756,.30907,-1.65999,.41255,.30907,-1.67694,.38771,.31254,-1.67694,.01756,.31254,-1.66389,.41597,.31254,-1.68307,.38771,.31375,-1.68307,.01756,.31375,-1.66849,.42002,.31375,-1.68919,.38771,.31254,-1.68919,.01756,.31254,-1.67309,.42406,.31254,-1.69438,.38771,.30907,-1.69438,.01756,.30907,-1.67699,.42748,.30907,-1.69785,.38771,.30388,-1.69785,.01756,.30388,-1.6796,.42977,.30388,-1.69907,.38771,.29775,-1.69907,.01756,.29775,-1.68051,.43057,.29775,-1.69785,.38771,.29163,-1.69785,.01756,.29163,-1.6796,.42977,.29163,-1.69438,.38771,.28644,-1.69438,.01756,.28644,-1.67699,.42748,.28644,-1.68919,.38771,.28297,-1.68919,.01756,.28297,-1.67309,.42406,.28297,-1.68307,.38771,.28175,-1.68307,.01756,.28175,-1.66849,.42002,.28175,-1.67694,.38771,.28297,-1.67694,.01756,.28297,-1.66389,.41597,.28297,-1.67175,.38771,.28644,-1.67175,.01756,.28644,-1.65999,.41255,.28644,-1.65075,.41274,.29775,-1.65101,.41393,.30388,-1.65175,.41732,.30907,-1.65101,.41393,.29163,-1.65175,.41732,.28644,-1.65285,.4224,.28297,-1.65416,.42838,.28175,-1.65546,.43436,.28297,-1.65657,.43943,.28644,-1.65731,.44282,.29163,-1.65757,.44401,.29775,-1.65731,.44282,.30388,-1.65657,.43943,.30907,-1.65546,.43436,.31254,-1.65416,.42838,.31375,-1.65285,.4224,.31254,-1.63868,.41595,.29775,-1.63863,.41716,.30386,-1.63848,.42062,.30905,-1.63863,.41716,.29164,-1.63848,.42062,.28646,-1.63826,.42579,.283,-1.63801,.4319,.28179,-1.63775,.438,.283,-1.63753,.44318,.28646,-1.63739,.44664,.29164,-1.63734,.44785,.29775,-1.63739,.44664,.30386,-1.63753,.44318,.30905,-1.63775,.438,.31251,-1.63801,.4319,.31372,-1.63826,.42579,.31251,.0536,.3939,.29775,.05366,.39511,.30386,.0538,.39857,.30905,.05366,.39511,.29164,.0538,.39857,.28646,.05402,.40375,.283,.05427,.40985,.28179,.05453,.41596,.283,.05475,.42113,.28646,.05489,.42459,.29164,.05494,.42581,.29775,.05489,.42459,.30386,.05475,.42113,.30905,.05453,.41596,.31251,.05427,.40985,.31372,.05402,.40375,.31251,1.76591,.33836,.29775,1.76712,.33832,.29164,1.75668,.01989,.29164,1.75546,.01993,.29775};
			return value;
		}
		private double[] getCoordinate_12_93_point_2()
		{
			double[] value = {1.76712,.33832,.30386,1.75688,.36113,.30386,1.75594,.36036,.29775,1.75668,.01989,.30386,1.75688,.36113,.29164,1.77058,.33823,.28646,1.76014,.0198,.28646,1.75954,.36334,.28646,1.77576,.33808,.283,1.76532,.01965,.283,1.76353,.36665,.283,1.78187,.33791,.28179,1.77143,.01948,.28179,1.76824,.37055,.28179,1.78798,.33774,.283,1.77753,.0193,.283,1.77294,.37445,.283,1.79316,.33759,.28646,1.78271,.01916,.28646,1.77693,.37776,.28646,1.79662,.33749,.29164,1.78617,.01906,.29164,1.77959,.37996,.29164,1.79783,.33746,.29775,1.78739,.01903,.29775,1.78053,.38074,.29775,1.79662,.33749,.30386,1.78617,.01906,.30386,1.77959,.37996,.30386,1.79316,.33759,.30905,1.78271,.01916,.30905,1.77693,.37776,.30905,1.78798,.33774,.31251,1.77753,.0193,.31251,1.77294,.37445,.31251,1.78187,.33791,.31372,1.77143,.01948,.31372,1.76824,.37055,.31372,1.77576,.33808,.31251,1.76532,.01965,.31251,1.76353,.36665,.31251,1.77058,.33823,.30905,1.76014,.0198,.30905,1.75954,.36334,.30905,1.75034,.3638,.29775,1.75063,.36497,.29164,1.75146,.36834,.28646,1.75063,.36497,.30386,1.75146,.36834,.30905,1.75271,.37336,.31251,1.75418,.37929,.31372,1.75565,.38523,.31251,1.75689,.39025,.30905,1.75773,.39361,.30386,1.75802,.39479,.29775,1.75773,.39361,.29164,1.75689,.39025,.28646,1.75565,.38523,.283,1.75418,.37929,.28179,1.75271,.37336,.283,1.73838,.36733,.29775,1.73837,.36854,.29166,1.73832,.372,.28648,1.73837,.36854,.30385,1.73832,.372,.30902,1.73825,.37716,.31248,1.73817,.38326,.31369,1.73808,.38936,.31248,1.73801,.39453,.30902,1.73797,.39798,.30385,1.73795,.3992,.29775,1.73797,.39798,.29166,1.73801,.39453,.28648,1.73808,.38936,.28303,1.73817,.38326,.28182,1.73825,.37716,.28303,.04954,.39308,.29775,.04952,.39429,.29166,.04948,.39775,.28648,.04952,.39429,.30385,.04948,.39775,.30902,.04941,.40292,.31248,.04932,.40902,.31369,.04924,.41511,.31248,.04917,.42028,.30902,.04912,.42374,.30385,.04911,.42495,.29775,.04912,.42374,.29166,.04917,.42028,.28648,.04924,.41511,.28303,.04932,.40902,.28182,.04941,.40292,.28303};
			return value;
		}

		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #87, 1504 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_87_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_87_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_87_coordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_11_87_coordIndex_2()));
			return IndexedFaceSet_11_87_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #87, 576 total numbers made up of 192 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_87_point()
		{
			MFVec3f Coordinate_12_87_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_12_87_point_1()))
				.append(new MFVec3f(getCoordinate_12_87_point_2()));
			return Coordinate_12_87_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=11, element #93, 1504 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_93_coordIndex()
		{
			MFInt32 IndexedFaceSet_11_93_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_11_93_coordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_11_93_coordIndex_2()));
			return IndexedFaceSet_11_93_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=12, element #93, 576 total numbers made up of 192 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_93_point()
		{
			MFVec3f Coordinate_12_93_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_12_93_point_1()))
				.append(new MFVec3f(getCoordinate_12_93_point_2()));
			return Coordinate_12_93_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 BrowPrototype 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 BrowPrototype().getX3dModel();
//      System.out.println("X3D model construction complete.");
	
        // next handle command line arguments
        boolean hasArguments = (args != null) && (args.length > 0);
        boolean validate = true; // default
        boolean argumentsLoadNewModel = false;
        String  fileName = new String();

        if (args != null)
        {
                for (String arg : args)
                {
                        if (arg.toLowerCase().startsWith("-v") || arg.toLowerCase().contains("validate"))
                        {
                                validate = true; // making sure
                        }
                        if (arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3D) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_CLASSICVRML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3DB) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_VRML97) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_EXI) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_GZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_ZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_HTML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_XHTML))
                        {
                                argumentsLoadNewModel = true;
                                fileName = arg;
                        }
                }
        }
        if      (argumentsLoadNewModel)
                System.out.println("WARNING: \"Savage.HarborEquipment.Brow.BrowPrototype\" model invocation is attempting to load file \"" + fileName + "\" instead of simply validating itself... file loading ignored.");
        else if (hasArguments) // if no arguments provided, this method produces usage warning
                thisExampleX3dModel.handleArguments(args);
	
        if (validate)
        {
            //  System.out.println("--- TODO fix duplicated outputs ---"); // omit when duplicated outputs problem is solved/refactored
		String validationResults = thisExampleX3dModel.validationReport();
            //  System.out.println("-----------------------------------"); // omit when duplicated outputs problem is solved/refactored
                System.out.print("Savage.HarborEquipment.Brow.BrowPrototype self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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