package HumanoidAnimation.Bones;

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.Lighting.*;
import org.web3d.x3d.jsail.Navigation.*;
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_molar_3_16, lower left Universal Numbering System (UNS) #3, ISO 3950 standard designation #16. </p>
 <p> Related links:  source tooth_molar_3_16.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.Bones.tooth_molar_3_16&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/Bones/tooth_molar_3_16.x3d">tooth_molar_3_16.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> tooth_molar_3_16, lower left Universal Numbering System (UNS) #3, ISO 3950 standard designation #16 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Don Brutzman, Joe Williams, John Carlson, Damon Hernandez </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 14 March 2026 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modified </i> </td>
			<td> 20 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/Bones/originals/rmolar1c.x3d">originals/rmolar1c.x3d</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/Bones/originals/rmolar1r.x3d">originals/rmolar1r.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/Human_tooth" target="_blank">https://en.wikipedia.org/wiki/Human_tooth</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> United States, <a href="https://en.wikipedia.org/wiki/Universal_Numbering_System" target="_blank">https://en.wikipedia.org/wiki/Universal_Numbering_System</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> ISO 3950, <a href="https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation" target="_blank">https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation</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/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg" target="_blank">https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg</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> usage examples <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/Bones/tooth_molar_3_16.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_molar_3_16.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/Bones/../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 Don Brutzman, Joe Williams, John Carlson, Damon Hernandez
 */

