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

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=2 */
		private int[] getrmolar1r_geometry_5_22_coordIndex_2()
		{
			int[] value = {331,332,333,-1,332,331,100,-1,169,165,167,-1,207,165,169,-1,334,335,336,-1,334,337,335,-1,20,338,164,-1,20,18,338,-1,339,340,341,-1,339,342,340,-1,336,343,285,-1,336,335,343,-1,114,344,345,-1,344,114,113,-1,344,125,126,-1,344,113,125,-1,125,221,89,-1,125,113,221,-1,246,223,31,-1,224,223,246,-1,346,225,26,-1,346,347,225,-1,86,155,60,-1,86,88,155,-1,148,196,154,-1,148,149,196,-1,253,348,190,-1,349,348,253,-1,350,286,288,-1,286,350,351,-1,144,352,353,-1,144,145,352,-1,354,355,356,-1,354,101,355,-1,357,10,9,-1,10,357,358,-1,359,360,361,-1,360,359,362,-1,226,363,364,-1,365,363,226,-1,105,98,97,-1,98,105,104,-1,127,111,94,-1,129,111,127,-1,129,366,111,-1,143,222,112,-1,143,367,222,-1,108,139,109,-1,368,139,108,-1,19,52,157,-1,52,19,251,-1,150,369,370,-1,150,147,369,-1,137,371,214,-1,371,137,296,-1,326,199,182,-1,199,326,372,-1,259,373,314,-1,259,374,373,-1,375,312,376,-1,375,260,312,-1,7,215,49,-1,7,134,215,-1,245,377,378,-1,245,244,377,-1,309,254,11,-1,254,309,307,-1,379,380,216,-1,380,379,381,-1,377,271,268,-1,377,382,271,-1,274,232,273,-1,305,232,274,-1,383,384,385,-1,384,383,306,-1,200,386,184,-1,200,387,386,-1,147,252,388,-1,147,12,252,-1,292,329,389,-1,329,292,390,-1,203,122,124,-1,220,122,203,-1,24,354,25,-1,391,354,24,-1,331,319,392,-1,331,333,319,-1,247,393,394,-1,247,30,393,-1,302,395,300,-1,356,395,302,-1,29,174,318,-1,29,249,174,-1,317,121,170,-1,317,119,121,-1,343,4,396,-1,397,4,343,-1,188,229,91,-1,188,187,229,-1,3,396,4,-1,3,275,396,-1,358,398,362,-1,358,357,398,-1,399,364,77,-1,399,355,364,-1,212,111,366,-1,111,212,112,-1,141,107,109,-1,400,107,141,-1,72,69,73,-1,70,69,72,-1,225,162,223,-1,347,162,225,-1,347,163,162,-1,401,70,72,-1,350,70,401,-1,400,352,402,-1,400,141,352,-1,403,366,74,-1,366,403,212,-1,355,226,364,-1,355,101,226,-1,362,404,358,-1,404,362,359,-1,43,276,201,-1,43,405,276,-1,187,406,241,-1,186,406,187,-1,294,390,292,-1,171,390,294,-1,170,407,317,-1,407,170,169,-1,303,174,249,-1,303,46,174,-1,22,395,53,-1,395,22,300,-1,92,337,278,-1,92,283,337,-1,247,320,248,-1,247,394,320,-1,321,392,319,-1,166,392,321,-1,40,282,279,-1,40,408,282,-1,90,217,219,-1,89,217,90,-1,157,388,252,-1,409,388,157,-1,185,386,240,-1,185,184,386,-1,410,305,274,-1,304,305,410,-1,378,268,411,-1,378,377,268,-1,380,412,179,-1,380,381,412,-1,289,307,315,-1,289,254,307,-1,378,33,245,-1,33,378,231,-1,413,82,191,-1,413,263,82,-1,271,376,269,-1,271,375,376,-1,257,195,194,-1,195,257,131,-1,414,28,415,-1,416,28,414,-1,326,181,324,-1,182,181,326,-1,127,417,128,-1,127,298,417,-1,368,106,418,-1,368,108,106,-1,233,403,76,-1,233,419,403,-1,74,129,51,-1,129,74,366,-1,420,97,118,-1,97,420,105,-1,364,75,77,-1,363,75,364,-1,361,236,359,-1,361,235,236,-1,9,351,357,-1,9,286,351,-1,391,101,354,-1,391,102,101,-1,421,72,71,-1,421,401,72,-1,70,288,68,-1,288,70,350,-1,14,157,252,-1,14,19,157,-1,26,224,246,-1,26,225,224,-1,163,346,180,-1,163,347,346,-1,345,220,422,-1,220,345,122,-1,345,126,122,-1,345,344,126,-1,161,160,162,-1,423,160,161,-1,239,340,342,-1,239,424,340,-1,425,18,238,-1,18,425,338,-1,331,297,295,-1,297,331,392,-1,79,332,100,-1,325,332,79,-1,390,328,329,-1,426,328,390,-1,427,34,243,-1,427,327,34,-1,325,414,332,-1,325,324,414,-1,321,394,428,-1,321,320,394,-1,240,426,44,-1,426,240,386,-1,316,429,315,-1,429,316,430,-1,431,314,373,-1,431,313,314,-1,132,432,349,-1,132,255,432,-1,229,241,242,-1,229,187,241,-1,219,306,383,-1,306,219,218,-1,245,32,243,-1,32,245,33,-1,305,133,232,-1,305,134,133,-1,27,246,248,-1,26,246,27,-1,22,301,300,-1,21,301,22,-1,168,96,207,-1,168,228,96,-1,117,207,96,-1,165,207,117,-1,227,296,137,-1,227,295,296,-1,213,17,370,-1,213,15,17,-1,64,391,24,-1,210,391,64,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=3 */
		private int[] getrmolar1r_geometry_5_22_coordIndex_3()
		{
			int[] value = {130,60,155,-1,60,130,253,-1,288,413,68,-1,288,287,413,-1,250,285,23,-1,250,336,285,-1,397,5,4,-1,175,5,397,-1,1,433,2,-1,1,278,433,-1,281,425,434,-1,281,280,425,-1,1,384,93,-1,1,0,384,-1,277,424,275,-1,277,340,424,-1,310,274,272,-1,310,410,274,-1,411,270,435,-1,270,411,268,-1,308,264,435,-1,264,308,267,-1,430,263,429,-1,263,430,261,-1,85,374,259,-1,85,412,374,-1,436,258,257,-1,436,431,258,-1,437,412,381,-1,412,437,374,-1,438,304,410,-1,379,304,438,-1,439,260,375,-1,439,230,260,-1,262,83,82,-1,83,262,313,-1,432,266,265,-1,272,266,432,-1,270,430,316,-1,270,269,430,-1,266,440,264,-1,266,273,440,-1,405,277,276,-1,441,277,405,-1,434,441,281,-1,441,434,341,-1,282,442,280,-1,442,282,385,-1,164,442,0,-1,442,164,338,-1,283,176,443,-1,242,176,283,-1,284,239,65,-1,239,284,424,-1,301,334,299,-1,301,433,334,-1,286,254,289,-1,286,9,254,-1,87,13,12,-1,87,290,13,-1,389,293,292,-1,389,369,293,-1,16,80,136,-1,15,80,16,-1,297,116,99,-1,297,208,116,-1,18,251,19,-1,18,20,251,-1,205,298,206,-1,205,417,298,-1,302,250,25,-1,299,250,302,-1,209,249,158,-1,209,303,249,-1,416,26,28,-1,346,26,416,-1,246,30,247,-1,246,31,30,-1,379,215,304,-1,379,216,215,-1,243,36,244,-1,243,34,36,-1,216,172,49,-1,172,216,380,-1,40,90,408,-1,40,42,90,-1,265,309,348,-1,309,265,267,-1,258,311,256,-1,258,444,311,-1,262,376,312,-1,262,261,376,-1,328,372,330,-1,328,387,372,-1,393,317,407,-1,317,393,318,-1,333,322,319,-1,333,415,322,-1,323,372,326,-1,323,330,372,-1,204,49,172,-1,204,50,49,-1,138,323,78,-1,330,323,138,-1,278,334,433,-1,334,278,337,-1,66,341,434,-1,66,339,341,-1,285,396,284,-1,285,343,396,-1,345,445,114,-1,345,422,445,-1,186,445,406,-1,446,445,186,-1,89,115,217,-1,89,221,115,-1,161,180,198,-1,161,163,180,-1,209,423,183,-1,209,160,423,-1,400,67,214,-1,400,402,67,-1,290,66,13,-1,339,66,290,-1,149,192,196,-1,149,59,192,-1,11,348,309,-1,348,11,190,-1,239,189,63,-1,239,342,189,-1,436,81,83,-1,436,193,81,-1,353,141,140,-1,353,352,141,-1,395,355,399,-1,395,356,355,-1,151,447,210,-1,151,404,447,-1,448,362,398,-1,448,360,362,-1,103,365,226,-1,237,365,103,-1,104,371,98,-1,371,104,107,-1,94,110,95,-1,94,111,110,-1,399,53,395,-1,53,399,234,-1,367,449,222,-1,367,450,449,-1,409,51,128,-1,409,157,51,-1,370,61,150,-1,61,370,17,-1,387,199,372,-1,200,199,387,-1,100,295,227,-1,100,331,295,-1,373,437,444,-1,374,437,373,-1,260,314,312,-1,260,259,314,-1,382,244,36,-1,244,382,377,-1,358,151,10,-1,151,358,404,-1,36,439,382,-1,36,35,439,-1,273,231,440,-1,232,231,273,-1,39,412,85,-1,39,179,412,-1,369,388,293,-1,147,388,369,-1,88,12,148,-1,87,12,88,-1,40,405,43,-1,40,279,405,-1,167,407,169,-1,167,428,407,-1,27,415,28,-1,27,322,415,-1,93,306,91,-1,306,93,384,-1,356,25,354,-1,356,302,25,-1,30,318,393,-1,30,29,318,-1,94,298,127,-1,94,228,298,-1,98,296,99,-1,296,98,371,-1,335,397,343,-1,443,397,335,-1,217,188,218,-1,217,186,188,-1,451,357,351,-1,357,451,398,-1,102,236,103,-1,102,447,236,-1,77,234,399,-1,234,77,76,-1,106,420,449,-1,105,420,106,-1,146,73,69,-1,146,145,73,-1,401,351,350,-1,351,401,451,-1,402,145,146,-1,402,352,145,-1,420,222,449,-1,420,110,222,-1,76,74,234,-1,74,76,403,-1,447,359,236,-1,447,404,359,-1,50,48,327,-1,48,204,47,-1,50,204,48,-1,408,385,282,-1,408,383,385,-1,241,220,177,-1,406,220,241,-1,96,118,117,-1,96,95,118,-1,291,128,417,-1,409,128,291,-1,52,22,53,-1,52,251,22,-1,337,443,335,-1,283,443,337,-1,322,248,320,-1,27,248,322,-1,166,428,167,-1,166,321,428,-1,197,55,156,-1,197,86,55,-1,303,240,46,-1,303,185,240,-1,3,201,276,-1,3,202,201,-1,126,41,178,-1,126,125,41,-1,409,293,388,-1,409,291,293,-1,294,120,171,-1,294,205,120,-1,311,410,310,-1,438,410,311,-1,231,411,440,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=4 */
		private int[] getrmolar1r_geometry_5_22_coordIndex_4()
		{
			int[] value = {231,378,411,-1,35,230,439,-1,35,84,230,-1,132,253,130,-1,253,132,349,-1,315,287,289,-1,287,315,429,-1,287,263,413,-1,287,429,263,-1,257,193,436,-1,194,193,257,-1,444,438,311,-1,437,438,444,-1,414,181,416,-1,181,414,324,-1,16,135,62,-1,16,136,135,-1,329,213,389,-1,329,138,213,-1,418,449,450,-1,418,106,449,-1,403,142,212,-1,419,142,403,-1,95,420,118,-1,95,110,420,-1,107,214,371,-1,214,107,400,-1,448,451,452,-1,448,398,451,-1,210,102,391,-1,210,447,102,-1,421,451,401,-1,421,452,451,-1,67,146,58,-1,402,146,67,-1,150,59,149,-1,59,150,61,-1,189,339,290,-1,342,339,189,-1,61,16,62,-1,61,17,16,-1,223,158,31,-1,223,159,158,-1,161,183,423,-1,183,161,198,-1,115,186,217,-1,115,446,186,-1,406,422,220,-1,406,445,422,-1,446,114,445,-1,446,115,114,-1,396,424,284,-1,424,396,275,-1,434,238,66,-1,238,434,425,-1,2,301,21,-1,301,2,433,-1,392,208,297,-1,208,392,166,-1,168,121,206,-1,168,170,121,-1,78,325,79,-1,323,325,78,-1,44,390,171,-1,44,426,390,-1,173,243,32,-1,173,427,243,-1,327,8,50,-1,427,8,327,-1,427,173,8,-1,332,415,333,-1,332,414,415,-1,407,394,393,-1,407,428,394,-1,387,426,386,-1,328,426,387,-1,269,261,430,-1,261,269,376,-1,431,444,258,-1,431,373,444,-1,349,265,348,-1,349,432,265,-1,123,201,202,-1,201,123,178,-1,383,90,219,-1,383,408,90,-1,172,179,38,-1,172,380,179,-1,416,180,346,-1,180,416,181,-1,184,198,200,-1,183,198,184,-1,205,291,417,-1,205,294,291,-1,116,165,117,-1,208,165,116,-1,80,137,136,-1,80,227,137,-1,389,370,369,-1,389,213,370,-1,64,156,210,-1,156,64,63,-1,68,191,152,-1,68,413,191,-1,194,154,196,-1,154,194,195,-1,299,336,250,-1,299,334,336,-1,443,175,397,-1,176,175,443,-1,280,338,425,-1,280,442,338,-1,385,0,442,-1,0,385,384,-1,341,277,441,-1,277,341,340,-1,405,281,441,-1,281,405,279,-1,440,435,264,-1,435,440,411,-1,435,316,308,-1,435,270,316,-1,255,272,432,-1,310,272,255,-1,83,431,436,-1,83,313,431,-1,382,375,271,-1,382,439,375,-1,437,379,438,-1,381,379,437,-1};
			return value;
		}
		/** Large attribute array: IndexedFaceSet DEF='rmolar1r_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 getrmolar1r_geometry_5_22_coordIndex()
		{
			MFInt32 rmolar1r_geometry_5_22_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getrmolar1r_geometry_5_22_coordIndex_1()))
				.append(new MFInt32(getrmolar1r_geometry_5_22_coordIndex_2()))
				.append(new MFInt32(getrmolar1r_geometry_5_22_coordIndex_3()))
				.append(new MFInt32(getrmolar1r_geometry_5_22_coordIndex_4()));
			return rmolar1r_geometry_5_22_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='rmolar1r_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 getrmolar1r_coordinate_6_22_point()
		{
			MFVec3f rmolar1r_coordinate_6_22_point = new MFVec3f(new double[] {-0.024,1.6145,0.069,-0.0245,1.6145,0.0694,-0.0244,1.6135,0.0695,-0.027,1.6155,0.0668,-0.0272,1.6156,0.0674,-0.0271,1.6167,0.0675,-0.0261,1.6181,0.064,-0.0258,1.6181,0.0642,-0.0257,1.6184,0.064,-0.0276,1.6102,0.0626,-0.0278,1.6102,0.0633,-0.0278,1.6115,0.0631,-0.0245,1.6099,0.0648,-0.0248,1.6109,0.0659,-0.0246,1.611,0.0666,-0.0218,1.6117,0.0618,-0.0221,1.6108,0.0616,-0.0222,1.611,0.0617,-0.0242,1.6123,0.0679,-0.0236,1.6115,0.0677,-0.024,1.6124,0.0688,-0.0243,1.6125,0.0695,-0.0244,1.6115,0.0693,-0.0276,1.6124,0.0684,-0.0276,1.6113,0.0681,-0.0272,1.6115,0.0692,-0.0198,1.619,0.0635,-0.0195,1.6183,0.063,-0.0196,1.6183,0.063,-0.0199,1.6182,0.0656,-0.0192,1.6183,0.0648,-0.0196,1.619,0.0647,-0.0263,1.6181,0.0637,-0.0268,1.6174,0.0635,-0.0256,1.6182,0.0627,-0.0256,1.6173,0.0618,-0.026,1.6173,0.062,-0.0249,1.6181,0.0622,-0.0244,1.618,0.0625,-0.0244,1.6172,0.0618,-0.0245,1.6164,0.0664,-0.0252,1.6172,0.0663,-0.0244,1.6171,0.0665,-0.0254,1.6165,0.0663,-0.0214,1.6158,0.066,-0.0209,1.6158,0.0664,-0.021,1.6172,0.0663,-0.0246,1.6183,0.0631,-0.0249,1.6184,0.0631,-0.0248,1.6181,0.064,-0.0248,1.6183,0.0638,-0.0226,1.6102,0.0676,-0.0232,1.6111,0.0678,-0.0244,1.6105,0.0691,-0.0278,1.6101,0.0642,-0.0273,1.6102,0.0642,-0.0278,1.6104,0.064,-0.0229,1.61,0.0612,-0.0232,1.61,0.0609,-0.0231,1.6104,0.0614,-0.0269,1.6109,0.0643,-0.0228,1.6104,0.0614,-0.0226,1.61,0.0613,-0.0276,1.6112,0.0657,-0.0278,1.6111,0.0663,-0.0275,1.6121,0.067,-0.0251,1.612,0.0666,-0.0218,1.6091,0.0609,-0.0252,1.6104,0.0612,-0.0243,1.6082,0.0608,-0.0256,1.6085,0.0612,-0.026,1.604,0.061,-0.0257,1.6064,0.0611,-0.0243,1.6059,0.0605,-0.0231,1.6079,0.0676,-0.0258,1.6035,0.0686,-0.0246,1.6058,0.0682,-0.0253,1.6059,0.0686,-0.0213,1.6139,0.0622,-0.0208,1.6137,0.0617,-0.0211,1.6116,0.0616,-0.0242,1.6119,0.0608,-0.0254,1.6134,0.0606,-0.0247,1.6133,0.0605,-0.025,1.6173,0.0616,-0.0246,1.6163,0.0613,-0.0268,1.6101,0.0642,-0.0255,1.6099,0.0644,-0.0255,1.6099,0.0643,-0.0246,1.6177,0.0667,-0.0243,1.6171,0.0669,-0.0248,1.6165,0.069,-0.0253,1.6156,0.0695,-0.0246,1.6155,0.0693,-0.0192,1.6096,0.0656,-0.0187,1.6096,0.0644,-0.0186,1.6106,0.0647,-0.0189,1.6097,0.0627,-0.019,1.6097,0.0618,-0.0189,1.6107,0.0621,-0.0201,1.6137,0.0614,-0.0274,1.6083,0.0684,-0.0278,1.6082,0.0672,-0.0278,1.6061,0.0671,-0.0193,1.6074,0.062,-0.0193,1.6074,0.0626,-0.0194,1.6051,0.0627,-0.0198,1.6074,0.0614,-0.0195,1.6051,0.0619,-0.0198,1.6051,0.0611,-0.0191,1.6074,0.0644,-0.0197,1.6075,0.0655,-0.0199,1.6053,0.0655,-0.0251,1.6182,0.0669,-0.0252,1.6182,0.0672,-0.0249,1.6182,0.0673,-0.0185,1.6107,0.0629,-0.0185,1.6107,0.0638,-0.0188,1.6097,0.0635,-0.0202,1.6157,0.0664,-0.021,1.6136,0.0665,-0.0202,1.6134,0.0664,-0.026,1.618,0.067,-0.0267,1.6174,0.0668,-0.0267,1.6172,0.0673,-0.0251,1.6178,0.0664,-0.0256,1.6179,0.0664,-0.0212,1.6099,0.0668,-0.0223,1.6102,0.067,-0.0214,1.6087,0.0668,-0.0256,1.6118,0.064,-0.025,1.613,0.0634,-0.0257,1.613,0.0638,-0.0265,1.6174,0.0639,-0.0259,1.6174,0.064,-0.0216,1.6096,0.0609,-0.0213,1.6106,0.0613,-0.0203,1.6105,0.0611,-0.0218,1.6139,0.0629,-0.0199,1.6029,0.0608,-0.021,1.603,0.0596,-0.0209,1.6055,0.0604,-0.0215,1.6033,0.0668,-0.0197,1.6029,0.0657,-0.023,1.6033,0.0597,-0.0229,1.6056,0.0605,-0.0229,1.6078,0.0607,-0.0238,1.6102,0.0645,-0.0242,1.6101,0.0642,-0.0236,1.6103,0.0629,-0.0235,1.6103,0.0629,-0.0281,1.6095,0.0642,-0.0241,1.6104,0.0607,-0.0236,1.6107,0.0609,-0.0244,1.6108,0.0642,-0.0256,1.6107,0.0644,-0.0278,1.6103,0.0645,-0.023,1.6107,0.0671,-0.0202,1.6189,0.0653,-0.0206,1.6192,0.065,-0.021,1.6192,0.0651,-0.0212,1.6192,0.0643,-0.0207,1.6193,0.0644,-0.0209,1.6193,0.0639,-0.024,1.6134,0.0689,-0.0184,1.6118,0.0639,-0.0182,1.6137,0.063,-0.0181,1.6137,0.064,-0.0192,1.6117,0.0657,-0.0182,1.6136,0.065,-0.019,1.6134,0.0658,-0.0215,1.6139,0.0662,-0.0244,1.618,0.0633,-0.026,1.6184,0.0638,-0.0202,1.6172,0.0662,-0.0269,1.6167,0.0682,-0.0266,1.6167,0.0688,-0.0263,1.6174,0.0684,-0.026,1.6173,0.0664,-0.0242,1.6172,0.0621,-0.0211,1.619,0.0635,-0.0209,1.6183,0.0629,-0.0211,1.6183,0.0631,-0.0215,1.6189,0.0651,-0.0216,1.6182,0.0652,-0.0215,1.6182,0.0655,-0.025,1.6179,0.068,-0.0251,1.6172,0.0687,-0.0248,1.6172,0.0687,-0.0268,1.611,0.0654,-0.0277,1.6116,0.0638,-0.0249,1.6119,0.0608,-0.0233,1.6109,0.0614,-0.024,1.6119,0.0613,-0.0241,1.6119,0.0627,-0.0247,1.6118,0.0638,-0.0238,1.6108,0.0629,-0.0269,1.6101,0.0644,-0.0216,1.6188,0.0642,-0.0216,1.6181,0.0639,-0.0217,1.6181,0.0641,-0.0264,1.6166,0.0665,-0.027,1.6166,0.0669,-0.0266,1.6172,0.0679,-0.0247,1.6183,0.0636,-0.0214,1.6119,0.0668,-0.0204,1.6116,0.0664,-0.0186,1.6117,0.0648,-0.0184,1.6117,0.063,-0.0211,1.6188,0.0656,-0.028,1.6101,0.0656,-0.0244,1.6035,0.06,-0.0212,1.6055,0.0665,-0.0222,1.6119,0.063,-0.0205,1.6096,0.0609,-0.025,1.6173,0.0639,-0.0247,1.6172,0.0637,-0.0245,1.6178,0.0675,-0.0242,1.6171,0.0682,-0.0241,1.6171,0.0678,-0.0259,1.618,0.0677,-0.0249,1.6181,0.067,-0.0191,1.6051,0.0645,-0.0201,1.6193,0.0645,-0.0201,1.6193,0.0642,-0.0203,1.6193,0.0639,-0.0273,1.6061,0.0682,-0.0203,1.6117,0.0613,-0.0191,1.6107,0.0655,-0.0253,1.6165,0.069,-0.0251,1.6164,0.0613,-0.0272,1.6165,0.0632,-0.0269,1.6165,0.0636,-0.0246,1.6035,0.0682,-0.0245,1.6081,0.0684,-0.0284,1.6042,0.065,-0.0282,1.6064,0.065,-0.0282,1.604,0.0671,-0.0247,1.6122,0.0673,-0.0273,1.6122,0.0664,-0.0215,1.6172,0.0658,-0.0258,1.6173,0.0687,-0.026,1.6166,0.069,-0.0261,1.6183,0.0632,-0.0266,1.6174,0.0625,-0.0268,1.6175,0.0628,-0.0196,1.619,0.0641,-0.0192,1.6183,0.064,-0.0193,1.6183,0.0638,-0.0202,1.6182,0.0658,-0.0271,1.6125,0.0693,-0.0236,1.6118,0.0685,-0.0244,1.6098,0.0655,-0.0268,1.6119,0.064,-0.0277,1.6116,0.0625,-0.0256,1.6139,0.0638,-0.0249,1.6139,0.0634,-0.0245,1.6131,0.0625,-0.0244,1.6139,0.0625,-0.0246,1.6156,0.061,-0.0252,1.6156,0.061,-0.026,1.6141,0.0609,-0.0254,1.6141,0.0607,-0.0261,1.6134,0.0609,-0.0277,1.6147,0.0629,-0.0276,1.6139,0.0635,-0.0274,1.6147,0.0635,-0.0278,1.6139,0.0629,-0.0272,1.6157,0.0619,-0.0267,1.6149,0.0612,-0.0274,1.6148,0.0617,-0.0266,1.6157,0.0614,-0.0266,1.6147,0.0638,-0.0272,1.6156,0.0636,-0.0264,1.6156,0.0638,-0.0271,1.6144,0.0668,-0.0264,1.6154,0.0666,-0.0264,1.6143,0.0666,-0.0252,1.6146,0.0698,-0.0246,1.6153,0.0667,-0.0243,1.6143,0.0675,-0.0247,1.6143,0.0668,-0.0242,1.6154,0.0674,-0.0261,1.6157,0.0694,-0.0274,1.6133,0.0673,-0.0273,1.6135,0.0686,-0.0273,1.6103,0.062,-0.0268,1.6118,0.0614,-0.0266,1.6104,0.0615,-0.0275,1.6117,0.0619,-0.0257,1.6109,0.0655,-0.0222,1.6113,0.0667,-0.0223,1.6119,0.0653,-0.0228,1.6109,0.0654,-0.022,1.6121,0.0665,-0.0193,1.6116,0.0617,-0.0194,1.6106,0.0616,-0.0188,1.6117,0.0621,-0.0207,1.6107,0.0666,-0.0263,1.6126,0.0698,-0.0254,1.6116,0.0699,-0.0252,1.6126,0.0699,-0.0265,1.6116,0.0697,-0.0211,1.6181,0.066,-0.0252,1.6165,0.0639,-0.0261,1.6165,0.0639,-0.0242,1.6164,0.0686,-0.0278,1.6131,0.0623,-0.0277,1.614,0.0623,-0.0279,1.6131,0.0629,-0.0255,1.6148,0.0638,-0.0249,1.6148,0.0633,-0.0253,1.6148,0.0607,-0.0247,1.6141,0.0606,-0.0246,1.6148,0.0607,-0.0276,1.6133,0.0617,-0.0275,1.614,0.0617,-0.0192,1.6158,0.066,-0.0196,1.6173,0.0659,-0.0188,1.6158,0.0625,-0.019,1.6173,0.0636,-0.0185,1.6158,0.0633,-0.0193,1.6173,0.0627,-0.0212,1.6158,0.0625,-0.0209,1.6173,0.0625,-0.0208,1.6157,0.0621,-0.0212,1.6173,0.0628,-0.0255,1.6184,0.0634,-0.0217,1.6159,0.0641,-0.022,1.6139,0.064,-0.0215,1.6159,0.0633,-0.0192,1.6137,0.0617,-0.0202,1.6157,0.0618,-0.0193,1.6157,0.062,-0.0262,1.6137,0.0698,-0.0267,1.6146,0.0693,-0.0269,1.6136,0.0694,-0.0261,1.6147,0.0696,-0.0241,1.6134,0.0682,-0.0258,1.612,0.0664,-0.0265,1.6132,0.0665,-0.0257,1.6131,0.0667,-0.0266,1.612,0.0662,-0.0271,1.6145,0.0685,-0.0253,1.6182,0.0669,-0.0255,1.6182,0.067,-0.0204,1.6191,0.0633,-0.0205,1.6193,0.0637,-0.0278,1.613,0.0635,-0.0268,1.6129,0.0638,-0.027,1.6086,0.0614,-0.0276,1.6085,0.0619,-0.0219,1.6056,0.0604,-0.022,1.6032,0.0595,-0.0275,1.6105,0.069,-0.0266,1.6084,0.0689,-0.0266,1.6106,0.0695,-0.0279,1.6085,0.0625,-0.028,1.6085,0.0632,-0.0283,1.6066,0.0639,-0.0283,1.6046,0.063,-0.0285,1.6044,0.0638,-0.0281,1.6066,0.0631,-0.0267,1.6037,0.0685,-0.0262,1.606,0.0686,-0.0277,1.604,0.0681,-0.0212,1.6077,0.0666,-0.0189,1.6028,0.0644,-0.0194,1.6029,0.0616,-0.023,1.611,0.0642,-0.0227,1.6111,0.0629,-0.0195,1.6096,0.0614,-0.0216,1.6172,0.0636,-0.0243,1.6148,0.0613,-0.0243,1.6156,0.0615,-0.0259,1.6156,0.0612,-0.026,1.6148,0.0609,-0.027,1.6165,0.0621,-0.0272,1.6165,0.0626,-0.0247,1.6164,0.0634,-0.0243,1.6172,0.0629,-0.0243,1.6164,0.0627,-0.0264,1.6165,0.0616,-0.0241,1.6164,0.0679,-0.0241,1.6154,0.0689,-0.024,1.6154,0.0682,-0.0216,1.6173,0.0652,-0.0217,1.6172,0.0641,-0.0237,1.61,0.0655,-0.0225,1.6118,0.0641,-0.0218,1.6139,0.0651,-0.0278,1.6102,0.0678,-0.0186,1.6137,0.0622,-0.019,1.6173,0.065,-0.019,1.6173,0.0642,-0.0256,1.6106,0.0696,-0.0274,1.6144,0.0674,-0.027,1.6156,0.0684,-0.028,1.6067,0.0623,-0.0256,1.6083,0.069,-0.0208,1.6076,0.0608,-0.0271,1.6067,0.0612,-0.0218,1.6077,0.0607,-0.0232,1.6056,0.0676,-0.0282,1.6083,0.064,-0.0254,1.6154,0.0666,-0.0255,1.6179,0.0681,-0.0184,1.6158,0.065,-0.0242,1.6164,0.0671,-0.0229,1.6106,0.067,-0.0253,1.6156,0.0638,-0.0274,1.6157,0.0624,-0.0243,1.6163,0.0618,-0.0257,1.6119,0.0611,-0.0203,1.6173,0.0623,-0.0195,1.6173,0.0625,-0.0203,1.6183,0.0627,-0.0216,1.611,0.0669,-0.0193,1.6029,0.0624,-0.0234,1.6035,0.0677,-0.0192,1.6074,0.0634,-0.0274,1.6044,0.0612,-0.0254,1.6182,0.0674,-0.0212,1.6192,0.0649,-0.0272,1.6133,0.0667,-0.0245,1.6132,0.0675,-0.0216,1.6159,0.065,-0.0259,1.6185,0.0635,-0.0184,1.6158,0.0642,-0.0269,1.6133,0.0612,-0.0268,1.6141,0.0612,-0.0243,1.614,0.0612,-0.0267,1.6138,0.0638,-0.0252,1.6136,0.0699,-0.0249,1.6132,0.0668,-0.0276,1.6148,0.0623,-0.0244,1.6133,0.061,-0.0243,1.6156,0.0626,-0.0248,1.6156,0.0634,-0.0258,1.6164,0.0615,-0.0275,1.6156,0.063,-0.0255,1.6142,0.0666,-0.024,1.6144,0.0682,-0.0267,1.6157,0.0691,-0.0244,1.6148,0.0625,-0.0253,1.6182,0.0675,-0.0251,1.6182,0.0675,-0.0281,1.6082,0.0652,-0.0282,1.6046,0.0622,-0.0193,1.605,0.0635,-0.0191,1.6028,0.0632,-0.0277,1.6067,0.0617,-0.0279,1.6045,0.0616});
			return rmolar1r_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 r_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 r_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.r_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.r_molar1r self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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