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_incisor_27_43, lower left Universal Numbering System (UNS) #27, ISO 3950 standard designation #43. </p>
 <p> Related links:  source tooth_canine_27_43.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_canine_27_43&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_incisor_27_43.x3d">tooth_incisor_27_43.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> tooth_incisor_27_43, lower left Universal Numbering System (UNS) #27, ISO 3950 standard designation #43 </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/rlatinlc.x3d">originals/rlatinlc.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/rlatinlr.x3d">originals/rlatinlr.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_incisor_27_43.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Bones/tooth_incisor_27_43.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_canine_27_43
{
	/** Default constructor to create this object. */
	public tooth_canine_27_43 ()
	{
	  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_incisor_27_43.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("tooth_incisor_27_43, lower left Universal Numbering System (UNS) #27, ISO 3950 standard designation #43"))
    .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/rlatinlc.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/rlatinlr.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_incisor_27_43.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("tooth_incisor_27_43.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_incisor_27_43 lower right"))
    .addChild(new Transform("rcaninlc").setTranslation(-0.0123,1.5886,0.0859)
      .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_incisor_27_43_cap_geometry").setDEF("tooth_incisor_27_43_cap_geometry").setCreaseAngle(1.571).setCoordIndex(gettooth_incisor_27_43_cap_geometry_5_28_coordIndex())
          .setCoord(new Coordinate("tooth_incisor_27_43_cap_coordinate").setPoint(gettooth_incisor_27_43_cap_coordinate_6_28_point())))))
    .addChild(new Transform("rcaninlr").setTranslation(-0.0111,1.5770,0.0848)
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material().setUSE("ToothMaterial")))
        .setGeometry(new IndexedFaceSet("tooth_incisor_27_43_root_geometry").setDEF("tooth_incisor_27_43_root_geometry").setCreaseAngle(1.571).setCoordIndex(gettooth_incisor_27_43_root_geometry_5_34_coordIndex())
          .setCoord(new Coordinate("tooth_incisor_27_43_root_coordinate").setPoint(gettooth_incisor_27_43_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_incisor_27_43_cap_geometry_5_28_coordIndex_1()
		{
			int[] value = {0,1,2,-1,3,2,1,-1,4,5,6,-1,7,8,9,-1,10,11,12,-1,13,14,15,-1,16,17,18,-1,19,20,21,-1,22,20,19,-1,23,24,25,-1,26,27,28,-1,29,30,31,-1,32,12,11,-1,33,34,35,-1,12,36,37,-1,27,38,39,-1,40,9,41,-1,42,43,44,-1,45,46,47,-1,48,49,50,-1,51,52,53,-1,54,10,55,-1,11,10,56,-1,51,57,58,-1,59,60,61,-1,62,61,63,-1,64,65,66,-1,67,68,69,-1,70,71,72,-1,73,74,75,-1,76,77,78,-1,78,79,76,-1,80,81,82,-1,83,84,85,-1,73,86,87,-1,73,88,86,-1,89,75,74,-1,90,70,91,-1,77,76,92,-1,69,93,75,-1,94,16,18,-1,60,90,91,-1,95,96,97,-1,64,63,61,-1,6,98,99,-1,100,101,53,-1,53,98,100,-1,48,102,103,-1,103,45,104,-1,105,106,107,-1,27,108,109,-1,110,111,50,-1,78,80,112,-1,8,39,113,-1,11,108,32,-1,114,115,116,-1,8,28,39,-1,11,56,117,-1,118,119,120,-1,65,121,122,-1,118,120,123,-1,124,125,51,-1,15,68,67,-1,14,124,68,-1,40,126,127,-1,42,1,0,-1,0,128,129,-1,130,6,5,-1,129,131,0,-1,132,131,105,-1,41,133,134,-1,14,68,15,-1,15,67,17,-1,125,124,14,-1,118,123,97,-1,72,22,19,-1,135,24,23,-1,117,108,11,-1,28,27,39,-1,95,114,116,-1,8,113,9,-1,33,35,136,-1,137,110,50,-1,112,79,78,-1,110,138,111,-1,27,109,38,-1,107,106,133,-1,139,140,141,-1,142,42,102,-1,103,44,45,-1,48,103,143,-1,50,49,137,-1,144,57,13,-1,13,16,144,-1,53,52,98,-1,100,137,101,-1,99,145,6,-1,62,59,61,-1,113,29,146,-1,96,118,97,-1,60,91,147,-1,94,144,16,-1,75,89,69,-1,77,92,148,-1,70,72,91,-1,149,150,151,-1,18,17,152,-1,83,153,84,-1,81,115,82,-1,75,154,73,-1,17,67,152,-1,69,89,67,-1,155,64,66,-1,156,157,54,-1,58,158,51,-1,55,156,54,-1,108,117,109,-1,138,110,130,-1,50,159,48,-1,45,160,46,-1,43,42,0,-1,161,162,139,-1,37,10,12,-1,34,58,35,-1,163,82,164,-1,25,165,23,-1,119,166,120,-1,121,147,122,-1,20,66,21,-1,13,125,14,-1,16,15,17,-1,15,16,13,-1,7,9,40,-1,107,133,41,-1,4,6,167,-1,168,3,1,-1,0,2,128,-1,5,138,130,-1,106,131,129,-1,131,106,105,-1,169,170,127,-1,169,171,170,-1,172,173,37,-1,173,172,174,-1,138,4,175,-1,5,4,138,-1,127,7,40,-1,7,127,170,-1,161,41,162,-1,41,161,107,-1,176,18,152,-1,176,94,18,-1,68,177,69,-1,177,68,124,-1,147,21,122,-1,147,91,21,-1,165,123,23,-1,165,97,123,-1,71,178,153,-1,178,71,70,-1,59,179,180,-1,59,62,179,-1,113,181,9,-1,113,146,181,-1,114,82,115,-1,82,114,164,-1,150,182,151,-1,83,182,150,-1,130,137,100,-1,137,130,110,-1,88,112,86,-1,112,88,79,-1,183,36,12,-1,184,36,183,-1,141,161,139,-1,141,185,161,-1,131,43,0,-1,131,132,43,-1,104,47,186,-1,104,45,47,-1,104,143,103,-1,143,104,187,-1,143,188,189,-1,143,187,188,-1,137,189,101,-1,137,49,189,-1,51,101,190,-1,53,101,51,-1,99,52,191,-1,99,98,52,-1,58,157,158,-1,157,58,34,-1,29,96,146,-1,119,96,29,-1,119,118,96,-1,144,58,57,-1,58,144,35,-1,75,192,154,-1,75,93,192,-1,148,47,46,-1,148,92,47,-1,155,20,149,-1,155,66,20,-1,164,24,193,-1,164,25,24,-1,112,194,86,-1,112,163,194,-1,195,73,87,-1,74,73,195,-1,74,85,152,-1,85,74,195,-1,136,176,84,-1,136,94,176,-1,81,78,77,-1,78,81,80,-1,149,22,150,-1,149,20,22,-1,193,196,197,-1,24,196,193,-1,24,135,196,-1,198,149,196,-1,198,155,149,-1,199,154,192,-1,200,154,199,-1,64,198,31,-1,198,64,155,-1,109,30,38,-1,109,63,30,-1,180,54,157,-1,179,54,180,-1,191,51,158,-1,191,52,51,-1,54,56,10,-1,56,54,179,-1,125,57,51,-1,125,13,57,-1,190,189,188,-1,101,189,190,-1,187,201,188,-1,187,202,201,-1,201,69,177,-1,201,93,69,-1,186,92,199,-1,186,47,92,-1,44,160,45,-1,44,43,160,-1,132,160,43,-1,132,185,160,-1,9,162,41,-1,9,181,162,-1};
			return value;
		}

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=2 */
		private int[] gettooth_incisor_27_43_cap_geometry_5_28_coordIndex_2()
		{
			int[] value = {203,140,139,-1,203,116,140,-1,100,6,130,-1,100,98,6,-1,204,34,33,-1,204,205,34,-1,26,12,32,-1,26,183,12,-1,206,151,182,-1,206,197,151,-1,146,203,181,-1,146,96,203,-1,70,204,178,-1,70,90,204,-1,19,91,72,-1,19,21,91,-1,150,72,71,-1,150,22,72,-1,152,89,74,-1,89,152,67,-1,105,185,132,-1,107,185,105,-1,161,185,107,-1,207,171,208,-1,170,171,207,-1,209,173,174,-1,145,173,209,-1,207,210,184,-1,207,208,210,-1,134,106,211,-1,134,133,106,-1,212,168,213,-1,168,212,3,-1,127,214,169,-1,127,126,214,-1,215,37,36,-1,37,215,172,-1,111,175,216,-1,111,138,175,-1,213,216,212,-1,213,111,216,-1,207,183,217,-1,184,183,207,-1,124,190,177,-1,51,190,124,-1,66,122,21,-1,65,122,66,-1,218,23,123,-1,135,23,218,-1,60,180,205,-1,60,59,180,-1,163,193,194,-1,163,164,193,-1,83,71,153,-1,83,150,71,-1,29,38,30,-1,113,38,29,-1,39,38,113,-1,159,111,213,-1,159,50,111,-1,7,28,8,-1,7,217,28,-1,148,141,140,-1,46,141,148,-1,186,187,104,-1,187,186,202,-1,189,48,143,-1,49,48,189,-1,191,55,99,-1,55,191,156,-1,37,55,10,-1,37,173,55,-1,156,158,157,-1,191,158,156,-1,121,64,61,-1,121,65,64,-1,178,33,136,-1,204,33,178,-1,140,77,148,-1,140,81,77,-1,114,97,165,-1,114,95,97,-1,200,73,154,-1,73,200,88,-1,153,136,84,-1,153,178,136,-1,79,200,76,-1,200,79,88,-1,87,182,195,-1,206,182,87,-1,195,83,85,-1,182,83,195,-1,206,86,194,-1,87,86,206,-1,84,152,85,-1,176,152,84,-1,196,151,197,-1,151,196,149,-1,198,135,218,-1,198,196,135,-1,81,116,115,-1,140,116,81,-1,76,199,92,-1,76,200,199,-1,35,94,136,-1,35,144,94,-1,31,218,166,-1,31,198,218,-1,63,31,30,-1,63,64,31,-1,109,62,63,-1,109,117,62,-1,147,61,60,-1,147,121,61,-1,145,55,173,-1,99,55,145,-1,177,188,201,-1,190,188,177,-1,202,93,201,-1,202,192,93,-1,199,202,186,-1,202,199,192,-1,159,102,48,-1,159,142,102,-1,44,102,42,-1,102,44,103,-1,185,46,160,-1,185,141,46,-1,217,170,207,-1,170,217,7,-1,139,181,203,-1,162,181,139,-1,213,142,159,-1,168,142,213,-1,80,163,112,-1,163,80,82,-1,34,180,157,-1,205,180,34,-1,31,119,29,-1,31,166,119,-1,56,62,117,-1,179,62,56,-1,194,197,206,-1,194,193,197,-1,96,116,203,-1,96,95,116,-1,32,27,26,-1,108,27,32,-1,90,205,204,-1,205,90,60,-1,166,123,120,-1,166,218,123,-1,165,164,114,-1,165,25,164,-1,217,26,28,-1,183,26,217,-1,134,40,41,-1,40,134,126,-1,142,1,42,-1,1,142,168,-1,209,6,145,-1,6,209,167,-1,184,215,36,-1,210,215,184,-1,211,126,134,-1,126,211,214,-1};
			return value;
		}

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

		/** Define subarray values using type int[] with $tupleSize=1 and $tupleSplitSize=1000 for subarray position()=2 */
		private int[] gettooth_incisor_27_43_root_geometry_5_34_coordIndex_2()
		{
			int[] value = {60,97,61,-1,60,84,97,-1,57,102,86,-1,57,106,102,-1,103,91,88,-1,103,99,91,-1,66,4,3,-1,4,66,92,-1,107,214,106,-1,214,107,109,-1,213,105,54,-1,213,103,105,-1,3,8,7,-1,3,52,8,-1,58,110,107,-1,58,210,110,-1,104,47,105,-1,104,209,47,-1,15,56,72,-1,56,15,14,-1,110,115,108,-1,110,215,115,-1,13,116,216,-1,13,12,116,-1,119,49,111,-1,49,119,120,-1,217,120,122,-1,211,120,217,-1,207,124,123,-1,215,124,207,-1,18,127,125,-1,48,127,18,-1,208,129,216,-1,129,208,128,-1,130,42,131,-1,130,128,42,-1,45,205,133,-1,45,217,205,-1,20,218,123,-1,20,22,218,-1,219,126,135,-1,125,126,219,-1,220,219,204,-1,206,219,220,-1,221,132,131,-1,132,221,143,-1,75,134,133,-1,134,75,26,-1,147,218,222,-1,145,218,147,-1,147,149,146,-1,147,223,149,-1,220,151,153,-1,220,224,151,-1,221,25,203,-1,221,23,25,-1,29,156,222,-1,29,31,156,-1,177,156,155,-1,223,156,177,-1,159,180,224,-1,159,158,180,-1,25,162,199,-1,25,24,162,-1,76,165,174,-1,76,154,165,-1,197,67,198,-1,67,197,68,-1,192,170,190,-1,192,168,170,-1,163,168,192,-1,163,202,168,-1,167,175,39,-1,167,173,175,-1,187,179,176,-1,160,179,187,-1,161,35,182,-1,161,181,35,-1,200,183,225,-1,182,183,200,-1,68,34,33,-1,68,201,34,-1,186,188,185,-1,186,79,188,-1,2,196,195,-1,2,81,196,-1,0,195,36,-1,0,2,195,-1,175,194,184,-1,175,172,194,-1,36,185,188,-1,185,36,195,-1,188,78,189,-1,188,79,78,-1,186,178,197,-1,186,176,178,-1,171,225,169,-1,200,225,171,-1,162,182,200,-1,162,161,182,-1,160,196,158,-1,160,187,196,-1,38,167,39,-1,166,167,38,-1,165,192,191,-1,165,163,192,-1,201,197,178,-1,201,68,197,-1,27,174,173,-1,27,76,174,-1,203,199,202,-1,203,25,199,-1,224,181,151,-1,224,180,181,-1,179,223,177,-1,149,223,179,-1,222,223,147,-1,222,156,223,-1,143,203,164,-1,143,221,203,-1,224,204,159,-1,220,204,224,-1,204,135,150,-1,219,135,204,-1,222,22,29,-1,218,22,222,-1,133,77,75,-1,133,205,77,-1,131,23,221,-1,131,42,23,-1,153,206,220,-1,139,206,153,-1,206,125,219,-1,18,125,206,-1,145,123,218,-1,207,123,145,-1,217,142,205,-1,217,122,142,-1,43,128,208,-1,128,43,42,-1,138,216,116,-1,216,138,208,-1,136,215,207,-1,115,215,136,-1,74,217,45,-1,74,211,217,-1,120,50,49,-1,50,120,211,-1,71,216,129,-1,71,13,216,-1,209,48,47,-1,209,127,48,-1,210,215,110,-1,210,124,215,-1,74,72,73,-1,72,74,15,-1,50,62,51,-1,62,50,73,-1,8,71,118,-1,8,52,71,-1,212,209,104,-1,212,114,209,-1,210,55,70,-1,58,55,210,-1,62,69,60,-1,69,62,59,-1,93,54,53,-1,93,213,54,-1,212,214,109,-1,90,214,212,-1,6,66,7,-1,6,95,66,-1,213,99,103,-1,213,98,99,-1,101,106,214,-1,106,101,102,-1,61,96,63,-1,61,97,96,-1,87,10,9,-1,10,87,100,-1};
			return value;
		}
		/** Large attribute array: IndexedFaceSet DEF='tooth_incisor_27_43_cap_geometry' coordIndex field, scene-graph level=5, element #28, 1664 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_incisor_27_43_cap_geometry_5_28_coordIndex()
		{
			MFInt32 tooth_incisor_27_43_cap_geometry_5_28_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(gettooth_incisor_27_43_cap_geometry_5_28_coordIndex_1()))
				.append(new MFInt32(gettooth_incisor_27_43_cap_geometry_5_28_coordIndex_2()));
			return tooth_incisor_27_43_cap_geometry_5_28_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='tooth_incisor_27_43_cap_coordinate' point field, scene-graph level=6, element #28, 657 total numbers made up of 219 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_incisor_27_43_cap_coordinate_6_28_point()
		{
			MFVec3f tooth_incisor_27_43_cap_coordinate_6_28_point = new MFVec3f(new double[] {0.0016,-0.0036,0.0032,0.0009,-0.0051,0.0032,0.0010,-0.0054,0.0030,0.0002,-0.0062,0.0030,-0.0020,-0.0056,0.0000,-0.0021,-0.0052,0.0001,-0.0018,-0.0045,-0.0010,0.0034,-0.0021,-0.0025,0.0031,-0.0010,-0.0023,0.0032,-0.0008,-0.0018,0.0007,-0.0020,-0.0040,0.0014,-0.0012,-0.0040,0.0017,-0.0024,-0.0045,-0.0030,0.0006,-0.0001,-0.0032,0.0007,0.0000,-0.0030,0.0024,0.0005,-0.0032,0.0025,0.0003,-0.0027,0.0041,0.0010,-0.0029,0.0039,0.0006,-0.0009,0.0036,-0.0001,-0.0006,0.0039,-0.0000,-0.0006,0.0023,-0.0008,-0.0011,0.0045,-0.0000,0.0014,0.0046,0.0024,0.0011,0.0052,0.0026,0.0014,0.0049,0.0029,0.0026,-0.0014,-0.0037,0.0023,-0.0009,-0.0033,0.0028,-0.0012,-0.0033,0.0026,0.0004,-0.0009,0.0017,0.0006,-0.0014,0.0013,0.0022,-0.0004,0.0016,-0.0013,-0.0042,-0.0027,0.0024,-0.0018,-0.0023,0.0014,-0.0021,-0.0032,0.0024,-0.0011,0.0019,-0.0032,-0.0045,0.0011,-0.0037,-0.0043,0.0023,-0.0006,-0.0028,0.0029,-0.0008,-0.0024,0.0034,-0.0019,-0.0019,0.0030,-0.0013,-0.0004,0.0008,-0.0042,0.0037,0.0016,-0.0026,0.0037,0.0008,-0.0025,0.0042,0.0008,-0.0006,0.0044,0.0017,0.0008,0.0043,0.0007,0.0009,0.0045,-0.0016,-0.0035,0.0032,-0.0023,-0.0035,0.0025,-0.0017,-0.0054,0.0021,-0.0027,-0.0011,-0.0009,-0.0024,-0.0024,-0.0011,-0.0026,-0.0025,-0.0006,-0.0003,-0.0012,-0.0035,-0.0006,-0.0029,-0.0032,0.0008,-0.0009,-0.0038,-0.0030,0.0006,-0.0006,-0.0027,0.0010,-0.0016,-0.0007,0.0006,-0.0029,-0.0015,0.0017,-0.0023,0.0000,0.0005,-0.0028,0.0005,-0.0004,-0.0035,0.0008,0.0005,-0.0023,0.0005,0.0020,-0.0010,-0.0000,0.0018,-0.0014,-0.0003,0.0024,-0.0006,-0.0026,0.0041,0.0013,-0.0030,0.0024,0.0008,-0.0030,0.0024,0.0013,-0.0024,0.0035,-0.0013,-0.0023,0.0042,-0.0009,-0.0014,0.0037,-0.0005,-0.0012,0.0057,0.0032,-0.0018,0.0053,0.0021,-0.0023,0.0041,0.0025,0.0006,0.0038,0.0044,0.0014,0.0032,0.0045,0.0013,0.0047,0.0044,0.0008,0.0049,0.0043,0.0016,0.0049,0.0042,0.0020,0.0035,0.0038,0.0017,0.0050,0.0039,-0.0015,0.0051,0.0001,-0.0027,0.0046,-0.0005,-0.0020,0.0052,0.0004,0.0003,0.0061,0.0035,-0.0006,0.0064,0.0028,-0.0001,0.0056,0.0039,-0.0026,0.0041,0.0016,-0.0020,0.0024,-0.0019,-0.0010,0.0024,-0.0011,0.0007,0.0022,0.0047,-0.0026,0.0028,0.0024,-0.0033,0.0035,-0.0000,0.0023,0.0031,0.0024,0.0025,0.0017,0.0013,0.0020,0.0029,0.0019,-0.0021,-0.0036,-0.0013,-0.0014,-0.0033,-0.0020,-0.0026,-0.0037,-0.0001,-0.0029,-0.0024,0.0009,-0.0003,-0.0035,0.0039,-0.0004,-0.0024,0.0042,-0.0004,-0.0006,0.0043,0.0022,-0.0019,0.0025,0.0025,-0.0016,0.0015,0.0026,-0.0013,0.0018,0.0016,-0.0009,-0.0038,0.0014,-0.0005,-0.0034,-0.0023,-0.0048,0.0010,-0.0016,-0.0060,0.0019,0.0010,0.0053,0.0040,0.0031,-0.0003,-0.0015,0.0020,0.0042,0.0029,0.0022,0.0041,0.0032,0.0023,0.0031,0.0025,0.0010,-0.0007,-0.0038,0.0023,0.0018,0.0010,0.0025,0.0009,-0.0004,0.0020,0.0018,0.0006,0.0000,0.0007,-0.0025,-0.0003,0.0016,-0.0015,0.0016,0.0027,0.0015,-0.0032,0.0007,0.0004,-0.0029,0.0001,-0.0003,0.0032,-0.0022,-0.0013,0.0033,-0.0025,-0.0019,0.0019,-0.0034,0.0028,0.0020,-0.0029,0.0026,-0.0023,-0.0047,0.0003,0.0020,-0.0024,0.0029,0.0020,-0.0020,0.0030,0.0027,-0.0013,0.0008,0.0030,-0.0019,-0.0006,0.0011,0.0046,0.0018,-0.0032,0.0036,-0.0010,-0.0026,-0.0037,0.0013,-0.0020,-0.0057,0.0010,0.0026,0.0012,0.0026,0.0023,0.0025,0.0035,0.0023,0.0011,0.0034,-0.0000,-0.0052,0.0035,-0.0017,-0.0020,0.0034,-0.0033,0.0024,-0.0004,-0.0013,-0.0042,-0.0021,0.0030,0.0003,-0.0005,-0.0007,0.0017,-0.0019,0.0016,0.0022,0.0045,-0.0003,0.0043,0.0003,-0.0013,0.0049,0.0000,-0.0006,0.0054,0.0009,-0.0024,0.0047,0.0011,-0.0026,0.0043,-0.0009,-0.0015,0.0044,0.0034,0.0002,0.0028,-0.0004,-0.0010,-0.0017,-0.0030,-0.0016,-0.0001,-0.0026,-0.0023,-0.0006,-0.0019,-0.0012,-0.0055,0.0029,0.0019,-0.0009,0.0039,0.0026,-0.0004,0.0021,0.0028,-0.0001,0.0008,0.0014,0.0052,0.0038,0.0017,0.0051,0.0035,0.0017,0.0044,0.0025,0.0017,0.0020,0.0003,-0.0016,-0.0049,-0.0010,-0.0000,-0.0058,0.0032,0.0033,-0.0029,-0.0018,0.0034,-0.0028,-0.0026,0.0034,-0.0032,-0.0025,0.0011,-0.0041,-0.0044,-0.0001,-0.0040,-0.0033,-0.0000,-0.0044,-0.0034,-0.0020,-0.0061,0.0008,-0.0030,0.0043,-0.0000,-0.0032,0.0007,0.0009,-0.0027,0.0034,-0.0014,0.0003,-0.0006,-0.0037,-0.0009,0.0005,-0.0029,0.0031,0.0001,-0.0004,-0.0009,0.0057,0.0011,0.0028,-0.0025,-0.0040,0.0028,-0.0031,-0.0040,0.0023,-0.0005,0.0032,-0.0006,0.0015,0.0043,-0.0017,-0.0005,0.0034,-0.0026,-0.0008,0.0024,-0.0026,-0.0024,0.0025,-0.0030,-0.0009,0.0009,-0.0020,-0.0020,-0.0020,-0.0017,0.0029,0.0034,0.0010,0.0057,0.0030,0.0008,0.0059,0.0033,-0.0013,0.0060,0.0016,0.0006,0.0045,0.0010,0.0000,0.0058,0.0018,0.0009,0.0031,0.0001,-0.0006,0.0029,0.0042,-0.0004,0.0044,0.0040,-0.0026,0.0014,0.0025,-0.0017,0.0015,0.0034,0.0026,0.0016,0.0015,-0.0021,0.0023,-0.0020,-0.0017,0.0016,-0.0024,-0.0001,0.0060,0.0020,0.0033,-0.0031,-0.0034,0.0033,-0.0035,-0.0034,-0.0012,-0.0046,-0.0023,0.0029,-0.0035,-0.0040,0.0030,-0.0024,-0.0008,-0.0009,-0.0064,0.0024,-0.0009,-0.0060,0.0025,0.0031,-0.0024,-0.0009,0.0020,-0.0036,-0.0047,-0.0014,-0.0063,0.0016,0.0033,-0.0023,-0.0034,0.0014,0.0029,0.0010});
			return tooth_incisor_27_43_cap_coordinate_6_28_point;
		}
		/** Large attribute array: IndexedFaceSet DEF='tooth_incisor_27_43_root_geometry' coordIndex field, scene-graph level=5, element #34, 1720 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_incisor_27_43_root_geometry_5_34_coordIndex()
		{
			MFInt32 tooth_incisor_27_43_root_geometry_5_34_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(gettooth_incisor_27_43_root_geometry_5_34_coordIndex_1()))
				.append(new MFInt32(gettooth_incisor_27_43_root_geometry_5_34_coordIndex_2()));
			return tooth_incisor_27_43_root_geometry_5_34_coordIndex;
		}
		/** Large attribute array: Coordinate DEF='tooth_incisor_27_43_root_coordinate' point field, scene-graph level=6, element #34, 678 total numbers made up of 226 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_incisor_27_43_root_coordinate_6_34_point()
		{
			MFVec3f tooth_incisor_27_43_root_coordinate_6_34_point = new MFVec3f(new double[] {-0.0002,0.0062,0.0041,-0.0010,0.0054,0.0041,-0.0002,0.0060,0.0040,0.0024,-0.0099,-0.0020,0.0025,-0.0099,-0.0020,0.0019,-0.0097,-0.0017,0.0025,-0.0099,-0.0024,0.0024,-0.0099,-0.0021,0.0018,-0.0096,-0.0024,0.0033,-0.0090,-0.0030,0.0032,-0.0092,-0.0031,0.0029,-0.0086,-0.0034,0.0010,-0.0082,-0.0008,0.0006,-0.0083,-0.0012,0.0024,-0.0052,-0.0035,0.0021,-0.0053,-0.0036,0.0020,-0.0035,-0.0038,0.0008,-0.0060,0.0004,0.0009,-0.0042,0.0008,0.0004,-0.0043,0.0011,0.0025,-0.0034,-0.0032,0.0023,-0.0015,-0.0037,0.0026,-0.0015,-0.0033,-0.0018,-0.0011,0.0007,-0.0018,0.0004,0.0016,-0.0022,0.0004,0.0009,0.0017,0.0002,-0.0041,0.0007,0.0015,-0.0040,0.0016,0.0017,-0.0041,0.0027,0.0002,-0.0033,0.0024,0.0018,-0.0036,0.0026,0.0017,-0.0030,0.0017,0.0081,-0.0029,0.0021,0.0081,-0.0023,0.0022,0.0061,-0.0026,-0.0009,0.0047,0.0039,0.0007,0.0083,0.0037,0.0007,0.0082,0.0039,0.0020,0.0062,-0.0031,0.0010,0.0061,-0.0036,0.0008,0.0080,-0.0035,0.0008,0.0087,0.0038,-0.0012,-0.0027,0.0001,-0.0011,-0.0028,0.0008,-0.0015,-0.0011,0.0013,0.0013,-0.0036,-0.0035,0.0014,-0.0080,-0.0005,0.0017,-0.0078,-0.0007,0.0011,-0.0059,0.0001,0.0010,-0.0078,-0.0031,0.0016,-0.0076,-0.0033,0.0023,-0.0091,-0.0033,0.0017,-0.0097,-0.0020,0.0020,-0.0095,-0.0016,0.0023,-0.0093,-0.0015,0.0030,-0.0085,-0.0032,0.0025,-0.0071,-0.0035,0.0033,-0.0090,-0.0028,0.0030,-0.0085,-0.0029,0.0028,-0.0087,-0.0035,0.0030,-0.0094,-0.0030,0.0028,-0.0097,-0.0029,0.0026,-0.0089,-0.0035,0.0026,-0.0099,-0.0027,0.0018,-0.0096,-0.0028,0.0021,-0.0093,-0.0031,0.0025,-0.0099,-0.0021,0.0022,0.0084,-0.0014,0.0022,0.0080,-0.0015,0.0031,-0.0093,-0.0030,0.0026,-0.0071,-0.0031,0.0006,-0.0082,-0.0016,0.0023,-0.0072,-0.0036,0.0019,-0.0073,-0.0036,0.0015,-0.0054,-0.0035,0.0009,-0.0000,-0.0038,-0.0002,0.0013,-0.0033,-0.0000,-0.0002,-0.0033,0.0018,0.0092,0.0004,0.0018,0.0090,0.0004,0.0019,0.0092,0.0003,-0.0001,0.0049,0.0036,0.0024,0.0002,-0.0037,0.0024,-0.0034,-0.0036,0.0030,-0.0094,-0.0029,0.0031,-0.0093,-0.0029,0.0033,-0.0091,-0.0028,0.0033,-0.0091,-0.0029,0.0030,-0.0091,-0.0020,0.0032,-0.0091,-0.0022,0.0032,-0.0090,-0.0022,0.0031,-0.0092,-0.0020,0.0026,-0.0099,-0.0020,0.0026,-0.0097,-0.0018,0.0027,-0.0097,-0.0019,0.0026,-0.0099,-0.0024,0.0027,-0.0098,-0.0026,0.0028,-0.0097,-0.0028,0.0027,-0.0096,-0.0019,0.0029,-0.0094,-0.0019,0.0032,-0.0092,-0.0029,0.0033,-0.0091,-0.0025,0.0033,-0.0091,-0.0027,0.0028,-0.0093,-0.0018,0.0027,-0.0089,-0.0017,0.0024,-0.0091,-0.0015,0.0033,-0.0090,-0.0027,0.0030,-0.0086,-0.0027,0.0025,-0.0072,-0.0021,0.0030,-0.0086,-0.0024,0.0026,-0.0071,-0.0025,0.0007,-0.0081,-0.0025,0.0025,-0.0052,-0.0031,0.0022,-0.0054,-0.0011,0.0024,-0.0073,-0.0016,0.0024,-0.0053,-0.0019,0.0002,-0.0061,0.0001,-0.0002,-0.0059,-0.0015,0.0006,-0.0082,-0.0020,-0.0001,-0.0058,-0.0021,0.0003,-0.0056,-0.0028,-0.0006,-0.0041,-0.0018,-0.0002,-0.0039,-0.0026,0.0025,-0.0034,-0.0027,0.0025,-0.0053,-0.0027,0.0016,-0.0039,0.0002,0.0021,-0.0037,-0.0006,0.0018,-0.0056,-0.0004,-0.0007,-0.0044,-0.0004,-0.0002,-0.0060,-0.0009,-0.0007,-0.0042,-0.0011,-0.0012,-0.0026,-0.0007,-0.0011,-0.0025,-0.0015,0.0011,-0.0018,-0.0036,0.0019,-0.0016,-0.0039,0.0021,-0.0019,-0.0002,0.0023,-0.0035,-0.0016,0.0024,-0.0017,-0.0014,-0.0002,-0.0044,0.0007,-0.0000,-0.0026,0.0018,-0.0006,-0.0027,0.0014,-0.0009,-0.0011,0.0020,-0.0006,-0.0022,-0.0026,-0.0016,-0.0008,-0.0012,-0.0010,-0.0005,-0.0025,0.0025,-0.0016,-0.0021,0.0025,-0.0000,-0.0012,0.0027,0.0001,-0.0020,0.0019,0.0013,0.0007,0.0024,0.0015,-0.0009,0.0020,-0.0002,0.0003,-0.0002,0.0004,0.0028,-0.0011,0.0004,0.0024,-0.0001,-0.0010,0.0025,-0.0014,0.0010,-0.0023,0.0025,0.0037,-0.0023,0.0027,0.0016,-0.0024,0.0024,0.0038,-0.0030,0.0011,0.0029,0.0024,0.0013,0.0010,0.0018,0.0019,0.0032,0.0012,-0.0014,0.0024,0.0029,-0.0021,0.0024,0.0022,-0.0023,0.0028,-0.0005,-0.0020,0.0007,-0.0010,-0.0017,0.0031,-0.0020,0.0022,0.0039,-0.0035,0.0013,0.0038,-0.0039,-0.0028,0.0049,0.0008,-0.0032,0.0055,0.0019,-0.0032,0.0060,0.0012,-0.0028,0.0047,0.0018,-0.0007,0.0057,-0.0027,0.0006,0.0037,-0.0038,-0.0005,0.0034,-0.0030,0.0003,0.0060,-0.0034,0.0021,0.0057,-0.0002,0.0024,0.0036,-0.0015,0.0022,0.0059,-0.0010,0.0023,0.0035,-0.0006,0.0002,0.0026,0.0031,-0.0005,0.0025,0.0034,-0.0018,0.0046,0.0034,-0.0020,0.0052,0.0035,-0.0000,0.0075,-0.0033,0.0014,0.0070,0.0019,0.0019,0.0075,0.0001,0.0017,0.0054,0.0017,0.0013,0.0087,0.0023,0.0013,0.0100,0.0027,-0.0028,0.0067,0.0001,-0.0020,0.0053,-0.0016,-0.0027,0.0050,-0.0001,-0.0024,0.0070,-0.0011,-0.0012,0.0072,-0.0023,0.0008,0.0065,0.0033,0.0010,0.0051,0.0029,0.0020,0.0078,-0.0007,0.0021,0.0087,-0.0006,-0.0025,0.0025,0.0013,-0.0024,0.0046,0.0027,0.0023,0.0060,-0.0019,-0.0025,0.0026,0.0004,-0.0022,0.0006,-0.0001,0.0015,-0.0005,0.0015,0.0002,-0.0020,-0.0031,0.0006,-0.0024,0.0015,0.0024,-0.0035,-0.0021,-0.0006,-0.0044,0.0002,0.0021,-0.0075,-0.0011,0.0026,-0.0071,-0.0028,0.0010,-0.0055,-0.0032,0.0029,-0.0087,-0.0021,0.0027,-0.0095,-0.0017,0.0033,-0.0090,-0.0025,0.0024,-0.0053,-0.0023,-0.0002,-0.0061,-0.0004,0.0006,-0.0037,-0.0032,0.0026,-0.0016,-0.0027,0.0015,-0.0022,0.0009,0.0006,-0.0008,0.0021,-0.0018,-0.0009,-0.0003,0.0027,0.0002,-0.0026,0.0026,0.0016,-0.0017,0.0005,0.0006,0.0025,-0.0026,0.0053,0.0028});
			return tooth_incisor_27_43_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_canine_27_43 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_canine_27_43().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_canine_27_43\" 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_canine_27_43 self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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