public class tooth_molar_3_16
{
	/** Default constructor to create this object. */
	public tooth_molar_3_16 ()
	{
	  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_4_0)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("tooth_molar_3_16.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("tooth_molar_3_16, lower left Universal Numbering System (UNS) #3, ISO 3950 standard designation #16"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Don Brutzman, Joe Williams, John Carlson, Damon Hernandez"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("14 March 2026"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 March 2026"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/rmolar1c.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/rmolar1r.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://en.wikipedia.org/wiki/Human_tooth"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("United States, https://en.wikipedia.org/wiki/Universal_Numbering_System"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("ISO 3950, https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://en.wikipedia.org/wiki/FDI_World_Dental_Federation_notation#/media/File:Comparison_of_dental_notations.svg"))
    .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("usage examples 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/Bones/tooth_molar_3_16.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("tooth_molar_3_16.x3d"))
    .addComments(" user hover lights bone and reveals description, user selection/deselection temporarily binds/unbinds hidden close-up viewpoint ")
    .addChild(new TouchSensor("UserTouchSensor").setDescription("tooth_molar_3_16 upper right"))
    .addChild(new Transform("rmolar1c").setTranslation(-0.0240,1.5995,0.0635)
      .addChild(new Viewpoint("HiddenViewpoint").setNearDistance(0.001).setPosition(0.0,0.0,0.3).setRetainUserOffsets(true)
        .setNavigationInfo(new NavigationInfo().setTransitionType(new String[] {"ANIMATE"}).setType(new String[] {"EXAMINE"})))
      .addChild(new ROUTE().setFromNode("UserTouchSensor").setFromField("isActive").setToNode("HiddenViewpoint").setToField("set_bind"))
      .addChild(new DirectionalLight("HiddenLight").setAmbientIntensity(1).setColor(0.1,0.1,1.0).setOn(false))
      .addChild(new ROUTE().setFromNode("UserTouchSensor").setFromField("isOver").setToNode("HiddenLight").setToField("on"))
      .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("tooth_molar_3_16_cap_geometry").setDEF("tooth_molar_3_16_cap_geometry").setCreaseAngle(1.571).setCoordIndex(gettooth_molar_3_16_cap_geometry_5_28_coordIndex())
          .setCoord(new Coordinate("tooth_molar_3_16_cap_coordinate").setPoint(gettooth_molar_3_16_cap_coordinate_6_28_point())))))
    .addChild(new Transform("rmolar1r").setTranslation(-0.0233,1.6111,0.0647)
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material().setUSE("ToothMaterial")))
        .setGeometry(new IndexedFaceSet("tooth_molar_3_16_root_geometry").setDEF("tooth_molar_3_16_root_geometry").setCreaseAngle(1.571).setCoordIndex(gettooth_molar_3_16_root_geometry_5_34_coordIndex())
          .setCoord(new Coordinate("tooth_molar_3_16_root_coordinate").setPoint(gettooth_molar_3_16_root_coordinate_6_34_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[] gettooth_molar_3_16_cap_geometry_5_28_coordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,4,3,6,-1,7,8,2,-1,9,10,11,-1,12,13,14,-1,12,14,15,-1,16,17,18,-1,19,20,21,-1,19,22,23,-1,23,24,25,-1,26,23,27,-1,28,29,30,-1,31,32,33,-1,34,35,36,-1,37,38,39,-1,40,37,41,-1,42,43,44,-1,45,46,47,-1,48,49,42,-1,50,51,7,-1,52,45,47,-1,53,54,55,-1,56,57,44,-1,58,59,60,-1,50,57,60,-1,61,62,63,-1,64,62,65,-1,51,8,7,-1,10,66,3,-1,2,8,67,-1,68,69,47,-1,70,65,71,-1,52,72,45,-1,73,74,75,-1,76,77,78,-1,26,79,80,-1,81,80,82,-1,82,79,83,-1,66,40,41,-1,29,84,85,-1,86,87,88,-1,89,90,91,-1,92,93,94,-1,95,96,97,-1,98,99,53,-1,100,101,102,-1,103,104,105,-1,106,107,108,-1,109,104,110,-1,111,112,113,-1,85,114,115,-1,116,117,118,-1,119,120,118,-1,121,122,115,-1,123,124,125,-1,126,127,128,-1,128,129,126,-1,130,131,132,-1,125,133,134,-1,135,127,126,-1,121,123,125,-1,116,112,111,-1,136,113,137,-1,138,139,109,-1,36,140,99,-1,141,142,53,-1,143,55,144,-1,145,146,92,-1,91,147,148,-1,149,150,38,-1,29,82,84,-1,150,151,30,-1,35,34,76,-1,77,152,153,-1,74,154,155,-1,52,156,157,-1,70,71,47,-1,8,68,46,-1,7,158,159,-1,157,156,160,-1,42,6,13,-1,69,68,51,-1,161,44,57,-1,48,42,44,-1,50,161,57,-1,99,61,53,-1,52,47,71,-1,49,162,163,-1,45,8,46,-1,42,136,43,-1,164,39,38,-1,37,40,165,-1,34,36,98,-1,75,155,35,-1,166,167,93,-1,25,168,20,-1,77,21,20,-1,26,27,135,-1,28,169,32,-1,170,171,87,-1,172,164,173,-1,174,136,137,-1,147,91,17,-1,136,12,113,-1,14,111,15,-1,45,175,176,-1,176,0,67,-1,163,162,177,-1,32,31,26,-1,5,177,11,-1,9,11,178,-1,179,180,181,-1,170,180,182,-1,179,182,180,-1,183,40,184,-1,5,4,177,-1,177,178,11,-1,0,2,67,-1,45,185,175,-1,15,111,113,-1,186,102,187,-1,91,188,17,-1,13,12,136,-1,172,39,164,-1,87,180,170,-1,81,28,32,-1,189,23,89,-1,135,79,26,-1,31,33,24,-1,78,77,20,-1,190,166,93,-1,191,34,98,-1,150,30,29,-1,165,176,175,-1,38,85,164,-1,50,159,48,-1,45,67,8,-1,158,162,49,-1,50,60,51,-1,57,58,60,-1,51,60,69,-1,160,140,157,-1,40,183,165,-1,47,69,70,-1,65,156,71,-1,157,72,52,-1,155,75,74,-1,153,21,77,-1,34,192,76,-1,73,168,193,-1,193,24,33,-1,151,28,30,-1,84,114,85,-1,148,86,91,-1,92,94,145,-1,141,94,142,-1,99,98,36,-1,194,195,196,-1,197,112,116,-1,109,198,138,-1,15,113,12,-1,111,173,116,-1,197,116,199,-1,125,119,121,-1,200,135,126,-1,119,125,134,-1,130,132,201,-1,124,200,126,-1,115,123,121,-1,118,121,119,-1,199,116,118,-1,198,197,202,-1,198,137,197,-1,85,115,122,-1,137,113,197,-1,110,174,109,-1,106,108,203,-1,103,105,204,-1,102,205,100,-1,95,97,143,-1,93,142,94,-1,89,91,86,-1,86,148,87,-1,85,150,29,-1,82,80,79,-1,82,29,81,-1,26,31,24,-1,193,25,24,-1,75,78,73,-1,73,193,151,-1,71,156,52,-1,70,64,65,-1,47,46,68,-1,10,3,5,-1,51,68,8,-1,64,206,62,-1,61,160,62,-1,70,59,64,-1,136,42,13,-1,50,48,161,-1,55,141,53,-1,158,7,178,-1,50,7,159,-1,176,67,45,-1,161,48,44,-1,85,38,150,-1,37,39,41,-1,35,155,36,-1,25,193,168,-1,32,169,33,-1,28,81,29,-1,26,24,23,-1,25,19,23,-1,33,169,193,-1,37,149,38,-1,112,197,113,-1,19,25,20,-1,91,207,188,-1,16,147,17,-1,14,173,111,-1,10,5,11,-1,2,178,7,-1,208,181,180,-1,208,209,181,-1,210,211,212,-1,211,210,213,-1,214,215,95,-1,214,216,215,-1,182,217,130,-1,182,179,217,-1,218,219,220,-1,218,221,219,-1,222,203,223,-1,203,222,224,-1,40,10,184,-1,10,40,66,-1,107,204,105,-1,204,107,225,-1,226,22,153,-1,90,22,226,-1,172,14,13,-1,172,173,14,-1,171,201,227,-1,171,170,201,-1,212,228,146,-1,211,228,212,-1,152,167,166,-1,152,192,167,-1,191,53,142,-1};
			return value;
		}

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

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=3 */
		private int[] gettooth_molar_3_16_cap_geometry_5_28_coordIndex_3()
		{
			int[] value = {163,4,6,-1,163,257,4,-1,178,1,9,-1,178,2,1,-1,183,1,0,-1,183,184,1,-1,252,271,262,-1,252,106,271,-1,258,270,269,-1,259,270,258,-1,131,260,251,-1,131,268,260,-1,261,101,100,-1,101,261,267,-1,263,237,96,-1,237,263,266,-1,264,16,18,-1,16,264,265,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=1 */
		private int[] gettooth_molar_3_16_root_geometry_5_34_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[] gettooth_molar_3_16_root_geometry_5_34_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[] gettooth_molar_3_16_root_geometry_5_34_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[] gettooth_molar_3_16_root_geometry_5_34_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='tooth_molar_3_16_cap_geometry' coordIndex field, scene-graph level=5, element #28, 2072 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 gettooth_molar_3_16_cap_geometry_5_28_coordIndex()
		{
			MFInt32 tooth_molar_3_16_cap_geometry_5_28_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(gettooth_molar_3_16_cap_geometry_5_28_coordIndex_1()))
				.append(new MFInt32(gettooth_molar_3_16_cap_geometry_5_28_coordIndex_2()))
				.append(new MFInt32(gettooth_molar_3_16_cap_geometry_5_28_coordIndex_3()));
			return tooth_molar_3_16_cap_geometry_5_28_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='tooth_molar_3_16_cap_coordinate' point field, scene-graph level=6, element #28, 816 total numbers made up of 272 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 gettooth_molar_3_16_cap_coordinate_6_28_point()
		{
			MFVec3f tooth_molar_3_16_cap_coordinate_6_28_point = new MFVec3f(new double[] {0.0004,-0.0020,0.0012,0.0005,-0.0022,0.0014,0.0000,-0.0018,0.0016,0.0020,-0.0045,0.0014,0.0017,-0.0034,0.0019,0.0017,-0.0034,0.0018,0.0021,-0.0042,0.0028,-0.0001,-0.0022,0.0025,-0.0003,-0.0017,0.0015,0.0007,-0.0024,0.0019,0.0013,-0.0036,0.0013,0.0008,-0.0024,0.0020,0.0032,-0.0044,0.0025,0.0025,-0.0045,0.0028,0.0035,-0.0048,0.0010,0.0035,-0.0043,0.0018,-0.0035,0.0046,-0.0024,-0.0042,0.0043,-0.0021,-0.0040,0.0047,-0.0019,-0.0032,-0.0028,-0.0042,-0.0038,-0.0038,-0.0027,-0.0040,-0.0034,-0.0037,-0.0034,-0.0022,-0.0043,-0.0021,-0.0022,-0.0049,-0.0021,-0.0022,-0.0048,-0.0031,-0.0028,-0.0039,-0.0004,-0.0028,-0.0055,-0.0003,-0.0025,-0.0058,-0.0004,-0.0021,-0.0023,0.0013,-0.0032,-0.0036,0.0008,-0.0026,-0.0025,-0.0008,-0.0027,-0.0042,-0.0006,-0.0027,-0.0041,-0.0014,-0.0019,-0.0032,-0.0050,-0.0034,-0.0008,-0.0044,-0.0045,-0.0011,-0.0046,-0.0032,0.0002,0.0011,-0.0040,-0.0013,0.0017,-0.0042,-0.0018,0.0021,-0.0048,-0.0008,0.0015,-0.0043,-0.0005,0.0017,-0.0045,-0.0006,0.0014,-0.0033,0.0041,0.0016,-0.0030,0.0044,0.0007,-0.0028,0.0049,-0.0011,-0.0016,0.0008,-0.0011,-0.0017,0.0010,-0.0023,-0.0027,0.0017,0.0006,-0.0027,0.0040,0.0011,-0.0029,0.0037,-0.0002,-0.0027,0.0041,-0.0005,-0.0023,0.0034,-0.0026,-0.0025,0.0010,-0.0050,-0.0002,0.0013,-0.0051,-0.0006,0.0033,-0.0050,0.0011,0.0033,-0.0009,-0.0027,0.0057,-0.0011,-0.0032,0.0055,-0.0019,-0.0037,0.0056,-0.0027,-0.0042,0.0053,-0.0014,-0.0030,0.0043,-0.0048,-0.0020,0.0017,-0.0045,-0.0034,0.0028,-0.0049,-0.0022,0.0031,-0.0035,-0.0045,0.0040,-0.0039,-0.0043,0.0026,0.0019,-0.0047,0.0007,-0.0002,-0.0018,0.0013,-0.0008,-0.0024,0.0021,-0.0016,-0.0035,0.0027,-0.0025,-0.0043,0.0033,-0.0035,-0.0039,0.0021,-0.0025,-0.0028,0.0004,-0.0025,-0.0034,-0.0022,-0.0023,-0.0036,-0.0015,-0.0040,-0.0044,-0.0013,-0.0047,-0.0045,-0.0021,-0.0047,-0.0042,-0.0031,-0.0042,-0.0045,-0.0020,0.0009,-0.0035,-0.0057,0.0004,-0.0036,-0.0050,-0.0001,-0.0032,-0.0036,0.0012,-0.0041,-0.0047,0.0024,-0.0043,-0.0049,0.0016,-0.0043,-0.0033,0.0023,-0.0041,-0.0021,-0.0021,0.0007,-0.0038,-0.0006,0.0020,-0.0037,-0.0008,0.0004,-0.0045,-0.0023,-0.0012,-0.0046,-0.0037,-0.0010,-0.0040,-0.0039,0.0012,-0.0032,-0.0054,0.0018,-0.0008,-0.0056,0.0001,-0.0011,-0.0053,0.0018,0.0002,-0.0044,0.0042,0.0036,-0.0046,0.0044,0.0015,-0.0050,0.0035,0.0016,-0.0050,-0.0018,0.0005,-0.0048,-0.0018,0.0012,-0.0018,0.0037,0.0051,-0.0028,0.0039,0.0051,-0.0026,0.0031,0.0052,0.0001,0.0001,0.0052,0.0015,0.0000,0.0045,0.0010,0.0016,0.0041,0.0006,0.0036,0.0043,0.0008,0.0026,0.0041,0.0028,0.0024,0.0033,0.0032,-0.0006,0.0038,0.0016,-0.0017,0.0048,0.0038,-0.0049,0.0011,0.0044,-0.0043,0.0014,0.0039,-0.0039,0.0024,0.0027,-0.0043,-0.0036,0.0035,-0.0041,-0.0036,0.0044,-0.0045,0.0001,0.0037,-0.0044,-0.0012,0.0049,-0.0031,-0.0013,0.0049,-0.0011,-0.0023,0.0053,-0.0012,-0.0013,0.0042,-0.0027,-0.0022,0.0035,-0.0034,-0.0021,0.0043,-0.0027,-0.0036,0.0039,-0.0027,-0.0046,0.0045,-0.0011,-0.0038,0.0030,-0.0026,-0.0058,0.0015,-0.0020,-0.0061,0.0022,-0.0003,-0.0057,0.0033,-0.0006,-0.0053,0.0020,0.0033,-0.0041,0.0031,0.0032,-0.0041,0.0032,0.0024,-0.0043,0.0045,0.0009,-0.0034,0.0050,0.0007,-0.0022,0.0010,-0.0034,-0.0061,0.0029,-0.0034,0.0035,0.0040,-0.0027,0.0029,0.0048,0.0011,0.0024,0.0030,0.0014,0.0033,-0.0042,-0.0030,0.0008,-0.0053,0.0016,0.0015,-0.0053,-0.0002,-0.0002,-0.0048,0.0030,0.0034,-0.0048,0.0010,0.0039,-0.0049,0.0039,0.0005,-0.0047,0.0042,-0.0005,-0.0036,0.0041,-0.0025,-0.0020,0.0031,-0.0027,0.0004,-0.0035,-0.0015,0.0009,-0.0026,-0.0023,-0.0005,-0.0022,-0.0021,-0.0051,-0.0030,-0.0033,-0.0043,-0.0026,-0.0039,-0.0024,-0.0031,-0.0003,-0.0037,-0.0040,-0.0001,-0.0039,-0.0037,0.0012,-0.0037,-0.0036,0.0005,0.0002,-0.0022,0.0026,0.0002,-0.0023,0.0030,-0.0043,-0.0031,0.0014,0.0003,-0.0028,0.0045,0.0010,-0.0027,0.0029,0.0016,-0.0036,0.0027,0.0026,-0.0050,-0.0009,0.0007,-0.0030,0.0001,-0.0056,-0.0013,-0.0027,-0.0056,-0.0016,-0.0015,-0.0029,-0.0029,-0.0030,-0.0012,-0.0019,-0.0031,0.0011,0.0030,-0.0042,0.0012,0.0015,-0.0049,0.0027,-0.0051,0.0005,0.0036,-0.0050,0.0002,0.0032,-0.0024,0.0036,0.0002,-0.0028,-0.0001,0.0001,-0.0020,0.0010,0.0009,-0.0024,0.0022,0.0002,-0.0020,0.0024,0.0010,0.0038,-0.0038,-0.0005,0.0037,-0.0035,-0.0004,0.0040,-0.0035,0.0009,0.0035,-0.0040,0.0010,-0.0030,0.0003,0.0011,-0.0032,0.0006,-0.0009,-0.0023,-0.0006,-0.0026,0.0024,0.0053,-0.0039,0.0029,0.0049,-0.0047,0.0015,-0.0028,-0.0014,-0.0014,-0.0051,-0.0055,0.0004,-0.0023,-0.0054,-0.0018,-0.0005,-0.0053,-0.0032,-0.0020,-0.0016,-0.0019,-0.0030,-0.0026,0.0008,0.0058,-0.0037,0.0013,0.0053,-0.0035,0.0000,0.0055,0.0051,-0.0028,0.0016,0.0046,-0.0006,0.0028,0.0054,-0.0031,0.0000,0.0028,-0.0041,-0.0054,0.0023,0.0026,-0.0044,0.0055,-0.0010,0.0014,0.0025,0.0034,0.0034,-0.0004,0.0018,0.0046,-0.0018,0.0030,0.0050,-0.0039,-0.0035,0.0042,-0.0048,0.0008,-0.0029,-0.0020,0.0042,-0.0026,-0.0020,0.0045,-0.0025,-0.0043,0.0051,-0.0005,-0.0043,0.0047,-0.0013,-0.0044,0.0047,-0.0005,-0.0042,0.0051,-0.0013,-0.0038,0.0042,0.0047,-0.0042,0.0045,0.0036,-0.0037,0.0045,0.0046,0.0020,0.0037,-0.0040,0.0047,0.0030,-0.0019,0.0047,0.0034,-0.0011,0.0048,0.0030,-0.0011,0.0046,0.0034,-0.0019,0.0043,0.0034,0.0022,0.0043,0.0031,0.0023,0.0025,0.0038,0.0033,-0.0006,0.0028,0.0045,-0.0047,-0.0011,-0.0035,0.0026,0.0012,-0.0050,-0.0045,0.0043,-0.0015,0.0056,0.0005,-0.0003,0.0056,-0.0014,-0.0001,0.0053,0.0006,-0.0012,-0.0029,-0.0032,0.0055,-0.0021,-0.0028,0.0058,-0.0009,-0.0028,-0.0015,0.0003,-0.0017,-0.0060,0.0008,-0.0001,-0.0056,-0.0046,0.0046,0.0003,-0.0048,-0.0005,0.0042,-0.0043,-0.0021,0.0044,-0.0033,-0.0015,0.0057,-0.0024,-0.0010,0.0061,-0.0015,0.0005,0.0057,-0.0010,-0.0011,0.0059,0.0006,-0.0013,0.0053,0.0045,0.0025,0.0022,0.0054,0.0024,0.0010,0.0056,0.0010,0.0012,0.0035,0.0010,-0.0047,0.0048,0.0019,-0.0020,0.0042,0.0023,-0.0031,0.0042,0.0031,-0.0028,-0.0007,0.0037,0.0047,-0.0052,0.0018,-0.0019,0.0054,0.0019,-0.0001,0.0051,0.0019,-0.0011,-0.0017,0.0020,0.0051,0.0017,-0.0036,0.0024,0.0051,0.0033,0.0009,0.0052,0.0030,0.0010,0.0041,0.0034,-0.0027,-0.0018,0.0040,0.0051,-0.0006,0.0040,0.0047,-0.0044,0.0047,0.0015,-0.0039,0.0050,-0.0019,-0.0034,0.0049,-0.0023,-0.0045,0.0049,0.0003,-0.0027,0.0042,0.0050,0.0030,0.0035,-0.0039,0.0049,0.0033,-0.0003,0.0050,0.0030,-0.0003,0.0006,0.0040,0.0042});
			return tooth_molar_3_16_cap_coordinate_6_28_point;
		}
		/** Large attribute array: IndexedFaceSet DEF='tooth_molar_3_16_root_geometry' coordIndex field, scene-graph level=5, element #34, 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 gettooth_molar_3_16_root_geometry_5_34_coordIndex()
		{
			MFInt32 tooth_molar_3_16_root_geometry_5_34_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(gettooth_molar_3_16_root_geometry_5_34_coordIndex_1()))
				.append(new MFInt32(gettooth_molar_3_16_root_geometry_5_34_coordIndex_2()))
				.append(new MFInt32(gettooth_molar_3_16_root_geometry_5_34_coordIndex_3()))
				.append(new MFInt32(gettooth_molar_3_16_root_geometry_5_34_coordIndex_4()));
			return tooth_molar_3_16_root_geometry_5_34_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='tooth_molar_3_16_root_coordinate' point field, scene-graph level=6, element #34, 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 gettooth_molar_3_16_root_coordinate_6_34_point()
		{
			MFVec3f tooth_molar_3_16_root_coordinate_6_34_point = new MFVec3f(new double[] {-0.0007,0.0034,0.0043,-0.0012,0.0034,0.0047,-0.0011,0.0024,0.0048,-0.0037,0.0044,0.0021,-0.0039,0.0045,0.0027,-0.0038,0.0056,0.0028,-0.0028,0.0071,-0.0007,-0.0025,0.0071,-0.0005,-0.0024,0.0073,-0.0007,-0.0043,-0.0009,-0.0021,-0.0045,-0.0009,-0.0014,-0.0045,0.0004,-0.0016,-0.0012,-0.0011,0.0001,-0.0015,-0.0002,0.0012,-0.0013,-0.0001,0.0019,0.0015,0.0006,-0.0029,0.0012,-0.0003,-0.0031,0.0011,-0.0001,-0.0030,-0.0009,0.0012,0.0032,-0.0003,0.0004,0.0030,-0.0007,0.0013,0.0041,-0.0010,0.0014,0.0048,-0.0011,0.0004,0.0046,-0.0043,0.0013,0.0037,-0.0043,0.0002,0.0034,-0.0039,0.0004,0.0045,0.0035,0.0079,-0.0012,0.0038,0.0072,-0.0017,0.0037,0.0072,-0.0017,0.0034,0.0071,0.0009,0.0041,0.0072,0.0001,0.0037,0.0079,-0.0000,-0.0030,0.0071,-0.0010,-0.0035,0.0063,-0.0012,-0.0023,0.0071,-0.0020,-0.0023,0.0062,-0.0029,-0.0027,0.0062,-0.0027,-0.0016,0.0071,-0.0025,-0.0011,0.0070,-0.0022,-0.0011,0.0061,-0.0029,-0.0012,0.0053,0.0017,-0.0019,0.0061,0.0016,-0.0011,0.0060,0.0018,-0.0021,0.0054,0.0016,0.0019,0.0047,0.0013,0.0024,0.0047,0.0017,0.0023,0.0061,0.0016,-0.0013,0.0072,-0.0016,-0.0016,0.0073,-0.0016,-0.0015,0.0071,-0.0007,-0.0015,0.0072,-0.0009,0.0007,-0.0009,0.0029,0.0001,0.0000,0.0031,-0.0011,-0.0006,0.0044,-0.0045,-0.0010,-0.0005,-0.0040,-0.0009,-0.0005,-0.0045,-0.0007,-0.0007,0.0004,-0.0010,-0.0035,0.0001,-0.0010,-0.0038,0.0002,-0.0007,-0.0033,-0.0036,-0.0002,-0.0004,0.0005,-0.0007,-0.0033,0.0007,-0.0010,-0.0034,-0.0043,0.0001,0.0010,-0.0045,0.0000,0.0016,-0.0042,0.0010,0.0023,-0.0018,0.0010,0.0019,0.0015,-0.0020,-0.0038,-0.0019,-0.0007,-0.0035,-0.0010,-0.0029,-0.0039,-0.0023,-0.0026,-0.0035,-0.0027,-0.0071,-0.0037,-0.0024,-0.0047,-0.0036,-0.0010,-0.0051,-0.0042,0.0002,-0.0031,0.0029,-0.0025,-0.0076,0.0039,-0.0013,-0.0053,0.0035,-0.0020,-0.0051,0.0039,0.0020,0.0028,-0.0025,0.0025,0.0026,-0.0030,0.0022,0.0005,-0.0031,-0.0009,0.0009,-0.0039,-0.0021,0.0023,-0.0041,-0.0014,0.0022,-0.0042,-0.0017,0.0062,-0.0031,-0.0013,0.0052,-0.0034,-0.0035,-0.0010,-0.0005,-0.0022,-0.0011,-0.0003,-0.0022,-0.0011,-0.0004,-0.0013,0.0066,0.0020,-0.0010,0.0060,0.0022,-0.0015,0.0054,0.0043,-0.0020,0.0045,0.0048,-0.0013,0.0044,0.0046,0.0041,-0.0015,0.0009,0.0046,-0.0015,-0.0003,0.0047,-0.0005,-0.0000,0.0044,-0.0014,-0.0020,0.0043,-0.0014,-0.0029,0.0044,-0.0004,-0.0026,0.0032,0.0026,-0.0033,-0.0041,-0.0028,0.0037,-0.0045,-0.0029,0.0025,-0.0045,-0.0050,0.0024,0.0040,-0.0037,-0.0027,0.0040,-0.0037,-0.0021,0.0039,-0.0060,-0.0020,0.0035,-0.0037,-0.0033,0.0038,-0.0060,-0.0028,0.0035,-0.0060,-0.0036,0.0042,-0.0037,-0.0003,0.0036,-0.0036,0.0008,0.0034,-0.0058,0.0008,-0.0018,0.0071,0.0022,-0.0019,0.0071,0.0025,-0.0016,0.0071,0.0026,0.0048,-0.0004,-0.0018,0.0048,-0.0004,-0.0009,0.0045,-0.0014,-0.0012,0.0031,0.0046,0.0017,0.0023,0.0025,0.0018,0.0031,0.0023,0.0017,-0.0027,0.0070,0.0023,-0.0034,0.0063,0.0021,-0.0034,0.0061,0.0026,-0.0018,0.0067,0.0017,-0.0023,0.0068,0.0017,0.0021,-0.0011,0.0021,0.0010,-0.0009,0.0023,0.0019,-0.0024,0.0021,-0.0023,0.0007,-0.0007,-0.0017,0.0019,-0.0013,-0.0024,0.0019,-0.0009,-0.0032,0.0063,-0.0008,-0.0026,0.0063,-0.0007,0.0017,-0.0015,-0.0038,0.0020,-0.0005,-0.0034,0.0030,-0.0006,-0.0036,0.0015,0.0028,-0.0018,0.0034,-0.0082,-0.0039,0.0023,-0.0081,-0.0051,0.0024,-0.0056,-0.0043,0.0018,-0.0078,0.0021,0.0036,-0.0082,0.0010,0.0003,-0.0078,-0.0050,0.0004,-0.0055,-0.0042,0.0004,-0.0033,-0.0040,-0.0005,-0.0009,-0.0002,-0.0009,-0.0010,-0.0005,-0.0003,-0.0008,-0.0018,-0.0002,-0.0008,-0.0018,-0.0048,-0.0016,-0.0005,-0.0008,-0.0007,-0.0040,-0.0003,-0.0004,-0.0038,-0.0011,-0.0003,-0.0005,-0.0023,-0.0004,-0.0003,-0.0045,-0.0008,-0.0002,0.0003,-0.0004,0.0024,0.0031,0.0078,0.0006,0.0027,0.0081,0.0003,0.0023,0.0081,0.0004,0.0021,0.0081,-0.0004,0.0026,0.0082,-0.0003,0.0024,0.0082,-0.0008,-0.0007,0.0023,0.0042,0.0049,0.0007,-0.0008,0.0051,0.0026,-0.0017,0.0052,0.0026,-0.0007,0.0041,0.0006,0.0010,0.0051,0.0025,0.0003,0.0043,0.0023,0.0011,0.0018,0.0028,0.0015,-0.0011,0.0070,-0.0014,-0.0027,0.0073,-0.0009,0.0031,0.0061,0.0015,-0.0036,0.0056,0.0035,-0.0033,0.0056,0.0041,-0.0030,0.0063,0.0037,-0.0027,0.0062,0.0017,-0.0009,0.0061,-0.0026,0.0022,0.0079,-0.0012,0.0024,0.0072,-0.0018,0.0022,0.0072,-0.0016,0.0018,0.0078,0.0004,0.0017,0.0071,0.0005,0.0018,0.0071,0.0008,-0.0017,0.0068,0.0033,-0.0018,0.0061,0.0040,-0.0015,0.0061,0.0040,-0.0035,-0.0001,0.0007,-0.0044,0.0005,-0.0009,-0.0016,0.0009,-0.0039,0.0000,-0.0002,-0.0033,-0.0007,0.0009,-0.0034,-0.0008,0.0009,-0.0020,-0.0014,0.0007,-0.0009,-0.0005,-0.0003,-0.0018,-0.0036,-0.0010,-0.0003,0.0017,0.0077,-0.0005,0.0017,0.0071,-0.0008,0.0016,0.0071,-0.0006,-0.0031,0.0055,0.0018,-0.0037,0.0055,0.0022,-0.0033,0.0061,0.0032,-0.0014,0.0072,-0.0011,0.0019,0.0009,0.0021,0.0029,0.0005,0.0017,0.0047,0.0006,0.0001,0.0049,0.0006,-0.0017,0.0022,0.0077,0.0009,-0.0047,-0.0010,0.0009,-0.0011,-0.0076,-0.0047,0.0021,-0.0056,0.0018,0.0011,0.0009,-0.0017,0.0028,-0.0015,-0.0038,-0.0017,0.0062,-0.0008,-0.0014,0.0061,-0.0010,-0.0012,0.0067,0.0028,-0.0009,0.0060,0.0035,-0.0008,0.0060,0.0031,-0.0026,0.0070,0.0030,-0.0016,0.0071,0.0023,0.0042,-0.0060,-0.0002,0.0032,0.0082,-0.0002,0.0032,0.0082,-0.0005,0.0030,0.0082,-0.0008,-0.0040,-0.0050,0.0035,0.0030,0.0006,-0.0034,0.0042,-0.0004,0.0008,-0.0020,0.0054,0.0043,-0.0018,0.0053,-0.0034,-0.0039,0.0054,-0.0015,-0.0036,0.0054,-0.0011,-0.0013,-0.0076,0.0035,-0.0012,-0.0030,0.0037,-0.0051,-0.0069,0.0003,-0.0049,-0.0047,0.0003,-0.0049,-0.0071,0.0024,-0.0014,0.0011,0.0026,-0.0040,0.0011,0.0017,0.0018,0.0061,0.0011,-0.0025,0.0062,0.0040,-0.0027,0.0055,0.0043,-0.0028,0.0072,-0.0015,-0.0033,0.0063,-0.0022,-0.0035,0.0064,-0.0019,0.0037,0.0079,-0.0006,0.0041,0.0072,-0.0007,0.0040,0.0072,-0.0009,0.0031,0.0071,0.0011,-0.0038,0.0014,0.0046,-0.0003,0.0007,0.0038,-0.0011,-0.0013,0.0008,-0.0035,0.0009,-0.0007,-0.0044,0.0005,-0.0022,-0.0023,0.0028,-0.0009,-0.0016,0.0028,-0.0013,-0.0012,0.0020,-0.0022,-0.0011,0.0028,-0.0022,-0.0013,0.0045,-0.0037,-0.0019,0.0045,-0.0037,-0.0027,0.0030,-0.0038,-0.0021,0.0030,-0.0040,-0.0028,0.0023,-0.0038,-0.0044,0.0036,-0.0018,-0.0043,0.0028,-0.0012,-0.0041,0.0036,-0.0012,-0.0045,0.0028,-0.0018,-0.0039,0.0046,-0.0028,-0.0034,0.0038,-0.0035,-0.0041,0.0037,-0.0030,-0.0033,0.0046,-0.0033,-0.0033,0.0036,-0.0009,-0.0039,0.0045,-0.0011,-0.0031,0.0045,-0.0009,-0.0038,0.0033,0.0021,-0.0031,0.0043,0.0019,-0.0031,0.0032,0.0019,-0.0019,0.0035,0.0051,-0.0013,0.0042,0.0020,-0.0010,0.0032,0.0028,-0.0014,0.0032,0.0021,-0.0009,0.0043,0.0027,-0.0028,0.0046,0.0047,-0.0041,0.0022,0.0026,-0.0040,0.0024,0.0039,-0.0040,-0.0008,-0.0027,-0.0035,0.0007,-0.0033,-0.0033,-0.0007,-0.0032,-0.0042,0.0006,-0.0028,-0.0024,-0.0002,0.0008,0.0011,0.0002,0.0020,0.0010,0.0009,0.0006,0.0005,-0.0002,0.0007,0.0013,0.0010,0.0018,0.0040,0.0005,-0.0030,0.0039,-0.0005,-0.0031,0.0045,0.0006,-0.0026,0.0026,-0.0004,0.0019,-0.0030,0.0015,0.0051,-0.0021,0.0005,0.0052,-0.0019,0.0015,0.0052,-0.0032,0.0005,0.0050,0.0022,0.0071,0.0013,-0.0019,0.0054,-0.0008,-0.0028,0.0054,-0.0008,-0.0009,0.0053,0.0039,-0.0045,0.0020,-0.0024,-0.0044,0.0030,-0.0024,-0.0046,0.0020,-0.0018,-0.0022,0.0037,-0.0009,-0.0016,0.0037,-0.0014,-0.0020,0.0037,-0.0040,-0.0014,0.0030,-0.0041,-0.0013,0.0037,-0.0040,-0.0043,0.0022,-0.0030,-0.0042,0.0030,-0.0030,0.0041,0.0047,0.0013,0.0037,0.0062,0.0012,0.0045,0.0047,-0.0022,0.0043,0.0062,-0.0011,0.0048,0.0047,-0.0014,0.0040,0.0062,-0.0020,0.0021,0.0047,-0.0022,0.0024,0.0062,-0.0022,0.0025,0.0046,-0.0026,0.0021,0.0062,-0.0019,-0.0022,0.0073,-0.0013,0.0016,0.0048,-0.0006,0.0013,0.0028,-0.0007,0.0018,0.0048,-0.0014,0.0041,0.0026,-0.0030,0.0031,0.0046,-0.0029,0.0040,0.0046,-0.0027,-0.0029,0.0026,0.0051,-0.0034,0.0035,0.0046,-0.0036,0.0025,0.0047,-0.0028,0.0036,0.0049,-0.0008,0.0023,0.0035,-0.0025,0.0010,0.0017,-0.0032,0.0021,0.0018,-0.0024,0.0020,0.0020,-0.0033,0.0010,0.0015,-0.0038,0.0034,0.0038,-0.0020,0.0071,0.0022,-0.0022,0.0071,0.0023,0.0029,0.0080,-0.0014,0.0028,0.0082,-0.0010,-0.0045,0.0019,-0.0012,-0.0035,0.0018,-0.0009,-0.0037,-0.0025,-0.0033,-0.0043,-0.0026,-0.0028,0.0014,-0.0055,-0.0043,0.0013,-0.0079,-0.0052,-0.0042,-0.0006,0.0043,-0.0033,-0.0027,0.0042,-0.0033,-0.0005,0.0048,-0.0046,-0.0026,-0.0022,-0.0047,-0.0026,-0.0015,-0.0050,-0.0045,-0.0008,-0.0050,-0.0065,-0.0017,-0.0052,-0.0067,-0.0009,-0.0048,-0.0045,-0.0016,-0.0034,-0.0074,0.0038,-0.0029,-0.0050,0.0039,-0.0044,-0.0071,0.0034,0.0021,-0.0034,0.0019,0.0044,-0.0083,-0.0003,0.0039,-0.0082,-0.0031,0.0003,-0.0001,-0.0005,0.0006,0.0000,-0.0018,0.0038,-0.0015,-0.0033,0.0017,0.0061,-0.0011,-0.0010,0.0037,-0.0034,-0.0010,0.0045,-0.0032,-0.0026,0.0045,-0.0035,-0.0027,0.0037,-0.0038,-0.0037,0.0054,-0.0026,-0.0039,0.0054,-0.0021,-0.0014,0.0053,-0.0013,-0.0010,0.0061,-0.0018,-0.0010,0.0053,-0.0020,-0.0031,0.0054,-0.0031,-0.0008,0.0053,0.0032,-0.0008,0.0043,0.0042,-0.0007,0.0043,0.0035,0.0017,0.0062,0.0005,0.0016,0.0061,-0.0006,-0.0004,-0.0010,0.0008,0.0008,0.0007,-0.0006,0.0015,0.0028,0.0004,-0.0045,-0.0009,0.0031,0.0047,0.0026,-0.0025,0.0043,0.0062,0.0003,0.0043,0.0062,-0.0005,-0.0023,-0.0005,0.0049,-0.0041,0.0033,0.0027,-0.0037,0.0045,0.0037,-0.0047,-0.0044,-0.0024,-0.0023,-0.0028,0.0043,0.0025,-0.0035,-0.0039,-0.0038,-0.0044,-0.0035,0.0015,-0.0034,-0.0040,0.0001,-0.0055,0.0029,-0.0049,-0.0028,-0.0007,-0.0021,0.0043,0.0019,-0.0022,0.0068,0.0034,0.0049,0.0047,0.0003,-0.0009,0.0053,0.0024,0.0004,-0.0005,0.0023,-0.0020,0.0045,-0.0009,-0.0041,0.0046,-0.0023,-0.0010,0.0052,-0.0029,-0.0024,0.0009,-0.0036,0.0030,0.0062,-0.0024,0.0038,0.0062,-0.0022,0.0030,0.0072,-0.0020,0.0017,-0.0001,0.0022,0.0040,-0.0082,-0.0023,-0.0001,-0.0076,0.0030,0.0041,-0.0037,-0.0013,-0.0041,-0.0067,-0.0035,-0.0021,0.0071,0.0027,0.0021,0.0081,0.0002,-0.0039,0.0022,0.0020,-0.0012,0.0021,0.0028,0.0017,0.0048,0.0003,-0.0026,0.0074,-0.0012,0.0049,0.0047,-0.0005,-0.0036,0.0022,-0.0035,-0.0035,0.0030,-0.0035,-0.0010,0.0030,-0.0035,-0.0034,0.0027,-0.0009,-0.0019,0.0025,0.0052,-0.0016,0.0021,0.0021,-0.0043,0.0037,-0.0024,-0.0011,0.0022,-0.0037,-0.0010,0.0045,-0.0021,-0.0015,0.0045,-0.0013,-0.0025,0.0053,-0.0032,-0.0042,0.0045,-0.0017,-0.0022,0.0031,0.0019,-0.0007,0.0033,0.0035,-0.0034,0.0046,0.0044,-0.0011,0.0037,-0.0022,-0.0020,0.0071,0.0028,-0.0018,0.0071,0.0028,-0.0048,-0.0029,0.0005,-0.0049,-0.0065,-0.0025,0.0040,-0.0061,-0.0012,0.0042,-0.0083,-0.0015,-0.0044,-0.0044,-0.0030,-0.0046,-0.0066,-0.0031});
			return tooth_molar_3_16_root_coordinate_6_34_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 tooth_molar_3_16 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 tooth_molar_3_16().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.Bones.tooth_molar_3_16\" 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.Bones.tooth_molar_3_16 self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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