package HumanoidAnimation.Skeleton;

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.PointingDeviceSensor.*;
import org.web3d.x3d.jsail.Rendering.*;
import org.web3d.x3d.jsail.Shape.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> two small oblong bones, varying in size and form in different individuals, side by side to form bridge of upper third of nose. </p>
 <p> Related links:  source l_nasal.java, <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;">HumanoidAnimation.Skeleton.l_nasal&nbsp; Document Metadata </td>
		</tr>

		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> title </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/l_nasal.x3d">l_nasal.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> two small oblong bones, varying in size and form in different individuals, side by side to form bridge of upper third of nose </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Joe Williams, John Carlson, Damon Hernandez, Don Brutzman </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translator </i> </td>
			<td> Don Brutzman </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 5 December 2013 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translated </i> </td>
			<td> 5 March 2026 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modified </i> </td>
			<td> 8 March 2026 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/originals/nasall.x3d">originals/nasall.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="https://en.wikipedia.org/wiki/Nasal_bone" target="_blank">https://en.wikipedia.org/wiki/Nasal_bone</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="https://en.wikipedia.org/wiki/List_of_bones_of_the_human_skeleton" target="_blank">https://en.wikipedia.org/wiki/List_of_bones_of_the_human_skeleton</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/Basic/Medical" target="_blank">https://www.web3d.org/x3d/content/examples/Basic/Medical</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> X3D-Edit 4.0, <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> X3D Tidy, <a href="https://www.web3d.org/x3d/stylesheets/X3dTidy.html" target="_blank">https://www.web3d.org/x3d/stylesheets/X3dTidy.html</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> identifier </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/l_nasal.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/l_nasal.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/../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 Joe Williams, John Carlson, Damon Hernandez, Don Brutzman
 */

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

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_INTERACTIVE).setVersion(X3D.VERSION_3_3)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("l_nasal.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("two small oblong bones, varying in size and form in different individuals, side by side to form bridge of upper third of nose"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Joe Williams, John Carlson, Damon Hernandez, Don Brutzman"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("Don Brutzman"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("5 December 2013"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATED ).setContent("5 March 2026"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("8 March 2026"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/nasall.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://en.wikipedia.org/wiki/Nasal_bone"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://en.wikipedia.org/wiki/List_of_bones_of_the_human_skeleton"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://www.web3d.org/x3d/content/examples/Basic/Medical"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Medical"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D Tidy, https://www.web3d.org/x3d/stylesheets/X3dTidy.html"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/l_nasal.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("l_nasal.x3d"))
    .addChild(new TouchSensor().setDescription("bone l_nasal"))
    .addChild(new Transform("l_nasal")
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material("BoneMaterial").setAmbientIntensity(0.965).setDiffuseColor(1.0,0.9765,0.8667).setShininess(0.05).setSpecularColor(0.349,0.349,0.349)))
        .setGeometry(new IndexedFaceSet("l_nasal_geometry").setDEF("l_nasal_geometry").setCreaseAngle(1.571).setCoordIndex(getl_nasal_geometry_5_22_coordIndex())
          .setCoord(new Coordinate("l_nasal_coordinate").setPoint(getl_nasal_coordinate_6_22_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 subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=1 */
		private int[] getl_nasal_geometry_5_22_coordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,6,7,8,-1,1,9,10,-1,11,12,13,-1,14,15,16,-1,17,18,19,-1,20,21,22,-1,23,24,25,-1,26,22,15,-1,27,28,29,-1,30,31,21,-1,32,33,8,-1,34,35,36,-1,37,38,39,-1,40,41,42,-1,43,44,45,-1,42,46,47,-1,48,49,50,-1,51,52,53,-1,54,55,56,-1,57,35,37,-1,58,59,60,-1,17,19,61,-1,62,19,63,-1,64,62,58,-1,65,66,67,-1,68,69,65,-1,62,70,19,-1,67,18,65,-1,71,72,73,-1,74,75,73,-1,76,77,78,-1,79,80,81,-1,82,83,10,-1,84,85,86,-1,87,88,89,-1,89,90,87,-1,91,92,93,-1,94,95,44,-1,96,97,98,-1,99,100,101,-1,95,102,103,-1,104,105,106,-1,59,107,108,-1,109,110,111,-1,112,113,114,-1,115,116,117,-1,110,118,111,-1,119,120,121,-1,122,123,124,-1,125,126,127,-1,128,129,130,-1,131,132,133,-1,71,134,135,-1,136,137,122,-1,138,139,140,-1,141,142,143,-1,144,145,146,-1,115,78,116,-1,73,147,148,-1,149,150,81,-1,151,38,152,-1,153,154,155,-1,156,157,158,-1,83,4,10,-1,80,159,123,-1,160,135,161,-1,110,109,162,-1,122,137,163,-1,164,112,165,-1,166,167,2,-1,122,168,123,-1,169,170,171,-1,112,114,172,-1,173,174,175,-1,162,109,176,-1,177,133,147,-1,178,179,148,-1,106,85,180,-1,181,182,140,-1,172,114,183,-1,153,184,185,-1,182,181,184,-1,143,186,130,-1,186,75,130,-1,187,123,188,-1,188,13,189,-1,190,142,141,-1,158,128,156,-1,191,82,192,-1,59,108,126,-1,193,136,124,-1,144,194,145,-1,195,132,131,-1,195,178,132,-1,33,196,191,-1,197,198,199,-1,200,127,126,-1,201,168,202,-1,188,11,13,-1,203,204,205,-1,175,201,202,-1,135,134,153,-1,206,103,97,-1,102,95,207,-1,97,208,98,-1,99,101,209,-1,100,96,210,-1,206,91,44,-1,2,180,84,-1,146,160,144,-1,160,72,71,-1,211,67,55,-1,212,213,47,-1,214,66,69,-1,63,211,54,-1,19,70,61,-1,211,63,19,-1,215,39,38,-1,55,214,77,-1,90,89,216,-1,217,218,48,-1,219,220,221,-1,91,45,44,-1,212,46,219,-1,41,46,42,-1,222,223,224,-1,84,36,213,-1,225,166,84,-1,6,8,192,-1,226,227,125,-1,58,228,107,-1,31,60,229,-1,18,29,65,-1,22,21,31,-1,198,29,14,-1,20,26,28,-1,60,126,229,-1,77,56,55,-1,150,149,230,-1,3,10,4,-1,192,9,1,-1,2,1,3,-1,167,7,6,-1,0,167,6,-1,3,180,2,-1,166,7,167,-1,1,0,192,-1,231,150,230,-1,170,114,171,-1,200,232,127,-1,20,28,233,-1,16,198,14,-1,31,227,22,-1,229,126,125,-1,234,235,236,-1,29,198,65,-1,31,30,60,-1,107,59,58,-1,8,191,192,-1,84,213,225,-1,84,86,36,-1,212,219,221,-1,212,47,46,-1,90,237,93,-1,219,48,220,-1,216,237,90,-1,54,211,55,-1,214,53,77,-1,38,140,215,-1,238,68,239,-1,65,69,66,-1,58,63,54,-1,214,69,51,-1,212,225,213,-1,27,18,240,-1,146,72,160,-1,201,172,183,-1,180,85,84,-1,82,9,192,-1,206,44,95,-1,210,241,100,-1,209,102,99,-1,97,103,208,-1,102,207,99,-1,97,92,206,-1,152,37,34,-1,165,172,242,-1,179,153,134,-1,243,203,205,-1,107,162,108,-1,171,114,113,-1,126,176,200,-1,198,16,199,-1,33,244,196,-1,144,161,194,-1,187,193,124,-1,126,60,59,-1,191,196,82,-1,129,245,154,-1,133,132,178,-1,187,188,189,-1,193,118,110,-1,129,143,130,-1,182,184,157,-1,83,80,79,-1,185,246,153,-1,114,149,183,-1,181,140,38,-1,5,106,180,-1,37,152,38,-1,178,195,179,-1,147,190,177,-1,109,12,176,-1,173,205,174,-1,112,172,165,-1,171,120,169,-1,168,201,123,-1,2,84,166,-1,222,41,40,-1,247,164,165,-1,163,168,122,-1,110,162,107,-1,144,160,161,-1,201,80,123,-1,83,79,4,-1,155,184,153,-1,151,181,38,-1,81,183,149,-1,140,156,138,-1,115,163,78,-1,195,131,177,-1,154,245,155,-1,138,223,139,-1,124,136,122,-1,71,135,160,-1,131,133,177,-1,128,245,129,-1,127,226,125,-1,172,174,242,-1,119,169,120,-1,117,173,115,-1,187,124,123,-1,161,246,194,-1,248,222,145,-1,249,104,106,-1,103,206,95,-1,100,241,101,-1,98,210,96,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=2 */
		private int[] getl_nasal_geometry_5_22_coordIndex_2()
		{
			int[] value = {94,207,95,-1,91,206,92,-1,250,76,137,-1,82,10,9,-1,146,74,72,-1,74,73,72,-1,73,148,71,-1,251,147,73,-1,67,19,18,-1,69,216,51,-1,69,238,216,-1,19,67,211,-1,68,238,69,-1,62,63,58,-1,32,8,252,-1,253,32,252,-1,60,64,58,-1,35,34,37,-1,214,51,53,-1,48,50,217,-1,220,48,218,-1,254,216,89,-1,39,57,37,-1,36,86,34,-1,33,191,8,-1,21,23,30,-1,18,27,29,-1,26,15,14,-1,24,255,25,-1,22,26,20,-1,17,240,18,-1,233,28,27,-1,226,127,232,-1,1,10,3,-1,6,192,0,-1,5,180,3,-1,2,167,0,-1,231,4,150,-1,5,4,231,-1,26,29,28,-1,29,26,14,-1,125,31,229,-1,125,227,31,-1,228,54,56,-1,58,54,228,-1,244,32,256,-1,244,33,32,-1,222,139,223,-1,40,139,222,-1,70,25,61,-1,70,257,25,-1,221,7,166,-1,220,7,221,-1,238,237,216,-1,238,239,237,-1,220,8,7,-1,220,218,8,-1,258,210,259,-1,258,241,210,-1,98,260,261,-1,260,98,208,-1,224,138,262,-1,223,138,224,-1,203,43,263,-1,94,43,203,-1,44,43,94,-1,96,92,97,-1,96,87,92,-1,182,156,140,-1,182,157,156,-1,262,128,130,-1,262,156,128,-1,138,156,262,-1,244,199,196,-1,244,197,199,-1,145,121,248,-1,145,194,121,-1,247,242,204,-1,242,247,165,-1,189,111,118,-1,13,111,189,-1,228,250,264,-1,228,56,250,-1,82,199,265,-1,196,199,82,-1,187,118,193,-1,187,189,118,-1,266,222,248,-1,266,41,222,-1,183,80,201,-1,80,183,81,-1,175,172,201,-1,174,172,175,-1,249,5,231,-1,249,106,5,-1,171,266,120,-1,171,267,266,-1,117,254,243,-1,254,117,52,-1,153,161,135,-1,153,246,161,-1,12,200,176,-1,11,200,12,-1,53,78,77,-1,116,78,53,-1,248,120,266,-1,248,121,120,-1,157,155,158,-1,184,155,157,-1,185,119,246,-1,119,185,268,-1,249,230,269,-1,231,230,249,-1,179,177,153,-1,179,195,177,-1,173,243,205,-1,173,117,243,-1,193,264,136,-1,193,110,264,-1,115,168,163,-1,168,115,202,-1,112,270,113,-1,112,164,270,-1,158,245,128,-1,158,155,245,-1,224,145,222,-1,224,146,145,-1,271,164,272,-1,271,270,164,-1,104,269,268,-1,269,104,249,-1,87,100,88,-1,100,87,96,-1,93,87,90,-1,93,92,87,-1,77,250,56,-1,77,76,250,-1,200,159,232,-1,200,11,159,-1,243,94,203,-1,254,94,243,-1,254,89,94,-1,137,78,163,-1,78,137,76,-1,73,186,251,-1,186,73,75,-1,273,208,209,-1,273,260,208,-1,261,210,98,-1,261,259,210,-1,253,256,32,-1,256,253,274,-1,27,235,234,-1,27,240,235,-1,239,45,237,-1,239,274,45,-1,212,166,225,-1,221,166,212,-1,17,25,255,-1,61,25,17,-1,52,216,254,-1,52,51,216,-1,30,64,60,-1,257,64,30,-1,23,20,24,-1,21,20,23,-1,236,27,234,-1,236,233,27,-1,240,255,235,-1,255,240,17,-1,23,257,30,-1,25,257,23,-1,65,197,68,-1,198,197,65,-1,275,40,42,-1,40,276,139,-1,275,276,40,-1,50,43,45,-1,50,49,43,-1,213,42,47,-1,36,42,213,-1,218,252,8,-1,217,252,218,-1,68,274,239,-1,256,274,68,-1,70,64,257,-1,62,64,70,-1,50,274,253,-1,274,50,45,-1,277,241,258,-1,277,101,241,-1,277,260,273,-1,258,260,277,-1,258,261,260,-1,259,261,258,-1,130,74,262,-1,130,75,74,-1,146,262,74,-1,224,262,146,-1,48,272,49,-1,271,272,48,-1,82,80,83,-1,80,82,265,-1,88,94,89,-1,88,207,94,-1,106,86,85,-1,106,105,86,-1,204,263,247,-1,204,203,263,-1,15,232,16,-1,226,232,15,-1,190,251,142,-1,190,147,251,-1,148,134,71,-1,148,179,134,-1,242,205,204,-1,174,205,242,-1,13,109,111,-1,12,109,13,-1,264,107,228,-1,110,107,264,-1,41,267,278,-1,266,267,41,-1,177,141,153,-1,190,141,177,-1,181,185,184,-1,151,185,181,-1,269,170,169,-1,170,269,230,-1,46,278,219,-1,41,278,46,-1,49,263,43,-1,272,263,49,-1,246,121,194,-1,246,119,121,-1,141,154,153,-1,141,129,154,-1,141,143,129,-1,34,105,152,-1,105,34,86,-1,150,79,81,-1,150,4,79,-1,151,105,104,-1,151,152,105,-1,151,268,185,-1,151,104,268,-1,147,178,148,-1,147,133,178,-1,247,272,164,-1,247,263,272,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=3 */
		private int[] getl_nasal_geometry_5_22_coordIndex_3()
		{
			int[] value = {11,123,159,-1,188,123,11,-1,108,176,126,-1,108,162,176,-1,136,250,137,-1,136,264,250,-1,173,202,115,-1,202,173,175,-1,113,267,171,-1,113,270,267,-1,186,142,251,-1,142,186,143,-1,265,16,232,-1,199,16,265,-1,278,270,271,-1,278,267,270,-1,169,268,269,-1,169,119,268,-1,100,207,88,-1,99,207,100,-1,209,103,102,-1,103,209,208,-1,80,232,159,-1,232,80,265,-1,116,52,117,-1,53,52,116,-1,219,271,48,-1,219,278,271,-1,101,273,209,-1,277,273,101,-1,35,276,275,-1,35,57,276,-1,67,214,55,-1,67,66,214,-1,253,217,50,-1,253,252,217,-1,36,275,42,-1,35,275,36,-1,57,215,276,-1,39,215,57,-1,93,45,91,-1,93,237,45,-1,139,215,140,-1,139,276,215,-1,256,197,244,-1,256,68,197,-1,22,226,15,-1,226,22,227,-1,24,233,236,-1,24,20,233,-1,235,24,236,-1,24,235,255,-1,230,114,170,-1,230,149,114,-1};
			return value;
		}
		/** Large attribute array: IndexedFaceSet DEF='l_nasal_geometry' coordIndex field, scene-graph level=5, element #22, 2216 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 getl_nasal_geometry_5_22_coordIndex()
		{
			MFInt32 l_nasal_geometry_5_22_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getl_nasal_geometry_5_22_coordIndex_1()))
				.append(new MFInt32(getl_nasal_geometry_5_22_coordIndex_2()))
				.append(new MFInt32(getl_nasal_geometry_5_22_coordIndex_3()));
			return l_nasal_geometry_5_22_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='l_nasal_coordinate' point field, scene-graph level=6, element #22, 837 total numbers made up of 279 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 getl_nasal_coordinate_6_22_point()
		{
			MFVec3f l_nasal_coordinate_6_22_point = new MFVec3f(new double[] {0.0009,1.661,0.09,0.0015,1.6608,0.0902,0.0018,1.6607,0.0913,0.0022,1.6606,0.0903,0.003,1.6606,0.0903,0.0027,1.6599,0.0914,0.0006,1.6611,0.0899,0.0009,1.6608,0.0916,0.0003,1.6616,0.0904,0.0014,1.6609,0.0894,0.0021,1.6608,0.09,0.0026,1.6693,0.0841,0.0033,1.6701,0.0838,0.0036,1.6698,0.084,-0.0004,1.6688,0.0831,0.0,1.6689,0.0833,-0.0006,1.6662,0.0845,0.0,1.6709,0.0829,-0.0012,1.6688,0.0831,0.0007,1.6696,0.0836,-0.0001,1.6712,0.0831,0.0002,1.6711,0.0832,0.0003,1.671,0.0828,0.0002,1.6712,0.0833,-0.0002,1.6712,0.0833,0.0003,1.6711,0.0833,-0.0003,1.671,0.0828,-0.0019,1.6717,0.0828,-0.0017,1.6716,0.0827,-0.0012,1.6688,0.083,0.0005,1.6715,0.0833,0.0006,1.6714,0.0829,-0.0005,1.6601,0.0879,-0.0002,1.6601,0.0879,0.0021,1.6571,0.0955,0.0018,1.6571,0.0954,0.0019,1.6576,0.0948,0.0018,1.6566,0.0962,0.0018,1.6557,0.0966,0.0012,1.6561,0.097,0.0027,1.6577,0.0949,0.0033,1.6587,0.0932,0.0022,1.6583,0.0951,0.0018,1.6636,0.0891,0.0017,1.6639,0.0888,-0.0005,1.6644,0.0885,0.002,1.6592,0.0936,0.0015,1.6589,0.0949,0.002,1.6612,0.0912,0.0019,1.6622,0.0903,-0.0001,1.663,0.0899,0.0001,1.6665,0.0872,0.0018,1.6657,0.0877,0.0019,1.6663,0.0875,0.0013,1.6701,0.0848,0.0001,1.6684,0.0863,0.0021,1.6696,0.0869,0.0013,1.6566,0.0965,0.0017,1.6705,0.0847,0.0021,1.6718,0.0832,0.0019,1.6717,0.0828,0.0004,1.6709,0.0829,0.0015,1.6706,0.084,0.0018,1.6704,0.0843,0.0014,1.6706,0.0843,-0.0012,1.666,0.0842,0.0,1.667,0.0861,0.0003,1.668,0.0854,-0.0016,1.664,0.085,0.0002,1.6664,0.0865,0.0006,1.6713,0.0829,0.0046,1.6521,0.0963,0.0041,1.6533,0.0968,0.0039,1.6527,0.0974,0.0039,1.6536,0.097,0.0037,1.653,0.0974,0.0036,1.6672,0.087,0.002,1.6675,0.0873,0.0034,1.6661,0.0872,0.0028,1.663,0.0868,0.0024,1.664,0.0863,0.0029,1.6631,0.0869,0.0009,1.6638,0.0867,0.0023,1.6633,0.087,0.0017,1.6594,0.0922,0.002,1.6593,0.0922,0.0022,1.6574,0.0948,0.0016,1.6644,0.0884,0.0017,1.6644,0.0884,0.0017,1.6645,0.0883,0.0015,1.6645,0.0884,0.0015,1.6641,0.0887,0.0015,1.6643,0.0885,0.0015,1.6643,0.0886,0.002,1.664,0.0885,0.0017,1.664,0.0887,0.0016,1.6643,0.0884,0.0015,1.6642,0.0885,0.0015,1.6643,0.0881,0.0019,1.664,0.0884,0.0017,1.6643,0.0883,0.0017,1.6642,0.0881,0.0017,1.664,0.0886,0.0016,1.6641,0.0886,0.0028,1.6573,0.0945,0.0025,1.6573,0.0946,0.0024,1.659,0.0923,0.0022,1.6699,0.0863,0.0024,1.6714,0.0839,0.0037,1.6701,0.0842,0.0039,1.6693,0.086,0.004,1.6697,0.0845,0.0045,1.6603,0.0893,0.0044,1.6597,0.0899,0.0033,1.6605,0.0902,0.0042,1.6646,0.087,0.0033,1.6654,0.0874,0.0032,1.6648,0.0876,0.0046,1.6694,0.0844,0.0031,1.6569,0.0943,0.0042,1.658,0.0921,0.0042,1.6564,0.0935,0.0047,1.6675,0.0854,0.0033,1.6674,0.0852,0.0048,1.6679,0.0854,0.0019,1.6714,0.0827,0.0023,1.6712,0.0834,0.0014,1.6691,0.084,0.0026,1.654,0.0974,0.0026,1.6537,0.0971,0.0029,1.6536,0.0976,0.0035,1.65,0.0975,0.0036,1.65,0.0975,0.0037,1.6504,0.0976,0.0041,1.652,0.0958,0.0042,1.6523,0.0956,0.0056,1.6678,0.0862,0.0053,1.6672,0.0866,0.0027,1.6548,0.097,0.002,1.6562,0.0968,0.002,1.6553,0.0972,0.0029,1.6524,0.0972,0.003,1.652,0.0973,0.0029,1.6524,0.0972,0.0046,1.655,0.0953,0.0045,1.6553,0.0952,0.0044,1.6551,0.0955,0.0037,1.6518,0.098,0.0045,1.6518,0.0965,0.0032,1.6606,0.0903,0.0031,1.6607,0.0904,0.0027,1.6567,0.0954,0.0024,1.6568,0.0954,0.0025,1.6544,0.0965,0.0025,1.6542,0.0968,0.0024,1.6543,0.0969,0.0025,1.6543,0.0974,0.0023,1.6545,0.0971,0.0026,1.6542,0.0973,0.0024,1.6669,0.0851,0.0046,1.6524,0.0962,0.0043,1.6549,0.0945,0.0028,1.6713,0.0839,0.0043,1.6649,0.0869,0.0047,1.6604,0.0902,0.0043,1.662,0.0877,0.0016,1.6601,0.0921,0.0013,1.6606,0.0913,0.004,1.6648,0.0858,0.0029,1.6588,0.0921,0.0031,1.6598,0.0912,0.0043,1.6591,0.0907,0.0031,1.663,0.0868,0.0041,1.6641,0.0874,0.0039,1.6631,0.0869,0.0039,1.664,0.0864,0.0028,1.6711,0.0836,0.0034,1.6503,0.0975,0.0038,1.6504,0.0973,0.004,1.6518,0.096,0.0023,1.66,0.0914,0.0021,1.6552,0.0967,0.0021,1.655,0.097,0.003,1.6631,0.0869,0.0022,1.6545,0.0969,0.0029,1.6565,0.0953,0.0035,1.6525,0.0979,0.0046,1.6682,0.0851,0.0035,1.6694,0.0842,0.0042,1.6694,0.0839,0.003,1.6517,0.0973,0.0002,1.6603,0.0883,0.0009,1.6607,0.089,0.0051,1.6682,0.0857,0.0042,1.6552,0.0944,0.0036,1.6503,0.0973,-0.0003,1.6636,0.086,-0.0014,1.664,0.085,-0.001,1.666,0.0842,-0.0004,1.6641,0.0853,0.0018,1.6692,0.0841,0.0032,1.6643,0.0861,0.004,1.6644,0.0859,0.0033,1.6634,0.0882,0.0045,1.6627,0.0878,0.0042,1.6632,0.0876,0.0016,1.6641,0.0886,0.0019,1.6641,0.0885,0.0015,1.6642,0.0881,0.0016,1.6641,0.088,0.0016,1.6644,0.0881,0.0016,1.6701,0.0845,0.0012,1.6604,0.093,0.0013,1.6582,0.0947,-0.0002,1.6673,0.0872,0.0011,1.6562,0.0979,0.0,1.6657,0.0876,0.0003,1.6625,0.0904,0.0004,1.6618,0.0912,0.002,1.6603,0.0923,0.0008,1.6612,0.0921,0.0015,1.6606,0.0926,0.0033,1.6573,0.0946,0.003,1.6555,0.0964,0.0031,1.6554,0.0963,0.0012,1.6599,0.0926,0.001,1.6692,0.0835,0.0006,1.6711,0.0828,0.0022,1.6699,0.0868,0.0019,1.6716,0.0828,0.0031,1.6599,0.0914,0.0029,1.66,0.0914,0.0012,1.6663,0.0852,-0.0018,1.6718,0.0828,-0.0021,1.6718,0.0831,-0.0011,1.6714,0.0832,-0.0019,1.6718,0.0831,-0.0004,1.6651,0.088,-0.0001,1.6656,0.0869,-0.0005,1.665,0.0872,-0.001,1.6713,0.0828,0.0017,1.6643,0.0881,0.0041,1.6626,0.0873,0.0032,1.664,0.0879,-0.0012,1.6634,0.0857,0.0025,1.6541,0.097,0.0031,1.6561,0.095,0.0046,1.6621,0.0883,0.0043,1.6566,0.0942,0.0026,1.6591,0.0923,0.0038,1.669,0.0865,0.0037,1.6521,0.098,0.0002,1.6624,0.0894,-0.0002,1.6629,0.0889,0.0018,1.6649,0.088,-0.0001,1.6711,0.0833,-0.0016,1.6634,0.0857,0.0005,1.6714,0.0833,0.0017,1.6644,0.088,0.0016,1.6644,0.088,0.0015,1.6642,0.0878,0.0015,1.6644,0.0879,0.003,1.6546,0.097,0.0033,1.6628,0.0888,0.004,1.6693,0.0864,0.001,1.6644,0.086,0.0043,1.6583,0.0927,0.0045,1.6592,0.0916,0.0031,1.6572,0.0944,0.0028,1.6589,0.0922,0.0045,1.6598,0.0908,0.0033,1.6605,0.0911,0.0033,1.6614,0.0902,0.0016,1.6642,0.0878,-0.0006,1.6643,0.0877,0.0019,1.6577,0.0958,0.0014,1.6569,0.0973,0.0017,1.6642,0.0879,0.0033,1.6597,0.0919});
			return l_nasal_coordinate_6_22_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 l_nasal 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 l_nasal().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: \"HumanoidAnimation.Skeleton.l_nasal\" 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("HumanoidAnimation.Skeleton.l_nasal self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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