package Savage.AircraftFixedWing.P3OrionUnitedStates;

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

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> Nurbs P3 Example. </p>
 <p> Related links: Catalog page <a href="../../../../AircraftFixedWing/P3OrionUnitedStates/P3OrionIndex.html" target="_blank">P3Orion</a>,  source <a href="../../../../AircraftFixedWing/P3OrionUnitedStates/P3Orion.java">P3Orion.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="../../../../AircraftFixedWing/P3OrionUnitedStates/P3Orion.x3d">P3Orion.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> Exported from Maya 4.5 using X3DNurbsExport Plug-in and authored in X3d-Edit </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> Nurbs P3 Example </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Charles Adams and Jeffrey Weekley </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 17 March 2003 </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> subject </i> </td>
			<td> Nurbs P-3 </td>
		</tr>
		<tr style="color:burntorange">
			<td style="text-align:right; vertical-align: text-top;"> <i> warning </i> </td>
			<td> NurbsPatchSurface attributes not yet verified correct, updated from prior definition for NurbsSurface </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/AircraftFixedWing/P3OrionUnitedStates/P3Orion.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/AircraftFixedWing/P3OrionUnitedStates/P3Orion.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../AircraftFixedWing/P3OrionUnitedStates/../../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 Charles Adams and Jeffrey Weekley
 */

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

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_0)
  .setHead(new head()
    .addComponent(new component().setName("NURBS").setLevel(1))
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("P3Orion.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("Exported from Maya 4.5 using X3DNurbsExport Plug-in and authored in X3d-Edit"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Nurbs P3 Example"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Charles Adams and Jeffrey Weekley"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("17 March 2003"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 October 2019"))
    .addMeta(new meta().setName(meta.NAME_SUBJECT    ).setContent("Nurbs P-3"))
    .addMeta(new meta().setName(meta.NAME_WARNING    ).setContent("NurbsPatchSurface attributes not yet verified correct, updated from prior definition for NurbsSurface"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/AircraftFixedWing/P3OrionUnitedStates/P3Orion.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new Viewpoint().setDescription("p3").setOrientation(.5,1.0,.2,.37).setPosition(7.0,0.0,20.0))
    .addChild(new Shape()
      .setAppearance(new Appearance("app")
        .setMaterial(new Material().setDiffuseColor(.8,.8,.8))))
    .addChild(new Transform().setTranslation(0.0474,0.0,2.7353)
      .addChild(new Transform()
        .addChild(new Transform()
          .addChild(new Shape()
            .addComments(" ccw=\"false\" ")
            .setGeometry(new NurbsPatchSurface("leftwing").setSolid(false).setUClosed(true).setUDimension(7).setUKnot(new double[] {0.0,0.0,0.0,0.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0}).setUOrder(4).setVClosed(true).setVDimension(2).setVKnot(new double[] {0.0,0.0,1.0,1.0}).setVOrder(2).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})
              .setControlPoint(new Coordinate().setPoint(new MFVec3f(new double[] {-1.0,0.0,-3.0000,-1.0,0.5501,-2.0075,-1.0,0.5694,-0.9941,-1.0,0.0,0.0000,-1.0,-0.1544,-1.0038,-1.0,-0.1448,-2.0075,-1.0,0.0,-3.0000,-9.0,1.0418,-1.0000,-9.2547,1.0436,-0.6990,-9.2547,1.0438,-0.2936,-9.0,1.0418,0.0000,-9.2547,1.0410,-0.3805,-9.2547,1.0411,-0.7279,-9.0,1.0418,-1.0}))))
            .setAppearance(new Appearance().setUSE("app"))))))
    .addChild(new Transform()
      .addChild(new Transform()
        .addChild(new Transform()
          .addChild(new Shape()
            .addComments(" ccw=\"false\" ")
            .setGeometry(new NurbsPatchSurface("hull").setSolid(false).setUClosed(true).setUDimension(14).setUKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,11.0,11.0,11.0}).setUOrder(4).setUTessellation(25).setVClosed(true).setVDimension(11).setVKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,5.5000,6.0,7.0,7.0,7.0,7.0}).setVOrder(4).setVTessellation(25).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})
              .setControlPoint(new Coordinate().setPoint(getCoordinate_8_24_point())))
            .setAppearance(new Appearance()
              .setMaterial(new Material()))))))
    .addChild(new Transform().setTranslation(0.0,-0.1890,0.0)
      .addChild(new Transform()
        .addChild(new Transform()
          .addChild(new Shape()
            .addComments(" ccw=\"false\" ")
            .setGeometry(new NurbsPatchSurface("tail").setSolid(false).setUClosed(true).setUDimension(13).setUKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,4.0,4.0,5.0,6.0,7.0,8.0,8.0,8.0,8.0}).setUOrder(4).setUTessellation(16).setVClosed(true).setVDimension(10).setVKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,7.0,7.0,7.0}).setVOrder(4).setVTessellation(16).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})
              .setControlPoint(new Coordinate().setPoint(getCoordinate_8_32_point())))
            .setAppearance(new Appearance().setUSE("app"))))))
    .addChild(new Transform().setTranslation(2.4248,0.6470,3.3898)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,2.3562)
        .addChild(new Transform("prop")
          .addChild(new LOD().setRange(new double[] {20.0,1000.0})
            .addChild(new Transform().setScale(0.1593,1.0,0.0333)
              .addChild(new Shape()
                .addComments(" ccw=\"false\" ")
                .setGeometry(new NurbsPatchSurface("prop1").setSolid(false).setUClosed(true).setUDimension(7).setUKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,4.0,4.0,4.0}).setUOrder(4).setUTessellation(8).setVClosed(true).setVDimension(6).setVKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,3.0,3.0,3.0}).setVOrder(4).setVTessellation(8).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})
                  .setControlPoint(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0,0.0,-1.0000,-0.0,0.0,-1.0000,-0.0,0.0,-1.0000,-0.0,0.0,-1.0000,-0.0,0.0,-1.0000,-0.0,0.0,-1.0000,-0.0,0.0,-1.0000,0.3333,0.0,-1.0000,0.3333,-0.1667,-1.0000,0.0,-0.5000,-1.0000,-0.5000,-0.0,-1.0000,-0.0,0.5000,-1.0000,0.3333,0.1667,-1.0000,0.3333,0.0,-1.0000,1.0436,-0.0,-0.6000,1.0436,-0.5218,-0.6000,0.0,-1.5654,-0.6000,-1.5654,-0.0,-0.6000,-0.0,1.5654,-0.6000,1.0436,0.5218,-0.6000,1.0436,0.0,-0.6000,1.0436,-0.0,0.6000,1.0436,-0.5218,0.6000,-0.0,-1.5654,0.6000,-1.5654,-0.0,0.6000,-0.0,1.5654,0.6000,1.0436,0.5218,0.6000,1.0436,-0.0,0.6000,0.3333,-0.0,1.0000,0.3333,-0.1667,1.0000,-0.0,-0.5000,1.0000,-0.5000,0.0,1.0000,0.0,0.5000,1.0000,0.3333,0.1667,1.0000,0.3333,-0.0,1.0000,0.0,0.0,1.0000,0.0,0.0,1.0000,0.0,0.0,1.0000,0.0,0.0,1.0000,0.0,0.0,1.0000,0.0,0.0,1.0000,0.0,0.0,1.0}))))
                .setAppearance(new Appearance().setUSE("app"))))
            .addChild(new Transform().setScale(1.0,1.0,0.1)
              .addChild(new Shape()
                .setGeometry(new Sphere())
                .setAppearance(new Appearance()
                  .setMaterial(new Material().setDiffuseColor(0.6,0.6,0.8).setTransparency(0.4)))))
            .addChild(new WorldInfo())))))
    .addChild(new Transform().setTranslation(2.4248,0.6470,3.3898)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,0.7854)
        .addChild(new Transform().setUSE("prop"))))
    .addChild(new Transform().setTranslation(2.4298,0.3079,2.7974)
      .addChild(new Transform()
        .addChild(new Transform().setScale(1.0,0.6398,1.9545)
          .addChild(new Shape("engine")
            .addComments(" ccw=\"false\" ")
            .setGeometry(new NurbsPatchSurface("engine1").setSolid(false).setUClosed(true).setUDimension(14).setUKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,11.0,11.0,11.0}).setUOrder(4).setVClosed(true).setVDimension(10).setVKnot(new double[] {0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,7.0,7.0,7.0}).setVOrder(4).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0}))
            .setAppearance(new Appearance().setUSE("app"))))))
    .addChild(new Transform().setTranslation(5.1774,0.8973,3.1318)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,2.3562)
        .addChild(new Transform().setUSE("prop"))))
    .addChild(new Transform().setTranslation(5.1774,0.8973,3.1318)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,0.7854)
        .addChild(new Transform().setUSE("prop"))))
    .addChild(new Transform().setTranslation(5.1823,0.5583,2.5393)
      .addChild(new Transform()
        .addChild(new Transform().setScale(1.0,0.6398,1.9545)
          .addChild(new Shape().setUSE("engine")))))
    .addChild(new Transform().setTranslation(-2.3921,0.6470,3.3898)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,2.3562)
        .addChild(new Transform().setUSE("prop"))))
    .addChild(new Transform().setTranslation(-2.3921,0.6470,3.3898)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,0.7854)
        .addChild(new Transform().setUSE("prop"))))
    .addChild(new Transform().setTranslation(-2.3871,0.3079,2.7974)
      .addChild(new Transform()
        .addChild(new Transform().setScale(1.0,0.6398,1.9545)
          .addChild(new Shape().setUSE("engine")))))
    .addChild(new Transform().setTranslation(-5.1446,0.8973,3.1318)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,2.3562)
        .addChild(new Transform().setUSE("prop"))))
    .addChild(new Transform().setTranslation(-5.1446,0.8973,3.1318)
      .addChild(new Transform().setRotation(0.0,0.0,1.0,0.7854)
        .addChild(new Transform().setUSE("prop"))))
    .addChild(new Transform().setTranslation(-5.1397,0.5583,2.5393)
      .addChild(new Transform()
        .addChild(new Transform().setScale(1.0,0.6398,1.9545)
          .addChild(new Shape().setUSE("engine")))))
    .addChild(new Transform().setTranslation(-0.0711,0.0,2.7353)
      .addChild(new Transform()
        .addChild(new Transform()
          .addChild(new Shape()
            .addComments(" ccw=\"false\" ")
            .setGeometry(new NurbsPatchSurface("rightwing").setSolid(false).setUClosed(true).setUDimension(7).setUKnot(new double[] {0.0,0.0,0.0,0.0,2.0,2.0,2.0,4.0,4.0,4.0,4.0}).setUOrder(4).setVClosed(true).setVDimension(2).setVKnot(new double[] {0.0,0.0,1.0,1.0}).setVOrder(2).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})
              .setControlPoint(new Coordinate().setPoint(new MFVec3f(new double[] {1.0,0.0,-3.0000,1.0,-0.1448,-2.0075,1.0,-0.1544,-1.0038,1.0,0.0,0.0000,1.0,0.5694,-0.9941,1.0,0.5501,-2.0075,1.0,0.0,-3.0000,9.0,1.0418,-1.0000,9.2752,1.0411,-0.6904,9.2752,1.0410,-0.3430,9.0,1.0418,0.0000,9.2752,1.0438,-0.2561,9.2752,1.0436,-0.6615,9.0,1.0418,-1.0}))))
            .setAppearance(new Appearance().setUSE("app"))))))
    .addChild(new Transform().setTranslation(-0.0711,1.2158,-8.4155)
      .addChild(new Transform()
        .addChild(new Transform()
          .addChild(new Shape()
            .addComments(" ccw=\"false\" ")
            .setGeometry(new NurbsPatchSurface("rightbyplane").setSolid(false).setUClosed(true).setUDimension(7).setUKnot(new double[] {0.0,0.0,0.0,0.0,2.0,2.0,2.0,4.0,4.0,4.0,4.0}).setUOrder(4).setUTessellation(12).setVClosed(true).setVDimension(2).setVKnot(new double[] {0.0,0.0,1.0,1.0}).setVOrder(2).setVTessellation(12).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})
              .setControlPoint(new Coordinate().setPoint(new MFVec3f(new double[] {3.5723,0.4135,0.3969,3.5723,0.4132,0.2567,3.5723,0.4132,0.1188,3.5723,0.4135,0.0000,3.5723,0.4143,0.0843,3.5723,0.4142,0.2452,3.5723,0.4135,0.3969,0.3969,0.0,1.1908,0.3969,-0.0575,0.7968,0.3969,-0.0613,0.3984,0.3969,0.0,0.0000,0.3969,0.2260,0.3946,0.3969,0.2184,0.7968,0.3969,0.0,1.1908}))))
            .setAppearance(new Appearance().setUSE("app"))))))
    .addChild(new Transform().setTranslation(0.0474,1.2158,-8.4155)
      .addChild(new Transform()
        .addChild(new Transform()
          .addChild(new Shape()
            .addComments(" ccw=\"false\" ")
            .setGeometry(new NurbsPatchSurface("leftbyplane").setSolid(false).setUClosed(true).setUDimension(7).setUKnot(new double[] {0.0,0.0,0.0,0.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0}).setUOrder(4).setUTessellation(12).setVClosed(true).setVDimension(2).setVKnot(new double[] {0.0,0.0,1.0,1.0}).setVOrder(2).setVTessellation(12).setWeight(new double[] {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0})
              .setControlPoint(new Coordinate().setPoint(new MFVec3f(new double[] {-3.5723,0.4135,0.3969,-3.5723,0.4142,0.2452,-3.5723,0.4143,0.0843,-3.5723,0.4135,0.0000,-3.5723,0.4132,0.1188,-3.5723,0.4132,0.2567,-3.5723,0.4135,0.3969,-0.3969,0.0,1.1908,-0.3969,0.2184,0.7968,-0.3969,0.2260,0.3946,-0.3969,0.0,0.0000,-0.3969,-0.0613,0.3984,-0.3969,-0.0575,0.7968,-0.3969,0.0,1.1908}))))
            .setAppearance(new Appearance().setUSE("app")))))));
            }
            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 double[] */
		private double[] getCoordinate_8_24_point_1()
		{
			double[] value = {0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.0,1.4142,-10.0566,0.1483,1.4142,-10.0566,0.1483,1.4032,-10.0566,0.1318,1.3813,-10.0566,0.0651,1.3588,-10.0566,-0.0223,1.3539,-10.0566,-0.1026,1.3682,-10.0566,-0.1503,1.3970,-10.0566,-0.1503,1.4313,-10.0566,-0.1026,1.4602,-10.0566,-0.0223,1.4744,-10.0566,0.0651,1.4695,-10.0566,0.1318,1.4471,-10.0566,0.1483,1.4251,-10.0566,0.1483,1.4142,-10.0566,0.4493,1.3051,-9.3792,0.4493,1.2719,-9.3792,0.3991,1.2055,-9.3792,0.1971,1.1375,-9.3792,-0.0675,1.1227,-9.3792,-0.3106,1.1658,-9.3792,-0.4551,1.2532,-9.3792,-0.4551,1.3570,-9.3792,-0.3106,1.4444,-9.3792,-0.0675,1.4875,-9.3792,0.1971,1.4727,-9.3792,0.3991,1.4047,-9.3792,0.4493,1.3383,-9.3792,0.4493,1.3051,-9.3792,0.8084,0.6728,-6.4906,0.8084,0.5190,-6.4906,0.7180,0.2113,-6.4906,0.3546,-0.1036,-6.4906,-0.1215,-0.1721,-6.4906,-0.5589,0.0277,-6.4906,-0.8190,0.4323,-6.4906,-0.8190,0.9132,-6.4906,-0.5589,1.3178,-6.4906,-0.1215,1.5176,-6.4906,0.3546,1.4492,-6.4906,0.7180,1.1342,-6.4906,0.8084,0.8266,-6.4906,0.8084,0.6728,-6.4906,1.0082,0.2486,-2.3165,1.0082,0.0428,-2.3165,0.8956,-0.3687,-2.3165,0.4422,-0.7900,-2.3165,-0.1515,-0.8816,-2.3165,-0.6971,-0.6143,-2.3165,-1.0214,-0.0731,-2.3165,-1.0214,0.5703,-2.3165,-0.6971,1.1115,-2.3165,-0.1515,1.3788,-2.3165,0.4422,1.2872,-2.3165,0.8956,0.8659,-2.3165,1.0082,0.4544,-2.3165,1.0082,0.2486,-2.3165,1.0082,0.3282,2.3410,1.0082,0.1364,2.3410,0.8956,-0.2473,2.3410,0.4422,-0.6401,2.3410,-0.1515,-0.7255,2.3410,-0.6971,-0.4763,2.3410,-1.0214,0.0283,2.3410,-1.0214,0.6282,2.3410,-0.6971,1.1328,2.3410,-0.1515,1.3820,2.3410,0.4422,1.2966,2.3410,0.8956,0.9038,2.3410,1.0082,0.5201,2.3410,1.0082,0.3282,2.3410,1.0204,0.3627,5.5317,1.0204,0.1615,5.5317,0.9060,-0.2409,5.5317,0.4454,-0.6529,5.5317,-0.1578,-0.7424,5.5317,-0.7122,-0.4811,5.5317,-1.0416,0.0481,5.5317,-1.0416,0.6772,5.5317,-0.7122,1.2064,5.5317,-0.1578,1.4677,5.5317,0.4454,1.3782,5.5317,0.9060,0.9662,5.5317,1.0204,0.5639,5.5317,1.0204,0.3627,5.5317,0.8135,-0.0950,6.3602,0.8135,-0.2105,6.3602};
			return value;
		}
		private double[] getCoordinate_8_24_point_2()
		{
			double[] value = {0.7221,-0.4414,6.3602,0.3546,-0.6778,6.3602,-0.1269,-0.7292,6.3602,-0.5693,-0.5792,6.3602,-0.8323,-0.2755,6.3602,-0.8323,0.0855,6.3602,-0.5693,0.3892,6.3602,-0.1269,0.5392,6.3602,0.3546,0.4878,6.3602,0.7221,0.2514,6.3602,0.8135,0.0205,6.3602,0.8135,-0.0950,6.3602,0.4902,-0.1980,6.7747,0.4902,-0.2918,6.7747,0.4351,-0.4793,6.7747,0.2136,-0.6713,6.7747,-0.0766,-0.7130,6.7747,-0.3432,-0.5912,6.7747,-0.5017,-0.3446,6.7747,-0.5017,-0.0514,6.7747,-0.3432,0.1952,6.7747,-0.0766,0.3170,6.7747,0.2136,0.2752,6.7747,0.4351,0.0833,6.7747,0.4902,-0.1043,6.7747,0.4902,-0.1980,6.7747,0.1483,-0.1822,6.9116,0.1483,-0.2104,6.9116,0.1318,-0.2669,6.9116,0.0651,-0.3247,6.9116,-0.0223,-0.3372,6.9116,-0.1026,-0.3006,6.9116,-0.1503,-0.2263,6.9116,-0.1503,-0.1381,6.9116,-0.1026,-0.0638,6.9116,-0.0223,-0.0272,6.9116,0.0651,-0.0397,6.9116,0.1318,-0.0975,6.9116,0.1483,-0.1540,6.9116,0.1483,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116,-0.0,-0.1822,6.9116};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_8_32_point_1()
		{
			double[] value = {0.0,1.4509,-3.6040,0.0030,1.4569,-3.6035,0.0077,1.4709,-3.6024,0.0103,1.4950,-3.6008,0.0082,1.5187,-3.5997,0.0034,1.5320,-3.5997,0.0,1.5375,-3.5999,-0.0034,1.5320,-3.5997,-0.0082,1.5187,-3.5997,-0.0103,1.4950,-3.6008,-0.0077,1.4709,-3.6024,-0.0030,1.4569,-3.6035,0.0,1.4509,-3.6040,0.0,1.4684,-4.6599,0.0255,1.4965,-4.7209,0.0674,1.5587,-4.8721,0.0946,1.6619,-5.1357,0.0781,1.7671,-5.3855,0.0327,1.8333,-5.5093,0.0,1.8640,-5.5520,-0.0327,1.8333,-5.5093,-0.0781,1.7671,-5.3855,-0.0946,1.6619,-5.1357,-0.0674,1.5587,-4.8721,-0.0255,1.4965,-4.7209,0.0,1.4684,-4.6599,0.0,1.3435,-7.1452,0.0159,1.4166,-7.1289,0.0520,1.6253,-7.0990,0.0601,1.9897,-7.0545,0.0583,2.2690,-7.0024,0.0255,2.3077,-6.9573,0.0,2.2675,-6.9308,-0.0255,2.3077,-6.9573,-0.0561,2.2690,-7.0024,-0.0579,1.9897,-7.0545,-0.0520,1.6253,-7.0990,-0.0159,1.4166,-7.1289,0.0,1.3435,-7.1452,0.0,1.3457,-7.2777,0.0458,1.4174,-7.2822,0.1092,1.6214,-7.2905,0.0856,2.0407,-7.3051,0.0614,2.5052,-7.3261,0.0224,2.7998,-7.3471,0.0,2.9319,-7.3600,-0.0224,2.7998,-7.3471,-0.0592,2.5052,-7.3261,-0.0835,2.0407,-7.3051,-0.1092,1.6214,-7.2905,-0.0458,1.4174,-7.2822,0.0,1.3457,-7.2777,0.0,1.3537,-7.7589,0.0326,1.4319,-7.7588,0.0839,1.6838,-7.7599,0.0744,2.2334,-7.7612,0.0601,2.8395,-7.7576,0.0238,3.2046,-7.7489,0.0,3.3581,-7.7423,-0.0238,3.2046,-7.7489,-0.0579,2.8395,-7.7576,-0.0722,2.2334,-7.7612,-0.0839,1.6838,-7.7599,-0.0326,1.4319,-7.7588,0.0,1.3537,-7.7589,0.0,1.3546,-7.8126,0.0411,1.4417,-7.8116,0.1043,1.7236,-7.8151,0.0900,2.3388,-7.8314,0.0712,3.0149,-7.8540,0.0442,3.4187,-7.8699,0.0,3.5871,-7.8773,-0.0442,3.4187,-7.8699,-0.0690,3.0149,-7.8540,-0.0878,2.3388,-7.8314,-0.1043,1.7236,-7.8151,-0.0411,1.4417,-7.8116,0.0,1.3546,-7.8126,0.0,1.3583,-8.0392,0.0301,1.4185,-8.0362,0.0766,1.6776,-8.0365,0.0669,2.3132,-8.0496,0.0532,3.0262,-8.0686,0.0327,3.4400,-8.0810,0.0,3.6033,-8.0860,-0.0327,3.4400,-8.0810,-0.0510,3.0262,-8.0686,-0.0647,2.3132,-8.0496,-0.0766,1.6776,-8.0365,-0.0301,1.4185,-8.0362,0.0,1.3583,-8.0392,0.0,1.3643,-8.3994,0.0434,1.4936,-8.3881,0.1195,1.8232,-8.3618,0.1141,2.4380,-8.3152,0.0987,3.0799,-8.2657,0.0653,3.4639,-8.2334,0.0,3.6294,-8.2181,-0.0653,3.4639,-8.2334,-0.0965,3.0799,-8.2657};
			return value;
		}
		private double[] getCoordinate_8_32_point_2()
		{
			double[] value = {-0.1119,2.4380,-8.3152,-0.1195,1.8232,-8.3618,-0.0434,1.4936,-8.3881,0.0,1.3643,-8.3994,0.0,1.3670,-8.5590,0.0325,1.4715,-8.5540,0.0945,1.7165,-8.5455,0.0962,2.1372,-8.5346,0.0870,2.5572,-8.5224,0.0373,2.8005,-8.5115,0.0,2.9040,-8.5050,-0.0373,2.8005,-8.5115,-0.0848,2.5572,-8.5224,-0.0940,2.1372,-8.5346,-0.0945,1.7165,-8.5455,-0.0325,1.4715,-8.5540,0.0,1.3670,-8.5590,0.0,1.3728,-8.9099,0.0130,1.3563,-8.9115,0.0395,1.3791,-8.9127,0.0652,1.4961,-8.9125,0.0607,1.6109,-8.9142,0.0271,1.6297,-8.9191,0.0,1.6104,-8.9232,-0.0271,1.6297,-8.9191,-0.0607,1.6109,-8.9142,-0.0652,1.4961,-8.9125,-0.0395,1.3791,-8.9127,-0.0130,1.3563,-8.9115,0.0,1.3728,-8.9099};
			return value;
		}

		/** Large attribute array: Coordinate point field, scene-graph level=8, element #24, 462 total numbers made up of 154 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_8_24_point()
		{
			MFVec3f Coordinate_8_24_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_8_24_point_1()))
				.append(new MFVec3f(getCoordinate_8_24_point_2()));
			return Coordinate_8_24_point;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=8, element #32, 390 total numbers made up of 130 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_8_32_point()
		{
			MFVec3f Coordinate_8_32_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_8_32_point_1()))
				.append(new MFVec3f(getCoordinate_8_32_point_2()));
			return Coordinate_8_32_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 P3Orion 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 P3Orion().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.AircraftFixedWing.P3OrionUnitedStates.P3Orion\" 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.AircraftFixedWing.P3OrionUnitedStates.P3Orion self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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