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> tooth (TODO fix name). </p>
 <p> Related links:  source l_molar1r.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_molar1r&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_molar1r.x3d">l_molar1r.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> tooth (TODO fix name) </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/lmolar1r.x3d">originals/lmolar1r.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> *enter reference citation or relative/online url here* </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_molar1r.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Skeleton/l_molar1r.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_molar1r
{
	/** Default constructor to create this object. */
	public l_molar1r ()
	{
	  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_molar1r.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("tooth (TODO fix name)"))
    .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/lmolar1r.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("*enter reference citation or relative/online url here*"))
    .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_molar1r.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("*TODO_add_title*"))
    .addChild(new TouchSensor().setDescription("tooth l_molar1r"))
    .addChild(new Transform("lmolar1r")
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material("ToothMaterial").setAmbientIntensity(0.4).setDiffuseColor(1.0,0.9843,0.9843).setShininess(0.05)))
        .setGeometry(new IndexedFaceSet("lmolar1r_geometry").setDEF("lmolar1r_geometry").setCreaseAngle(1.571).setCoordIndex(getlmolar1r_geometry_5_22_coordIndex())
          .setCoord(new Coordinate("lmolar1r_coordinate").setPoint(getlmolar1r_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[] getlmolar1r_geometry_5_22_coordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,6,7,8,-1,9,10,11,-1,12,13,14,-1,15,16,17,-1,18,19,20,-1,15,21,22,-1,23,24,25,-1,26,7,27,-1,28,29,30,-1,31,32,33,-1,34,35,36,-1,37,38,39,-1,40,41,42,-1,43,44,37,-1,45,46,47,-1,48,49,50,-1,49,48,51,-1,52,53,54,-1,55,56,57,-1,58,49,59,-1,60,61,8,-1,15,62,63,-1,64,65,66,-1,67,68,69,-1,70,71,72,-1,73,74,75,-1,76,77,78,-1,79,80,81,-1,20,82,83,-1,84,85,39,-1,17,86,87,-1,88,53,89,-1,90,91,92,-1,93,54,53,-1,94,95,96,-1,97,98,99,-1,100,101,102,-1,103,104,105,-1,106,107,108,-1,76,109,110,-1,111,112,46,-1,77,76,110,-1,113,106,108,-1,114,115,116,-1,100,117,101,-1,118,119,120,-1,8,26,60,-1,121,122,123,-1,40,124,125,-1,126,127,128,-1,129,130,131,-1,132,133,134,-1,10,135,31,-1,136,137,138,-1,68,139,140,-1,141,142,58,-1,83,143,144,-1,78,77,145,-1,146,110,147,-1,148,149,150,-1,65,151,51,-1,59,69,152,-1,153,86,17,-1,142,86,154,-1,57,13,55,-1,13,155,55,-1,48,66,51,-1,156,153,89,-1,54,93,55,-1,157,158,81,-1,159,160,161,-1,161,47,159,-1,162,163,164,-1,164,45,165,-1,45,161,166,-1,167,25,0,-1,168,169,170,-1,119,171,120,-1,172,9,11,-1,173,174,120,-1,175,122,121,-1,126,176,5,-1,127,92,41,-1,41,40,127,-1,39,177,43,-1,178,37,179,-1,180,181,162,-1,182,183,184,-1,185,186,187,-1,188,189,155,-1,190,191,66,-1,66,48,190,-1,192,50,193,-1,193,194,192,-1,188,155,13,-1,195,196,197,-1,178,38,37,-1,126,5,4,-1,121,198,175,-1,173,199,174,-1,11,33,172,-1,119,200,171,-1,119,201,202,-1,119,118,201,-1,170,203,168,-1,0,204,167,-1,165,45,166,-1,45,47,161,-1,163,205,164,-1,156,206,153,-1,55,93,56,-1,86,153,154,-1,59,67,69,-1,51,66,65,-1,148,70,149,-1,146,147,207,-1,145,208,78,-1,144,20,83,-1,18,141,58,-1,140,69,68,-1,31,11,10,-1,134,209,132,-1,80,79,210,-1,126,128,211,-1,40,125,212,-1,176,126,211,-1,8,7,26,-1,118,120,174,-1,100,213,117,-1,116,214,114,-1,113,108,215,-1,77,110,146,-1,76,216,109,-1,107,217,108,-1,104,82,105,-1,102,147,100,-1,99,218,97,-1,95,79,96,-1,53,88,93,-1,92,4,90,-1,124,219,125,-1,89,220,88,-1,221,17,87,-1,84,39,38,-1,20,105,82,-1,76,78,222,-1,73,223,74,-1,70,72,149,-1,64,66,224,-1,67,59,51,-1,63,16,15,-1,60,225,61,-1,59,152,58,-1,155,52,54,-1,49,51,59,-1,155,54,55,-1,226,157,81,-1,44,227,37,-1,42,124,40,-1,39,43,37,-1,228,178,179,-1,31,33,11,-1,229,230,231,-1,232,233,159,-1,27,234,26,-1,95,235,202,-1,95,94,235,-1,23,25,167,-1,15,22,62,-1,15,17,221,-1,12,188,13,-1,6,236,7,-1,3,90,4,-1,2,204,0,-1,237,238,239,-1,238,237,240,-1,241,242,243,-1,241,244,242,-1,245,246,247,-1,245,248,246,-1,249,250,251,-1,250,249,252,-1,253,254,255,-1,253,256,254,-1,254,257,258,-1,259,257,254,-1,260,261,262,-1,263,261,260,-1,264,265,262,-1,266,265,264,-1,2,267,268,-1,269,267,2,-1,270,271,272,-1,270,268,271,-1,175,273,274,-1,273,175,198,-1,48,192,190,-1,192,48,50,-1,275,276,277,-1,275,278,276,-1,279,88,220,-1,279,280,88,-1,281,94,282,-1,94,281,235,-1,102,283,284,-1,102,285,283,-1,201,218,286,-1,218,201,287,-1,288,289,290,-1,288,291,289,-1,182,160,292,-1,182,184,160,-1,197,180,162,-1,196,180,197,-1,232,293,294,-1,232,159,293,-1,177,295,43,-1,177,296,295,-1,219,297,129,-1,219,298,297,-1,176,175,5,-1,176,122,175,-1,299,300,255,-1,299,301,300,-1,252,302,250,-1,252,303,302,-1,248,304,305,-1,306,304,248,-1,307,255,300,-1,253,255,307,-1,171,173,120,-1,308,173,171,-1,309,310,311,-1,309,312,310,-1,313,314,315,-1,313,316,314,-1,9,317,318,-1,9,319,317,-1,9,172,319,-1,36,172,33,-1,36,319,172,-1,320,171,200,-1,320,321,171,-1,322,83,82,-1,83,322,323,-1,118,287,201,-1,118,324,287,-1,168,325,285,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=2 */
		private int[] getlmolar1r_geometry_5_22_coordIndex_2()
		{
			int[] value = {203,325,168,-1,290,0,25,-1,326,0,290,-1,62,327,63,-1,272,327,62,-1,328,329,6,-1,330,329,328,-1,214,331,332,-1,214,116,331,-1,333,334,123,-1,333,332,334,-1,187,116,131,-1,187,331,116,-1,184,165,166,-1,197,165,184,-1,159,46,293,-1,159,47,46,-1,19,58,152,-1,19,18,58,-1,335,280,279,-1,280,335,336,-1,49,142,154,-1,58,142,49,-1,151,67,51,-1,67,151,337,-1,338,339,340,-1,338,341,339,-1,217,56,342,-1,217,343,56,-1,338,344,341,-1,338,345,344,-1,107,346,347,-1,107,348,346,-1,68,146,207,-1,349,146,68,-1,350,98,213,-1,350,351,98,-1,81,352,226,-1,353,352,81,-1,354,355,356,-1,354,357,355,-1,144,358,359,-1,144,143,358,-1,69,19,152,-1,69,140,19,-1,181,316,360,-1,361,316,181,-1,239,362,303,-1,362,239,238,-1,192,363,247,-1,363,192,194,-1,191,246,364,-1,246,191,190,-1,137,10,138,-1,137,135,10,-1,365,34,366,-1,365,35,34,-1,12,301,188,-1,300,301,12,-1,296,237,136,-1,240,237,296,-1,243,365,367,-1,243,242,365,-1,368,369,370,-1,369,368,371,-1,269,297,267,-1,372,297,269,-1,373,195,183,-1,373,374,195,-1,40,128,127,-1,40,212,128,-1,358,281,359,-1,320,281,358,-1,211,122,176,-1,122,211,123,-1,312,203,170,-1,312,375,203,-1,229,376,377,-1,376,229,29,-1,378,379,380,-1,378,381,379,-1,382,291,288,-1,291,382,383,-1,199,232,384,-1,199,233,232,-1,213,97,117,-1,213,98,97,-1,123,385,121,-1,385,123,334,-1,267,298,386,-1,267,297,298,-1,227,318,317,-1,387,227,44,-1,227,387,318,-1,388,343,347,-1,388,389,343,-1,353,223,352,-1,390,223,353,-1,354,350,391,-1,354,351,350,-1,148,337,151,-1,148,392,337,-1,393,340,394,-1,338,340,393,-1,70,151,65,-1,70,148,151,-1,350,216,391,-1,216,350,109,-1,395,390,353,-1,396,390,395,-1,347,217,107,-1,347,343,217,-1,397,338,393,-1,345,338,397,-1,185,131,130,-1,185,187,131,-1,274,398,399,-1,398,274,273,-1,284,147,102,-1,207,147,284,-1,286,99,210,-1,286,218,99,-1,384,294,311,-1,384,232,294,-1,234,383,400,-1,234,291,383,-1,372,380,379,-1,269,380,372,-1,313,29,28,-1,313,376,29,-1,310,170,401,-1,310,312,170,-1,261,42,41,-1,261,263,42,-1,17,89,153,-1,89,17,220,-1,87,402,282,-1,402,87,86,-1,403,39,85,-1,403,177,39,-1,404,370,257,-1,370,404,368,-1,244,228,242,-1,244,178,228,-1,57,405,13,-1,389,405,57,-1,35,242,228,-1,365,242,35,-1,306,406,304,-1,306,407,406,-1,238,408,362,-1,408,238,409,-1,283,104,103,-1,283,410,104,-1,196,374,411,-1,374,196,195,-1,95,210,79,-1,95,286,210,-1,216,222,412,-1,216,76,222,-1,413,356,355,-1,396,356,413,-1,226,414,382,-1,352,414,226,-1,351,99,98,-1,351,415,99,-1,75,113,73,-1,113,75,416,-1,347,417,388,-1,347,346,417,-1,393,14,397,-1,393,276,14,-1,108,342,400,-1,108,217,342,-1,71,339,72,-1,71,340,339,-1,277,64,224,-1,394,64,277,-1,158,15,221,-1,158,21,15,-1,112,30,231,-1,112,111,30,-1,123,418,333,-1,211,418,123,-1,128,418,211,-1,128,419,418,-1,329,236,6,-1,329,399,236,-1,265,63,327,-1,265,335,63,-1,420,421,326,-1,422,421,420,-1,423,324,401,-1,324,423,287,-1,314,82,104,-1,82,314,322,-1,424,320,358,-1,320,424,321,-1,179,319,36,-1,179,317,319,-1,411,323,425,-1,411,426,323,-1,376,315,427,-1,376,313,315,-1,428,311,310,-1,384,311,428,-1,411,424,426,-1,411,374,424,-1,429,305,304,-1,429,430,305,-1,303,431,302,-1,303,362,431,-1,301,432,433,-1,299,432,301,-1,372,129,297,-1,130,129,372,-1,33,34,36,-1,32,34,33,-1,31,371,368,-1,31,135,371,-1,231,29,229,-1,29,231,30,-1,290,24,288,-1,24,290,25,-1,97,287,423,-1,97,218,287,-1,423,117,97,-1,117,423,169,-1,284,103,139,-1,284,283,103,-1,18,144,141,-1,18,20,144,-1,342,60,26,-1,60,342,56,-1,16,220,17,-1,16,279,220,-1,12,276,278,-1,12,14,276,-1,420,290,289,-1,420,326,290,-1,61,6,8,-1,328,6,61,-1,198,434,273,-1,434,198,435,-1,268,204,2,-1,270,204,268,-1,268,386,271,-1,267,386,268,-1,262,327,260,-1,265,327,262,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=3 */
		private int[] getlmolar1r_geometry_5_22_coordIndex_3()
		{
			int[] value = {264,261,91,-1,261,264,262,-1,257,436,258,-1,257,370,436,-1,437,256,253,-1,437,438,256,-1,436,251,432,-1,251,436,249,-1,246,305,364,-1,248,305,246,-1,406,244,241,-1,406,84,244,-1,439,239,440,-1,239,439,237,-1,403,238,240,-1,409,238,403,-1,431,247,363,-1,431,245,247,-1,409,85,407,-1,409,403,85,-1,441,437,442,-1,430,437,441,-1,258,255,254,-1,299,255,258,-1,256,259,254,-1,367,259,256,-1,369,252,249,-1,369,440,252,-1,328,264,330,-1,328,266,264,-1,269,1,380,-1,269,2,1,-1,272,260,327,-1,272,271,260,-1,326,1,0,-1,326,421,1,-1,5,274,3,-1,274,5,175,-1,236,27,7,-1,236,443,27,-1,156,132,206,-1,133,132,156,-1,444,277,224,-1,444,275,277,-1,52,133,156,-1,445,133,52,-1,280,93,88,-1,280,225,93,-1,282,359,281,-1,282,402,359,-1,105,19,140,-1,19,105,20,-1,101,285,102,-1,101,168,285,-1,23,22,21,-1,23,167,22,-1,286,202,201,-1,286,95,202,-1,27,291,234,-1,291,27,289,-1,233,160,159,-1,233,292,160,-1,30,360,28,-1,360,30,163,-1,294,231,230,-1,294,293,231,-1,137,237,439,-1,137,136,237,-1,228,36,35,-1,228,179,36,-1,295,136,138,-1,296,136,295,-1,219,42,298,-1,219,124,42,-1,385,381,435,-1,385,186,381,-1,251,134,446,-1,251,250,134,-1,306,245,408,-1,306,248,245,-1,442,253,307,-1,437,253,442,-1,321,308,171,-1,373,308,321,-1,309,375,312,-1,309,377,375,-1,316,322,314,-1,316,361,322,-1,44,295,387,-1,43,295,44,-1,138,387,295,-1,138,318,387,-1,323,143,83,-1,143,323,426,-1,285,410,283,-1,325,410,285,-1,22,272,62,-1,270,272,22,-1,266,61,336,-1,266,328,61,-1,332,418,214,-1,332,333,418,-1,332,187,334,-1,187,332,331,-1,116,125,131,-1,116,115,125,-1,162,165,197,-1,162,164,165,-1,166,160,184,-1,166,161,160,-1,67,349,68,-1,67,337,349,-1,63,279,16,-1,279,63,335,-1,50,154,193,-1,50,49,154,-1,433,188,301,-1,189,188,433,-1,280,61,225,-1,280,336,61,-1,190,247,246,-1,190,192,247,-1,145,447,208,-1,145,392,447,-1,215,382,414,-1,215,383,382,-1,343,57,56,-1,343,389,57,-1,448,344,345,-1,448,449,344,-1,450,107,106,-1,107,450,348,-1,100,350,213,-1,109,350,100,-1,80,353,81,-1,395,353,80,-1,390,74,223,-1,390,451,74,-1,391,357,354,-1,391,452,357,-1,81,96,79,-1,81,158,96,-1,181,425,361,-1,425,181,180,-1,28,316,313,-1,316,28,360,-1,132,363,194,-1,209,363,132,-1,429,243,438,-1,429,241,243,-1,364,444,191,-1,364,441,444,-1,32,366,34,-1,404,366,32,-1,300,278,307,-1,300,12,278,-1,403,296,177,-1,403,240,296,-1,367,366,259,-1,367,365,366,-1,371,440,369,-1,440,371,439,-1,373,182,308,-1,373,183,182,-1,87,158,221,-1,158,87,96,-1,131,219,129,-1,219,131,125,-1,386,42,263,-1,386,298,42,-1,325,375,427,-1,375,325,203,-1,377,230,229,-1,377,309,230,-1,422,378,421,-1,422,434,378,-1,382,24,226,-1,288,24,382,-1,199,292,233,-1,199,173,292,-1,310,324,428,-1,401,324,310,-1,320,235,281,-1,235,320,200,-1,334,186,385,-1,186,334,187,-1,91,41,92,-1,91,261,41,-1,389,448,405,-1,388,448,389,-1,352,73,414,-1,223,73,352,-1,356,351,354,-1,356,415,351,-1,392,349,337,-1,392,145,349,-1,64,340,71,-1,340,64,394,-1,45,111,46,-1,45,205,111,-1,45,164,205,-1,65,71,70,-1,71,65,64,-1,146,145,77,-1,145,146,349,-1,415,396,395,-1,356,396,415,-1,113,414,73,-1,113,215,414,-1,345,405,448,-1,345,397,405,-1,329,90,3,-1,329,330,90,-1,381,185,379,-1,381,186,185,-1,3,399,329,-1,399,3,274,-1,118,428,324,-1,118,174,428,-1,24,157,226,-1,24,23,157,-1,273,422,398,-1,422,273,434,-1,311,230,309,-1,311,294,230,-1,427,410,325,-1,427,315,410,-1,400,26,234,-1,26,400,342,-1,308,292,173,-1,308,182,292,-1,282,96,87,-1,282,94,96,-1,119,235,200,-1,119,202,235,-1,440,303,252,-1,303,440,239,-1,259,404,257,-1,259,366,404,-1,84,178,244,-1,84,38,178,-1,445,134,133,-1,446,134,445,-1,275,307,278,-1,442,307,275,-1,368,32,31,-1,368,404,32,-1,441,275,444,-1,441,442,275,-1,304,241,429,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=4 */
		private int[] getlmolar1r_geometry_5_22_coordIndex_4()
		{
			int[] value = {304,406,241,-1,408,407,306,-1,408,409,407,-1,196,425,180,-1,411,425,196,-1,207,139,68,-1,284,139,207,-1,402,142,141,-1,402,86,142,-1,157,21,158,-1,23,21,157,-1,391,412,452,-1,391,216,412,-1,413,390,396,-1,390,413,451,-1,415,210,99,-1,415,80,210,-1,415,395,80,-1,147,109,100,-1,110,109,147,-1,416,106,113,-1,106,416,450,-1,449,388,417,-1,448,388,449,-1,13,397,14,-1,405,397,13,-1,215,400,383,-1,215,108,400,-1,392,150,447,-1,392,148,150,-1,276,394,277,-1,393,394,276,-1,433,445,189,-1,445,433,446,-1,193,153,206,-1,193,154,153,-1,156,53,52,-1,156,89,53,-1,111,163,30,-1,111,205,163,-1,46,231,293,-1,231,46,112,-1,115,212,125,-1,115,114,212,-1,212,419,128,-1,212,114,419,-1,419,214,418,-1,114,214,419,-1,399,443,236,-1,399,398,443,-1,266,335,265,-1,266,336,335,-1,270,167,204,-1,270,22,167,-1,398,420,443,-1,398,422,420,-1,169,401,170,-1,401,169,423,-1,314,410,315,-1,104,410,314,-1,143,424,358,-1,143,426,424,-1,9,138,10,-1,9,318,138,-1,37,317,179,-1,37,227,317,-1,361,323,322,-1,361,425,323,-1,377,427,375,-1,377,376,427,-1,199,428,174,-1,199,384,428,-1,321,374,373,-1,374,321,424,-1,430,438,437,-1,429,438,430,-1,362,245,431,-1,362,408,245,-1,432,446,433,-1,432,251,446,-1,121,435,198,-1,121,385,435,-1,92,126,4,-1,127,126,92,-1,379,130,372,-1,185,130,379,-1,135,439,371,-1,135,137,439,-1,162,360,163,-1,181,360,162,-1,197,183,195,-1,183,197,184,-1,169,101,117,-1,101,169,168,-1,139,105,140,-1,139,103,105,-1,141,359,402,-1,141,144,359,-1,93,60,56,-1,225,60,93,-1,189,52,155,-1,189,445,52,-1,191,224,66,-1,191,444,224,-1,206,194,193,-1,132,194,206,-1,443,289,27,-1,443,420,289,-1,434,381,378,-1,434,435,381,-1,271,263,260,-1,386,263,271,-1,421,380,1,-1,378,380,421,-1,91,330,264,-1,91,90,330,-1,370,249,436,-1,370,369,249,-1,438,367,256,-1,243,367,438,-1,432,258,436,-1,432,299,258,-1,430,364,305,-1,430,441,364,-1,407,84,406,-1,407,85,84,-1,302,363,209,-1,302,431,363,-1,250,209,134,-1,250,302,209,-1};
			return value;
		}
		/** Large attribute array: IndexedFaceSet DEF='lmolar1r_geometry' coordIndex field, scene-graph level=5, element #22, 3520 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 getlmolar1r_geometry_5_22_coordIndex()
		{
			MFInt32 lmolar1r_geometry_5_22_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getlmolar1r_geometry_5_22_coordIndex_1()))
				.append(new MFInt32(getlmolar1r_geometry_5_22_coordIndex_2()))
				.append(new MFInt32(getlmolar1r_geometry_5_22_coordIndex_3()))
				.append(new MFInt32(getlmolar1r_geometry_5_22_coordIndex_4()));
			return lmolar1r_geometry_5_22_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='lmolar1r_coordinate' point field, scene-graph level=6, element #22, 1359 total numbers made up of 453 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 getlmolar1r_coordinate_6_22_point()
		{
			MFVec3f lmolar1r_coordinate_6_22_point = new MFVec3f(new double[] {0.0244,1.6135,0.0699,0.0245,1.6145,0.0698,0.024,1.6145,0.0693,0.0272,1.6156,0.0678,0.027,1.6166,0.0672,0.0271,1.6167,0.0678,0.0274,1.6133,0.0676,0.0276,1.6124,0.0687,0.0275,1.6121,0.0672,0.0257,1.6184,0.0643,0.0258,1.6181,0.0645,0.0261,1.6181,0.0643,0.0277,1.6116,0.0626,0.0278,1.6102,0.0634,0.0276,1.6102,0.0626,0.0246,1.611,0.0668,0.0248,1.6109,0.0661,0.0245,1.6099,0.065,0.0222,1.611,0.0619,0.0221,1.6108,0.0618,0.0218,1.6117,0.062,0.0236,1.6115,0.068,0.0242,1.6123,0.0682,0.0236,1.6118,0.0688,0.0244,1.6115,0.0696,0.0243,1.6125,0.0698,0.0276,1.6113,0.0683,0.0271,1.6125,0.0696,0.0196,1.6183,0.0633,0.0195,1.6183,0.0634,0.0198,1.619,0.0638,0.0265,1.6174,0.0642,0.0268,1.6174,0.0637,0.0263,1.6181,0.064,0.0268,1.6175,0.0631,0.0266,1.6174,0.0628,0.0261,1.6183,0.0635,0.0249,1.6181,0.0624,0.025,1.6173,0.0619,0.0244,1.6172,0.062,0.0252,1.6172,0.0667,0.0254,1.6165,0.0667,0.0245,1.6164,0.0668,0.0244,1.618,0.0628,0.0246,1.6183,0.0634,0.0207,1.6193,0.0648,0.0201,1.6193,0.0649,0.0206,1.6192,0.0653,0.0236,1.6107,0.061,0.0231,1.6104,0.0615,0.0233,1.6109,0.0615,0.0232,1.61,0.061,0.0269,1.6109,0.0645,0.0268,1.6101,0.0644,0.0273,1.6102,0.0643,0.0278,1.6101,0.0643,0.028,1.6101,0.0657,0.0281,1.6095,0.0643,0.0228,1.6104,0.0616,0.0229,1.61,0.0613,0.0278,1.6111,0.0665,0.0273,1.6122,0.0666,0.0247,1.6122,0.0676,0.0251,1.612,0.0669,0.0256,1.6085,0.0613,0.0243,1.6082,0.0608,0.0241,1.6104,0.0607,0.0218,1.6091,0.0609,0.0205,1.6096,0.061,0.0216,1.6096,0.061,0.0243,1.6059,0.0606,0.0257,1.6064,0.0611,0.026,1.604,0.061,0.0253,1.6059,0.0688,0.0246,1.6035,0.0683,0.0258,1.6035,0.0687,0.0195,1.6051,0.0619,0.0198,1.6051,0.0611,0.0199,1.6029,0.0608,0.0223,1.6102,0.0673,0.0214,1.6087,0.067,0.0226,1.6102,0.0678,0.0208,1.6137,0.0619,0.0213,1.6139,0.0624,0.0251,1.6164,0.0615,0.0246,1.6163,0.0616,0.0238,1.6102,0.0647,0.0237,1.61,0.0657,0.0269,1.6101,0.0646,0.0255,1.6099,0.0644,0.027,1.6155,0.0672,0.0264,1.6154,0.0669,0.0264,1.6166,0.0668,0.0278,1.6103,0.0646,0.0222,1.6113,0.067,0.0216,1.611,0.0671,0.0229,1.6106,0.0672,0.0186,1.6106,0.0649,0.0187,1.6096,0.0646,0.0192,1.6096,0.0658,0.0189,1.6097,0.0628,0.0185,1.6107,0.0631,0.0189,1.6107,0.0623,0.0203,1.6117,0.0615,0.0201,1.6137,0.0616,0.0211,1.6116,0.0617,0.0273,1.6061,0.0683,0.0278,1.6061,0.0672,0.0274,1.6083,0.0686,0.0193,1.6074,0.0627,0.0193,1.6074,0.0621,0.0203,1.6193,0.0642,0.0201,1.6193,0.0645,0.0262,1.606,0.0687,0.0251,1.6182,0.0672,0.0249,1.6181,0.0674,0.0249,1.6182,0.0677,0.0185,1.6107,0.064,0.0202,1.6134,0.0667,0.021,1.6136,0.0668,0.0209,1.6158,0.0668,0.0263,1.6174,0.0688,0.0266,1.6172,0.0683,0.0259,1.618,0.0681,0.0244,1.6171,0.0669,0.0246,1.6177,0.067,0.0267,1.6174,0.0671,0.026,1.6173,0.0667,0.0256,1.6179,0.0667,0.0241,1.6171,0.0682,0.0242,1.6171,0.0686,0.0245,1.6178,0.0679,0.0247,1.6118,0.0639,0.0256,1.6118,0.0642,0.0257,1.613,0.064,0.0259,1.6174,0.0643,0.0247,1.6172,0.064,0.025,1.6173,0.0642,0.0248,1.6181,0.0644,0.0203,1.6105,0.0613,0.0213,1.6106,0.0614,0.0227,1.6111,0.063,0.0235,1.6103,0.063,0.0218,1.6139,0.0632,0.0222,1.6119,0.0632,0.0209,1.6055,0.0605,0.0198,1.6074,0.0615,0.019,1.6097,0.062,0.0229,1.6056,0.0605,0.0244,1.6035,0.06,0.023,1.6033,0.0597,0.0229,1.6078,0.0607,0.0226,1.61,0.0614,0.0242,1.6101,0.0644,0.0236,1.6103,0.063,0.0278,1.6104,0.0642,0.0256,1.6107,0.0645,0.0232,1.6111,0.068,0.023,1.6107,0.0673,0.0202,1.6189,0.0657,0.0211,1.6188,0.0659,0.021,1.6192,0.0655,0.0211,1.619,0.0638,0.0204,1.6191,0.0636,0.0209,1.6193,0.0642,0.0212,1.6192,0.0646,0.0212,1.6192,0.0653,0.024,1.6124,0.0691,0.0184,1.6117,0.0632,0.0184,1.6118,0.0641,0.0181,1.6137,0.0643,0.0214,1.6158,0.0663,0.026,1.6184,0.0642,0.021,1.6172,0.0667,0.0202,1.6157,0.0667,0.0269,1.6167,0.0686,0.0267,1.6172,0.0676,0.0242,1.6172,0.0623,0.0256,1.6173,0.0621,0.0256,1.6182,0.063,0.0211,1.6183,0.0634,0.0209,1.6183,0.0632,0.0215,1.6182,0.0658,0.0216,1.6182,0.0656,0.0215,1.6189,0.0655,0.0248,1.6172,0.0691,0.0251,1.6172,0.0691,0.025,1.6179,0.0684,0.0278,1.6115,0.0633,0.0277,1.6116,0.0639,0.0242,1.6119,0.0609,0.0249,1.6119,0.0609,0.024,1.6119,0.0614,0.0238,1.6108,0.0631,0.0241,1.6119,0.0628,0.0217,1.6181,0.0644,0.0216,1.6181,0.0642,0.0216,1.6188,0.0645,0.0266,1.6167,0.0692,0.0202,1.6172,0.0665,0.0215,1.6139,0.0665,0.0204,1.6116,0.0667,0.0214,1.6119,0.0671,0.0182,1.6137,0.0633,0.024,1.6134,0.0693,0.0205,1.6193,0.0641,0.0244,1.6108,0.0643,0.0195,1.6096,0.0615,0.021,1.603,0.0596,0.025,1.613,0.0636,0.0212,1.6099,0.067,0.026,1.618,0.0674,0.0251,1.6178,0.0667,0.0188,1.6097,0.0636,0.0252,1.6182,0.0676,0.0266,1.6084,0.0691,0.0194,1.6051,0.0628,0.0278,1.6082,0.0674,0.0191,1.6107,0.0658,0.0243,1.6171,0.0673,0.0255,1.6099,0.0645,0.0244,1.6098,0.0657,0.0194,1.6029,0.0617,0.0246,1.6058,0.0683,0.0252,1.6104,0.0613,0.0276,1.6112,0.0658,0.0244,1.6105,0.0694,0.0249,1.6184,0.0634,0.026,1.6173,0.0622,0.0193,1.6183,0.0642,0.0192,1.6183,0.0644,0.0196,1.619,0.0644,0.0199,1.6182,0.066,0.0202,1.6182,0.0662,0.0272,1.6115,0.0694,0.022,1.6121,0.0668,0.0273,1.6135,0.0689,0.0247,1.6164,0.0637,0.0243,1.6156,0.0628,0.0248,1.6156,0.0636,0.0243,1.6164,0.063,0.0259,1.6156,0.0614,0.0264,1.6165,0.0619,0.0266,1.6157,0.0616,0.0258,1.6164,0.0617,0.0243,1.614,0.0613,0.0247,1.6133,0.0606,0.0244,1.6133,0.0612,0.0247,1.6141,0.0608,0.0266,1.6147,0.064,0.0256,1.6139,0.064,0.0267,1.6138,0.064,0.0255,1.6148,0.064,0.0275,1.614,0.0618,0.0276,1.6148,0.0625,0.0277,1.614,0.0624,0.0274,1.6148,0.0619,0.0275,1.6156,0.0633,0.0277,1.6147,0.0631,0.0274,1.6157,0.0626,0.0247,1.6143,0.0671,0.0254,1.6154,0.0669,0.0255,1.6142,0.0669,0.0246,1.6153,0.067,0.0264,1.6143,0.0669,0.0257,1.6131,0.0669,0.0265,1.6132,0.0668,0.024,1.6154,0.0685,0.024,1.6144,0.0686,0.0241,1.6154,0.0693,0.0241,1.6134,0.0685,0.0243,1.6143,0.0678,0.0245,1.6132,0.0678,0.0267,1.6157,0.0695,0.027,1.6156,0.0688,0.0268,1.6118,0.0615,0.0273,1.6103,0.0621,0.0266,1.6104,0.0616,0.0275,1.6117,0.062,0.0257,1.6109,0.0657,0.0268,1.611,0.0656,0.0223,1.6119,0.0655,0.0228,1.6109,0.0656,0.0193,1.6116,0.0619,0.0194,1.6106,0.0618,0.0188,1.6117,0.0623,0.0207,1.6107,0.0668,0.0192,1.6117,0.0659,0.0254,1.6116,0.0702,0.0263,1.6126,0.0701,0.0252,1.6126,0.0702,0.0265,1.6116,0.07,0.0211,1.6181,0.0664,0.0196,1.619,0.065,0.0192,1.6183,0.0652,0.0244,1.618,0.0636,0.0243,1.6172,0.0632,0.0241,1.6164,0.0683,0.0242,1.6164,0.0674,0.0278,1.6139,0.0631,0.0278,1.6131,0.0624,0.0279,1.6131,0.0631,0.0249,1.6139,0.0636,0.0249,1.6148,0.0636,0.0253,1.6148,0.0608,0.0254,1.6141,0.0608,0.0246,1.6148,0.0609,0.0276,1.6133,0.0618,0.0215,1.6172,0.0661,0.019,1.6173,0.0645,0.0184,1.6158,0.0654,0.019,1.6173,0.0653,0.0184,1.6158,0.0645,0.0195,1.6173,0.0628,0.0202,1.6157,0.062,0.0193,1.6157,0.0623,0.0203,1.6173,0.0625,0.0255,1.6184,0.0638,0.0248,1.6183,0.0642,0.0259,1.6185,0.0639,0.0218,1.6139,0.0654,0.0216,1.6159,0.0653,0.0208,1.6157,0.0624,0.0212,1.6158,0.0628,0.019,1.6134,0.066,0.0186,1.6137,0.0624,0.0252,1.6136,0.0703,0.0249,1.6132,0.0671,0.0272,1.6133,0.0669,0.0274,1.6144,0.0677,0.0271,1.6144,0.0671,0.0251,1.6182,0.0679,0.0253,1.6182,0.0679,0.0254,1.6182,0.0678,0.0255,1.6179,0.0685,0.0258,1.612,0.0667,0.0266,1.612,0.0664,0.0218,1.6077,0.0607,0.0277,1.6067,0.0618,0.0274,1.6044,0.0612,0.0271,1.6067,0.0613,0.0279,1.6045,0.0616,0.0278,1.6102,0.0679,0.0281,1.6082,0.0653,0.0282,1.6046,0.0622,0.028,1.6067,0.0624,0.0284,1.6042,0.0651,0.0282,1.6064,0.0651,0.0282,1.604,0.0671,0.0208,1.6076,0.0609,0.0192,1.6074,0.0635,0.0191,1.6074,0.0645,0.0245,1.6081,0.0686,0.0231,1.6079,0.0678,0.0191,1.6051,0.0645,0.0197,1.6029,0.0658,0.0199,1.6053,0.0656,0.0189,1.6028,0.0645,0.022,1.6139,0.0643,0.0225,1.6118,0.0643,0.0203,1.6183,0.063,0.0209,1.6173,0.0628,0.0244,1.6148,0.0627,0.0245,1.6131,0.0627,0.0254,1.6134,0.0608,0.027,1.6165,0.0623,0.0272,1.6165,0.0628,0.0272,1.6157,0.0621,0.0269,1.6165,0.0639,0.0264,1.6156,0.0641,0.0272,1.6156,0.0638,0.0261,1.6165,0.0642,0.0242,1.6164,0.069,0.0216,1.6173,0.0655,0.0217,1.6172,0.0644,0.0185,1.6158,0.0636,0.0193,1.6173,0.063,0.019,1.6173,0.0639,0.0253,1.6156,0.0699,0.0248,1.6165,0.0694,0.0246,1.6155,0.0697,0.0253,1.6165,0.0694,0.0256,1.6106,0.0699,0.0266,1.6106,0.0698,0.0196,1.6173,0.0662,0.0258,1.6173,0.0691,0.0242,1.6154,0.0677,0.0247,1.6183,0.0639,0.0283,1.6066,0.0639,0.0282,1.6083,0.0641,0.0232,1.6056,0.0677,0.0193,1.605,0.0636,0.0219,1.6056,0.0604,0.0276,1.6085,0.062,0.027,1.6086,0.0615,0.0212,1.6077,0.0668,0.0212,1.6055,0.0666,0.0279,1.6085,0.0626,0.0267,1.6146,0.0696,0.0271,1.6145,0.0688,0.0275,1.6105,0.0692,0.0182,1.6136,0.0652,0.023,1.611,0.0644,0.0243,1.6163,0.0621,0.0272,1.6165,0.0634,0.028,1.6085,0.0633,0.0252,1.6156,0.0612,0.0246,1.6156,0.0612,0.0243,1.6148,0.0615,0.0243,1.6156,0.0618,0.0192,1.6137,0.0619,0.0216,1.6172,0.0639,0.0193,1.6029,0.0625,0.0215,1.6033,0.0669,0.0256,1.6083,0.0692,0.0197,1.6075,0.0657,0.0267,1.6037,0.0686,0.0285,1.6044,0.0639,0.0255,1.6182,0.0674,0.0253,1.6182,0.0673,0.0262,1.6137,0.0701,0.0252,1.6146,0.0701,0.0261,1.6147,0.07,0.0186,1.6117,0.065,0.0217,1.6159,0.0644,0.0212,1.6173,0.0631,0.0215,1.6159,0.0635,0.0188,1.6158,0.0627,0.0192,1.6158,0.0663,0.026,1.6148,0.0611,0.026,1.6141,0.0611,0.0244,1.6139,0.0627,0.0276,1.6139,0.0637,0.0278,1.613,0.0637,0.0261,1.6157,0.0698,0.026,1.6166,0.0694,0.0274,1.6147,0.0637,0.0268,1.6141,0.0613,0.0267,1.6149,0.0613,0.0252,1.6165,0.0642,0.0253,1.6156,0.0641,0.0261,1.6134,0.0611,0.0269,1.6133,0.0613,0.0269,1.6136,0.0697,0.0257,1.6119,0.0613,0.0268,1.6119,0.0642,0.0268,1.6129,0.0639,0.022,1.6032,0.0595,0.0281,1.6066,0.0631,0.0283,1.6046,0.063,0.0277,1.604,0.0682,0.0234,1.6035,0.0678,0.0191,1.6028,0.0633});
			return lmolar1r_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_molar1r 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_molar1r().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_molar1r\" 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_molar1r self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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