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_premolar_20_35, lower left Universal Numbering System (UNS) #20, ISO 3950 standard designation #35. </p>
 <p> Related links:  source tooth_premolar_20_35.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_premolar_20_35&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_premolar_20_35.x3d">tooth_premolar_20_35.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> tooth_premolar_20_35, lower left Universal Numbering System (UNS) #20, ISO 3950 standard designation #35 </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> 13 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/lprem2lc.x3d">originals/lprem2lc.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/lprem2lr.x3d">originals/lprem2lr.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_premolar_20_35.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_premolar_20_35.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_premolar_20_35
{
	/** Default constructor to create this object. */
	public tooth_premolar_20_35 ()
	{
	  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_premolar_20_35.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("tooth_premolar_20_35, lower left Universal Numbering System (UNS) #20, ISO 3950 standard designation #35"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Don Brutzman, Joe Williams, John Carlson, Damon Hernandez"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("13 March 2026"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 March 2026"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/lprem2lc.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/lprem2lr.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_premolar_20_35.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("tooth_premolar_20_35.x3d"))
    .addComments(" user hover lights bone and reveals description, user selection/deselection temporarily binds/unbinds close-up hidden viewpoint ")
    .addChild(new TouchSensor("UserTouchSensor").setDescription("tooth_premolar_20_35 lower left"))
    .addChild(new Transform("lprem2lc").setTranslation(0.0202,1.5915,0.0737)
      .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_premolar_20_35_cap_geometry").setDEF("tooth_premolar_20_35_cap_geometry").setCreaseAngle(1.571).setCoordIndex(gettooth_premolar_20_35_cap_geometry_5_28_coordIndex())
          .setCoord(new Coordinate("tooth_premolar_20_35_cap_coordinate").setPoint(gettooth_premolar_20_35_cap_coordinate_6_28_point())))))
    .addChild(new Transform("lprem2lr").setTranslation(0.0200,1.5805,0.0724)
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material().setUSE("ToothMaterial")))
        .setGeometry(new IndexedFaceSet("tooth_premolar_20_35_root_geometry").setDEF("tooth_premolar_20_35_root_geometry").setCreaseAngle(1.571).setCoordIndex(gettooth_premolar_20_35_root_geometry_5_34_coordIndex())
          .setCoord(new Coordinate("tooth_premolar_20_35_root_coordinate").setPoint(gettooth_premolar_20_35_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_premolar_20_35_cap_geometry_5_28_coordIndex_1()
		{
			int[] value = {0,1,2,-1,3,4,5,-1,6,7,8,-1,9,10,11,-1,11,12,13,-1,14,15,16,-1,17,18,19,-1,20,21,22,-1,23,24,25,-1,26,27,28,-1,12,29,13,-1,29,20,22,-1,30,31,32,-1,33,34,35,-1,36,18,37,-1,38,39,40,-1,41,42,43,-1,19,44,45,-1,46,40,47,-1,40,48,49,-1,50,51,52,-1,53,54,55,-1,56,57,58,-1,59,60,61,-1,62,63,23,-1,63,64,65,-1,66,67,68,-1,69,70,71,-1,72,14,57,-1,73,74,75,-1,76,77,78,-1,79,31,80,-1,80,31,81,-1,82,83,77,-1,84,85,86,-1,87,88,89,-1,90,91,92,-1,93,94,95,-1,45,44,96,-1,97,98,99,-1,100,2,101,-1,102,103,104,-1,69,105,106,-1,107,71,70,-1,108,109,104,-1,103,110,111,-1,112,20,113,-1,114,115,110,-1,95,116,92,-1,88,117,90,-1,118,119,120,-1,121,122,87,-1,121,123,122,-1,87,89,85,-1,124,125,126,-1,127,128,129,-1,130,131,132,-1,86,133,92,-1,126,118,134,-1,135,48,136,-1,137,138,139,-1,140,141,76,-1,142,143,77,-1,13,22,144,-1,145,26,101,-1,65,64,110,-1,104,111,105,-1,146,67,66,-1,95,94,147,-1,126,148,118,-1,60,56,82,-1,142,83,58,-1,149,150,151,-1,152,35,153,-1,52,154,155,-1,156,157,50,-1,158,159,160,-1,161,155,154,-1,40,46,48,-1,41,43,98,-1,49,124,38,-1,162,4,3,-1,29,163,113,-1,163,29,12,-1,96,145,1,-1,144,27,164,-1,23,100,28,-1,144,164,165,-1,149,166,167,-1,5,168,169,-1,4,170,5,-1,88,90,133,-1,171,172,173,-1,174,175,176,-1,123,121,177,-1,176,178,174,-1,168,5,170,-1,4,179,170,-1,166,180,167,-1,181,131,130,-1,11,144,165,-1,11,13,144,-1,45,182,41,-1,8,183,184,-1,1,185,96,-1,185,1,186,-1,12,187,163,-1,37,18,17,-1,188,189,18,-1,188,26,189,-1,38,40,49,-1,190,191,136,-1,192,161,74,-1,40,39,47,-1,38,124,134,-1,156,50,155,-1,155,50,52,-1,152,6,35,-1,149,130,150,-1,58,55,142,-1,60,59,56,-1,126,193,148,-1,147,194,95,-1,146,66,195,-1,105,71,104,-1,110,103,65,-1,145,189,26,-1,22,21,144,-1,83,142,77,-1,76,196,140,-1,137,139,197,-1,136,198,135,-1,126,134,124,-1,92,199,86,-1,127,129,200,-1,124,49,125,-1,85,201,87,-1,95,92,91,-1,39,202,120,-1,110,64,114,-1,112,24,20,-1,110,203,111,-1,109,102,104,-1,70,204,107,-1,105,205,106,-1,102,65,103,-1,45,96,182,-1,154,33,75,-1,119,112,113,-1,95,91,93,-1,90,92,133,-1,87,122,88,-1,85,89,86,-1,82,77,141,-1,31,30,81,-1,132,79,80,-1,76,141,77,-1,57,191,72,-1,14,53,57,-1,26,100,101,-1,105,69,71,-1,103,111,104,-1,68,206,66,-1,63,65,207,-1,23,25,62,-1,63,0,23,-1,59,61,208,-1,56,198,57,-1,50,209,51,-1,156,155,161,-1,38,134,202,-1,47,210,46,-1,19,211,73,-1,192,99,161,-1,190,72,191,-1,38,202,39,-1,171,188,172,-1,36,188,18,-1,35,184,33,-1,184,183,33,-1,30,32,212,-1,29,113,20,-1,29,22,13,-1,28,100,26,-1,185,186,213,-1,20,24,21,-1,17,19,73,-1,53,16,54,-1,16,53,14,-1,9,11,214,-1,181,152,131,-1,5,169,3,-1,162,179,4,-1,0,186,1,-1,215,216,217,-1,216,215,218,-1,219,220,221,-1,219,222,220,-1,68,178,176,-1,68,223,178,-1,224,225,226,-1,225,224,227,-1,228,229,230,-1,228,231,229,-1,226,232,233,-1,232,226,225,-1,158,157,156,-1,158,160,157,-1,168,166,234,-1,170,166,168,-1,170,235,166,-1,167,130,149,-1,181,130,167,-1,236,37,17,-1,236,237,37,-1,145,44,189,-1,145,96,44,-1,213,158,42,-1,213,238,158,-1,239,153,240,-1,79,153,239,-1,75,17,73,-1,236,17,75,-1,241,173,36,-1,173,241,242,-1,190,210,72,-1,46,210,190,-1,74,211,192,-1,73,211,74,-1,210,10,9,-1,10,210,47,-1,161,43,156,-1,161,98,43,-1,161,99,98,-1,50,243,209,-1,157,243,50,-1,180,6,167,-1,7,6,180,-1,54,151,55,-1,151,16,234,-1,54,16,151,-1,244,208,61,-1,208,244,193,-1,194,116,95,-1,148,116,194,-1,25,147,62,-1,24,147,25,-1,24,112,147,-1,159,65,102,-1,207,65,159,-1};
			return value;
		}

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

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=3 */
		private int[] gettooth_premolar_20_35_cap_geometry_5_28_coordIndex_3()
		{
			int[] value = {275,128,273,-1,275,129,128,-1,254,129,274,-1,200,129,254,-1,127,221,220,-1,127,252,221,-1,131,79,132,-1,79,152,153,-1,79,131,152,-1,276,274,143,-1,276,254,274,-1,116,199,92,-1,116,244,199,-1,9,72,210,-1,72,9,14,-1,139,267,271,-1,138,267,139,-1,290,196,76,-1,290,289,196,-1,109,159,102,-1,159,109,160,-1,112,194,147,-1,112,119,194,-1,148,244,116,-1,193,244,148,-1,59,198,56,-1,59,135,198,-1,58,53,55,-1,58,57,53,-1,234,149,151,-1,166,149,234,-1,34,51,240,-1,52,51,34,-1,98,45,41,-1,98,97,45,-1,7,242,241,-1,242,7,180,-1,172,36,173,-1,188,36,172,-1,246,278,253,-1,278,246,175,-1,182,185,213,-1,185,182,96,-1,28,24,23,-1,28,21,24,-1,8,35,6,-1,8,184,35,-1,235,179,171,-1,170,179,235,-1,162,26,188,-1,162,27,26,-1,292,177,121,-1,177,292,288,-1,277,280,279,-1,277,287,280,-1,227,146,225,-1,146,227,281,-1,283,175,174,-1,283,278,175,-1,286,272,255,-1,286,284,272,-1,285,121,258,-1,285,292,121,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=1 */
		private int[] gettooth_premolar_20_35_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,12,15,13,-1,16,17,18,-1,19,20,21,-1,22,23,24,-1,25,26,24,-1,27,28,29,-1,30,31,32,-1,33,34,35,-1,15,36,37,-1,10,18,38,-1,39,40,41,-1,4,14,42,-1,43,0,44,-1,8,45,46,-1,45,47,48,-1,49,44,0,-1,5,42,50,-1,50,51,5,-1,0,2,49,-1,45,52,47,-1,8,53,45,-1,43,11,0,-1,4,42,5,-1,39,35,40,-1,18,54,38,-1,15,37,13,-1,33,35,39,-1,30,55,31,-1,56,57,58,-1,56,59,57,-1,27,60,28,-1,26,22,24,-1,22,61,23,-1,19,62,20,-1,16,63,17,-1,10,38,11,-1,6,8,64,-1,3,5,65,-1,11,66,0,-1,11,38,66,-1,0,66,1,-1,67,68,69,-1,67,70,68,-1,71,72,73,-1,72,71,74,-1,75,49,2,-1,49,75,76,-1,77,78,79,-1,77,80,78,-1,81,82,47,-1,81,83,82,-1,84,85,86,-1,85,84,87,-1,51,88,89,-1,51,90,88,-1,86,91,92,-1,91,86,85,-1,65,93,94,-1,65,89,93,-1,49,95,44,-1,95,49,96,-1,77,46,97,-1,98,46,77,-1,99,81,100,-1,99,101,81,-1,41,45,53,-1,41,52,45,-1,102,54,103,-1,54,102,104,-1,44,37,43,-1,37,44,95,-1,105,106,94,-1,107,106,105,-1,108,99,109,-1,108,110,99,-1,111,40,35,-1,111,109,40,-1,18,103,54,-1,18,17,103,-1,107,112,106,-1,113,112,107,-1,114,115,116,-1,114,113,115,-1,117,35,34,-1,117,111,35,-1,20,6,21,-1,20,7,6,-1,118,119,120,-1,119,118,36,-1,121,122,123,-1,121,124,122,-1,125,126,123,-1,127,126,125,-1,128,129,130,-1,129,128,131,-1,132,133,134,-1,132,33,133,-1,135,136,137,-1,135,138,136,-1,139,135,140,-1,139,141,135,-1,142,143,144,-1,142,145,143,-1,146,147,148,-1,149,147,146,-1,150,151,152,-1,153,151,150,-1,154,62,19,-1,154,155,62,-1,138,141,156,-1,141,138,135,-1,141,157,158,-1,157,141,139,-1,159,144,31,-1,159,142,144,-1,160,149,161,-1,160,147,149,-1,162,153,57,-1,162,151,153,-1,163,154,164,-1,163,155,154,-1,165,166,167,-1,165,164,166,-1,158,168,169,-1,168,158,157,-1,31,170,159,-1,55,170,31,-1,171,161,172,-1,171,160,161,-1,173,57,59,-1,173,162,57,-1,174,30,175,-1,174,55,30,-1,176,177,178,-1,176,172,177,-1,179,56,180,-1,179,59,56,-1,181,167,182,-1,181,165,167,-1,169,183,184,-1,183,169,168,-1,185,55,174,-1,185,170,55,-1,186,187,175,-1,70,187,186,-1,188,189,178,-1,190,189,188,-1,191,192,180,-1,193,192,191,-1,23,182,194,-1,23,195,182,-1,196,183,197,-1,196,198,183,-1,196,73,199,-1,196,71,73,-1,200,201,202,-1,200,190,201,-1,189,200,203,-1,190,200,189,-1,204,25,198,-1,204,26,25,-1,28,205,29,-1,205,28,195,-1,206,84,207,-1,88,84,206,-1,88,87,84,-1,90,87,88,-1,90,208,87,-1,209,208,90,-1,209,210,208,-1,211,210,209,-1,211,83,210,-1,212,83,211,-1,212,82,83,-1,76,82,212,-1,76,213,82,-1,76,214,213,-1,75,214,76,-1,75,80,214,-1,215,80,75,-1,216,80,215,-1,216,78,80,-1,60,217,193,-1,60,27,217,-1,24,194,218,-1,24,23,194,-1,191,60,193,-1,60,191,219,-1,220,190,188,-1,201,190,220,-1,70,221,68,-1,70,186,221,-1,71,197,222,-1,71,196,197,-1,168,197,183,-1,197,168,223,-1,194,167,224,-1,194,182,167,-1,180,225,191,-1,180,56,225,-1,177,188,178,-1,188,177,226,-1,175,227,186,-1,175,30,227,-1,226,162,173,-1,226,228,162,-1,160,227,229,-1,171,227,160,-1,157,223,168,-1,223,157,230,-1,166,224,167,-1,224,166,231,-1,154,166,164,-1,166,154,232,-1,57,233,58,-1,57,153,233,-1,234,161,149,-1,235,161,234,-1,31,236,32,-1,31,144,236,-1,139,230,157,-1,230,139,237,-1,232,231,166,-1,231,232,238,-1,19,232,154,-1,232,19,239,-1,233,150,132,-1,233,153,150,-1,146,234,149,-1,234,146,130,-1,144,126,236,-1,144,143,126,-1,140,237,139,-1,237,140,240,-1,140,137,120,-1,140,135,137,-1,239,21,63,-1,239,19,21,-1,34,132,150,-1,132,34,33,-1,128,146,116,-1,130,146,128,-1,123,143,121,-1,126,143,123,-1,241,124,121,-1};
			return value;
		}

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

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=3 */
		private int[] gettooth_premolar_20_35_root_geometry_5_34_coordIndex_3()
		{
			int[] value = {109,99,100,-1,100,47,52,-1,100,81,47,-1,251,66,104,-1,66,251,1,-1,249,42,247,-1,42,249,50,-1,94,254,105,-1,94,93,254,-1,85,110,91,-1,110,85,250,-1,93,207,254,-1,93,206,207,-1,208,101,250,-1,101,208,210,-1,48,214,97,-1,48,213,214,-1,251,215,1,-1,251,216,215,-1,212,249,96,-1,249,212,211,-1,252,187,253,-1,252,248,187,-1};
			return value;
		}
		/** Large attribute array: IndexedFaceSet DEF='tooth_premolar_20_35_cap_geometry' coordIndex field, scene-graph level=5, element #28, 2252 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_premolar_20_35_cap_geometry_5_28_coordIndex()
		{
			MFInt32 tooth_premolar_20_35_cap_geometry_5_28_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(gettooth_premolar_20_35_cap_geometry_5_28_coordIndex_1()))
				.append(new MFInt32(gettooth_premolar_20_35_cap_geometry_5_28_coordIndex_2()))
				.append(new MFInt32(gettooth_premolar_20_35_cap_geometry_5_28_coordIndex_3()));
			return tooth_premolar_20_35_cap_geometry_5_28_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='tooth_premolar_20_35_cap_coordinate' point field, scene-graph level=6, element #28, 879 total numbers made up of 293 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_premolar_20_35_cap_coordinate_6_28_point()
		{
			MFVec3f tooth_premolar_20_35_cap_coordinate_6_28_point = new MFVec3f(new double[] {0.0020,0.0033,-0.0006,0.0017,0.0029,-0.0008,0.0017,0.0030,-0.0005,-0.0012,0.0022,0.0001,-0.0012,0.0020,-0.0000,-0.0019,0.0026,-0.0004,-0.0024,0.0024,-0.0021,-0.0022,0.0023,-0.0019,-0.0017,0.0026,-0.0023,-0.0012,0.0023,0.0010,-0.0011,0.0020,0.0011,-0.0009,0.0022,0.0010,-0.0007,0.0023,0.0011,-0.0007,0.0023,0.0009,-0.0019,0.0028,0.0011,-0.0018,0.0029,0.0009,-0.0026,0.0033,0.0005,-0.0005,0.0018,-0.0013,-0.0005,0.0015,-0.0010,0.0001,0.0015,-0.0013,0.0009,0.0037,0.0011,0.0006,0.0036,0.0008,0.0006,0.0034,0.0011,0.0016,0.0038,0.0001,0.0015,0.0040,0.0006,0.0017,0.0040,0.0004,-0.0008,0.0017,-0.0005,-0.0007,0.0021,-0.0000,0.0007,0.0034,0.0004,0.0005,0.0032,0.0014,-0.0024,-0.0004,-0.0037,-0.0025,0.0009,-0.0035,-0.0018,0.0008,-0.0042,-0.0011,0.0026,-0.0032,-0.0013,0.0027,-0.0034,-0.0020,0.0027,-0.0026,-0.0010,0.0017,-0.0010,-0.0007,0.0018,-0.0013,-0.0006,0.0018,0.0026,-0.0013,0.0018,0.0019,-0.0015,0.0017,0.0020,0.0013,0.0023,-0.0019,0.0015,0.0025,-0.0020,0.0014,0.0025,-0.0021,0.0002,0.0017,-0.0011,0.0004,0.0017,-0.0014,-0.0017,0.0018,0.0018,-0.0014,0.0017,0.0016,-0.0017,0.0018,0.0021,-0.0014,0.0018,0.0025,0.0007,0.0026,-0.0034,-0.0002,0.0026,-0.0037,-0.0002,0.0028,-0.0034,-0.0026,0.0033,0.0008,-0.0027,0.0034,0.0006,-0.0028,0.0035,0.0006,-0.0024,0.0029,0.0021,-0.0026,0.0031,0.0014,-0.0028,0.0032,0.0015,-0.0019,0.0024,0.0028,-0.0021,0.0022,0.0026,-0.0014,0.0020,0.0035,0.0020,0.0042,0.0004,0.0023,0.0034,-0.0005,0.0026,0.0034,-0.0004,0.0027,0.0031,-0.0014,0.0007,-0.0020,-0.0033,0.0005,-0.0026,-0.0033,-0.0003,-0.0026,-0.0037,0.0038,-0.0015,-0.0010,0.0033,-0.0015,-0.0018,0.0036,0.0001,-0.0019,-0.0021,0.0026,0.0014,-0.0001,0.0016,-0.0015,0.0002,0.0023,-0.0025,-0.0006,0.0021,-0.0024,-0.0031,0.0009,0.0021,-0.0034,0.0023,0.0016,-0.0037,0.0012,0.0013,-0.0023,0.0019,-0.0033,-0.0031,0.0010,-0.0028,-0.0031,-0.0003,-0.0032,-0.0026,0.0026,0.0021,-0.0030,0.0030,0.0014,-0.0013,0.0008,0.0038,-0.0013,-0.0005,0.0034,-0.0004,0.0014,0.0042,-0.0000,-0.0020,0.0034,0.0014,0.0002,0.0040,0.0001,-0.0005,0.0040,0.0019,0.0029,0.0035,0.0016,0.0033,0.0033,0.0007,0.0028,0.0040,0.0022,0.0039,0.0024,0.0018,0.0041,0.0021,0.0011,0.0036,0.0030,0.0011,0.0023,-0.0010,0.0004,0.0018,-0.0016,0.0011,0.0023,-0.0021,0.0008,0.0023,-0.0024,0.0012,0.0031,-0.0001,0.0010,0.0027,-0.0005,0.0028,0.0029,-0.0023,0.0035,0.0026,-0.0013,0.0036,0.0020,-0.0023,0.0040,0.0002,-0.0011,0.0040,-0.0014,-0.0003,0.0028,0.0001,-0.0029,0.0028,0.0020,-0.0032,0.0025,0.0028,-0.0028,0.0033,0.0033,-0.0003,0.0038,0.0021,-0.0013,0.0014,0.0041,0.0018,0.0008,0.0037,0.0015,0.0023,0.0041,0.0006,0.0028,0.0038,0.0011,0.0002,0.0030,0.0038,0.0024,0.0010,0.0035,-0.0001,0.0029,0.0033,0.0008,0.0035,0.0025,0.0001,0.0030,0.0021,0.0003,-0.0034,0.0029,0.0016,-0.0017,0.0035,0.0015,-0.0034,0.0030,-0.0006,0.0019,0.0029,-0.0013,0.0021,0.0030,-0.0006,0.0025,0.0033,-0.0035,-0.0015,-0.0025,-0.0039,-0.0014,-0.0013,-0.0040,-0.0003,-0.0008,-0.0028,0.0022,-0.0018,-0.0028,0.0019,-0.0023,-0.0029,0.0016,-0.0024,0.0011,0.0021,0.0042,-0.0003,0.0022,0.0028,-0.0018,0.0022,0.0025,-0.0023,0.0025,0.0016,-0.0009,-0.0006,-0.0040,-0.0008,0.0008,-0.0042,0.0003,0.0007,-0.0040,-0.0024,0.0014,0.0026,-0.0029,0.0019,0.0021,-0.0031,0.0034,0.0006,-0.0036,0.0024,0.0005,-0.0007,0.0022,0.0005,0.0012,0.0026,-0.0009,0.0017,-0.0029,-0.0023,0.0015,0.0042,0.0019,0.0001,0.0031,0.0035,-0.0026,0.0025,-0.0016,-0.0029,0.0030,-0.0006,-0.0026,0.0033,-0.0004,-0.0026,0.0023,-0.0023,-0.0022,0.0025,-0.0029,-0.0002,0.0026,-0.0033,0.0008,0.0026,-0.0033,0.0016,0.0028,-0.0028,0.0017,0.0030,-0.0030,0.0022,0.0029,-0.0023,0.0025,0.0031,-0.0023,0.0023,0.0030,-0.0028,0.0006,0.0024,-0.0028,-0.0010,0.0018,-0.0001,0.0004,0.0033,0.0016,-0.0008,0.0022,0.0004,-0.0009,0.0022,0.0005,-0.0024,0.0024,-0.0015,-0.0026,0.0023,-0.0019,-0.0022,0.0029,-0.0004,-0.0018,0.0027,-0.0001,-0.0019,0.0025,-0.0006,-0.0012,0.0018,-0.0005,-0.0012,0.0016,-0.0008,-0.0013,0.0017,-0.0008,-0.0019,-0.0028,-0.0039,-0.0019,-0.0024,-0.0039,-0.0011,-0.0024,-0.0039,0.0015,-0.0037,0.0029,-0.0011,-0.0028,-0.0038,-0.0012,0.0020,-0.0003,-0.0023,0.0022,-0.0018,-0.0027,0.0022,-0.0020,0.0012,0.0024,-0.0013,-0.0015,0.0027,-0.0025,-0.0019,0.0027,-0.0025,0.0017,0.0027,-0.0010,0.0019,0.0030,-0.0009,-0.0009,0.0022,0.0014,-0.0010,0.0015,-0.0006,-0.0001,0.0017,-0.0009,-0.0022,0.0025,0.0016,-0.0025,0.0028,0.0014,0.0005,0.0023,-0.0026,-0.0007,0.0026,0.0035,0.0009,0.0037,0.0028,0.0021,-0.0022,-0.0023,-0.0025,0.0006,0.0026,-0.0000,-0.0007,-0.0038,-0.0023,0.0027,0.0019,-0.0006,0.0021,0.0040,-0.0037,-0.0005,-0.0023,-0.0010,-0.0019,0.0028,-0.0003,0.0022,0.0025,0.0038,0.0023,-0.0000,0.0025,-0.0013,-0.0023,0.0041,0.0004,-0.0003,-0.0002,-0.0019,-0.0037,0.0025,0.0032,-0.0015,-0.0013,0.0022,0.0033,0.0008,0.0024,-0.0037,-0.0016,0.0019,0.0016,0.0002,0.0017,-0.0016,-0.0018,-0.0004,-0.0039,0.0019,0.0029,-0.0013,-0.0011,0.0024,0.0008,-0.0022,-0.0029,0.0013,-0.0030,-0.0031,0.0003,-0.0021,-0.0033,0.0011,-0.0030,-0.0027,0.0005,-0.0030,-0.0028,-0.0033,-0.0035,-0.0024,-0.0028,-0.0030,-0.0024,-0.0033,-0.0035,-0.0028,-0.0028,-0.0003,-0.0030,-0.0037,0.0032,-0.0035,-0.0009,0.0028,-0.0030,-0.0015,0.0033,-0.0031,-0.0010,0.0026,-0.0034,-0.0015,0.0034,-0.0035,0.0013,0.0035,-0.0035,-0.0001,0.0036,-0.0031,-0.0000,0.0033,-0.0039,0.0011,0.0030,-0.0023,-0.0016,0.0035,-0.0024,-0.0010,-0.0024,0.0031,-0.0003,-0.0020,0.0022,-0.0011,-0.0010,0.0022,-0.0019,-0.0012,0.0022,-0.0018,0.0023,0.0031,-0.0015,-0.0015,0.0019,-0.0042,-0.0013,0.0026,-0.0037,-0.0018,0.0021,-0.0015,-0.0019,0.0020,-0.0013,0.0018,0.0027,-0.0032,-0.0007,0.0025,0.0038,-0.0010,-0.0017,-0.0038,-0.0019,-0.0016,-0.0038,-0.0017,0.0029,0.0001,-0.0011,0.0023,0.0005,-0.0014,0.0016,0.0035,0.0023,-0.0029,0.0028,0.0024,-0.0009,0.0034,-0.0029,-0.0015,-0.0033,-0.0024,-0.0015,-0.0037,-0.0035,0.0009,-0.0020,-0.0037,-0.0024,-0.0018,-0.0023,-0.0019,0.0016,-0.0031,-0.0019,0.0009,-0.0009,-0.0030,0.0023,0.0038,-0.0010,0.0016,0.0037,0.0014,0.0019,0.0031,-0.0007,0.0028,0.0031,0.0015,0.0030,0.0034,0.0030,0.0016,0.0027,0.0032,0.0029,0.0036,-0.0027,0.0016,0.0038,-0.0024,-0.0001,-0.0006,0.0019,-0.0042,0.0011,-0.0010,-0.0034,0.0016,0.0004,-0.0037,0.0019,0.0018,-0.0037,0.0005,0.0018,-0.0040,-0.0036,-0.0026,-0.0005,-0.0037,-0.0018,-0.0003,-0.0039,0.0013,-0.0000,-0.0037,-0.0003,0.0006,-0.0033,0.0020,-0.0013,0.0022,-0.0038,0.0025,-0.0024,-0.0024,-0.0037,0.0027,-0.0037,0.0021,0.0026,-0.0041,0.0019,0.0016,-0.0033,-0.0021,0.0004,-0.0030,-0.0032,-0.0024,-0.0028,-0.0037,-0.0036,-0.0030,-0.0008,-0.0009,-0.0034,0.0021,-0.0037,-0.0028,-0.0018,0.0021,-0.0041,0.0023,0.0014,-0.0040,0.0026,-0.0024,-0.0003,0.0025,-0.0032,-0.0002,0.0018,0.0029,-0.0026,0.0024,0.0003,-0.0038,0.0026});
			return tooth_premolar_20_35_cap_coordinate_6_28_point;
		}
		/** Large attribute array: IndexedFaceSet DEF='tooth_premolar_20_35_root_geometry' coordIndex field, scene-graph level=5, element #34, 2092 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_premolar_20_35_root_geometry_5_34_coordIndex()
		{
			MFInt32 tooth_premolar_20_35_root_geometry_5_34_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(gettooth_premolar_20_35_root_geometry_5_34_coordIndex_1()))
				.append(new MFInt32(gettooth_premolar_20_35_root_geometry_5_34_coordIndex_2()))
				.append(new MFInt32(gettooth_premolar_20_35_root_geometry_5_34_coordIndex_3()));
			return tooth_premolar_20_35_root_geometry_5_34_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='tooth_premolar_20_35_root_coordinate' point field, scene-graph level=6, element #34, 819 total numbers made up of 273 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_premolar_20_35_root_coordinate_6_34_point()
		{
			MFVec3f tooth_premolar_20_35_root_coordinate_6_34_point = new MFVec3f(new double[] {-0.0007,-0.0079,-0.0028,-0.0005,-0.0080,-0.0031,-0.0005,-0.0081,-0.0029,0.0006,-0.0076,-0.0017,0.0005,-0.0076,-0.0016,0.0003,-0.0080,-0.0021,-0.0018,-0.0053,-0.0036,-0.0016,-0.0053,-0.0038,-0.0009,-0.0071,-0.0039,-0.0018,-0.0057,-0.0018,-0.0020,-0.0056,-0.0023,-0.0011,-0.0073,-0.0026,0.0003,-0.0060,-0.0007,-0.0002,-0.0075,-0.0017,0.0001,-0.0076,-0.0016,-0.0002,-0.0060,-0.0007,-0.0027,-0.0034,-0.0024,-0.0020,-0.0054,-0.0032,-0.0021,-0.0055,-0.0028,-0.0025,-0.0015,-0.0032,-0.0019,-0.0032,-0.0037,-0.0023,-0.0032,-0.0035,-0.0034,0.0080,0.0006,-0.0035,0.0068,-0.0009,-0.0035,0.0067,0.0001,-0.0032,0.0066,0.0012,-0.0028,0.0079,0.0016,-0.0022,0.0082,-0.0024,-0.0029,0.0068,-0.0023,-0.0028,0.0082,-0.0020,0.0024,0.0033,0.0025,0.0018,0.0017,0.0022,0.0022,0.0017,0.0020,-0.0012,-0.0032,-0.0038,-0.0009,-0.0032,-0.0037,-0.0007,-0.0054,-0.0039,-0.0009,-0.0059,-0.0010,-0.0005,-0.0075,-0.0019,-0.0011,-0.0073,-0.0029,-0.0009,-0.0054,-0.0040,-0.0003,-0.0071,-0.0039,-0.0005,-0.0071,-0.0040,0.0001,-0.0080,-0.0020,-0.0007,-0.0074,-0.0021,-0.0005,-0.0079,-0.0024,-0.0004,-0.0077,-0.0039,-0.0005,-0.0077,-0.0037,-0.0002,-0.0079,-0.0037,-0.0003,-0.0079,-0.0037,-0.0004,-0.0081,-0.0026,0.0001,-0.0082,-0.0022,0.0002,-0.0082,-0.0023,-0.0003,-0.0077,-0.0039,-0.0007,-0.0071,-0.0040,-0.0011,-0.0072,-0.0032,0.0020,0.0033,0.0028,-0.0011,0.0040,-0.0029,-0.0005,0.0022,-0.0028,-0.0010,0.0022,-0.0031,-0.0005,0.0039,-0.0027,-0.0023,0.0068,-0.0026,-0.0035,0.0082,-0.0005,-0.0021,-0.0015,-0.0035,-0.0026,-0.0033,-0.0030,-0.0010,-0.0071,-0.0037,0.0004,-0.0080,-0.0022,-0.0007,-0.0079,-0.0031,0.0035,0.0071,0.0025,0.0035,0.0061,0.0010,0.0037,0.0075,0.0012,0.0033,0.0060,0.0022,0.0003,0.0061,0.0036,0.0016,0.0070,0.0040,0.0005,0.0072,0.0040,0.0014,0.0060,0.0036,-0.0004,-0.0081,-0.0030,-0.0003,-0.0082,-0.0027,-0.0005,-0.0080,-0.0035,-0.0004,-0.0080,-0.0034,-0.0005,-0.0080,-0.0035,-0.0004,-0.0080,-0.0034,-0.0001,-0.0079,-0.0037,-0.0002,-0.0080,-0.0036,-0.0001,-0.0080,-0.0035,0.0003,-0.0081,-0.0031,0.0003,-0.0080,-0.0032,0.0004,-0.0081,-0.0031,0.0002,-0.0081,-0.0032,0.0002,-0.0082,-0.0026,0.0003,-0.0082,-0.0024,0.0002,-0.0082,-0.0025,0.0004,-0.0078,-0.0033,0.0005,-0.0078,-0.0031,0.0005,-0.0082,-0.0026,0.0006,-0.0080,-0.0025,-0.0003,-0.0079,-0.0022,-0.0003,-0.0081,-0.0024,-0.0004,-0.0079,-0.0036,-0.0006,-0.0078,-0.0036,-0.0000,-0.0077,-0.0037,-0.0002,-0.0077,-0.0038,-0.0000,-0.0080,-0.0035,-0.0006,-0.0078,-0.0035,-0.0011,-0.0071,-0.0035,-0.0007,-0.0078,-0.0034,0.0007,-0.0079,-0.0028,0.0009,-0.0075,-0.0021,0.0010,-0.0074,-0.0025,0.0003,-0.0072,-0.0036,-0.0000,-0.0072,-0.0038,0.0002,-0.0078,-0.0035,-0.0001,-0.0055,-0.0036,0.0014,-0.0059,-0.0013,0.0016,-0.0058,-0.0020,0.0020,-0.0038,-0.0013,0.0013,-0.0057,-0.0025,0.0018,-0.0037,-0.0019,-0.0001,-0.0033,-0.0034,-0.0013,-0.0059,-0.0012,-0.0009,-0.0040,-0.0001,-0.0016,-0.0039,-0.0006,0.0011,-0.0041,0.0002,0.0011,-0.0060,-0.0008,0.0014,-0.0041,0.0000,0.0008,-0.0060,-0.0007,0.0019,-0.0040,-0.0004,0.0018,-0.0019,0.0009,0.0023,-0.0019,0.0003,0.0014,-0.0036,-0.0024,0.0009,-0.0016,-0.0023,0.0016,-0.0017,-0.0019,0.0007,-0.0035,-0.0028,-0.0011,-0.0014,-0.0035,-0.0016,-0.0031,-0.0039,-0.0016,-0.0014,-0.0036,-0.0025,-0.0017,-0.0006,-0.0026,-0.0035,-0.0018,-0.0023,-0.0037,-0.0012,-0.0029,-0.0016,-0.0013,-0.0018,-0.0004,0.0005,-0.0018,-0.0018,0.0001,-0.0025,-0.0003,-0.0003,0.0009,-0.0005,0.0017,0.0014,-0.0019,0.0010,0.0016,-0.0005,0.0015,0.0008,-0.0019,0.0012,0.0021,-0.0017,-0.0013,0.0025,-0.0004,-0.0001,0.0024,-0.0018,-0.0006,0.0023,-0.0004,-0.0009,-0.0006,-0.0014,-0.0033,-0.0000,-0.0001,-0.0028,-0.0000,-0.0015,-0.0030,-0.0006,-0.0001,-0.0032,-0.0025,-0.0001,-0.0030,-0.0020,-0.0001,-0.0033,-0.0029,-0.0002,-0.0012,-0.0018,0.0019,0.0011,-0.0028,0.0020,0.0002,0.0012,0.0017,0.0025,0.0029,0.0019,0.0004,0.0025,0.0020,-0.0004,0.0001,0.0022,-0.0024,-0.0021,0.0023,-0.0030,-0.0026,0.0023,-0.0028,-0.0029,0.0040,-0.0026,-0.0030,0.0022,-0.0022,-0.0033,0.0040,-0.0020,-0.0019,0.0036,0.0017,-0.0030,0.0037,0.0006,0.0013,0.0034,0.0032,0.0031,0.0034,0.0007,0.0027,0.0035,-0.0002,0.0001,0.0039,-0.0023,0.0022,0.0049,0.0032,0.0026,0.0049,0.0028,0.0030,0.0051,-0.0001,0.0022,0.0036,-0.0009,0.0025,0.0052,-0.0007,-0.0004,0.0055,-0.0027,-0.0011,0.0056,-0.0028,-0.0030,0.0057,-0.0025,-0.0034,0.0057,-0.0018,-0.0020,0.0053,0.0021,-0.0032,0.0055,0.0010,0.0014,0.0049,0.0035,0.0032,0.0049,0.0021,0.0026,0.0060,0.0030,0.0016,0.0053,-0.0012,0.0025,0.0063,-0.0006,0.0016,0.0064,-0.0011,-0.0017,0.0057,-0.0030,-0.0010,0.0067,-0.0027,-0.0016,0.0068,-0.0028,-0.0035,0.0056,-0.0010,-0.0033,0.0068,-0.0017,-0.0009,0.0063,0.0030,-0.0009,0.0052,0.0029,-0.0019,0.0064,0.0023,-0.0007,0.0076,0.0034,0.0018,0.0077,-0.0008,0.0003,0.0066,-0.0020,0.0006,0.0080,-0.0018,0.0028,0.0076,-0.0002,-0.0019,0.0077,0.0025,-0.0033,0.0082,-0.0014,0.0003,-0.0082,-0.0027,0.0004,-0.0082,-0.0029,0.0001,-0.0081,-0.0033,0.0001,-0.0082,-0.0024,-0.0000,-0.0080,-0.0034,-0.0001,-0.0082,-0.0025,-0.0002,-0.0082,-0.0026,-0.0003,-0.0080,-0.0036,-0.0003,-0.0080,-0.0035,-0.0004,-0.0081,-0.0031,-0.0004,-0.0080,-0.0034,-0.0017,0.0082,-0.0026,-0.0036,0.0056,-0.0001,-0.0023,0.0057,-0.0027,0.0003,0.0054,-0.0021,0.0034,0.0050,0.0009,0.0003,0.0050,0.0035,-0.0010,0.0035,0.0024,-0.0034,0.0039,-0.0013,-0.0017,0.0040,-0.0030,0.0014,0.0037,-0.0014,0.0030,0.0033,0.0018,0.0012,0.0021,-0.0016,0.0028,0.0018,0.0015,-0.0009,0.0018,0.0018,-0.0032,0.0022,-0.0016,-0.0028,-0.0001,-0.0026,-0.0010,-0.0001,-0.0033,0.0018,-0.0003,-0.0015,0.0020,0.0020,-0.0011,0.0020,-0.0005,0.0013,-0.0009,-0.0005,0.0011,-0.0029,-0.0001,-0.0019,-0.0028,-0.0015,-0.0027,-0.0009,-0.0018,0.0007,0.0006,-0.0041,0.0003,0.0004,-0.0055,-0.0033,-0.0013,-0.0053,-0.0040,0.0006,-0.0072,-0.0033,0.0010,-0.0056,-0.0028,0.0008,-0.0073,-0.0030,-0.0002,-0.0080,-0.0021,0.0022,0.0060,0.0033,-0.0001,-0.0082,-0.0023,0.0002,-0.0080,-0.0034,-0.0005,-0.0080,-0.0034,0.0023,0.0069,0.0036,0.0028,0.0069,0.0032,0.0005,-0.0081,-0.0028,-0.0002,-0.0041,0.0002,-0.0000,-0.0018,0.0011,-0.0029,-0.0015,-0.0020,-0.0000,-0.0005,0.0016,0.0024,-0.0005,0.0008,0.0011,-0.0002,-0.0021,-0.0015,-0.0001,-0.0034,-0.0032,0.0021,-0.0007,0.0001,0.0017,0.0025,-0.0016,0.0022,-0.0032,-0.0023,0.0040,-0.0028,-0.0034,0.0038,-0.0004,0.0001,0.0034,0.0031,0.0031,0.0062,0.0001,-0.0003,0.0066,-0.0025,-0.0001,0.0080,-0.0023,-0.0009,0.0082,-0.0025,0.0034,0.0075,0.0004});
			return tooth_premolar_20_35_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_premolar_20_35 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_premolar_20_35().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_premolar_20_35\" 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_premolar_20_35 self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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