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> bone in foot. </p>
 <p> Related links:  source l_tarsal_proximal_phalanx_4.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_tarsal_proximal_phalanx_4&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_tarsal_proximal_phalanx_4.x3d">l_tarsal_proximal_phalanx_4.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> bone in foot </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/lfpprox4.x3d">originals/lfpprox4.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/Phalanx_bone" target="_blank">https://en.wikipedia.org/wiki/Phalanx_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_tarsal_proximal_phalanx_4.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/l_tarsal_proximal_phalanx_4.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_tarsal_proximal_phalanx_4
{
	/** Default constructor to create this object. */
	public l_tarsal_proximal_phalanx_4 ()
	{
	  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_tarsal_proximal_phalanx_4.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("bone in foot"))
    .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/lfpprox4.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://en.wikipedia.org/wiki/Phalanx_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_tarsal_proximal_phalanx_4.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("l_tarsal_proximal_phalanx_4.x3d"))
    .addChild(new TouchSensor().setDescription("bone l_tarsal_proximal_phalanx_4"))
    .addChild(new Transform("l_tarsal_proximal_phalanx_4")
      .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_tarsal_proximal_phalanx_4_geometry").setDEF("l_tarsal_proximal_phalanx_4_geometry").setCreaseAngle(1.571).setCoordIndex(getl_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex())
          .setCoord(new Coordinate("l_tarsal_proximal_phalanx_4_coordinate").setPoint(getl_tarsal_proximal_phalanx_4_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_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,6,7,8,-1,5,9,10,-1,11,12,13,-1,11,14,12,-1,11,15,14,-1,16,17,18,-1,16,19,17,-1,19,16,20,-1,13,21,20,-1,14,22,12,-1,23,24,25,-1,26,27,28,-1,28,29,26,-1,30,31,32,-1,1,33,34,-1,1,0,33,-1,35,36,37,-1,37,38,35,-1,39,40,41,-1,41,42,39,-1,43,44,45,-1,43,45,46,-1,46,47,43,-1,48,49,47,-1,50,51,52,-1,53,54,50,-1,55,56,57,-1,58,59,60,-1,60,61,58,-1,30,32,62,-1,32,63,62,-1,64,65,66,-1,65,67,66,-1,68,65,69,-1,20,21,19,-1,70,39,42,-1,70,38,39,-1,71,72,73,-1,22,74,75,-1,22,76,74,-1,77,78,79,-1,79,74,77,-1,80,48,47,-1,80,81,48,-1,82,83,84,-1,83,85,84,-1,86,87,50,-1,88,50,89,-1,53,50,90,-1,91,50,92,-1,93,94,95,-1,95,96,93,-1,97,46,98,-1,99,100,101,-1,99,102,100,-1,103,104,105,-1,106,107,108,-1,109,110,111,-1,7,109,112,-1,7,6,109,-1,23,113,114,-1,113,115,114,-1,116,27,117,-1,118,119,120,-1,119,121,120,-1,9,5,122,-1,2,4,123,-1,113,23,124,-1,23,125,124,-1,25,15,126,-1,15,11,126,-1,36,77,127,-1,127,37,36,-1,34,35,128,-1,35,70,128,-1,35,38,70,-1,129,130,110,-1,129,131,130,-1,8,24,6,-1,106,132,107,-1,100,102,133,-1,104,134,135,-1,104,103,134,-1,136,93,137,-1,93,96,137,-1,51,50,54,-1,138,90,50,-1,89,50,87,-1,91,139,50,-1,140,43,85,-1,52,92,50,-1,120,121,141,-1,121,142,141,-1,143,144,145,-1,143,124,144,-1,20,146,11,-1,146,126,11,-1,3,147,31,-1,28,106,108,-1,18,33,0,-1,18,78,33,-1,11,13,20,-1,57,148,55,-1,145,149,143,-1,149,150,143,-1,151,152,153,-1,151,154,152,-1,55,155,156,-1,156,56,55,-1,121,110,142,-1,153,152,105,-1,152,157,105,-1,69,158,68,-1,98,159,97,-1,50,88,138,-1,49,43,47,-1,50,139,86,-1,85,83,140,-1,144,158,145,-1,39,160,40,-1,42,161,10,-1,42,41,161,-1,160,39,38,-1,38,37,160,-1,162,163,123,-1,110,130,111,-1,79,78,17,-1,22,75,12,-1,78,18,17,-1,21,75,79,-1,16,18,0,-1,12,75,21,-1,21,13,12,-1,74,79,75,-1,1,122,5,-1,111,112,109,-1,161,147,10,-1,164,4,3,-1,4,1,5,-1,2,1,4,-1,19,79,17,-1,21,79,19,-1,111,165,132,-1,111,130,165,-1,166,107,167,-1,166,108,107,-1,8,168,15,-1,117,168,8,-1,70,122,128,-1,122,70,9,-1,31,161,32,-1,147,161,31,-1,149,158,69,-1,145,158,149,-1,169,44,170,-1,169,45,44,-1,171,72,95,-1,172,72,171,-1,173,174,94,-1,174,173,175,-1,83,176,177,-1,82,176,83,-1,178,83,177,-1,83,178,140,-1,102,179,133,-1,179,102,180,-1,181,80,97,-1,181,81,80,-1,172,73,72,-1,73,172,182,-1,86,43,49,-1,86,139,43,-1,175,183,174,-1,184,183,175,-1,172,185,186,-1,172,171,185,-1,187,88,188,-1,138,88,187,-1,84,52,184,-1,84,92,52,-1,139,85,43,-1,91,85,139,-1,188,89,189,-1,89,188,88,-1,53,190,186,-1,90,190,53,-1,87,49,48,-1,49,87,86,-1,164,31,30,-1,164,3,31,-1,157,99,101,-1,157,152,99,-1,103,157,191,-1,105,157,103,-1,61,192,58,-1,193,192,61,-1,194,110,109,-1,142,110,194,-1,195,154,196,-1,197,154,195,-1,59,137,198,-1,59,58,137,-1,192,199,136,-1,192,155,199,-1,151,196,154,-1,200,196,151,-1,119,201,129,-1,202,201,119,-1,109,114,194,-1,109,6,114,-1,203,148,204,-1,203,55,148,-1,205,149,206,-1,205,150,149,-1,67,103,191,-1,103,67,134,-1,148,143,150,-1,143,148,57,-1,24,114,6,-1,114,24,23,-1,125,146,207,-1,125,126,146,-1,163,208,209,-1,208,163,162,-1,210,161,41,-1,161,210,211,-1,7,106,116,-1,112,106,7,-1,22,15,168,-1,15,22,14,-1,128,1,34,-1,1,128,122,-1,131,212,213,-1,214,212,131,-1,112,132,106,-1,111,132,112,-1,160,127,215,-1,37,127,160,-1,29,216,217,-1,29,166,216,-1,218,60,200,-1,118,60,218,-1,214,129,201,-1,131,129,214,-1,219,216,220,-1,216,219,221,-1,124,207,144,-1,124,125,207,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=2 */
		private int[] getl_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex_2()
		{
			int[] value = {206,222,205,-1,222,206,170,-1,98,45,169,-1,45,98,46,-1,158,223,68,-1,223,158,144,-1,219,215,221,-1,224,215,219,-1,201,211,214,-1,63,211,201,-1,225,200,151,-1,225,218,200,-1,224,160,215,-1,224,40,160,-1,26,217,76,-1,26,29,217,-1,118,61,60,-1,118,120,61,-1,82,184,175,-1,84,184,82,-1,156,115,56,-1,156,226,115,-1,68,135,134,-1,68,223,135,-1,180,189,179,-1,180,188,189,-1,186,182,172,-1,182,186,190,-1,95,71,96,-1,95,72,71,-1,120,193,61,-1,141,193,120,-1,156,141,226,-1,156,193,141,-1,227,173,228,-1,227,176,173,-1,227,204,229,-1,204,227,203,-1,177,222,178,-1,177,229,222,-1,57,124,143,-1,113,124,57,-1,159,230,231,-1,230,159,66,-1,100,181,231,-1,181,100,133,-1,224,41,40,-1,224,210,41,-1,211,32,161,-1,211,63,32,-1,135,164,104,-1,162,164,135,-1,33,77,36,-1,77,33,78,-1,76,168,26,-1,76,22,168,-1,0,209,16,-1,209,0,163,-1,162,223,208,-1,223,162,135,-1,30,225,232,-1,225,30,62,-1,165,220,167,-1,165,213,220,-1,141,194,226,-1,194,141,142,-1,114,226,194,-1,114,115,226,-1,28,116,106,-1,28,27,116,-1,231,97,159,-1,97,231,181,-1,230,100,231,-1,230,101,100,-1,104,153,105,-1,104,232,153,-1,66,98,64,-1,66,159,98,-1,229,205,222,-1,229,204,205,-1,56,113,57,-1,56,115,113,-1,176,229,177,-1,176,227,229,-1,136,228,93,-1,199,228,136,-1,232,151,153,-1,225,151,232,-1,233,99,197,-1,233,102,99,-1,96,198,137,-1,96,71,198,-1,174,185,171,-1,174,183,185,-1,190,234,182,-1,234,190,187,-1,179,48,81,-1,179,189,48,-1,164,232,104,-1,164,30,232,-1,228,203,227,-1,199,203,228,-1,216,167,220,-1,216,166,167,-1,73,197,195,-1,233,197,73,-1,62,218,225,-1,62,202,218,-1,210,219,212,-1,210,224,219,-1,74,127,77,-1,127,74,235,-1,144,208,223,-1,208,144,207,-1,169,64,98,-1,64,169,236,-1,170,178,222,-1,178,170,44,-1,76,235,74,-1,217,235,76,-1,220,212,219,-1,220,213,212,-1,118,202,119,-1,118,218,202,-1,195,71,73,-1,198,71,195,-1,217,221,235,-1,217,216,221,-1,235,215,127,-1,235,221,215,-1,130,213,165,-1,131,213,130,-1,42,9,70,-1,9,42,10,-1,7,117,8,-1,7,116,117,-1,214,210,212,-1,211,210,214,-1,162,4,164,-1,162,123,4,-1,207,209,208,-1,207,146,209,-1,23,126,125,-1,23,25,126,-1,65,134,67,-1,134,65,68,-1,66,191,230,-1,66,67,191,-1,236,65,64,-1,236,69,65,-1,204,150,205,-1,204,148,150,-1,199,55,203,-1,199,155,55,-1,129,121,119,-1,129,110,121,-1,63,202,62,-1,63,201,202,-1,200,59,196,-1,60,59,200,-1,58,136,137,-1,58,192,136,-1,196,198,195,-1,196,59,198,-1,197,152,154,-1,99,152,197,-1,193,155,192,-1,156,155,193,-1,191,101,230,-1,191,157,101,-1,183,54,185,-1,54,183,51,-1,90,187,190,-1,187,90,138,-1,189,87,48,-1,87,189,89,-1,85,92,84,-1,92,85,91,-1,187,180,234,-1,187,188,180,-1,54,186,185,-1,186,54,53,-1,173,93,228,-1,173,94,93,-1,184,51,183,-1,52,51,184,-1,234,102,233,-1,102,234,180,-1,140,44,43,-1,140,178,44,-1,182,233,73,-1,182,234,233,-1,133,81,181,-1,81,133,179,-1,80,46,97,-1,47,46,80,-1,176,175,173,-1,175,176,82,-1,174,95,94,-1,171,95,174,-1,206,69,236,-1,69,206,149,-1,236,170,206,-1,236,169,170,-1,36,34,33,-1,34,36,35,-1,2,163,0,-1,123,163,2,-1,25,8,15,-1,8,25,24,-1,117,26,168,-1,27,26,117,-1,28,166,29,-1,108,166,28,-1,167,132,165,-1,132,167,107,-1,16,146,20,-1,146,16,209,-1,3,10,147,-1,3,5,10,-1};
			return value;
		}
		/** Large attribute array: IndexedFaceSet DEF='l_tarsal_proximal_phalanx_4_geometry' coordIndex field, scene-graph level=5, element #22, 1880 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_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex()
		{
			MFInt32 l_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getl_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex_1()))
				.append(new MFInt32(getl_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex_2()));
			return l_tarsal_proximal_phalanx_4_geometry_5_22_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='l_tarsal_proximal_phalanx_4_coordinate' point field, scene-graph level=6, element #22, 711 total numbers made up of 237 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_tarsal_proximal_phalanx_4_coordinate_6_22_point()
		{
			MFVec3f l_tarsal_proximal_phalanx_4_coordinate_6_22_point = new MFVec3f(new double[] {0.1162,0.0094,0.0552,0.1161,0.01,0.0554,0.1162,0.0099,0.0548,0.117,0.0113,0.0535,0.1166,0.0109,0.0535,0.1166,0.0111,0.054,0.1215,0.0073,0.0518,0.1219,0.0067,0.0532,0.1208,0.006,0.0535,0.1166,0.0111,0.0554,0.1177,0.0118,0.0553,0.1192,0.0066,0.0545,0.1189,0.0064,0.0559,0.1188,0.0068,0.0557,0.1195,0.0063,0.0547,0.1203,0.006,0.0538,0.1171,0.0081,0.0552,0.1174,0.0074,0.0564,0.1168,0.0082,0.0555,0.1178,0.0074,0.0559,0.1185,0.0075,0.0549,0.1186,0.0072,0.0564,0.1196,0.0059,0.0563,0.1204,0.0073,0.0498,0.1206,0.0069,0.0523,0.1202,0.0068,0.0524,0.122,0.0059,0.0572,0.1223,0.0059,0.0567,0.1228,0.0066,0.0574,0.1225,0.0066,0.0577,0.1181,0.013,0.0509,0.1182,0.0122,0.0533,0.1186,0.0123,0.0533,0.1158,0.0091,0.0568,0.1158,0.0095,0.0568,0.1161,0.0101,0.0581,0.1162,0.0098,0.0582,0.1169,0.0104,0.0585,0.1167,0.0106,0.0583,0.1173,0.0112,0.0582,0.1176,0.0113,0.0582,0.1181,0.0119,0.0568,0.1177,0.0116,0.0568,0.1129,0.012,0.037,0.1129,0.0112,0.0369,0.1121,0.0118,0.0371,0.11,0.0123,0.0372,0.1104,0.0127,0.0371,0.1105,0.0153,0.0386,0.1112,0.013,0.0373,0.1156,0.0142,0.0385,0.1176,0.0135,0.0375,0.1169,0.013,0.0372,0.1171,0.0148,0.0387,0.1176,0.0145,0.0383,0.1203,0.008,0.0418,0.1202,0.0081,0.0443,0.1194,0.0076,0.0447,0.122,0.0135,0.0418,0.1212,0.0148,0.0423,0.1217,0.0137,0.0447,0.1221,0.0125,0.0441,0.1197,0.0129,0.0506,0.12,0.012,0.053,0.1117,0.0103,0.0411,0.1134,0.0099,0.0437,0.1098,0.0122,0.0418,0.1119,0.0119,0.0443,0.1152,0.0101,0.0457,0.1151,0.01,0.0433,0.1165,0.011,0.0568,0.1208,0.0162,0.0392,0.1208,0.0164,0.0385,0.119,0.0174,0.04,0.1192,0.0072,0.0577,0.1187,0.007,0.0566,0.1207,0.0063,0.0575,0.1175,0.0083,0.0583,0.117,0.0076,0.0569,0.1184,0.0072,0.0567,0.1084,0.0143,0.0375,0.1085,0.0167,0.0384,0.1182,0.0102,0.0341,0.1157,0.0092,0.0348,0.1175,0.0116,0.0356,0.1158,0.0111,0.0359,0.1132,0.0137,0.0382,0.1131,0.0147,0.0387,0.1154,0.0154,0.0393,0.1141,0.0154,0.039,0.1166,0.0151,0.0391,0.1157,0.0125,0.0373,0.1167,0.0128,0.0371,0.1223,0.012,0.0367,0.1214,0.0128,0.0351,0.1217,0.015,0.0373,0.1217,0.0146,0.0386,0.108,0.014,0.0376,0.1094,0.0112,0.0385,0.1153,0.0172,0.0421,0.1116,0.0176,0.0409,0.1124,0.0164,0.0425,0.1151,0.0179,0.0407,0.1139,0.0131,0.0464,0.1157,0.0126,0.0486,0.1146,0.0137,0.0463,0.1233,0.0076,0.0545,0.1238,0.0082,0.057,0.1232,0.0074,0.0577,0.1225,0.0083,0.0513,0.1236,0.0098,0.0518,0.1238,0.0095,0.0533,0.1229,0.008,0.0529,0.12,0.0075,0.0471,0.1211,0.0076,0.0493,0.1206,0.0079,0.0467,0.1222,0.0062,0.0547,0.1211,0.0055,0.0551,0.1222,0.0126,0.047,0.1226,0.0115,0.0496,0.1226,0.0116,0.0464,0.1234,0.0107,0.0491,0.1163,0.0107,0.0554,0.1163,0.01,0.0535,0.1187,0.0081,0.0474,0.1191,0.0076,0.05,0.1194,0.0071,0.0526,0.1183,0.0091,0.0589,0.116,0.0103,0.0569,0.1229,0.0106,0.0522,0.1237,0.0097,0.0534,0.1229,0.0103,0.0538,0.1242,0.0092,0.0548,0.1112,0.0179,0.0399,0.1138,0.0115,0.0461,0.115,0.0111,0.0483,0.1223,0.0114,0.039,0.122,0.014,0.0402,0.116,0.0153,0.0392,0.114,0.0128,0.0377,0.1139,0.0104,0.0358,0.1228,0.0105,0.0462,0.1233,0.0101,0.049,0.118,0.0084,0.045,0.1174,0.0089,0.0476,0.1169,0.0092,0.0453,0.1184,0.0079,0.0529,0.1179,0.0119,0.0549,0.1186,0.0073,0.0423,0.116,0.0096,0.0431,0.117,0.0083,0.0427,0.1187,0.0149,0.0457,0.1158,0.0163,0.0438,0.1165,0.0148,0.0461,0.1181,0.0161,0.0433,0.1215,0.0092,0.0415,0.1217,0.0091,0.044,0.1133,0.0153,0.0442,0.1163,0.0096,0.0455,0.1079,0.0127,0.0391,0.1175,0.011,0.0584,0.1183,0.012,0.0551,0.1158,0.0104,0.0508,0.1163,0.0096,0.0534,0.1164,0.0117,0.0511,0.124,0.0095,0.0549,0.1229,0.0075,0.058,0.1237,0.0086,0.0572,0.1206,0.0053,0.0554,0.1125,0.0112,0.0381,0.1133,0.0108,0.0378,0.1212,0.0151,0.0371,0.1203,0.0163,0.0383,0.1201,0.0107,0.034,0.1209,0.013,0.035,0.1197,0.0111,0.034,0.1185,0.0097,0.0341,0.1158,0.0087,0.0348,0.1136,0.0101,0.0361,0.1114,0.0178,0.0395,0.1151,0.0177,0.0402,0.1081,0.0168,0.0387,0.1187,0.0172,0.0396,0.1193,0.0132,0.0362,0.1182,0.012,0.0357,0.1196,0.015,0.0378,0.1185,0.0156,0.0387,0.1163,0.0165,0.0397,0.1151,0.0167,0.0399,0.1124,0.0167,0.0394,0.1176,0.0162,0.0395,0.1115,0.0139,0.0445,0.1222,0.011,0.0415,0.1225,0.0107,0.0439,0.1223,0.0087,0.0489,0.1195,0.0167,0.0413,0.12,0.0159,0.0429,0.1175,0.017,0.0416,0.1209,0.0154,0.0407,0.1212,0.0095,0.0384,0.1205,0.0145,0.0452,0.1215,0.0113,0.0527,0.1214,0.0122,0.0501,0.1197,0.0083,0.0385,0.1175,0.0074,0.0392,0.1156,0.0085,0.0399,0.1146,0.0102,0.0404,0.118,0.0084,0.0503,0.1167,0.0091,0.0505,0.1172,0.0086,0.0532,0.1197,0.0115,0.0563,0.1198,0.0116,0.0547,0.1216,0.0106,0.0557,0.123,0.0101,0.0553,0.1215,0.0109,0.0542,0.1191,0.01,0.0588,0.122,0.008,0.0583,0.1214,0.0071,0.0581,0.1211,0.0133,0.0476,0.1212,0.0098,0.0575,0.1226,0.0092,0.0575,0.1207,0.0088,0.0583,0.1145,0.0091,0.0371,0.1161,0.0096,0.0479,0.1194,0.0109,0.058,0.1193,0.0139,0.0482,0.1219,0.0088,0.0464,0.1192,0.0087,0.0353,0.1209,0.0099,0.0353,0.1166,0.0077,0.036,0.1096,0.0146,0.0426,0.1082,0.0154,0.0407,0.1174,0.0137,0.0485,0.1172,0.0178,0.0404,0.117,0.0176,0.04,0.12,0.0079,0.0582,0.1138,0.0106,0.0406});
			return l_tarsal_proximal_phalanx_4_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_tarsal_proximal_phalanx_4 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_tarsal_proximal_phalanx_4().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_tarsal_proximal_phalanx_4\" 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_tarsal_proximal_phalanx_4 self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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