package Savage.Weapons.Ammunition;

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.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> The storage canister for an SM2 missile. Includes the PHS+T brackets on both ends which is how this item is stored on the pier prior to onload. </p>
 <p> Related links: Catalog page <a href="../../../../Weapons/Ammunition/SM2CanisterIndex.html" target="_blank">SM2Canister</a>,  source <a href="../../../../Weapons/Ammunition/SM2Canister.java">SM2Canister.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="../../../../Weapons/Ammunition/SM2Canister.x3d">SM2Canister.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> The storage canister for an SM2 missile. Includes the PHS+T brackets on both ends which is how this item is stored on the pier prior to onload. </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> 14 January 2005 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modified </i> </td>
			<td> 28 November 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/Weapons/Ammunition/SM2Canister.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/Weapons/Ammunition/SM2Canister.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="../../../../Weapons/Ammunition/../../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 SM2Canister
{
	/** Default constructor to create this object. */
	public SM2Canister ()
	{
	  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("SM2Canister.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("The storage canister for an SM2 missile. Includes the PHS+T brackets on both ends which is how this item is stored on the pier prior to onload."))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("LT Patrick Sullivan"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("14 January 2005"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("28 November 2019"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/Weapons/Ammunition/SM2Canister.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("SM2Canister.x3d"))
    .addChild(new Transform("dad_GROUND")
      .addChild(new Group("GROUND")
        .addChild(new Transform("dad_Import_Base")
          .addChild(new Group("Import_Base")
            .addChild(new Transform("dad_cube2_copy3")
              .addChild(new Shape("cube2_copy3")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("gray_mat").setDiffuseColor(.6,.6,.6).setShininess(1).setSpecularColor(.02353,.02353,.02353)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(getIndexedFaceSet_9_15_coordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_15_point())))))
            .addChild(new Transform("dad_cube2")
              .addChild(new Shape("cube2")
                .setAppearance(new Appearance()
                  .setMaterial(new Material().setUSE("gray_mat")))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.524).setCoordIndex(getIndexedFaceSet_9_21_coordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_21_point())))))
            .addChild(new Transform("dad_cube1")
              .addChild(new Shape("cube1")
                .setAppearance(new Appearance()
                  .setMaterial(new Material("default_mat").setDiffuseColor(1.0,1.0,1.0).setShininess(1).setSpecularColor(.02353,.02353,.02353)))
                .setGeometry(new IndexedFaceSet().setCreaseAngle(0.000).setCoordIndex(getIndexedFaceSet_9_27_coordIndex())
                  .setCoord(new Coordinate().setPoint(getCoordinate_10_27_point()))))))))));
            }
            catch (Exception ex)
            {       
                System.err.println ("*** Further hints on X3DJSAIL errors and exceptions at");
                System.err.println ("*** https://www.web3d.org/specifications/java/X3DJSAIL.html");
                throw (ex);
            }
	}
	// end of initialize() method

		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_9_15_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,8,9,-1,0,9,1,-1,0,7,10,-1,0,10,11,-1,0,11,12,-1,0,12,8,-1,5,4,13,-1,5,13,14,-1,5,14,15,-1,5,15,16,-1,5,16,17,-1,5,17,6,-1,4,3,18,-1,4,18,19,-1,4,19,20,-1,4,20,13,-1,1,9,21,-1,1,21,22,-1,1,22,23,-1,1,23,2,-1,8,12,15,-1,8,15,14,-1,8,14,13,-1,8,13,20,-1,8,20,21,-1,8,21,9,-1,7,6,17,-1,7,17,10,-1,3,2,23,-1,3,23,18,-1,12,11,16,-1,12,16,15,-1,20,19,22,-1,20,22,21,-1,23,22,24,-1,23,24,25,-1,23,25,26,-1,23,26,18,-1,22,19,27,-1,22,27,24,-1,18,26,27,-1,18,27,19,-1,17,16,28,-1,17,28,29,-1,17,29,30,-1,17,30,10,-1,16,11,31,-1,16,31,28,-1,10,30,31,-1,10,31,11,-1,32,33,34,-1,32,34,35,-1,32,35,36,-1,32,36,31,-1,32,31,30,-1,32,30,37,-1,32,37,38,-1,32,38,39,-1,32,39,40,-1,32,40,41,-1,32,41,42,-1,32,42,33,-1,39,43,44,-1,39,44,40,-1,39,38,29,-1,39,29,28,-1,39,28,45,-1,39,45,43,-1,40,44,46,-1,40,46,27,-1,40,27,26,-1,40,26,41,-1,33,42,25,-1,33,25,24,-1,33,24,47,-1,33,47,34,-1,35,34,47,-1,35,47,46,-1,35,46,44,-1,35,44,43,-1,35,43,45,-1,35,45,36,-1,37,30,29,-1,37,29,38,-1,41,26,25,-1,41,25,42,-1,36,45,28,-1,36,28,31,-1,46,47,24,-1,46,24,27,-1};
			return value;
		}



		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_9_21_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,8,9,-1,0,9,1,-1,0,7,10,-1,0,10,11,-1,0,11,12,-1,0,12,8,-1,5,4,13,-1,5,13,14,-1,5,14,15,-1,5,15,16,-1,5,16,17,-1,5,17,6,-1,4,3,18,-1,4,18,19,-1,4,19,20,-1,4,20,13,-1,1,9,21,-1,1,21,22,-1,1,22,23,-1,1,23,2,-1,8,12,15,-1,8,15,14,-1,8,14,13,-1,8,13,20,-1,8,20,21,-1,8,21,9,-1,7,6,17,-1,7,17,10,-1,3,2,23,-1,3,23,18,-1,12,11,16,-1,12,16,15,-1,20,19,22,-1,20,22,21,-1,23,22,24,-1,23,24,25,-1,23,25,26,-1,23,26,18,-1,22,19,27,-1,22,27,24,-1,18,26,27,-1,18,27,19,-1,17,16,28,-1,17,28,29,-1,17,29,30,-1,17,30,10,-1,16,11,31,-1,16,31,28,-1,10,30,31,-1,10,31,11,-1,32,33,34,-1,32,34,35,-1,32,35,36,-1,32,36,31,-1,32,31,30,-1,32,30,37,-1,32,37,38,-1,32,38,39,-1,32,39,40,-1,32,40,41,-1,32,41,42,-1,32,42,33,-1,39,43,44,-1,39,44,40,-1,39,38,29,-1,39,29,28,-1,39,28,45,-1,39,45,43,-1,40,44,46,-1,40,46,27,-1,40,27,26,-1,40,26,41,-1,33,42,25,-1,33,25,24,-1,33,24,47,-1,33,47,34,-1,35,34,47,-1,35,47,46,-1,35,46,44,-1,35,44,43,-1,35,43,45,-1,35,45,36,-1,37,30,29,-1,37,29,38,-1,41,26,25,-1,41,25,42,-1,36,45,28,-1,36,28,31,-1,46,47,24,-1,46,24,27,-1};
			return value;
		}



		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_9_27_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,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,18,-1,0,18,19,-1,0,19,20,-1,0,20,21,-1,0,21,22,-1,0,22,23,-1,0,23,24,-1,0,24,25,-1,0,25,26,-1,0,26,27,-1,0,27,28,-1,0,28,29,-1,0,29,30,-1,0,30,31,-1,0,31,32,-1,0,32,33,-1,0,33,34,-1,0,34,35,-1,0,35,36,-1,0,36,37,-1,0,37,38,-1,0,38,39,-1,0,39,40,-1,0,40,41,-1,0,41,42,-1,0,42,43,-1,0,43,44,-1,45,0,46,-1,47,0,45,-1,0,47,48,-1,0,48,49,-1,0,49,50,-1,0,50,1,-1,0,44,51,-1,0,51,46,-1,52,53,54,-1,52,54,55,-1,52,55,56,-1,52,56,57,-1,52,57,58,-1,52,58,59,-1,52,59,60,-1,52,60,61,-1,52,61,62,-1,52,62,63,-1,52,63,64,-1,52,64,65,-1,52,65,66,-1,52,66,67,-1,52,67,68,-1,52,68,69,-1,52,69,70,-1,52,70,71,-1,52,71,72,-1,52,72,73,-1,52,73,74,-1,52,74,75,-1,52,75,76,-1,52,76,77,-1,52,77,78,-1,52,78,79,-1,52,79,80,-1,52,80,81,-1,52,81,82,-1,52,82,83,-1,52,83,84,-1,52,84,85,-1,52,85,86,-1,52,86,87,-1,52,87,88,-1,52,88,89,-1,52,89,90,-1,52,90,91,-1,52,91,92,-1,52,92,93,-1,52,93,94,-1,52,95,96,-1,52,96,97,-1,52,97,98,-1,52,98,99,-1,52,99,100,-1,52,100,101,-1,52,101,102,-1,52,102,103,-1,52,103,104,-1,52,104,105,-1,52,105,106,-1,52,106,107,-1,52,107,108,-1,52,108,109,-1,52,109,110,-1,52,110,111,-1,52,111,112,-1,52,112,113,-1,52,113,114,-1,52,114,115,-1,52,115,116,-1,52,116,117,-1,52,117,118,-1,52,118,119,-1,52,119,120,-1,52,120,121,-1,52,121,122,-1,52,122,123,-1,52,123,124,-1,52,124,125,-1,52,125,126,-1,52,126,127,-1,52,127,128,-1,52,128,129,-1,52,129,130,-1,52,130,131,-1,52,131,132,-1,52,132,133,-1,52,133,134,-1,52,134,135,-1,52,135,53,-1,52,94,136,-1,52,136,137,-1,52,137,138,-1,52,138,95,-1,53,135,139,-1,53,139,140,-1,53,140,141,-1,53,141,54,-1,1,50,142,-1,1,142,143,-1,1,143,144,-1,1,144,2,-1,47,45,145,-1,47,145,146,-1,47,147,148,-1,47,148,149,-1,47,149,150,-1,47,150,151,-1,47,151,152,-1,47,152,153,-1,47,153,154,-1,47,154,155,-1,47,155,156,-1,47,156,157,-1,47,157,158,-1,47,158,159,-1,47,159,160,-1,47,160,161,-1,47,161,162,-1,47,162,163,-1,47,163,164,-1,47,164,165,-1,47,165,166,-1,47,166,167,-1,47,167,168,-1,47,168,169,-1,47,169,170,-1,47,170,171,-1,47,171,172,-1,47,172,173,-1,47,173,174,-1,47,174,175,-1,47,175,176,-1,47,176,177,-1,47,177,178,-1,47,178,179,-1,47,179,180,-1,47,180,181,-1,47,181,182,-1,47,182,183,-1,47,183,184,-1,47,184,185,-1,47,185,186,-1,47,186,187,-1,47,187,48,-1,47,146,188,-1,47,188,147,-1,189,190,191,-1,189,191,192,-1,189,192,193,-1,189,193,194,-1,189,194,195,-1,189,195,196,-1,189,196,197,-1,189,197,198,-1,189,198,199,-1,189,199,200,-1,189,200,201,-1,189,201,202,-1,189,202,203,-1,189,203,204,-1,189,204,205,-1,189,205,206,-1,189,206,207,-1,189,207,208,-1,189,208,209,-1,189,209,210,-1,189,210,211,-1,189,211,212,-1,189,212,213,-1,189,213,214,-1,189,214,215,-1,189,215,216,-1,189,216,217,-1,189,217,218,-1,189,218,219,-1,189,219,220,-1,189,220,221,-1,189,221,222,-1,189,222,223,-1,189,223,224,-1,189,224,225,-1,189,225,226,-1,189,226,227,-1,189,227,228,-1,189,228,229,-1,189,229,230,-1,189,230,231,-1,189,232,233,-1,189,233,234,-1,189,234,235,-1,189,235,236,-1,189,236,237,-1,189,237,238,-1,189,238,239,-1,189,239,240,-1,189,240,241,-1,189,241,242,-1,189,242,243,-1,189,243,244,-1,189,244,245,-1,189,245,246,-1,189,246,247,-1,189,247,248,-1,189,248,249,-1,189,249,250,-1,189,250,251,-1};
			return value;
		}
		private int[] getIndexedFaceSet_9_27_coordIndex_2()
		{
			int[] value = {189,251,252,-1,189,252,253,-1,189,253,254,-1,189,254,255,-1,189,255,256,-1,189,256,257,-1,189,257,258,-1,189,258,259,-1,189,259,260,-1,189,260,261,-1,189,261,262,-1,189,262,263,-1,189,263,264,-1,189,264,265,-1,189,265,266,-1,189,266,267,-1,189,267,268,-1,189,268,269,-1,189,269,270,-1,189,270,271,-1,189,271,272,-1,189,272,190,-1,189,231,273,-1,189,273,274,-1,189,274,275,-1,189,275,232,-1,190,272,276,-1,190,276,277,-1,190,277,278,-1,190,278,191,-1,48,187,279,-1,48,279,280,-1,48,280,281,-1,48,281,49,-1,42,95,138,-1,42,138,43,-1,42,41,96,-1,42,96,95,-1,46,51,145,-1,46,145,45,-1,94,232,275,-1,94,275,136,-1,94,93,233,-1,94,233,232,-1,135,2,144,-1,135,144,139,-1,135,134,3,-1,135,3,2,-1,54,272,271,-1,54,271,55,-1,54,141,276,-1,54,276,272,-1,50,49,281,-1,50,281,142,-1,147,231,230,-1,147,230,148,-1,147,188,273,-1,147,273,231,-1,191,187,186,-1,191,186,192,-1,191,278,279,-1,191,279,187,-1,74,252,282,-1,74,282,283,-1,74,73,253,-1,74,253,252,-1,74,283,284,-1,74,284,75,-1,252,251,285,-1,252,285,282,-1,22,115,286,-1,22,286,287,-1,22,21,116,-1,22,116,115,-1,22,287,288,-1,22,288,23,-1,115,114,289,-1,115,289,286,-1,211,167,290,-1,211,290,291,-1,211,210,168,-1,211,168,167,-1,211,291,292,-1,211,292,212,-1,167,166,293,-1,167,293,290,-1,84,242,294,-1,84,294,295,-1,84,83,243,-1,84,243,242,-1,84,295,296,-1,84,296,85,-1,242,241,297,-1,242,297,294,-1,32,105,298,-1,32,298,299,-1,32,31,106,-1,32,106,105,-1,32,299,300,-1,32,300,33,-1,105,104,301,-1,105,301,298,-1,221,157,302,-1,221,302,303,-1,221,220,158,-1,221,158,157,-1,221,303,304,-1,221,304,222,-1,157,156,305,-1,157,305,302,-1,64,262,306,-1,64,306,307,-1,64,63,263,-1,64,263,262,-1,64,307,308,-1,64,308,65,-1,262,261,309,-1,262,309,306,-1,12,125,310,-1,12,310,311,-1,12,11,126,-1,12,126,125,-1,12,311,312,-1,12,312,13,-1,125,124,313,-1,125,313,310,-1,201,177,314,-1,201,314,315,-1,201,200,178,-1,201,178,177,-1,201,315,316,-1,201,316,202,-1,177,176,317,-1,177,317,314,-1,93,92,318,-1,93,318,319,-1,93,319,320,-1,93,320,233,-1,92,91,235,-1,92,235,234,-1,92,234,321,-1,92,321,318,-1,91,90,322,-1,91,322,323,-1,91,323,324,-1,91,324,235,-1,90,89,237,-1,90,237,236,-1,90,236,325,-1,90,325,322,-1,89,88,326,-1,89,326,327,-1,89,327,328,-1,89,328,237,-1,88,87,239,-1,88,239,238,-1,88,238,329,-1,88,329,326,-1,87,86,330,-1,87,330,331,-1,87,331,332,-1,87,332,239,-1,86,85,241,-1,86,241,240,-1,86,240,333,-1,86,333,330,-1,85,296,297,-1,85,297,241,-1,233,320,321,-1,233,321,234,-1,235,324,325,-1,235,325,236,-1,237,328,329,-1,237,329,238,-1,239,332,333,-1,239,333,240,-1,41,40,334,-1,41,334,335,-1,41,335,336,-1,41,336,96,-1,40,39,98,-1,40,98,97,-1,40,97,337,-1,40,337,334,-1,39,38,338,-1,39,338,339,-1,39,339,340,-1,39,340,98,-1,38,37,100,-1,38,100,99,-1,38,99,341,-1,38,341,338,-1,37,36,342,-1,37,342,343,-1,37,343,344,-1,37,344,100,-1,36,35,102,-1,36,102,101,-1,36,101,345,-1,36,345,342,-1,35,34,346,-1,35,346,347,-1,35,347,348,-1,35,348,102,-1,34,33,104,-1,34,104,103,-1,34,103,349,-1,34,349,346,-1,33,300,301,-1,33,301,104,-1,96,336,337,-1,96,337,97,-1,98,340,341,-1,98,341,99,-1,100,344,345,-1,100,345,101,-1,102,348,349,-1,102,349,103,-1,230,229,350,-1,230,350,351,-1,230,351,352,-1,230,352,148,-1,229,228,150,-1,229,150,149,-1,229,149,353,-1,229,353,350,-1,228,227,354,-1,228,354,355,-1,228,355,356,-1,228,356,150,-1,227,226,152,-1,227,152,151,-1,227,151,357,-1,227,357,354,-1,226,225,358,-1,226,358,359,-1,226,359,360,-1,226,360,152,-1,225,224,154,-1,225,154,153,-1,225,153,361,-1,225,361,358,-1,224,223,362,-1,224,362,363,-1,224,363,364,-1,224,364,154,-1,223,222,156,-1,223,156,155,-1,223,155,365,-1,223,365,362,-1};
			return value;
		}
		private int[] getIndexedFaceSet_9_27_coordIndex_3()
		{
			int[] value = {222,304,305,-1,222,305,156,-1,148,352,353,-1,148,353,149,-1,150,356,357,-1,150,357,151,-1,152,360,361,-1,152,361,153,-1,154,364,365,-1,154,365,155,-1,73,72,366,-1,73,366,367,-1,73,367,368,-1,73,368,253,-1,72,71,255,-1,72,255,254,-1,72,254,369,-1,72,369,366,-1,71,70,370,-1,71,370,371,-1,71,371,372,-1,71,372,255,-1,70,69,257,-1,70,257,256,-1,70,256,373,-1,70,373,370,-1,69,68,374,-1,69,374,375,-1,69,375,376,-1,69,376,257,-1,68,67,259,-1,68,259,258,-1,68,258,377,-1,68,377,374,-1,67,66,378,-1,67,378,379,-1,67,379,380,-1,67,380,259,-1,66,65,261,-1,66,261,260,-1,66,260,381,-1,66,381,378,-1,65,308,309,-1,65,309,261,-1,253,368,369,-1,253,369,254,-1,255,372,373,-1,255,373,256,-1,257,376,377,-1,257,377,258,-1,259,380,381,-1,259,381,260,-1,21,20,382,-1,21,382,383,-1,21,383,384,-1,21,384,116,-1,20,19,118,-1,20,118,117,-1,20,117,385,-1,20,385,382,-1,19,18,386,-1,19,386,387,-1,19,387,388,-1,19,388,118,-1,18,17,120,-1,18,120,119,-1,18,119,389,-1,18,389,386,-1,17,16,390,-1,17,390,391,-1,17,391,392,-1,17,392,120,-1,16,15,122,-1,16,122,121,-1,16,121,393,-1,16,393,390,-1,15,14,394,-1,15,394,395,-1,15,395,396,-1,15,396,122,-1,14,13,124,-1,14,124,123,-1,14,123,397,-1,14,397,394,-1,13,312,313,-1,13,313,124,-1,116,384,385,-1,116,385,117,-1,118,388,389,-1,118,389,119,-1,120,392,393,-1,120,393,121,-1,122,396,397,-1,122,397,123,-1,210,209,398,-1,210,398,399,-1,210,399,400,-1,210,400,168,-1,209,208,170,-1,209,170,169,-1,209,169,401,-1,209,401,398,-1,208,207,402,-1,208,402,403,-1,208,403,404,-1,208,404,170,-1,207,206,172,-1,207,172,171,-1,207,171,405,-1,207,405,402,-1,206,205,406,-1,206,406,407,-1,206,407,408,-1,206,408,172,-1,205,204,174,-1,205,174,173,-1,205,173,409,-1,205,409,406,-1,204,203,410,-1,204,410,411,-1,204,411,412,-1,204,412,174,-1,203,202,176,-1,203,176,175,-1,203,175,413,-1,203,413,410,-1,202,316,317,-1,202,317,176,-1,168,400,401,-1,168,401,169,-1,170,404,405,-1,170,405,171,-1,172,408,409,-1,172,409,173,-1,174,412,413,-1,174,413,175,-1,83,82,414,-1,83,414,415,-1,83,415,416,-1,83,416,243,-1,82,81,245,-1,82,245,244,-1,82,244,417,-1,82,417,414,-1,81,80,418,-1,81,418,419,-1,81,419,420,-1,81,420,245,-1,80,79,247,-1,80,247,246,-1,80,246,421,-1,80,421,418,-1,79,78,422,-1,79,422,423,-1,79,423,424,-1,79,424,247,-1,78,77,249,-1,78,249,248,-1,78,248,425,-1,78,425,422,-1,77,76,426,-1,77,426,427,-1,77,427,428,-1,77,428,249,-1,76,75,251,-1,76,251,250,-1,76,250,429,-1,76,429,426,-1,75,284,285,-1,75,285,251,-1,243,416,417,-1,243,417,244,-1,245,420,421,-1,245,421,246,-1,247,424,425,-1,247,425,248,-1,249,428,429,-1,249,429,250,-1,31,30,430,-1,31,430,431,-1,31,431,432,-1,31,432,106,-1,30,29,108,-1,30,108,107,-1,30,107,433,-1,30,433,430,-1,29,28,434,-1,29,434,435,-1,29,435,436,-1,29,436,108,-1,28,27,110,-1,28,110,109,-1,28,109,437,-1,28,437,434,-1,27,26,438,-1,27,438,439,-1,27,439,440,-1,27,440,110,-1,26,25,112,-1,26,112,111,-1,26,111,441,-1,26,441,438,-1,25,24,442,-1,25,442,443,-1,25,443,444,-1,25,444,112,-1,24,23,114,-1,24,114,113,-1,24,113,445,-1,24,445,442,-1,23,288,289,-1,23,289,114,-1,106,432,433,-1,106,433,107,-1,108,436,437,-1,108,437,109,-1,110,440,441,-1,110,441,111,-1,112,444,445,-1,112,445,113,-1,220,219,446,-1,220,446,447,-1,220,447,448,-1,220,448,158,-1,219,218,160,-1,219,160,159,-1,219,159,449,-1,219,449,446,-1,218,217,450,-1,218,450,451,-1,218,451,452,-1,218,452,160,-1,217,216,162,-1,217,162,161,-1,217,161,453,-1,217,453,450,-1,216,215,454,-1,216,454,455,-1,216,455,456,-1,216,456,162,-1,215,214,164,-1,215,164,163,-1,215,163,457,-1,215,457,454,-1,214,213,458,-1,214,458,459,-1,214,459,460,-1,214,460,164,-1,213,212,166,-1,213,166,165,-1};
			return value;
		}
		private int[] getIndexedFaceSet_9_27_coordIndex_4()
		{
			int[] value = {213,165,461,-1,213,461,458,-1,212,292,293,-1,212,293,166,-1,158,448,449,-1,158,449,159,-1,160,452,453,-1,160,453,161,-1,162,456,457,-1,162,457,163,-1,164,460,461,-1,164,461,165,-1,63,62,462,-1,63,462,463,-1,63,463,464,-1,63,464,263,-1,62,61,265,-1,62,265,264,-1,62,264,465,-1,62,465,462,-1,61,60,466,-1,61,466,467,-1,61,467,468,-1,61,468,265,-1,60,59,267,-1,60,267,266,-1,60,266,469,-1,60,469,466,-1,59,58,470,-1,59,470,471,-1,59,471,472,-1,59,472,267,-1,58,57,269,-1,58,269,268,-1,58,268,473,-1,58,473,470,-1,57,56,474,-1,57,474,475,-1,57,475,476,-1,57,476,269,-1,56,55,271,-1,56,271,270,-1,56,270,477,-1,56,477,474,-1,263,464,465,-1,263,465,264,-1,265,468,469,-1,265,469,266,-1,267,472,473,-1,267,473,268,-1,269,476,477,-1,269,477,270,-1,11,10,478,-1,11,478,479,-1,11,479,480,-1,11,480,126,-1,10,9,128,-1,10,128,127,-1,10,127,481,-1,10,481,478,-1,9,8,482,-1,9,482,483,-1,9,483,484,-1,9,484,128,-1,8,7,130,-1,8,130,129,-1,8,129,485,-1,8,485,482,-1,7,6,486,-1,7,486,487,-1,7,487,488,-1,7,488,130,-1,6,5,132,-1,6,132,131,-1,6,131,489,-1,6,489,486,-1,5,4,490,-1,5,490,491,-1,5,491,492,-1,5,492,132,-1,4,3,134,-1,4,134,133,-1,4,133,493,-1,4,493,490,-1,126,480,481,-1,126,481,127,-1,128,484,485,-1,128,485,129,-1,130,488,489,-1,130,489,131,-1,132,492,493,-1,132,493,133,-1,200,199,494,-1,200,494,495,-1,200,495,496,-1,200,496,178,-1,199,198,180,-1,199,180,179,-1,199,179,497,-1,199,497,494,-1,198,197,498,-1,198,498,499,-1,198,499,500,-1,198,500,180,-1,197,196,182,-1,197,182,181,-1,197,181,501,-1,197,501,498,-1,196,195,502,-1,196,502,503,-1,196,503,504,-1,196,504,182,-1,195,194,184,-1,195,184,183,-1,195,183,505,-1,195,505,502,-1,194,193,506,-1,194,506,507,-1,194,507,508,-1,194,508,184,-1,193,192,186,-1,193,186,185,-1,193,185,509,-1,193,509,506,-1,178,496,497,-1,178,497,179,-1,180,500,501,-1,180,501,181,-1,182,504,505,-1,182,505,183,-1,184,508,509,-1,184,509,185,-1,319,318,321,-1,319,321,320,-1,324,323,322,-1,324,322,325,-1,326,329,328,-1,326,328,327,-1,330,333,332,-1,330,332,331,-1,295,294,297,-1,295,297,296,-1,414,417,416,-1,414,416,415,-1,418,421,420,-1,418,420,419,-1,422,425,424,-1,422,424,423,-1,426,429,428,-1,426,428,427,-1,283,282,285,-1,283,285,284,-1,366,369,368,-1,366,368,367,-1,370,373,372,-1,370,372,371,-1,374,377,376,-1,374,376,375,-1,378,381,380,-1,378,380,379,-1,307,306,309,-1,307,309,308,-1,462,465,464,-1,462,464,463,-1,466,469,468,-1,466,468,467,-1,470,473,472,-1,470,472,471,-1,474,477,476,-1,474,476,475,-1,334,337,336,-1,334,336,335,-1,338,341,340,-1,338,340,339,-1,342,345,344,-1,342,344,343,-1,346,349,348,-1,346,348,347,-1,299,298,301,-1,299,301,300,-1,430,433,432,-1,430,432,431,-1,434,437,436,-1,434,436,435,-1,438,441,440,-1,438,440,439,-1,442,445,444,-1,442,444,443,-1,287,286,289,-1,287,289,288,-1,382,385,384,-1,382,384,383,-1,386,389,388,-1,386,388,387,-1,390,393,392,-1,390,392,391,-1,394,397,396,-1,394,396,395,-1,311,310,313,-1,311,313,312,-1,478,481,480,-1,478,480,479,-1,482,485,484,-1,482,484,483,-1,486,489,488,-1,486,488,487,-1,490,493,492,-1,490,492,491,-1,350,353,352,-1,350,352,351,-1,354,357,356,-1,354,356,355,-1,358,361,360,-1,358,360,359,-1,362,365,364,-1,362,364,363,-1,303,302,305,-1,303,305,304,-1,446,449,448,-1,446,448,447,-1,450,453,452,-1,450,452,451,-1,454,457,456,-1,454,456,455,-1,458,461,460,-1,458,460,459,-1,291,290,293,-1,291,293,292,-1,398,401,400,-1,398,400,399,-1,402,405,404,-1,402,404,403,-1,406,409,408,-1,406,408,407,-1,410,413,412,-1,410,412,411,-1,315,314,317,-1,315,317,316,-1,494,497,496,-1,494,496,495,-1,498,501,500,-1,498,500,499,-1,502,505,504,-1,502,504,503,-1,506,509,508,-1,506,508,507,-1,140,139,510,-1,140,510,511,-1,140,511,512,-1,140,512,141,-1};
			return value;
		}
		private int[] getIndexedFaceSet_9_27_coordIndex_5()
		{
			int[] value = {139,144,513,-1,139,513,510,-1,144,143,514,-1,144,514,513,-1,143,142,515,-1,143,515,514,-1,142,281,516,-1,142,516,515,-1,281,280,517,-1,281,517,516,-1,280,279,518,-1,280,518,517,-1,279,278,519,-1,279,519,518,-1,278,277,520,-1,278,520,519,-1,277,276,521,-1,277,521,520,-1,276,141,512,-1,276,512,521,-1,513,511,510,-1,514,511,513,-1,511,514,515,-1,511,515,516,-1,511,516,517,-1,511,517,518,-1,511,518,519,-1,511,519,520,-1,511,520,521,-1,511,521,512,-1,44,43,522,-1,44,522,523,-1,44,523,524,-1,44,524,51,-1,43,138,525,-1,43,525,522,-1,138,137,526,-1,138,526,525,-1,137,136,527,-1,137,527,526,-1,136,275,528,-1,136,528,527,-1,275,274,529,-1,275,529,528,-1,274,273,530,-1,274,530,529,-1,273,188,531,-1,273,531,530,-1,188,146,532,-1,188,532,531,-1,146,145,533,-1,146,533,532,-1,145,51,524,-1,145,524,533,-1,525,523,522,-1,526,523,525,-1,523,526,527,-1,523,527,528,-1,523,528,529,-1,523,529,530,-1,523,530,531,-1,523,531,532,-1,523,532,533,-1,523,533,524,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_10_27_point_1()
		{
			double[] value = {-7.716,-1.0,1.0,7.716,-1.0,1.0,7.716,-.77667,1.0,7.3302,-.77667,1.0,6.9444,-.77667,1.0,6.5586,-.77667,1.0,6.1728,-.77667,1.0,5.787,-.77667,1.0,5.4012,-.77667,1.0,5.0154,-.77667,1.0,4.6296,-.77667,1.0,4.2438,-.77667,1.0,3.858,-.77667,1.0,3.4722,-.77667,1.0,3.0864,-.77667,1.0,2.7006,-.77667,1.0,2.3148,-.77667,1.0,1.929,-.77667,1.0,1.5432,-.77667,1.0,1.1574,-.77667,1.0,.7716,-.77667,1.0,.3858,-.77667,1.0,0.0,-.77667,1.0,-.3858,-.77667,1.0,-.7716,-.77667,1.0,-1.1574,-.77667,1.0,-1.5432,-.77667,1.0,-1.929,-.77667,1.0,-2.3148,-.77667,1.0,-2.7006,-.77667,1.0,-3.0864,-.77667,1.0,-3.4722,-.77667,1.0,-3.858,-.77667,1.0,-4.2438,-.77667,1.0,-4.6296,-.77667,1.0,-5.0154,-.77667,1.0,-5.4012,-.77667,1.0,-5.787,-.77667,1.0,-6.1728,-.77667,1.0,-6.5586,-.77667,1.0,-6.9444,-.77667,1.0,-7.3302,-.77667,1.0,-7.716,-.77667,1.0,-7.716,-.77667,.872,-7.716,-.872,.872,-7.716,-1.0,-.33333,-7.716,-1.0,.33333,-7.716,-1.0,-1.0,7.716,-1.0,-1.0,7.716,-1.0,-.33333,7.716,-1.0,.33333,-7.716,-.872,.33333,-7.716,1.0,1.0,7.716,1.0,1.0,7.716,1.0,.69518,7.3302,1.0,.69518,6.9444,1.0,.69518,6.5586,1.0,.69518,6.1728,1.0,.69518,5.787,1.0,.69518,5.4012,1.0,.69518,5.0154,1.0,.69518,4.6296,1.0,.69518,4.2438,1.0,.69518,3.858,1.0,.69518,3.4722,1.0,.69518,3.0864,1.0,.69518,2.7006,1.0,.69518,2.3148,1.0,.69518,1.929,1.0,.69518,1.5432,1.0,.69518,1.1574,1.0,.69518,.7716,1.0,.69518,.3858,1.0,.69518,0.0,1.0,.69518,-.3858,1.0,.69518,-.7716,1.0,.69518,-1.1574,1.0,.69518,-1.5432,1.0,.69518,-1.929,1.0,.69518,-2.3148,1.0,.69518,-2.7006,1.0,.69518,-3.0864,1.0,.69518,-3.4722,1.0,.69518,-3.858,1.0,.69518,-4.2438,1.0,.69518,-4.6296,1.0,.69518,-5.0154,1.0,.69518,-5.4012,1.0,.69518,-5.787,1.0,.69518,-6.1728,1.0,.69518,-6.5586,1.0,.69518,-6.9444,1.0,.69518,-7.3302,1.0,.69518,-7.716,1.0,.69518,-7.716,.77667,1.0,-7.3302,.77667,1.0,-6.9444,.77667,1.0,-6.5586,.77667,1.0,-6.1728,.77667,1.0};
			return value;
		}
		private double[] getCoordinate_10_27_point_2()
		{
			double[] value = {-5.787,.77667,1.0,-5.4012,.77667,1.0,-5.0154,.77667,1.0,-4.6296,.77667,1.0,-4.2438,.77667,1.0,-3.858,.77667,1.0,-3.4722,.77667,1.0,-3.0864,.77667,1.0,-2.7006,.77667,1.0,-2.3148,.77667,1.0,-1.929,.77667,1.0,-1.5432,.77667,1.0,-1.1574,.77667,1.0,-.7716,.77667,1.0,-.3858,.77667,1.0,0.0,.77667,1.0,.3858,.77667,1.0,.7716,.77667,1.0,1.1574,.77667,1.0,1.5432,.77667,1.0,1.929,.77667,1.0,2.3148,.77667,1.0,2.7006,.77667,1.0,3.0864,.77667,1.0,3.4722,.77667,1.0,3.858,.77667,1.0,4.2438,.77667,1.0,4.6296,.77667,1.0,5.0154,.77667,1.0,5.4012,.77667,1.0,5.787,.77667,1.0,6.1728,.77667,1.0,6.5586,.77667,1.0,6.9444,.77667,1.0,7.3302,.77667,1.0,7.716,.77667,1.0,-7.716,.872,.69518,-7.716,.872,.872,-7.716,.77667,.872,7.716,.71919,.81858,7.716,.81858,.81858,7.716,.81858,.64373,7.716,-.81858,.30867,7.716,-.81858,.81858,7.716,-.71919,.81858,-7.716,-.872,-.33333,-7.716,-.872,-.872,-7.716,-.77667,-1.0,-7.3302,-.77667,-1.0,-6.9444,-.77667,-1.0,-6.5586,-.77667,-1.0,-6.1728,-.77667,-1.0,-5.787,-.77667,-1.0,-5.4012,-.77667,-1.0,-5.0154,-.77667,-1.0,-4.6296,-.77667,-1.0,-4.2438,-.77667,-1.0,-3.858,-.77667,-1.0,-3.4722,-.77667,-1.0,-3.0864,-.77667,-1.0,-2.7006,-.77667,-1.0,-2.3148,-.77667,-1.0,-1.929,-.77667,-1.0,-1.5432,-.77667,-1.0,-1.1574,-.77667,-1.0,-.7716,-.77667,-1.0,-.3858,-.77667,-1.0,0.0,-.77667,-1.0,.3858,-.77667,-1.0,.7716,-.77667,-1.0,1.1574,-.77667,-1.0,1.5432,-.77667,-1.0,1.929,-.77667,-1.0,2.3148,-.77667,-1.0,2.7006,-.77667,-1.0,3.0864,-.77667,-1.0,3.4722,-.77667,-1.0,3.858,-.77667,-1.0,4.2438,-.77667,-1.0,4.6296,-.77667,-1.0,5.0154,-.77667,-1.0,5.4012,-.77667,-1.0,5.787,-.77667,-1.0,6.1728,-.77667,-1.0,6.5586,-.77667,-1.0,6.9444,-.77667,-1.0,7.3302,-.77667,-1.0,7.716,-.77667,-1.0,-7.716,-.77667,-.872,-7.716,1.0,-1.0,7.716,1.0,-1.0,7.716,.77667,-1.0,7.3302,.77667,-1.0,6.9444,.77667,-1.0,6.5586,.77667,-1.0,6.1728,.77667,-1.0,5.787,.77667,-1.0,5.4012,.77667,-1.0,5.0154,.77667,-1.0,4.6296,.77667,-1.0};
			return value;
		}
		private double[] getCoordinate_10_27_point_3()
		{
			double[] value = {4.2438,.77667,-1.0,3.858,.77667,-1.0,3.4722,.77667,-1.0,3.0864,.77667,-1.0,2.7006,.77667,-1.0,2.3148,.77667,-1.0,1.929,.77667,-1.0,1.5432,.77667,-1.0,1.1574,.77667,-1.0,.7716,.77667,-1.0,.3858,.77667,-1.0,0.0,.77667,-1.0,-.3858,.77667,-1.0,-.7716,.77667,-1.0,-1.1574,.77667,-1.0,-1.5432,.77667,-1.0,-1.929,.77667,-1.0,-2.3148,.77667,-1.0,-2.7006,.77667,-1.0,-3.0864,.77667,-1.0,-3.4722,.77667,-1.0,-3.858,.77667,-1.0,-4.2438,.77667,-1.0,-4.6296,.77667,-1.0,-5.0154,.77667,-1.0,-5.4012,.77667,-1.0,-5.787,.77667,-1.0,-6.1728,.77667,-1.0,-6.5586,.77667,-1.0,-6.9444,.77667,-1.0,-7.3302,.77667,-1.0,-7.716,.77667,-1.0,-7.716,1.0,-.69518,-7.3302,1.0,-.69518,-6.9444,1.0,-.69518,-6.5586,1.0,-.69518,-6.1728,1.0,-.69518,-5.787,1.0,-.69518,-5.4012,1.0,-.69518,-5.0154,1.0,-.69518,-4.6296,1.0,-.69518,-4.2438,1.0,-.69518,-3.858,1.0,-.69518,-3.4722,1.0,-.69518,-3.0864,1.0,-.69518,-2.7006,1.0,-.69518,-2.3148,1.0,-.69518,-1.929,1.0,-.69518,-1.5432,1.0,-.69518,-1.1574,1.0,-.69518,-.7716,1.0,-.69518,-.3858,1.0,-.69518,0.0,1.0,-.69518,.3858,1.0,-.69518,.7716,1.0,-.69518,1.1574,1.0,-.69518,1.5432,1.0,-.69518,1.929,1.0,-.69518,2.3148,1.0,-.69518,2.7006,1.0,-.69518,3.0864,1.0,-.69518,3.4722,1.0,-.69518,3.858,1.0,-.69518,4.2438,1.0,-.69518,4.6296,1.0,-.69518,5.0154,1.0,-.69518,5.4012,1.0,-.69518,5.787,1.0,-.69518,6.1728,1.0,-.69518,6.5586,1.0,-.69518,6.9444,1.0,-.69518,7.3302,1.0,-.69518,7.716,1.0,-.69518,-7.716,.77667,-.872,-7.716,.872,-.872,-7.716,.872,-.69518,7.716,.81858,-.64373,7.716,.81858,-.81858,7.716,.71919,-.81858,7.716,-.71919,-.81858,7.716,-.81858,-.81858,7.716,-.81858,-.30867,-.08353,.96324,-.4891,-.08353,.96324,.4891,-.30227,.96324,.4891,-.30227,.96324,-.4891,-.07493,.64453,.94486,-.07493,-.64453,.94486,-.31087,-.64453,.94486,-.31087,.64453,.94486,-.08419,-.6376,-.9035,-.08419,.6376,-.9035,-.30161,.6376,-.9035,-.30161,-.6376,-.9035,-3.94153,.96324,-.4891,-3.94153,.96324,.4891,-4.16027,.96324,.4891,-4.16027,.96324,-.4891,-3.93293,.64453,.94486,-3.93293,-.64453,.94486};
			return value;
		}
		private double[] getCoordinate_10_27_point_4()
		{
			double[] value = {-4.16887,-.64453,.94486,-4.16887,.64453,.94486,-3.94219,-.6376,-.9035,-3.94219,.6376,-.9035,-4.15961,.6376,-.9035,-4.15961,-.6376,-.9035,3.77447,.96324,-.4891,3.77447,.96324,.4891,3.55573,.96324,.4891,3.55573,.96324,-.4891,3.78307,.64453,.94486,3.78307,-.64453,.94486,3.54713,-.64453,.94486,3.54713,.64453,.94486,3.77381,-.6376,-.9035,3.77381,.6376,-.9035,3.55639,.6376,-.9035,3.55639,-.6376,-.9035,-7.02793,.96324,.4891,-7.24667,.96324,.4891,-7.24667,.96324,-.4891,-7.02793,.96324,-.4891,-6.25633,.96324,.4891,-6.47507,.96324,.4891,-6.47507,.96324,-.4891,-6.25633,.96324,-.4891,-5.48473,.96324,.4891,-5.70347,.96324,.4891,-5.70347,.96324,-.4891,-5.48473,.96324,-.4891,-4.71313,.96324,.4891,-4.93187,.96324,.4891,-4.93187,.96324,-.4891,-4.71313,.96324,-.4891,-7.01933,-.64453,.94486,-7.25527,-.64453,.94486,-7.25527,.64453,.94486,-7.01933,.64453,.94486,-6.24773,-.64453,.94486,-6.48367,-.64453,.94486,-6.48367,.64453,.94486,-6.24773,.64453,.94486,-5.47613,-.64453,.94486,-5.71207,-.64453,.94486,-5.71207,.64453,.94486,-5.47613,.64453,.94486,-4.70453,-.64453,.94486,-4.94047,-.64453,.94486,-4.94047,.64453,.94486,-4.70453,.64453,.94486,-7.02859,.6376,-.9035,-7.24601,.6376,-.9035,-7.24601,-.6376,-.9035,-7.02859,-.6376,-.9035,-6.25699,.6376,-.9035,-6.47441,.6376,-.9035,-6.47441,-.6376,-.9035,-6.25699,-.6376,-.9035,-5.48539,.6376,-.9035,-5.70281,.6376,-.9035,-5.70281,-.6376,-.9035,-5.48539,-.6376,-.9035,-4.71379,.6376,-.9035,-4.93121,.6376,-.9035,-4.93121,-.6376,-.9035,-4.71379,-.6376,-.9035,.68807,.96324,.4891,.46933,.96324,.4891,.46933,.96324,-.4891,.68807,.96324,-.4891,1.45967,.96324,.4891,1.24093,.96324,.4891,1.24093,.96324,-.4891,1.45967,.96324,-.4891,2.23127,.96324,.4891,2.01253,.96324,.4891,2.01253,.96324,-.4891,2.23127,.96324,-.4891,3.00287,.96324,.4891,2.78413,.96324,.4891,2.78413,.96324,-.4891,3.00287,.96324,-.4891,.69667,-.64453,.94486,.46073,-.64453,.94486,.46073,.64453,.94486,.69667,.64453,.94486,1.46827,-.64453,.94486,1.23233,-.64453,.94486,1.23233,.64453,.94486,1.46827,.64453,.94486,2.23987,-.64453,.94486,2.00393,-.64453,.94486,2.00393,.64453,.94486,2.23987,.64453,.94486,3.01147,-.64453,.94486,2.77553,-.64453,.94486,2.77553,.64453,.94486,3.01147,.64453,.94486,.68741,.6376,-.9035,.47,.6376,-.9035};
			return value;
		}
		private double[] getCoordinate_10_27_point_5()
		{
			double[] value = {.47,-.6376,-.9035,.68741,-.6376,-.9035,1.45901,.6376,-.9035,1.24159,.6376,-.9035,1.24159,-.6376,-.9035,1.45901,-.6376,-.9035,2.23061,.6376,-.9035,2.01319,.6376,-.9035,2.01319,-.6376,-.9035,2.23061,-.6376,-.9035,3.00221,.6376,-.9035,2.78479,.6376,-.9035,2.78479,-.6376,-.9035,3.00221,-.6376,-.9035,-3.16993,.96324,.4891,-3.38867,.96324,.4891,-3.38867,.96324,-.4891,-3.16993,.96324,-.4891,-2.39833,.96324,.4891,-2.61707,.96324,.4891,-2.61707,.96324,-.4891,-2.39833,.96324,-.4891,-1.62673,.96324,.4891,-1.84547,.96324,.4891,-1.84547,.96324,-.4891,-1.62673,.96324,-.4891,-.85513,.96324,.4891,-1.07387,.96324,.4891,-1.07387,.96324,-.4891,-.85513,.96324,-.4891,-3.16133,-.64453,.94486,-3.39727,-.64453,.94486,-3.39727,.64453,.94486,-3.16133,.64453,.94486,-2.38973,-.64453,.94486,-2.62567,-.64453,.94486,-2.62567,.64453,.94486,-2.38973,.64453,.94486,-1.61813,-.64453,.94486,-1.85407,-.64453,.94486,-1.85407,.64453,.94486,-1.61813,.64453,.94486,-.84653,-.64453,.94486,-1.08247,-.64453,.94486,-1.08247,.64453,.94486,-.84653,.64453,.94486,-3.17059,.6376,-.9035,-3.38801,.6376,-.9035,-3.38801,-.6376,-.9035,-3.17059,-.6376,-.9035,-2.39899,.6376,-.9035,-2.61641,.6376,-.9035,-2.61641,-.6376,-.9035,-2.39899,-.6376,-.9035,-1.62739,.6376,-.9035,-1.84481,.6376,-.9035,-1.84481,-.6376,-.9035,-1.62739,-.6376,-.9035,-.85579,.6376,-.9035,-1.07321,.6376,-.9035,-1.07321,-.6376,-.9035,-.85579,-.6376,-.9035,4.54607,.96324,.4891,4.32733,.96324,.4891,4.32733,.96324,-.4891,4.54607,.96324,-.4891,5.31767,.96324,.4891,5.09893,.96324,.4891,5.09893,.96324,-.4891,5.31767,.96324,-.4891,6.08927,.96324,.4891,5.87053,.96324,.4891,5.87053,.96324,-.4891,6.08927,.96324,-.4891,6.86087,.96324,.4891,6.64213,.96324,.4891,6.64213,.96324,-.4891,6.86087,.96324,-.4891,4.55467,-.64453,.94486,4.31873,-.64453,.94486,4.31873,.64453,.94486,4.55467,.64453,.94486,5.32627,-.64453,.94486,5.09033,-.64453,.94486,5.09033,.64453,.94486,5.32627,.64453,.94486,6.09787,-.64453,.94486,5.86193,-.64453,.94486,5.86193,.64453,.94486,6.09787,.64453,.94486,6.86947,-.64453,.94486,6.63353,-.64453,.94486,6.63353,.64453,.94486,6.86947,.64453,.94486,4.54541,.6376,-.9035,4.32799,.6376,-.9035,4.32799,-.6376,-.9035,4.54541,-.6376,-.9035,5.31701,.6376,-.9035,5.09959,.6376,-.9035};
			return value;
		}
		private double[] getCoordinate_10_27_point_6()
		{
			double[] value = {5.09959,-.6376,-.9035,5.31701,-.6376,-.9035,6.08861,.6376,-.9035,5.87119,.6376,-.9035,5.87119,-.6376,-.9035,6.08861,-.6376,-.9035,6.86021,.6376,-.9035,6.64279,.6376,-.9035,6.64279,-.6376,-.9035,6.86021,-.6376,-.9035,7.58274,.71919,.81858,7.58274,.81858,.81858,7.58274,.81858,.64373,7.58274,-.71919,.81858,7.58274,-.81858,.81858,7.58274,-.81858,.30867,7.58274,-.81858,-.30867,7.58274,-.81858,-.81858,7.58274,-.71919,-.81858,7.58274,.71919,-.81858,7.58274,.81858,-.81858,7.58274,.81858,-.64373,-7.57354,-.77667,.872,-7.57354,-.872,.872,-7.57354,-.872,.33333,-7.57354,.77667,.872,-7.57354,.872,.872,-7.57354,.872,.69518,-7.57354,.872,-.69518,-7.57354,.872,-.872,-7.57354,.77667,-.872,-7.57354,-.77667,-.872,-7.57354,-.872,-.872,-7.57354,-.872,-.33333};
			return value;
		}

		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #15, 384 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_9_15_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_15_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_15_coordIndex_1()));
			return IndexedFaceSet_9_15_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #15, 144 total numbers made up of 48 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_10_15_point()
		{
			MFVec3f Coordinate_10_15_point = new MFVec3f(new double[] {-7.49507,-1.34688,1.26424,-6.99731,-1.34688,1.26424,-6.99731,-.80813,1.26424,-6.99731,.80813,1.26424,-6.99731,1.34688,1.26424,-7.49507,1.34688,1.26424,-7.49507,.80813,1.26424,-7.49507,-.80813,1.26424,-7.49507,-1.34688,-1.17576,-6.99731,-1.34688,-1.17576,-7.49507,-.80813,1.00478,-7.49507,-.80813,-.91631,-7.49507,-.80813,-1.17576,-6.99731,1.34688,-1.17576,-7.49507,1.34688,-1.17576,-7.49507,.80813,-1.17576,-7.49507,.80813,-.91631,-7.49507,.80813,1.00478,-6.99731,.80813,1.00478,-6.99731,.80813,-.91631,-6.99731,.80813,-1.17576,-6.99731,-.80813,-1.17576,-6.99731,-.80813,-.91631,-6.99731,-.80813,1.00478,-7.25367,-.80813,-.91631,-7.25367,-.80813,1.00478,-7.25367,.80813,1.00478,-7.25367,.80813,-.91631,-7.23872,.80813,-.91631,-7.23872,.80813,1.00478,-7.23872,-.80813,1.00478,-7.23872,-.80813,-.91631,-7.23872,-1.06387,1.00788,-7.25367,-1.06387,1.00788,-7.25367,-1.06387,-.91941,-7.23872,-1.06387,-.91941,-7.23872,-.80813,-.91941,-7.23872,-.80813,1.00788,-7.23872,.80813,1.00788,-7.23872,1.06387,1.00788,-7.25367,1.06387,1.00788,-7.25367,.80813,1.00788,-7.25367,-.80813,1.00788,-7.23872,1.06387,-.91941,-7.25367,1.06387,-.91941,-7.23872,.80813,-.91941,-7.25367,.80813,-.91941,-7.25367,-.80813,-.91941});
			return Coordinate_10_15_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #21, 384 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_9_21_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_21_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_21_coordIndex_1()));
			return IndexedFaceSet_9_21_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #21, 144 total numbers made up of 48 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_10_21_point()
		{
			MFVec3f Coordinate_10_21_point = new MFVec3f(new double[] {7.00964,-1.34688,1.26424,7.5074,-1.34688,1.26424,7.5074,-.80813,1.26424,7.5074,.80813,1.26424,7.5074,1.34688,1.26424,7.00964,1.34688,1.26424,7.00964,.80813,1.26424,7.00964,-.80813,1.26424,7.00964,-1.34688,-1.17576,7.5074,-1.34688,-1.17576,7.00964,-.80813,1.00478,7.00964,-.80813,-.91631,7.00964,-.80813,-1.17576,7.5074,1.34688,-1.17576,7.00964,1.34688,-1.17576,7.00964,.80813,-1.17576,7.00964,.80813,-.91631,7.00964,.80813,1.00478,7.5074,.80813,1.00478,7.5074,.80813,-.91631,7.5074,.80813,-1.17576,7.5074,-.80813,-1.17576,7.5074,-.80813,-.91631,7.5074,-.80813,1.00478,7.25105,-.80813,-.91631,7.25105,-.80813,1.00478,7.25105,.80813,1.00478,7.25105,.80813,-.91631,7.26599,.80813,-.91631,7.26599,.80813,1.00478,7.26599,-.80813,1.00478,7.26599,-.80813,-.91631,7.26599,-1.06387,1.00788,7.25105,-1.06387,1.00788,7.25105,-1.06387,-.91941,7.26599,-1.06387,-.91941,7.26599,-.80813,-.91941,7.26599,-.80813,1.00788,7.26599,.80813,1.00788,7.26599,1.06387,1.00788,7.25105,1.06387,1.00788,7.25105,.80813,1.00788,7.25105,-.80813,1.00788,7.26599,1.06387,-.91941,7.25105,1.06387,-.91941,7.26599,.80813,-.91941,7.25105,.80813,-.91941,7.25105,-.80813,-.91941});
			return Coordinate_10_21_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=9, element #27, 4256 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_9_27_coordIndex()
		{
			MFInt32 IndexedFaceSet_9_27_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_9_27_coordIndex_1()))
				.append(new MFInt32(getIndexedFaceSet_9_27_coordIndex_2()))
				.append(new MFInt32(getIndexedFaceSet_9_27_coordIndex_3()))
				.append(new MFInt32(getIndexedFaceSet_9_27_coordIndex_4()))
				.append(new MFInt32(getIndexedFaceSet_9_27_coordIndex_5()));
			return IndexedFaceSet_9_27_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=10, element #27, 1602 total numbers made up of 534 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_10_27_point()
		{
			MFVec3f Coordinate_10_27_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_10_27_point_1()))
				.append(new MFVec3f(getCoordinate_10_27_point_2()))
				.append(new MFVec3f(getCoordinate_10_27_point_3()))
				.append(new MFVec3f(getCoordinate_10_27_point_4()))
				.append(new MFVec3f(getCoordinate_10_27_point_5()))
				.append(new MFVec3f(getCoordinate_10_27_point_6()));
			return Coordinate_10_27_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 SM2Canister 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 SM2Canister().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.Weapons.Ammunition.SM2Canister\" 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.Weapons.Ammunition.SM2Canister self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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