package HumanoidAnimation.Specifications;

import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.EnvironmentalEffects.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Geometry3D.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.HAnim.*;
import org.web3d.x3d.jsail.Navigation.*;
import org.web3d.x3d.jsail.Networking.*;
import org.web3d.x3d.jsail.PointingDeviceSensor.*;
import org.web3d.x3d.jsail.Rendering.*;
import org.web3d.x3d.jsail.RigidBodyPhysics.*;
import org.web3d.x3d.jsail.Shape.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> HAnim Specification reference example providing full coverage and visibility of all specified HAnim constructs, also suitable for re-use as an authoring template. Geometry visualizations are derived from HAnimSpecificationLOA3Invisible.x3d visualization report. Resusable exemplar animations also added via heads-up display (HUD) interface to confirm proper parent-child relationships. </p>
 <p> Related links:  source HAnim1SpecificationLOA3Illustrated.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.Specifications.HAnim1SpecificationLOA3Illustrated&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/Specifications/HAnimSpecificationLOA3Illustrated.x3d">HAnimSpecificationLOA3Illustrated.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> HAnim Specification reference example providing full coverage and visibility of all specified HAnim constructs, also suitable for re-use as an authoring template. Geometry visualizations are derived from HAnimSpecificationLOA3Invisible.x3d visualization report. Resusable exemplar animations also added via heads-up display (HUD) interface to confirm proper parent-child relationships. </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="https://www.web3d.org/files/specifications/19774/V1.0/HAnim/BodyDimensionsAndLOAs.html#LOA3ExampleSourceWithDiamonds" target="_blank">https://www.web3d.org/files/specifications/19774/V1.0/HAnim/BodyDimensionsAndLOAs.html#LOA3ExampleSourceWithDiamonds</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 24 April 2013 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modified </i> </td>
			<td> 2 July 2023 </td>
		</tr>
		<tr style="color:red">
			<td style="text-align:right; vertical-align: text-top;"> <i> error </i> </td>
			<td> Legacy model, not valid as X3D4 HAnim version 2.0 since HAnim version 1.0 has significant differences and is no longer directly supported </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Matthew T. Beitler, Joe D. Williams, Don Brutzman </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> Image </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnimSpecificationLOA3Illustrated.png">HAnimSpecificationLOA3Illustrated.png</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> Image </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnimSpecificationLOA3IllustratedLeftSide.png">HAnimSpecificationLOA3IllustratedLeftSide.png</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/Specifications/HAnimSpecificationLOA3Invisible.x3d">HAnimSpecificationLOA3Invisible.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/Specifications/HAnimSpecificationLOA3Animation.x3d">HAnimSpecificationLOA3Animation.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> HAnimSpecificationExampleChangeLog.txt </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> Image </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/images/BonesAllSkeletonFrontViewLOA1.png">images/BonesAllSkeletonFrontViewLOA1.png</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> Image </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/images/BonesAllSkeletonFrontViewLOA2.png">images/BonesAllSkeletonFrontViewLOA2.png</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> Image </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/images/BonesAllSkeletonFrontViewLOA3.png">images/BonesAllSkeletonFrontViewLOA3.png</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> TODO </i> </td>
			<td> move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations </td>
		</tr>
		<tr style="color:burntorange">
			<td style="text-align:right; vertical-align: text-top;"> <i> warning </i> </td>
			<td> BS Contact and H3DViewer have polygon-culling problems at close range (possibly related to avatarSize), other players look OK </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> TODO </i> </td>
			<td> insert MetadataInteger nodes indicating LOA for each Joint and Segment </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> Norman Badler et al., ANTHROPOMETRY FOR COMPUTER GRAPHICS HUMAN FIGURES, University of Pennsylvania, 1989. </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://www.cis.upenn.edu/~badler/anthro/89-71.ps" target="_blank">http://www.cis.upenn.edu/~badler/anthro/89-71.ps</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/Specifications/tables/AnthropometryForComputerGraphicsHumanFigures89-71.pdf">tables/AnthropometryForComputerGraphicsHumanFigures89-71.pdf</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translator </i> </td>
			<td> Don Brutzman and Joe Williams </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> BS Contact Geo 8.001, <a href="http://www.bitmanagement.de/en/products/interactive-3d-clients/bs-contact-geo" target="_blank">http://www.bitmanagement.de/en/products/interactive-3d-clients/bs-contact-geo</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> originals/LOA3ExampleSourceWithDiamondsOriginal.wrl </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/Specifications/originals/LOA3ExampleSourceWithDiamondsOriginal.x3d">originals/LOA3ExampleSourceWithDiamondsOriginal.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/Specifications/originals/LOA3ExampleSourceWithDiamondsOriginalBsContactExport.x3d">originals/LOA3ExampleSourceWithDiamondsOriginalBsContactExport.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> HAnim Specification Table 4.4 - Face Joint object names, <a href="https://www.web3d.org/files/specifications/19774/V1.0/HAnim/concepts.html#FaceJointObjectNames" target="_blank">https://www.web3d.org/files/specifications/19774/V1.0/HAnim/concepts.html#FaceJointObjectNames</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> X3D-Edit 3.3, <a href="https://savage.nps.edu/X3D-Edit" target="_blank">https://savage.nps.edu/X3D-Edit</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/Specifications/HAnimSpecificationLOA3Illustrated.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnimSpecificationLOA3Illustrated.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/Specifications/../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 Matthew T. Beitler, Joe D. Williams, Don Brutzman
 */

public class HAnim1SpecificationLOA3Illustrated
{
	/** Default constructor to create this object. */
	public HAnim1SpecificationLOA3Illustrated ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_3)
  .setHead(new head()
    .addComponent(new component().setName("H-Anim").setLevel(1))
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("HAnimSpecificationLOA3Illustrated.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("HAnim Specification reference example providing full coverage and visibility of all specified HAnim constructs, also suitable for re-use as an authoring template. Geometry visualizations are derived from HAnimSpecificationLOA3Invisible.x3d visualization report. Resusable exemplar animations also added via heads-up display (HUD) interface to confirm proper parent-child relationships."))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://www.web3d.org/files/specifications/19774/V1.0/HAnim/BodyDimensionsAndLOAs.html#LOA3ExampleSourceWithDiamonds"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("24 April 2013"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("2 July 2023"))
    .addMeta(new meta().setName(meta.NAME_ERROR      ).setContent("Legacy model, not valid as X3D4 HAnim version 2.0 since HAnim version 1.0 has significant differences and is no longer directly supported"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Matthew T. Beitler, Joe D. Williams, Don Brutzman"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("HAnimSpecificationLOA3Illustrated.png"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("HAnimSpecificationLOA3IllustratedLeftSide.png"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnimSpecificationLOA3Invisible.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnimSpecificationLOA3Animation.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnimSpecificationExampleChangeLog.txt"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("images/BonesAllSkeletonFrontViewLOA1.png"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("images/BonesAllSkeletonFrontViewLOA2.png"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("images/BonesAllSkeletonFrontViewLOA3.png"))
    .addMeta(new meta().setName(meta.NAME_TODO       ).setContent("move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations"))
    .addMeta(new meta().setName(meta.NAME_WARNING    ).setContent("BS Contact and H3DViewer have polygon-culling problems at close range (possibly related to avatarSize), other players look OK"))
    .addMeta(new meta().setName(meta.NAME_TODO       ).setContent("insert MetadataInteger nodes indicating LOA for each Joint and Segment"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("Norman Badler et al., ANTHROPOMETRY FOR COMPUTER GRAPHICS HUMAN FIGURES, University of Pennsylvania, 1989."))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.cis.upenn.edu/~badler/anthro/89-71.ps"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("tables/AnthropometryForComputerGraphicsHumanFigures89-71.pdf"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("Don Brutzman and Joe Williams"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("BS Contact Geo 8.001, http://www.bitmanagement.de/en/products/interactive-3d-clients/bs-contact-geo"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/LOA3ExampleSourceWithDiamondsOriginal.wrl"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/LOA3ExampleSourceWithDiamondsOriginal.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("originals/LOA3ExampleSourceWithDiamondsOriginalBsContactExport.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("HAnim Specification Table 4.4 - Face Joint object names, https://www.web3d.org/files/specifications/19774/V1.0/HAnim/concepts.html#FaceJointObjectNames"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/HAnimSpecificationLOA3Illustrated.x3d"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new Background().setSkyColor(new MFColor(new double[] {0.3,0.3,0.3})))
    .addChild(new NavigationInfo())
    .addChild(new Group("Original_WorldInfo")
      .addChild(new WorldInfo().setInfo(new String[] {" HANIM 200x Default Joint Centers, Level-Of-Articulation 3 HANIM 200x (VRML97) Author name: eMpTy (a.k.a. Matthew T. Beitler) HANIM 200x (VRML97) Author email: beitler@cis.upenn.edu or beitler@acm.org HANIM 200x (VRML97) Author homepage: http://www.cis.upenn.edu/~beitler HANIM 200x (VRML97) Compliance Date: August 12, 2003 HANIM 200x Compliance Information: http://HAnim.org/Specifications/HAnim200x Construction Info (joint centers): The joint centers of this figure are based on the work of Norman Badler, director of the Center for Human Modeling and Simulation at the University of Pennsylvania. The original document which these joint centers are based on can be found at: http://www.cis.upenn.edu/~badler/anthro/89-71.ps "}).setTitle("HANIM 200x Default Joint Centers, LOA3")))
    .addComments(" TODO move viewpoints to be internal to HAnimHumanoid ")
    .addComments(" Viewpoint centerOfRotation=\"0 0.9149 0.0016\" matches initial at-rest locaton of the sacroliac. Note that these viewpoints are external to the HAnimHumanoid and do not move with the human. ")
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front").setCenterOfRotation(0.0,0.9149,0.0016).setPosition(0.0,0.4,4.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front Close").setCenterOfRotation(0.0,0.9149,0.0016).setPosition(0.0,0.8,2.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front Closer").setCenterOfRotation(0.0,0.9149,0.0016).setPosition(0.0,1.2,1.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Front Face").setCenterOfRotation(0.0,1.5,0.0016).setPosition(0.0,1.63,1.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Right Side").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,1.5708).setPosition(2.6,0.8,0.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Right Side Close").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,1.2).setPosition(1.0,0.8,0.5))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Left Side Close").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,-1.2).setPosition(-1.0,0.8,0.5))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Left Side").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(0.0,1.0,0.0,-1.5708).setPosition(-2.6,0.8,0.0))
    .addChild(new Viewpoint().setDescription("Humanoid LOA 3 Top").setCenterOfRotation(0.0,0.9149,0.0016).setOrientation(1.0,0.0,0.0,-1.5708).setPosition(0.0,3.5,0.0))
    .addChild(new HAnimHumanoid("hanim_humanoid").setName("humanoid").setInfo(new String[] {"authorName=Matthew T. Beitler Joe D. Williams Don Brutzman","authorEmail=HAnim@web3D.org","copyright=none","creationDate=12 May 1999","usageRestrictions=none","humanoidVersion=2.0","height=1.7504"}).setVersion("1.0")
      .addComments(" Only one root HAnimJoint is expected ")
      .addSkeleton(new HAnimJoint("hanim_humanoid_root").setName("humanoid_root").setCenter(0.0,0.824,0.0277).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
        .addChild(new HAnimSegment("hanim_sacrum").setName("sacrum")
          .addComments(" <HAnimJoint name='humanoid_root'/> visualization sphere is placed within <HAnimSegment name='sacrum'/> ")
          .addChild(new TouchSensor().setDescription("HAnimJoint HumanoidRoot, HAnimSegment sacrum"))
          .addChild(new Transform().setTranslation(0.0,0.824,0.0277)
            .addChild(new Shape("HAnimJointShape")
              .setGeometry(new Sphere().setRadius(0.006))
              .setAppearance(new Appearance("HAnimJointAppearance")
                .setMaterial(new Material().setDiffuseColor(1.0,0.5,0.0).setTransparency(0.5)))))
          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='humanoid_root'/> to <HAnimJoint name='sacroiliac'/> ")
          .addChild(new Shape()
            .setGeometry(new LineSet().setVertexCount(new int[] {2})
              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.824,0.0277,0.0,0.9149,0.0016})))
              .setColor(new ColorRGBA("HAnimSegmentLineColorRGBA").setColor(new MFColorRGBA(new double[] {1.0,1.0,0.0,1.0,1.0,1.0,0.0,0.1})))))
          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='humanoid_root'/> to <HAnimJoint name='vl5'/> ")
          .addChild(new Shape()
            .setGeometry(new LineSet().setVertexCount(new int[] {2})
              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.824,0.0277,0.0028,1.0568,-0.0776})))
              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
        .addChild(new HAnimJoint("hanim_sacroiliac").setName("sacroiliac").setCenter(0.0,0.9149,0.0016).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
          .addChild(new HAnimSegment("hanim_pelvis").setName("pelvis")
            .addComments(" <HAnimJoint name='sacroiliac'/> visualization sphere is placed within <HAnimSegment name='pelvis'/> ")
            .addChild(new TouchSensor().setDescription("HAnimJoint sacroiliac, HAnimSegment pelvis"))
            .addChild(new Transform().setTranslation(0.0,0.9149,0.0016)
              .addChild(new Shape().setUSE("HAnimJointShape")))
            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='sacroiliac'/> to <HAnimJoint name='l_hip'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0961,0.9124,-0.0001})))
                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='sacroiliac'/> to <HAnimJoint name='r_hip'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.0961,0.9124,-0.0001})))
                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='r_iliocristale'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.1525,1.0628,0.0035})))
                .setColor(new ColorRGBA("HAnimSiteLineColorRGBA").setColor(new MFColorRGBA(new double[] {1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.1})))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='r_trochanterion'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.1689,0.8419,0.0352})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='l_iliocristale'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.1612,1.0537,0.0008})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='l_trochanterion'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.1677,0.8336,0.0303})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='r_asis'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.0887,1.0021,0.1112})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='l_asis'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0925,0.9983,0.1052})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='r_psis'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,-0.0716,1.019,-0.1138})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='l_psis'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0774,1.019,-0.1151})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='sacroiliac'/> to <HAnimSite name='crotch'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.9149,0.0016,0.0034,0.8266,0.0257})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addChild(new HAnimSite("hanim_r_iliocristale_pt").setName("r_iliocristale_pt").setTranslation(-0.1525,1.0628,0.0035)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_iliocristale"))
              .addChild(new Shape("HAnimSiteShape")
                .setGeometry(new IndexedFaceSet("DiamondIFS").setDEF("DiamondIFS").setCreaseAngle(0.5).setSolid(false).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,0,4,1,-1,5,2,1,-1,5,3,2,-1,5,4,3,-1,5,1,4,-1})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.008,0.0,-0.008,0.0,0.0,0.0,0.0,0.008,0.008,0.0,0.0,0.0,0.0,-0.008,0.0,-0.008,0.0}))))
                .setAppearance(new Appearance()
                  .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))))
            .addChild(new HAnimSite("hanim_r_trochanterion_pt").setName("r_trochanterion_pt").setTranslation(-0.1689,0.8419,0.0352)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_trochanterion"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_iliocristale_pt").setName("l_iliocristale_pt").setTranslation(0.1612,1.0537,0.0008)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_iliocristale"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_trochanterion_pt").setName("l_trochanterion_pt").setTranslation(0.1677,0.8336,0.0303)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_trochanterion"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_r_asis_pt").setName("r_asis_pt").setTranslation(-0.0887,1.0021,0.1112)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_asis"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_asis_pt").setName("l_asis_pt").setTranslation(0.0925,0.9983,0.1052)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_asis"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_r_psis_pt").setName("r_psis_pt").setTranslation(-0.0716,1.019,-0.1138)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite r_psis"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_l_psis_pt").setName("l_psis_pt").setTranslation(0.0774,1.019,-0.1151)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite l_psis"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_crotch_pt").setName("crotch_pt").setTranslation(0.0034,0.8266,0.0257)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite crotch"))
              .addChild(new Shape().setUSE("HAnimSiteShape"))))
          .addChild(new HAnimJoint("hanim_l_hip").setName("l_hip").setCenter(0.0961,0.9124,-0.0001).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
            .addChild(new HAnimSegment("hanim_l_thigh").setName("l_thigh")
              .addComments(" <HAnimJoint name='l_hip'/> visualization sphere is placed within <HAnimSegment name='l_thigh'/> ")
              .addChild(new TouchSensor().setDescription("HAnimJoint l_hip, HAnimSegment l_thigh"))
              .addChild(new Transform().setTranslation(0.0961,0.9124,-0.0001)
                .addChild(new Shape().setUSE("HAnimJointShape")))
              .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_hip'/> to <HAnimJoint name='l_knee'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.104,0.4867,0.0308})))
                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_hip'/> to <HAnimSite name='l_knee_crease'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.0993,0.4881,-0.0309})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_hip'/> to <HAnimSite name='l_femoral_lateral_epicn'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.1598,0.4967,0.0297})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_hip'/> to <HAnimSite name='l_femoral_medial_epicn'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0961,0.9124,-0.0001,0.0398,0.4946,0.0303})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addChild(new HAnimSite("hanim_l_knee_crease_pt").setName("l_knee_crease_pt").setTranslation(0.0993,0.4881,-0.0309)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite l_knee_crease"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_l_femoral_lateral_epicn_pt").setName("l_femoral_lateral_epicn_pt").setTranslation(0.1598,0.4967,0.0297)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite l_femoral_lateral_epicn"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_l_femoral_medial_epicn_pt").setName("l_femoral_medial_epicn_pt").setTranslation(0.0398,0.4946,0.0303)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite l_femoral_medial_epicn"))
                .addChild(new Shape().setUSE("HAnimSiteShape"))))
            .addChild(new HAnimJoint("hanim_l_knee").setName("l_knee").setCenter(0.104,0.4867,0.0308).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
              .addChild(new HAnimSegment("hanim_l_calf").setName("l_calf")
                .addComments(" <HAnimJoint name='l_knee'/> visualization sphere is placed within <HAnimSegment name='l_calf'/> ")
                .addChild(new TouchSensor().setDescription("HAnimJoint l_knee, HAnimSegment l_calf"))
                .addChild(new Transform().setTranslation(0.104,0.4867,0.0308)
                  .addChild(new Shape().setUSE("HAnimJointShape")))
                .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_knee'/> to <HAnimJoint name='l_ankle'/> ")
                .addChild(new Shape()
                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.104,0.4867,0.0308,0.1101,0.0656,-0.0736})))
                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
              .addChild(new HAnimJoint("hanim_l_ankle").setName("l_ankle").setCenter(0.1101,0.0656,-0.0736).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                .addChild(new HAnimSegment("hanim_l_hindfoot").setName("l_hindfoot")
                  .addComments(" <HAnimJoint name='l_ankle'/> visualization sphere is placed within <HAnimSegment name='l_hindfoot'/> ")
                  .addChild(new TouchSensor().setDescription("HAnimJoint l_ankle, HAnimSegment l_hindfoot"))
                  .addChild(new Transform().setTranslation(0.1101,0.0656,-0.0736)
                    .addChild(new Shape().setUSE("HAnimJointShape")))
                  .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_ankle'/> to <HAnimJoint name='l_subtalar'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.1086,0.0001,-0.0368})))
                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_ankle'/> to <HAnimSite name='l_lateral_malleolus'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.1308,0.0597,-0.1032})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_ankle'/> to <HAnimSite name='l_medial_malleolus'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.089,0.0716,-0.0881})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_ankle'/> to <HAnimSite name='l_sphyrion'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.089,0.0575,-0.0943})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_ankle'/> to <HAnimSite name='l_calcaneous_post'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1101,0.0656,-0.0736,0.0974,0.0259,-0.1171})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addChild(new HAnimSite("hanim_l_lateral_malleolus_pt").setName("l_lateral_malleolus_pt").setTranslation(0.1308,0.0597,-0.1032)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_lateral_malleolus"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_medial_malleolus_pt").setName("l_medial_malleolus_pt").setTranslation(0.089,0.0716,-0.0881)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_medial_malleolus"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_sphyrion_pt").setName("l_sphyrion_pt").setTranslation(0.089,0.0575,-0.0943)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_sphyrion"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_calcaneous_post_pt").setName("l_calcaneous_post_pt").setTranslation(0.0974,0.0259,-0.1171)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_calcaneous_post"))
                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                .addChild(new HAnimJoint("hanim_l_subtalar").setName("l_subtalar").setCenter(0.1086,0.0001,-0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                  .addChild(new HAnimSegment("hanim_l_midproximal").setName("l_midproximal")
                    .addComments(" <HAnimJoint name='l_subtalar'/> visualization sphere is placed within <HAnimSegment name='l_midproximal'/> ")
                    .addChild(new TouchSensor().setDescription("HAnimJoint l_subtalar, HAnimSegment l_midproximal"))
                    .addChild(new Transform().setTranslation(0.1086,0.0001,-0.0368)
                      .addChild(new Shape().setUSE("HAnimJointShape")))
                    .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_subtalar'/> to <HAnimJoint name='l_midtarsal'/> ")
                    .addChild(new Shape()
                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0001,-0.0368,0.1086,0.0001,0.0368})))
                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                  .addChild(new HAnimJoint("hanim_l_midtarsal").setName("l_midtarsal").setCenter(0.1086,0.0001,0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                    .addChild(new HAnimSegment("hanim_l_middistal").setName("l_middistal")
                      .addComments(" <HAnimJoint name='l_midtarsal'/> visualization sphere is placed within <HAnimSegment name='l_middistal'/> ")
                      .addChild(new TouchSensor().setDescription("HAnimJoint l_midtarsal, HAnimSegment l_middistal"))
                      .addChild(new Transform().setTranslation(0.1086,0.0001,0.0368)
                        .addChild(new Shape().setUSE("HAnimJointShape")))
                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_midtarsal'/> to <HAnimJoint name='l_metatarsal'/> ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0001,0.0368,0.1086,0.0,0.0762})))
                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_midtarsal'/> to <HAnimSite name='l_metatarsal_pha1'/> ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0001,0.0368,0.0816,0.0232,0.0106})))
                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                      .addChild(new HAnimSite("hanim_l_metatarsal_pha1_pt").setName("l_metatarsal_pha1_pt").setTranslation(0.0816,0.0232,0.0106)
                        .addComments(" HAnimSite visualization shape ")
                        .addChild(new TouchSensor().setDescription("HAnimSite l_metatarsal_pha1"))
                        .addChild(new Shape().setUSE("HAnimSiteShape"))))
                    .addChild(new HAnimJoint("hanim_l_metatarsal").setName("l_metatarsal").setCenter(0.1086,0.0,0.0762).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                      .addChild(new HAnimSegment("hanim_l_forefoot").setName("l_forefoot")
                        .addComments(" <HAnimJoint name='l_metatarsal'/> visualization sphere is placed within <HAnimSegment name='l_forefoot'/> ")
                        .addChild(new TouchSensor().setDescription("HAnimJoint l_metatarsal, HAnimSegment l_forefoot"))
                        .addChild(new Transform().setTranslation(0.1086,0.0,0.0762)
                          .addChild(new Shape().setUSE("HAnimJointShape")))
                        .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_metatarsal'/> to <HAnimSite name='l_forefoot_tip'/> ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0,0.0762,0.1354,0.0016,0.1476})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_metatarsal'/> to <HAnimSite name='l_metatarsal_pha5'/> ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0,0.0762,0.1825,0.007,0.0928})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_metatarsal'/> to <HAnimSite name='l_digit2'/> ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1086,0.0,0.0762,0.1195,0.0079,0.1433})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addChild(new HAnimSite("hanim_l_forefoot_tip").setName("l_forefoot_tip").setTranslation(0.1354,0.0016,0.1476)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite l_forefoot_tip"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_l_metatarsal_pha5_pt").setName("l_metatarsal_pha5_pt").setTranslation(0.1825,0.007,0.0928)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite l_metatarsal_pha5"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_l_digit2_pt").setName("l_digit2_pt").setTranslation(0.1195,0.0079,0.1433)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite l_digit2"))
                          .addChild(new Shape().setUSE("HAnimSiteShape"))))))))))
          .addChild(new HAnimJoint("hanim_r_hip").setName("r_hip").setCenter(-0.0961,0.9124,-0.0001).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
            .addChild(new HAnimSegment("hanim_r_thigh").setName("r_thigh")
              .addComments(" <HAnimJoint name='r_hip'/> visualization sphere is placed within <HAnimSegment name='r_thigh'/> ")
              .addChild(new TouchSensor().setDescription("HAnimJoint r_hip, HAnimSegment r_thigh"))
              .addChild(new Transform().setTranslation(-0.0961,0.9124,-0.0001)
                .addChild(new Shape().setUSE("HAnimJointShape")))
              .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_hip'/> to <HAnimJoint name='r_knee'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.104,0.4867,0.0308})))
                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_hip'/> to <HAnimSite name='r_knee_crease'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.0825,0.4932,-0.0326})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_hip'/> to <HAnimSite name='r_femoral_lateral_epicn'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.1421,0.4992,0.031})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_hip'/> to <HAnimSite name='r_femoral_medial_epicn'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0961,0.9124,-0.0001,-0.0221,0.5014,0.0289})))
                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
              .addChild(new HAnimSite("hanim_r_knee_crease_pt").setName("r_knee_crease_pt").setTranslation(-0.0825,0.4932,-0.0326)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite r_knee_crease"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_r_femoral_lateral_epicn_pt").setName("r_femoral_lateral_epicn_pt").setTranslation(-0.1421,0.4992,0.031)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite r_femoral_lateral_epicn"))
                .addChild(new Shape().setUSE("HAnimSiteShape")))
              .addChild(new HAnimSite("hanim_r_femoral_medial_epicn_pt").setName("r_femoral_medial_epicn_pt").setTranslation(-0.0221,0.5014,0.0289)
                .addComments(" HAnimSite visualization shape ")
                .addChild(new TouchSensor().setDescription("HAnimSite r_femoral_medial_epicn"))
                .addChild(new Shape().setUSE("HAnimSiteShape"))))
            .addChild(new HAnimJoint("hanim_r_knee").setName("r_knee").setCenter(-0.104,0.4867,0.0308).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
              .addChild(new HAnimSegment("hanim_r_calf").setName("r_calf")
                .addComments(" <HAnimJoint name='r_knee'/> visualization sphere is placed within <HAnimSegment name='r_calf'/> ")
                .addChild(new TouchSensor().setDescription("HAnimJoint r_knee, HAnimSegment r_calf"))
                .addChild(new Transform().setTranslation(-0.104,0.4867,0.0308)
                  .addChild(new Shape().setUSE("HAnimJointShape")))
                .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_knee'/> to <HAnimJoint name='r_ankle'/> ")
                .addChild(new Shape()
                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.104,0.4867,0.0308,-0.1101,0.0656,-0.0736})))
                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
              .addChild(new HAnimJoint("hanim_r_ankle").setName("r_ankle").setCenter(-0.1101,0.0656,-0.0736).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                .addChild(new HAnimSegment("hanim_r_hindfoot").setName("r_hindfoot")
                  .addComments(" <HAnimJoint name='r_ankle'/> visualization sphere is placed within <HAnimSegment name='r_hindfoot'/> ")
                  .addChild(new TouchSensor().setDescription("HAnimJoint r_ankle, HAnimSegment r_hindfoot"))
                  .addChild(new Transform().setTranslation(-0.1101,0.0656,-0.0736)
                    .addChild(new Shape().setUSE("HAnimJointShape")))
                  .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_ankle'/> to <HAnimJoint name='r_subtalar'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.1086,0.0001,-0.0368})))
                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_ankle'/> to <HAnimSite name='r_lateral_malleolus'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.1006,0.0658,-0.1075})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_ankle'/> to <HAnimSite name='r_medial_malleolus'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.0591,0.076,-0.0928})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_ankle'/> to <HAnimSite name='r_sphyrion'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.0603,0.061,-0.1002})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_ankle'/> to <HAnimSite name='r_calcaneous_post'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1101,0.0656,-0.0736,-0.0692,0.0297,-0.1221})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addChild(new HAnimSite("hanim_r_lateral_malleolus_pt").setName("r_lateral_malleolus_pt").setTranslation(-0.1006,0.0658,-0.1075)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_lateral_malleolus"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_r_medial_malleolus_pt").setName("r_medial_malleolus_pt").setTranslation(-0.0591,0.076,-0.0928)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_medial_malleolus"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_r_sphyrion_pt").setName("r_sphyrion_pt").setTranslation(-0.0603,0.061,-0.1002)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_sphyrion"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_r_calcaneous_post_pt").setName("r_calcaneous_post_pt").setTranslation(-0.0692,0.0297,-0.1221)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_calcaneous_post"))
                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                .addChild(new HAnimJoint("hanim_r_subtalar").setName("r_subtalar").setCenter(-0.1086,0.0001,-0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                  .addChild(new HAnimSegment("hanim_r_midproximal").setName("r_midproximal")
                    .addComments(" <HAnimJoint name='r_subtalar'/> visualization sphere is placed within <HAnimSegment name='r_midproximal'/> ")
                    .addChild(new TouchSensor().setDescription("HAnimJoint r_subtalar, HAnimSegment r_midproximal"))
                    .addChild(new Transform().setTranslation(-0.1086,0.0001,-0.0368)
                      .addChild(new Shape().setUSE("HAnimJointShape")))
                    .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_subtalar'/> to <HAnimJoint name='r_midtarsal'/> ")
                    .addChild(new Shape()
                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0001,-0.0368,-0.1086,0.0001,0.0368})))
                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                  .addChild(new HAnimJoint("hanim_r_midtarsal").setName("r_midtarsal").setCenter(-0.1086,0.0001,0.0368).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                    .addChild(new HAnimSegment("hanim_r_middistal").setName("r_middistal")
                      .addComments(" <HAnimJoint name='r_midtarsal'/> visualization sphere is placed within <HAnimSegment name='r_middistal'/> ")
                      .addChild(new TouchSensor().setDescription("HAnimJoint r_midtarsal, HAnimSegment r_middistal"))
                      .addChild(new Transform().setTranslation(-0.1086,0.0001,0.0368)
                        .addChild(new Shape().setUSE("HAnimJointShape")))
                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_midtarsal'/> to <HAnimJoint name='r_metatarsal'/> ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0001,0.0368,-0.1086,0.0,0.0762})))
                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_midtarsal'/> to <HAnimSite name='r_metatarsal_pha1'/> ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0001,0.0368,-0.0521,0.026,0.0127})))
                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                      .addChild(new HAnimSite("hanim_r_metatarsal_pha1_pt").setName("r_metatarsal_pha1_pt").setTranslation(-0.0521,0.026,0.0127)
                        .addComments(" HAnimSite visualization shape ")
                        .addChild(new TouchSensor().setDescription("HAnimSite r_metatarsal_pha1"))
                        .addChild(new Shape().setUSE("HAnimSiteShape"))))
                    .addChild(new HAnimJoint("hanim_r_metatarsal").setName("r_metatarsal").setCenter(-0.1086,0.0,0.0762).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                      .addChild(new HAnimSegment("hanim_r_forefoot").setName("r_forefoot")
                        .addComments(" <HAnimJoint name='r_metatarsal'/> visualization sphere is placed within <HAnimSegment name='r_forefoot'/> ")
                        .addChild(new TouchSensor().setDescription("HAnimJoint r_metatarsal, HAnimSegment r_forefoot"))
                        .addChild(new Transform().setTranslation(-0.1086,0.0,0.0762)
                          .addChild(new Shape().setUSE("HAnimJointShape")))
                        .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_metatarsal'/> to <HAnimSite name='r_forefoot_tip'/> ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0,0.0762,-0.1043,0.0227,0.145})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_metatarsal'/> to <HAnimSite name='r_metatarsal_pha5'/> ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0,0.0762,-0.1523,0.0166,0.0895})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_metatarsal'/> to <HAnimSite name='r_digit2'/> ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1086,0.0,0.0762,-0.0883,0.0134,0.1383})))
                            .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                        .addChild(new HAnimSite("hanim_r_forefoot_tip").setName("r_forefoot_tip").setTranslation(-0.1043,0.0227,0.145)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite r_forefoot_tip"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_r_metatarsal_pha5_pt").setName("r_metatarsal_pha5_pt").setTranslation(-0.1523,0.0166,0.0895)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite r_metatarsal_pha5"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))
                        .addChild(new HAnimSite("hanim_r_digit2_pt").setName("r_digit2_pt").setTranslation(-0.0883,0.0134,0.1383)
                          .addComments(" HAnimSite visualization shape ")
                          .addChild(new TouchSensor().setDescription("HAnimSite r_digit2"))
                          .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))
        .addChild(new HAnimJoint("hanim_vl5").setName("vl5").setCenter(0.0028,1.0568,-0.0776).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
          .addChild(new HAnimSegment("hanim_l5").setName("l5")
            .addComments(" <HAnimJoint name='vl5'/> visualization sphere is placed within <HAnimSegment name='l5'/> ")
            .addChild(new TouchSensor().setDescription("HAnimJoint vl5, HAnimSegment l5"))
            .addChild(new Transform().setTranslation(0.0028,1.0568,-0.0776)
              .addChild(new Shape().setUSE("HAnimJointShape")))
            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vl5'/> to <HAnimJoint name='vl4'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0028,1.0568,-0.0776,0.0035,1.0925,-0.0787})))
                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vl5'/> to <HAnimSite name='waist_preferred_post'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0028,1.0568,-0.0776,0.0,1.0915,-0.1091})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vl5'/> to <HAnimSite name='navel'/> ")
            .addChild(new Shape()
              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0028,1.0568,-0.0776,0.0069,1.0966,0.1017})))
                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
            .addChild(new HAnimSite("hanim_waist_preferred_post_pt").setName("waist_preferred_post_pt").setTranslation(0.0,1.0915,-0.1091)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite waist_preferred_post"))
              .addChild(new Shape().setUSE("HAnimSiteShape")))
            .addChild(new HAnimSite("hanim_navel_pt").setName("navel_pt").setTranslation(0.0069,1.0966,0.1017)
              .addComments(" HAnimSite visualization shape ")
              .addChild(new TouchSensor().setDescription("HAnimSite navel"))
              .addChild(new Shape().setUSE("HAnimSiteShape"))))
          .addChild(new HAnimJoint("hanim_vl4").setName("vl4").setCenter(0.0035,1.0925,-0.0787).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
            .addChild(new HAnimSegment("hanim_l4").setName("l4")
              .addComments(" <HAnimJoint name='vl4'/> visualization sphere is placed within <HAnimSegment name='l4'/> ")
              .addChild(new TouchSensor().setDescription("HAnimJoint vl4, HAnimSegment l4"))
              .addChild(new Transform().setTranslation(0.0035,1.0925,-0.0787)
                .addChild(new Shape().setUSE("HAnimJointShape")))
              .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vl4'/> to <HAnimJoint name='vl3'/> ")
              .addChild(new Shape()
                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0035,1.0925,-0.0787,0.0041,1.1276,-0.0796})))
                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
            .addChild(new HAnimJoint("hanim_vl3").setName("vl3").setCenter(0.0041,1.1276,-0.0796).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
              .addChild(new HAnimSegment("hanim_l3").setName("l3")
                .addComments(" <HAnimJoint name='vl3'/> visualization sphere is placed within <HAnimSegment name='l3'/> ")
                .addChild(new TouchSensor().setDescription("HAnimJoint vl3, HAnimSegment l3"))
                .addChild(new Transform().setTranslation(0.0041,1.1276,-0.0796)
                  .addChild(new Shape().setUSE("HAnimJointShape")))
                .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vl3'/> to <HAnimJoint name='vl2'/> ")
                .addChild(new Shape()
                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0041,1.1276,-0.0796,0.0045,1.1546,-0.08})))
                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
              .addChild(new HAnimJoint("hanim_vl2").setName("vl2").setCenter(0.0045,1.1546,-0.08).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                .addChild(new HAnimSegment("hanim_l2").setName("l2")
                  .addComments(" <HAnimJoint name='vl2'/> visualization sphere is placed within <HAnimSegment name='l2'/> ")
                  .addChild(new TouchSensor().setDescription("HAnimJoint vl2, HAnimSegment l2"))
                  .addChild(new Transform().setTranslation(0.0045,1.1546,-0.08)
                    .addChild(new Shape().setUSE("HAnimJointShape")))
                  .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vl2'/> to <HAnimJoint name='vl1'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,0.0048,1.1912,-0.0805})))
                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vl2'/> to <HAnimSite name='r_rib10'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,-0.0711,1.1941,0.1016})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vl2'/> to <HAnimSite name='l_rib10'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,0.0871,1.1925,0.0992})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vl2'/> to <HAnimSite name='rib10_midspine'/> ")
                  .addChild(new Shape()
                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0045,1.1546,-0.08,0.0049,1.1908,-0.1113})))
                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                  .addChild(new HAnimSite("hanim_r_rib10_pt").setName("r_rib10_pt").setTranslation(-0.0711,1.1941,0.1016)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite r_rib10"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_l_rib10_pt").setName("l_rib10_pt").setTranslation(0.0871,1.1925,0.0992)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite l_rib10"))
                    .addChild(new Shape().setUSE("HAnimSiteShape")))
                  .addChild(new HAnimSite("hanim_rib10_midspine_pt").setName("rib10_midspine_pt").setTranslation(0.0049,1.1908,-0.1113)
                    .addComments(" HAnimSite visualization shape ")
                    .addChild(new TouchSensor().setDescription("HAnimSite rib10_midspine"))
                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                .addChild(new HAnimJoint("hanim_vl1").setName("vl1").setCenter(0.0048,1.1912,-0.0805).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                  .addChild(new HAnimSegment("hanim_l1").setName("l1")
                    .addComments(" <HAnimJoint name='vl1'/> visualization sphere is placed within <HAnimSegment name='l1'/> ")
                    .addChild(new TouchSensor().setDescription("HAnimJoint vl1, HAnimSegment l1"))
                    .addChild(new Transform().setTranslation(0.0048,1.1912,-0.0805)
                      .addChild(new Shape().setUSE("HAnimJointShape")))
                    .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vl1'/> to <HAnimJoint name='vt12'/> ")
                    .addChild(new Shape()
                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0048,1.1912,-0.0805,0.0051,1.2278,-0.0808})))
                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                  .addChild(new HAnimJoint("hanim_vt12").setName("vt12").setCenter(0.0051,1.2278,-0.0808).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                    .addChild(new HAnimSegment("hanim_t12").setName("t12")
                      .addComments(" <HAnimJoint name='vt12'/> visualization sphere is placed within <HAnimSegment name='t12'/> ")
                      .addChild(new TouchSensor().setDescription("HAnimJoint vt12, HAnimSegment t12"))
                      .addChild(new Transform().setTranslation(0.0051,1.2278,-0.0808)
                        .addChild(new Shape().setUSE("HAnimJointShape")))
                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt12'/> to <HAnimJoint name='vt11'/> ")
                      .addChild(new Shape()
                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0051,1.2278,-0.0808,0.0053,1.2679,-0.081})))
                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                    .addChild(new HAnimJoint("hanim_vt11").setName("vt11").setCenter(0.0053,1.2679,-0.081).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                      .addChild(new HAnimSegment("hanim_t11").setName("t11")
                        .addComments(" <HAnimJoint name='vt11'/> visualization sphere is placed within <HAnimSegment name='t11'/> ")
                        .addChild(new TouchSensor().setDescription("HAnimJoint vt11, HAnimSegment t11"))
                        .addChild(new Transform().setTranslation(0.0053,1.2679,-0.081)
                          .addChild(new Shape().setUSE("HAnimJointShape")))
                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt11'/> to <HAnimJoint name='vt10'/> ")
                        .addChild(new Shape()
                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0053,1.2679,-0.081,0.0056,1.2848,-0.0822})))
                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                      .addChild(new HAnimJoint("hanim_vt10").setName("vt10").setCenter(0.0056,1.2848,-0.0822).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                        .addChild(new HAnimSegment("hanim_t10").setName("t10")
                          .addComments(" <HAnimJoint name='vt10'/> visualization sphere is placed within <HAnimSegment name='t10'/> ")
                          .addChild(new TouchSensor().setDescription("HAnimJoint vt10, HAnimSegment t10"))
                          .addChild(new Transform().setTranslation(0.0056,1.2848,-0.0822)
                            .addChild(new Shape().setUSE("HAnimJointShape")))
                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt10'/> to <HAnimJoint name='vt9'/> ")
                          .addChild(new Shape()
                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0056,1.2848,-0.0822,0.0057,1.3126,-0.0838})))
                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                          .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vt10'/> to <HAnimSite name='substernale'/> ")
                          .addChild(new Shape()
                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0056,1.2848,-0.0822,0.0085,1.2995,0.1147})))
                              .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                          .addChild(new HAnimSite("hanim_substernale_pt").setName("substernale_pt").setTranslation(0.0085,1.2995,0.1147)
                            .addComments(" HAnimSite visualization shape ")
                            .addChild(new TouchSensor().setDescription("HAnimSite substernale"))
                            .addChild(new Shape().setUSE("HAnimSiteShape"))))
                        .addChild(new HAnimJoint("hanim_vt9").setName("vt9").setCenter(0.0057,1.3126,-0.0838).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                          .addChild(new HAnimSegment("hanim_t9").setName("t9")
                            .addComments(" <HAnimJoint name='vt9'/> visualization sphere is placed within <HAnimSegment name='t9'/> ")
                            .addChild(new TouchSensor().setDescription("HAnimJoint vt9, HAnimSegment t9"))
                            .addChild(new Transform().setTranslation(0.0057,1.3126,-0.0838)
                              .addChild(new Shape().setUSE("HAnimJointShape")))
                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt9'/> to <HAnimJoint name='vt8'/> ")
                            .addChild(new Shape()
                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3126,-0.0838,0.0057,1.3382,-0.0845})))
                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vt9'/> to <HAnimSite name='r_thelion'/> ")
                            .addChild(new Shape()
                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3126,-0.0838,-0.0736,1.3385,0.1217})))
                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vt9'/> to <HAnimSite name='l_thelion'/> ")
                            .addChild(new Shape()
                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3126,-0.0838,0.0918,1.3382,0.1192})))
                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                            .addChild(new HAnimSite("hanim_r_thelion_pt").setName("r_thelion_pt").setTranslation(-0.0736,1.3385,0.1217)
                              .addComments(" HAnimSite visualization shape ")
                              .addChild(new TouchSensor().setDescription("HAnimSite r_thelion"))
                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                            .addChild(new HAnimSite("hanim_l_thelion_pt").setName("l_thelion_pt").setTranslation(0.0918,1.3382,0.1192)
                              .addComments(" HAnimSite visualization shape ")
                              .addChild(new TouchSensor().setDescription("HAnimSite l_thelion"))
                              .addChild(new Shape().setUSE("HAnimSiteShape"))))
                          .addChild(new HAnimJoint("hanim_vt8").setName("vt8").setCenter(0.0057,1.3382,-0.0845).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                            .addChild(new HAnimSegment("hanim_t8").setName("t8")
                              .addComments(" <HAnimJoint name='vt8'/> visualization sphere is placed within <HAnimSegment name='t8'/> ")
                              .addChild(new TouchSensor().setDescription("HAnimJoint vt8, HAnimSegment t8"))
                              .addChild(new Transform().setTranslation(0.0057,1.3382,-0.0845)
                                .addChild(new Shape().setUSE("HAnimJointShape")))
                              .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt8'/> to <HAnimJoint name='vt7'/> ")
                              .addChild(new Shape()
                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0057,1.3382,-0.0845,0.0058,1.3625,-0.0833})))
                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                            .addChild(new HAnimJoint("hanim_vt7").setName("vt7").setCenter(0.0058,1.3625,-0.0833).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                              .addChild(new HAnimSegment("hanim_t7").setName("t7")
                                .addComments(" <HAnimJoint name='vt7'/> visualization sphere is placed within <HAnimSegment name='t7'/> ")
                                .addChild(new TouchSensor().setDescription("HAnimJoint vt7, HAnimSegment t7"))
                                .addChild(new Transform().setTranslation(0.0058,1.3625,-0.0833)
                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt7'/> to <HAnimJoint name='vt6'/> ")
                                .addChild(new Shape()
                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0058,1.3625,-0.0833,0.0059,1.3866,-0.08})))
                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                              .addChild(new HAnimJoint("hanim_vt6").setName("vt6").setCenter(0.0059,1.3866,-0.08).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                .addChild(new HAnimSegment("hanim_t6").setName("t6")
                                  .addComments(" <HAnimJoint name='vt6'/> visualization sphere is placed within <HAnimSegment name='t6'/> ")
                                  .addChild(new TouchSensor().setDescription("HAnimJoint vt6, HAnimSegment t6"))
                                  .addChild(new Transform().setTranslation(0.0059,1.3866,-0.08)
                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                  .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt6'/> to <HAnimJoint name='vt5'/> ")
                                  .addChild(new Shape()
                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0059,1.3866,-0.08,0.006,1.4102,-0.0745})))
                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                .addChild(new HAnimJoint("hanim_vt5").setName("vt5").setCenter(0.006,1.4102,-0.0745).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                  .addChild(new HAnimSegment("hanim_t5").setName("t5")
                                    .addComments(" <HAnimJoint name='vt5'/> visualization sphere is placed within <HAnimSegment name='t5'/> ")
                                    .addChild(new TouchSensor().setDescription("HAnimJoint vt5, HAnimSegment t5"))
                                    .addChild(new Transform().setTranslation(0.006,1.4102,-0.0745)
                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                    .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt5'/> to <HAnimJoint name='vt4'/> ")
                                    .addChild(new Shape()
                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.006,1.4102,-0.0745,0.0061,1.432,-0.0675})))
                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                  .addChild(new HAnimJoint("hanim_vt4").setName("vt4").setCenter(0.0061,1.432,-0.0675).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                    .addChild(new HAnimSegment("hanim_t4").setName("t4")
                                      .addComments(" <HAnimJoint name='vt4'/> visualization sphere is placed within <HAnimSegment name='t4'/> ")
                                      .addChild(new TouchSensor().setDescription("HAnimJoint vt4, HAnimSegment t4"))
                                      .addChild(new Transform().setTranslation(0.0061,1.432,-0.0675)
                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt4'/> to <HAnimJoint name='vt3'/> ")
                                      .addChild(new Shape()
                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0061,1.432,-0.0675,0.0062,1.4583,-0.057})))
                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                    .addChild(new HAnimJoint("hanim_vt3").setName("vt3").setCenter(0.0062,1.4583,-0.057).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                      .addChild(new HAnimSegment("hanim_t3").setName("t3")
                                        .addComments(" <HAnimJoint name='vt3'/> visualization sphere is placed within <HAnimSegment name='t3'/> ")
                                        .addChild(new TouchSensor().setDescription("HAnimJoint vt3, HAnimSegment t3"))
                                        .addChild(new Transform().setTranslation(0.0062,1.4583,-0.057)
                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt3'/> to <HAnimJoint name='vt2'/> ")
                                        .addChild(new Shape()
                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0062,1.4583,-0.057,0.0063,1.4761,-0.0484})))
                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                      .addChild(new HAnimJoint("hanim_vt2").setName("vt2").setCenter(0.0063,1.4761,-0.0484).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                        .addChild(new HAnimSegment("hanim_t2").setName("t2")
                                          .addComments(" <HAnimJoint name='vt2'/> visualization sphere is placed within <HAnimSegment name='t2'/> ")
                                          .addChild(new TouchSensor().setDescription("HAnimJoint vt2, HAnimSegment t2"))
                                          .addChild(new Transform().setTranslation(0.0063,1.4761,-0.0484)
                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt2'/> to <HAnimJoint name='vt1'/> ")
                                          .addChild(new Shape()
                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0063,1.4761,-0.0484,0.0065,1.4951,-0.0387})))
                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                        .addChild(new HAnimJoint("hanim_vt1").setName("vt1").setCenter(0.0065,1.4951,-0.0387).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                          .addChild(new HAnimSegment("hanim_t1").setName("t1")
                                            .addComments(" <HAnimJoint name='vt1'/> visualization sphere is placed within <HAnimSegment name='t1'/> ")
                                            .addChild(new TouchSensor().setDescription("HAnimJoint vt1, HAnimSegment t1"))
                                            .addChild(new Transform().setTranslation(0.0065,1.4951,-0.0387)
                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt1'/> to <HAnimJoint name='vc7'/> ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.0066,1.5132,-0.0301})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt1'/> to <HAnimJoint name='l_sternoclavicular'/> ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.082,1.4488,-0.0353})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vt1'/> to <HAnimJoint name='r_sternoclavicular'/> ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,-0.082,1.4488,-0.0353})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vt1'/> to <HAnimSite name='suprasternale'/> ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.0084,1.4714,0.0551})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vt1'/> to <HAnimSite name='cervicale'/> ")
                                            .addChild(new Shape()
                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0065,1.4951,-0.0387,0.0064,1.52,-0.0815})))
                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                            .addChild(new HAnimSite("hanim_suprasternale_pt").setName("suprasternale_pt").setTranslation(0.0084,1.4714,0.0551)
                                              .addComments(" HAnimSite visualization shape ")
                                              .addChild(new TouchSensor().setDescription("HAnimSite suprasternale"))
                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                            .addChild(new HAnimSite("hanim_cervicale_pt").setName("cervicale_pt").setTranslation(0.0064,1.52,-0.0815)
                                              .addComments(" HAnimSite visualization shape ")
                                              .addChild(new TouchSensor().setDescription("HAnimSite cervicale"))
                                              .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                          .addChild(new HAnimJoint("hanim_vc7").setName("vc7").setCenter(0.0066,1.5132,-0.0301).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                            .addChild(new HAnimSegment("hanim_c7").setName("c7")
                                              .addComments(" <HAnimJoint name='vc7'/> visualization sphere is placed within <HAnimSegment name='c7'/> ")
                                              .addChild(new TouchSensor().setDescription("HAnimJoint vc7, HAnimSegment c7"))
                                              .addChild(new Transform().setTranslation(0.0066,1.5132,-0.0301)
                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                              .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vc7'/> to <HAnimJoint name='vc6'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5132,-0.0301,0.0066,1.5357,-0.0143})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vc7'/> to <HAnimSite name='r_neck_base'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5132,-0.0301,-0.0419,1.5149,-0.022})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='vc7'/> to <HAnimSite name='l_neck_base'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5132,-0.0301,0.0646,1.5141,-0.038})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addChild(new HAnimSite("hanim_r_neck_base_pt").setName("r_neck_base_pt").setTranslation(-0.0419,1.5149,-0.022)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_neck_base"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_neck_base_pt").setName("l_neck_base_pt").setTranslation(0.0646,1.5141,-0.038)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_neck_base"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                            .addChild(new HAnimJoint("hanim_vc6").setName("vc6").setCenter(0.0066,1.5357,-0.0143).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                              .addChild(new HAnimSegment("hanim_c6").setName("c6")
                                                .addComments(" <HAnimJoint name='vc6'/> visualization sphere is placed within <HAnimSegment name='c6'/> ")
                                                .addChild(new TouchSensor().setDescription("HAnimJoint vc6, HAnimSegment c6"))
                                                .addChild(new Transform().setTranslation(0.0066,1.5357,-0.0143)
                                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                                .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vc6'/> to <HAnimJoint name='vc5'/> ")
                                                .addChild(new Shape()
                                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5357,-0.0143,0.0066,1.552,-0.0082})))
                                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                              .addChild(new HAnimJoint("hanim_vc5").setName("vc5").setCenter(0.0066,1.552,-0.0082).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                .addChild(new HAnimSegment("hanim_c5").setName("c5")
                                                  .addComments(" <HAnimJoint name='vc5'/> visualization sphere is placed within <HAnimSegment name='c5'/> ")
                                                  .addChild(new TouchSensor().setDescription("HAnimJoint vc5, HAnimSegment c5"))
                                                  .addChild(new Transform().setTranslation(0.0066,1.552,-0.0082)
                                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                                  .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vc5'/> to <HAnimJoint name='vc4'/> ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.552,-0.0082,0.0066,1.5662,-0.0084})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                .addChild(new HAnimJoint("hanim_vc4").setName("vc4").setCenter(0.0066,1.5662,-0.0084).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                  .addChild(new HAnimSegment("hanim_c4").setName("c4")
                                                    .addComments(" <HAnimJoint name='vc4'/> visualization sphere is placed within <HAnimSegment name='c4'/> ")
                                                    .addChild(new TouchSensor().setDescription("HAnimJoint vc4, HAnimSegment c4"))
                                                    .addChild(new Transform().setTranslation(0.0066,1.5662,-0.0084)
                                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                                    .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vc4'/> to <HAnimJoint name='vc3'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5662,-0.0084,0.0066,1.58,-0.0103})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                  .addChild(new HAnimJoint("hanim_vc3").setName("vc3").setCenter(0.0066,1.58,-0.0103).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                    .addChild(new HAnimSegment("hanim_c3").setName("c3")
                                                      .addComments(" <HAnimJoint name='vc3'/> visualization sphere is placed within <HAnimSegment name='c3'/> ")
                                                      .addChild(new TouchSensor().setDescription("HAnimJoint vc3, HAnimSegment c3"))
                                                      .addChild(new Transform().setTranslation(0.0066,1.58,-0.0103)
                                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vc3'/> to <HAnimJoint name='vc2'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.58,-0.0103,0.0066,1.5928,-0.0103})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                    .addChild(new HAnimJoint("hanim_vc2").setName("vc2").setCenter(0.0066,1.5928,-0.0103).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_c2").setName("c2")
                                                        .addComments(" <HAnimJoint name='vc2'/> visualization sphere is placed within <HAnimSegment name='c2'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint vc2, HAnimSegment c2"))
                                                        .addChild(new Transform().setTranslation(0.0066,1.5928,-0.0103)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vc2'/> to <HAnimJoint name='vc1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.5928,-0.0103,0.0066,1.6144,-0.0034})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_vc1").setName("vc1").setCenter(0.0066,1.6144,-0.0034).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_c1").setName("c1")
                                                          .addComments(" <HAnimJoint name='vc1'/> visualization sphere is placed within <HAnimSegment name='c1'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint vc1, HAnimSegment c1"))
                                                          .addChild(new Transform().setTranslation(0.0066,1.6144,-0.0034)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='vc1'/> to <HAnimJoint name='skullbase'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0066,1.6144,-0.0034,0.0044,1.6209,0.0236})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_skullbase").setName("skullbase").setCenter(0.0044,1.6209,0.0236).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_skull").setName("skull")
                                                            .addComments(" <HAnimJoint name='skullbase'/> visualization sphere is placed within <HAnimSegment name='skull'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint skullbase, HAnimSegment skull"))
                                                            .addChild(new Transform().setTranslation(0.0044,1.6209,0.0236)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='skullbase'/> to <HAnimJoint name='l_eyeball_joint'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='skullbase'/> to <HAnimJoint name='l_eyelid_joint'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='skullbase'/> to <HAnimJoint name='l_eyebrow_joint'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0336,1.635,0.0506})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='skullbase'/> to <HAnimJoint name='r_eyeball_joint'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='skullbase'/> to <HAnimJoint name='r_eyelid_joint'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0336,1.6332,0.0502})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='skullbase'/> to <HAnimJoint name='r_eyebrow_joint'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0336,1.635,0.0506})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='skullbase'/> to <HAnimJoint name='temporomandibular'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0,1.63,0.015})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='skull_tip'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.005,1.7504,0.0055})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='sellion'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0058,1.6316,0.0852})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='r_infraorbitale'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0237,1.6171,0.0752})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='l_infraorbitale'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0341,1.6171,0.0752})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='supramenton'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0061,1.541,0.0805})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='r_tragion'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.0646,1.6347,0.0302})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='r_gonion'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,-0.052,1.5529,0.0347})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='l_tragion'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0739,1.6348,0.0282})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='l_gonion'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0631,1.553,0.033})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='skullbase'/> to <HAnimSite name='nuchale'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0044,1.6209,0.0236,0.0039,1.5972,-0.0796})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addChild(new HAnimSite("hanim_skull_tip").setName("skull_tip").setTranslation(0.005,1.7504,0.0055)
                                                              .addComments(" TODO move skull_tip x to zero, check others for symmetry ")
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite skull_tip"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_sellion_pt").setName("sellion_pt").setTranslation(0.0058,1.6316,0.0852)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite sellion"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_r_infraorbitale_pt").setName("r_infraorbitale_pt").setTranslation(-0.0237,1.6171,0.0752)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_infraorbitale"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_l_infraorbitale_pt").setName("l_infraorbitale_pt").setTranslation(0.0341,1.6171,0.0752)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_infraorbitale"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_supramenton_pt").setName("supramenton_pt").setTranslation(0.0061,1.541,0.0805)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite supramenton"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_r_tragion_pt").setName("r_tragion_pt").setTranslation(-0.0646,1.6347,0.0302)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_tragion"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_r_gonion_pt").setName("r_gonion_pt").setTranslation(-0.052,1.5529,0.0347)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_gonion"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_l_tragion_pt").setName("l_tragion_pt").setTranslation(0.0739,1.6348,0.0282)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_tragion"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_l_gonion_pt").setName("l_gonion_pt").setTranslation(0.0631,1.553,0.033)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_gonion"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                            .addChild(new HAnimSite("hanim_nuchale_pt").setName("nuchale_pt").setTranslation(0.0039,1.5972,-0.0796)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite nuchale"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                          .addChild(new HAnimJoint("hanim_l_eyeball_joint").setName("l_eyeball_joint").setCenter(0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_eyeball").setName("l_eyeball")
                                                              .addComments(" <HAnimJoint name='l_eyeball_joint'/> visualization sphere is placed within <HAnimSegment name='l_eyeball'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_eyeball_joint, HAnimSegment l_eyeball"))
                                                              .addChild(new Transform().setTranslation(0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor <HAnimJoint name='l_eyeball_joint'/> to <HAnimSite name='l_eyeball_site_view'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0336,1.6332,0.0502,0.034,1.64,0.05})))
                                                                  .setColor(new ColorRGBA("HAnimSiteViewpointLineColorRGBA").setColor(new MFColorRGBA(new double[] {0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.1})))))
                                                              .addChild(new HAnimSite("hanim_l_eyeball_site_view").setName("l_eyeball_site_view").setTranslation(0.034,1.64,0.05)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_eyeball_site_view"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                                .addChild(new Viewpoint("hanim_l_eyeball_site_viewpoint").setDescription("l_eyeball_site_viewpoint looking forward").setOrientation(0.0,1.0,0.0,3.141593).setPosition(0.0,0.0,0.0))
                                                                .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                                .addChild(new Anchor().setDescription("HAnimSite hanim_l_eyeball_site_view Viewpoint").setUrl(new String[] {"#hanim_l_eyeball_site_viewpoint"})
                                                                  .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                                    .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                                    .addChild(new Shape("HAnimSiteViewpointShape")
                                                                      .setGeometry(new IndexedFaceSet("SiteViewpointDiamondIFS").setDEF("SiteViewpointDiamondIFS").setCreaseAngle(0.5).setCoordIndex(new int[] {0,1,2,-1,0,2,3,-1,0,3,4,-1,0,4,1,-1,5,2,1,-1,5,3,2,-1,5,4,3,-1,5,1,4,-1})
                                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.010,0.0,-0.010,0.0,0.0,0.0,0.0,0.010,0.010,0.0,0.0,0.0,0.0,-0.010,0.0,-0.010,0.0}))))
                                                                      .setAppearance(new Appearance()
                                                                        .setMaterial(new Material().setDiffuseColor(0.0,0.0,1.0).setTransparency(0.6)))))))))
                                                          .addChild(new HAnimJoint("hanim_l_eyelid_joint").setName("l_eyelid_joint").setCenter(0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_eyelid").setName("l_eyelid")
                                                              .addComments(" <HAnimJoint name='l_eyelid_joint'/> visualization sphere is placed within <HAnimSegment name='l_eyelid'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_eyelid_joint, HAnimSegment l_eyelid"))
                                                              .addChild(new Transform().setTranslation(0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_l_eyebrow_joint").setName("l_eyebrow_joint").setCenter(0.0336,1.635,0.0506).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_eyebrow").setName("l_eyebrow")
                                                              .addComments(" <HAnimJoint name='l_eyebrow_joint'/> visualization sphere is placed within <HAnimSegment name='l_eyebrow'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_eyebrow_joint, HAnimSegment l_eyebrow"))
                                                              .addChild(new Transform().setTranslation(0.0336,1.635,0.0506)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_r_eyeball_joint").setName("r_eyeball_joint").setCenter(-0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_eyeball").setName("r_eyeball")
                                                              .addComments(" <HAnimJoint name='r_eyeball_joint'/> visualization sphere is placed within <HAnimSegment name='r_eyeball'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_eyeball_joint, HAnimSegment r_eyeball"))
                                                              .addChild(new Transform().setTranslation(-0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor <HAnimJoint name='r_eyeball_joint'/> to <HAnimSite name='r_eyeball_site_view'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0336,1.6332,0.0502,-0.034,1.64,0.05})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteViewpointLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_eyeball_site_view").setName("r_eyeball_site_view").setTranslation(-0.034,1.64,0.05)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_eyeball_site_view"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                                .addChild(new Viewpoint("hanim_r_eyeball_site_viewpoint").setDescription("r_eyeball_site_viewpoint looking forward").setOrientation(0.0,1.0,0.0,3.141593).setPosition(0.0,0.0,0.0))
                                                                .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                                .addChild(new Anchor().setDescription("HAnimSite hanim_r_eyeball_site_view Viewpoint").setUrl(new String[] {"#hanim_r_eyeball_site_viewpoint"})
                                                                  .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                                    .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                                    .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))))
                                                          .addChild(new HAnimJoint("hanim_r_eyelid_joint").setName("r_eyelid_joint").setCenter(-0.0336,1.6332,0.0502).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_eyelid").setName("r_eyelid")
                                                              .addComments(" <HAnimJoint name='r_eyelid_joint'/> visualization sphere is placed within <HAnimSegment name='r_eyelid'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_eyelid_joint, HAnimSegment r_eyelid"))
                                                              .addChild(new Transform().setTranslation(-0.0336,1.6332,0.0502)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_r_eyebrow_joint").setName("r_eyebrow_joint").setCenter(-0.0336,1.635,0.0506).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_eyebrow").setName("r_eyebrow")
                                                              .addComments(" <HAnimJoint name='r_eyebrow_joint'/> visualization sphere is placed within <HAnimSegment name='r_eyebrow'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_eyebrow_joint, HAnimSegment r_eyebrow"))
                                                              .addChild(new Transform().setTranslation(-0.0336,1.635,0.0506)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))))
                                                          .addChild(new HAnimJoint("hanim_temporomandibular").setName("temporomandibular").setCenter(0.0,1.63,0.015).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addComments(" Single joint, single segment for jaw, two sites for left/right TMJs https://en.wikipedia.org/wiki/Temporomandibular_joint ")
                                                            .addChild(new HAnimSegment("hanim_jaw").setName("jaw")
                                                              .addComments(" <HAnimJoint name='temporomandibular'/> visualization sphere is placed within <HAnimSegment name='jaw'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint temporomandibular, HAnimSegment jaw"))
                                                              .addChild(new Transform().setTranslation(0.0,1.63,0.015)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='temporomandibular'/> to <HAnimSite name='temporomandibular_l_site'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,1.63,0.015,0.045,1.63,0.0})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='temporomandibular'/> to <HAnimSite name='temporomandibular_r_site'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,1.63,0.015,-0.045,1.63,0.0})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_temporomandibular_l_site_pt").setName("temporomandibular_l_site_pt").setTranslation(0.045,1.63,0.0)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite temporomandibular_l_site"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                              .addChild(new HAnimSite("hanim_temporomandibular_r_site_pt").setName("temporomandibular_r_site_pt").setTranslation(-0.045,1.63,0.0)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite temporomandibular_r_site"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))))
                                          .addChild(new HAnimJoint("hanim_l_sternoclavicular").setName("l_sternoclavicular").setCenter(0.082,1.4488,-0.0353).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                            .addChild(new HAnimSegment("hanim_l_clavicle").setName("l_clavicle")
                                              .addComments(" <HAnimJoint name='l_sternoclavicular'/> visualization sphere is placed within <HAnimSegment name='l_clavicle'/> ")
                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_sternoclavicular, HAnimSegment l_clavicle"))
                                              .addChild(new Transform().setTranslation(0.082,1.4488,-0.0353)
                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                              .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_sternoclavicular'/> to <HAnimJoint name='l_acromioclavicular'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.0962,1.4269,-0.0424})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_sternoclavicular'/> to <HAnimSite name='l_clavicale'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.0271,1.4943,0.0394})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_sternoclavicular'/> to <HAnimSite name='l_acromion'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.2032,1.476,-0.049})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_sternoclavicular'/> to <HAnimSite name='l_axilla_ant'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.1777,1.4065,-0.0075})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_sternoclavicular'/> to <HAnimSite name='l_axilla_post'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.082,1.4488,-0.0353,0.1706,1.4072,-0.0875})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addChild(new HAnimSite("hanim_l_clavicale_pt").setName("l_clavicale_pt").setTranslation(0.0271,1.4943,0.0394)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_clavicale"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_acromion_pt").setName("l_acromion_pt").setTranslation(0.2032,1.476,-0.049)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_acromion"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_axilla_ant_pt").setName("l_axilla_ant_pt").setTranslation(0.1777,1.4065,-0.0075)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_axilla_ant"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_l_axilla_post_pt").setName("l_axilla_post_pt").setTranslation(0.1706,1.4072,-0.0875)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite l_axilla_post"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                            .addChild(new HAnimJoint("hanim_l_acromioclavicular").setName("l_acromioclavicular").setCenter(0.0962,1.4269,-0.0424).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                              .addChild(new HAnimSegment("hanim_l_scapula").setName("l_scapula")
                                                .addComments(" <HAnimJoint name='l_acromioclavicular'/> visualization sphere is placed within <HAnimSegment name='l_scapula'/> ")
                                                .addChild(new TouchSensor().setDescription("HAnimJoint l_acromioclavicular, HAnimSegment l_scapula"))
                                                .addChild(new Transform().setTranslation(0.0962,1.4269,-0.0424)
                                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                                .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_acromioclavicular'/> to <HAnimJoint name='l_shoulder'/> ")
                                                .addChild(new Shape()
                                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0962,1.4269,-0.0424,0.2029,1.4376,-0.0387})))
                                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                              .addChild(new HAnimJoint("hanim_l_shoulder").setName("l_shoulder").setCenter(0.2029,1.4376,-0.0387).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                .addChild(new HAnimSegment("hanim_l_upperarm").setName("l_upperarm")
                                                  .addComments(" <HAnimJoint name='l_shoulder'/> visualization sphere is placed within <HAnimSegment name='l_upperarm'/> ")
                                                  .addChild(new TouchSensor().setDescription("HAnimJoint l_shoulder, HAnimSegment l_upperarm"))
                                                  .addChild(new Transform().setTranslation(0.2029,1.4376,-0.0387)
                                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                                  .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_shoulder'/> to <HAnimJoint name='l_elbow'/> ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2029,1.4376,-0.0387,0.2014,1.1357,-0.0682})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_shoulder'/> to <HAnimSite name='l_humeral_lateral_epicn'/> ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2029,1.4376,-0.0387,0.228,1.1482,-0.11})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                  .addChild(new HAnimSite("hanim_l_humeral_lateral_epicn_pt").setName("l_humeral_lateral_epicn_pt").setTranslation(0.228,1.1482,-0.11)
                                                    .addComments(" HAnimSite visualization shape ")
                                                    .addChild(new TouchSensor().setDescription("HAnimSite l_humeral_lateral_epicn"))
                                                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                .addChild(new HAnimJoint("hanim_l_elbow").setName("l_elbow").setCenter(0.2014,1.1357,-0.0682).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                  .addChild(new HAnimSegment("hanim_l_forearm").setName("l_forearm")
                                                    .addComments(" <HAnimJoint name='l_elbow'/> visualization sphere is placed within <HAnimSegment name='l_forearm'/> ")
                                                    .addChild(new TouchSensor().setDescription("HAnimJoint l_elbow, HAnimSegment l_forearm"))
                                                    .addChild(new Transform().setTranslation(0.2014,1.1357,-0.0682)
                                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                                    .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_elbow'/> to <HAnimJoint name='l_wrist'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1984,0.8663,-0.0583})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_elbow'/> to <HAnimSite name='l_radial_styloid'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1901,0.8645,-0.0415})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_elbow'/> to <HAnimSite name='l_olecranon'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1962,1.1375,-0.1123})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_elbow'/> to <HAnimSite name='l_humeral_medial_epicn'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.1735,1.1272,-0.1113})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_elbow'/> to <HAnimSite name='l_radiale'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2014,1.1357,-0.0682,0.2182,1.1212,-0.1167})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addChild(new HAnimSite("hanim_l_radial_styloid_pt").setName("l_radial_styloid_pt").setTranslation(0.1901,0.8645,-0.0415)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_radial_styloid"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_l_olecranon_pt").setName("l_olecranon_pt").setTranslation(0.1962,1.1375,-0.1123)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_olecranon"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_l_humeral_medial_epicn_pt").setName("l_humeral_medial_epicn_pt").setTranslation(0.1735,1.1272,-0.1113)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_humeral_medial_epicn"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_l_radiale_pt").setName("l_radiale_pt").setTranslation(0.2182,1.1212,-0.1167)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite l_radiale"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                  .addChild(new HAnimJoint("hanim_l_wrist").setName("l_wrist").setCenter(0.1984,0.8663,-0.0583).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                    .addChild(new HAnimSegment("hanim_l_hand").setName("l_hand")
                                                      .addComments(" <HAnimJoint name='l_wrist'/> visualization sphere is placed within <HAnimSegment name='l_hand'/> ")
                                                      .addChild(new TouchSensor().setDescription("HAnimJoint l_wrist, HAnimSegment l_hand"))
                                                      .addChild(new Transform().setTranslation(0.1984,0.8663,-0.0583)
                                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_wrist'/> to <HAnimJoint name='l_thumb1'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1924,0.8472,-0.0534})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_wrist'/> to <HAnimJoint name='l_index0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1983,0.8024,-0.028})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_wrist'/> to <HAnimJoint name='l_middle0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1987,0.8029,-0.053})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_wrist'/> to <HAnimJoint name='l_ring0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1956,0.8019,-0.0794})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_wrist'/> to <HAnimJoint name='l_pinky0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1925,0.8066,-0.1036})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_wrist'/> to <HAnimSite name='l_metacarpal_pha2'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.2009,0.8139,-0.0237})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_wrist'/> to <HAnimSite name='l_ulnar_styloid'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.2142,0.8529,-0.0648})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_wrist'/> to <HAnimSite name='l_metacarpal_pha5'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.1929,0.786,-0.1122})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor <HAnimJoint name='l_wrist'/> to <HAnimSite name='l_hand_front_view'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1984,0.8663,-0.0583,0.3,0.75,0.45})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteViewpointLineColorRGBA"))))
                                                      .addChild(new HAnimSite("hanim_l_metacarpal_pha2_pt").setName("l_metacarpal_pha2_pt").setTranslation(0.2009,0.8139,-0.0237)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_metacarpal_pha2"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_l_ulnar_styloid_pt").setName("l_ulnar_styloid_pt").setTranslation(0.2142,0.8529,-0.0648)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_ulnar_styloid"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_l_metacarpal_pha5_pt").setName("l_metacarpal_pha5_pt").setTranslation(0.1929,0.786,-0.1122)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_metacarpal_pha5"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_l_hand_front_view").setName("l_hand_front_view").setTranslation(0.3,0.75,0.45)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite l_hand_front_view"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                        .addChild(new Viewpoint("hanim_l_hand_front_viewpoint").setDescription("left hand front").setCenterOfRotation(0.0,0.7,0.0).setPosition(0.0,0.0,0.0))
                                                        .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                        .addChild(new Anchor().setDescription("HAnimSite hanim_l_hand_front_view Viewpoint").setUrl(new String[] {"#hanim_l_hand_front_viewpoint"})
                                                          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                            .addChild(new Shape().setUSE("HAnimSiteViewpointShape"))))))
                                                    .addChild(new HAnimJoint("hanim_l_thumb1").setName("l_thumb1").setCenter(0.1924,0.8472,-0.0534).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_thumb_metacarpal").setName("l_thumb_metacarpal")
                                                        .addComments(" <HAnimJoint name='l_thumb1'/> visualization sphere is placed within <HAnimSegment name='l_thumb_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_thumb1, HAnimSegment l_thumb_metacarpal"))
                                                        .addChild(new Transform().setTranslation(0.1924,0.8472,-0.0534)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_thumb1'/> to <HAnimJoint name='l_thumb2'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1924,0.8472,-0.0534,0.1951,0.8226,0.0246})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_thumb2").setName("l_thumb2").setCenter(0.1951,0.8226,0.0246).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_thumb_proximal").setName("l_thumb_proximal")
                                                          .addComments(" <HAnimJoint name='l_thumb2'/> visualization sphere is placed within <HAnimSegment name='l_thumb_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_thumb2, HAnimSegment l_thumb_proximal"))
                                                          .addChild(new Transform().setTranslation(0.1951,0.8226,0.0246)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_thumb2'/> to <HAnimJoint name='l_thumb3'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1951,0.8226,0.0246,0.1955,0.8159,0.0464})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_thumb3").setName("l_thumb3").setCenter(0.1955,0.8159,0.0464).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_thumb_distal").setName("l_thumb_distal")
                                                            .addComments(" <HAnimJoint name='l_thumb3'/> visualization sphere is placed within <HAnimSegment name='l_thumb_distal'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_thumb3, HAnimSegment l_thumb_distal"))
                                                            .addChild(new Transform().setTranslation(0.1955,0.8159,0.0464)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_thumb3'/> to <HAnimSite name='l_thumb_distal_tip'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1955,0.8159,0.0464,0.1982,0.8061,0.0759})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addChild(new HAnimSite("hanim_l_thumb_distal_tip").setName("l_thumb_distal_tip").setTranslation(0.1982,0.8061,0.0759)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite l_thumb_distal_tip"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))))))
                                                    .addChild(new HAnimJoint("hanim_l_index0").setName("l_index0").setCenter(0.1983,0.8024,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_index_metacarpal").setName("l_index_metacarpal")
                                                        .addComments(" <HAnimJoint name='l_index0'/> visualization sphere is placed within <HAnimSegment name='l_index_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_index0, HAnimSegment l_index_metacarpal"))
                                                        .addChild(new Transform().setTranslation(0.1983,0.8024,-0.028)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_index0'/> to <HAnimJoint name='l_index1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1983,0.8024,-0.028,0.1983,0.7815,-0.028})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_index1").setName("l_index1").setCenter(0.1983,0.7815,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_index_proximal").setName("l_index_proximal")
                                                          .addComments(" <HAnimJoint name='l_index1'/> visualization sphere is placed within <HAnimSegment name='l_index_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_index1, HAnimSegment l_index_proximal"))
                                                          .addChild(new Transform().setTranslation(0.1983,0.7815,-0.028)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_index1'/> to <HAnimJoint name='l_index2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1983,0.7815,-0.028,0.2017,0.7363,-0.0248})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_index2").setName("l_index2").setCenter(0.2017,0.7363,-0.0248).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_index_middle").setName("l_index_middle")
                                                            .addComments(" <HAnimJoint name='l_index2'/> visualization sphere is placed within <HAnimSegment name='l_index_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_index2, HAnimSegment l_index_middle"))
                                                            .addChild(new Transform().setTranslation(0.2017,0.7363,-0.0248)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_index2'/> to <HAnimJoint name='l_index3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2017,0.7363,-0.0248,0.2028,0.7139,-0.0236})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_index3").setName("l_index3").setCenter(0.2028,0.7139,-0.0236).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_index_distal").setName("l_index_distal")
                                                              .addComments(" <HAnimJoint name='l_index3'/> visualization sphere is placed within <HAnimSegment name='l_index_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_index3, HAnimSegment l_index_distal"))
                                                              .addChild(new Transform().setTranslation(0.2028,0.7139,-0.0236)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_index3'/> to <HAnimSite name='l_index_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2028,0.7139,-0.0236,0.2089,0.6858,-0.0245})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_index3'/> to <HAnimSite name='l_dactylion'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2028,0.7139,-0.0236,0.2056,0.6743,-0.0482})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_index_distal_tip").setName("l_index_distal_tip").setTranslation(0.2089,0.6858,-0.0245)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_index_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                              .addChild(new HAnimSite("hanim_l_dactylion_pt").setName("l_dactylion_pt").setTranslation(0.2056,0.6743,-0.0482)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_dactylion"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_l_middle0").setName("l_middle0").setCenter(0.1987,0.8029,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_middle_metacarpal").setName("l_middle_metacarpal")
                                                        .addComments(" <HAnimJoint name='l_middle0'/> visualization sphere is placed within <HAnimSegment name='l_middle_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_middle0, HAnimSegment l_middle_metacarpal"))
                                                        .addChild(new Transform().setTranslation(0.1987,0.8029,-0.053)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_middle0'/> to <HAnimJoint name='l_middle1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1987,0.8029,-0.053,0.1987,0.7818,-0.053})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_middle1").setName("l_middle1").setCenter(0.1987,0.7818,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_middle_proximal").setName("l_middle_proximal")
                                                          .addComments(" <HAnimJoint name='l_middle1'/> visualization sphere is placed within <HAnimSegment name='l_middle_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_middle1, HAnimSegment l_middle_proximal"))
                                                          .addChild(new Transform().setTranslation(0.1987,0.7818,-0.053)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_middle1'/> to <HAnimJoint name='l_middle2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1987,0.7818,-0.053,0.2013,0.7273,-0.0503})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_middle2").setName("l_middle2").setCenter(0.2013,0.7273,-0.0503).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_middle_middle").setName("l_middle_middle")
                                                            .addComments(" <HAnimJoint name='l_middle2'/> visualization sphere is placed within <HAnimSegment name='l_middle_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_middle2, HAnimSegment l_middle_middle"))
                                                            .addChild(new Transform().setTranslation(0.2013,0.7273,-0.0503)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_middle2'/> to <HAnimJoint name='l_middle3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2013,0.7273,-0.0503,0.2026,0.7011,-0.0494})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_middle3").setName("l_middle3").setCenter(0.2026,0.7011,-0.0494).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_middle_distal").setName("l_middle_distal")
                                                              .addComments(" <HAnimJoint name='l_middle3'/> visualization sphere is placed within <HAnimSegment name='l_middle_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_middle3, HAnimSegment l_middle_distal"))
                                                              .addChild(new Transform().setTranslation(0.2026,0.7011,-0.0494)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_middle3'/> to <HAnimSite name='l_middle_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.2026,0.7011,-0.0494,0.208,0.6731,-0.0491})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_middle_distal_tip").setName("l_middle_distal_tip").setTranslation(0.208,0.6731,-0.0491)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_middle_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_l_ring0").setName("l_ring0").setCenter(0.1956,0.8019,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_ring_metacarpal").setName("l_ring_metacarpal")
                                                        .addComments(" <HAnimJoint name='l_ring0'/> visualization sphere is placed within <HAnimSegment name='l_ring_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_ring0, HAnimSegment l_ring_metacarpal"))
                                                        .addChild(new Transform().setTranslation(0.1956,0.8019,-0.0794)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_ring0'/> to <HAnimJoint name='l_ring1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1956,0.8019,-0.0794,0.1956,0.7815,-0.0794})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_ring1").setName("l_ring1").setCenter(0.1956,0.7815,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_ring_proximal").setName("l_ring_proximal")
                                                          .addComments(" <HAnimJoint name='l_ring1'/> visualization sphere is placed within <HAnimSegment name='l_ring_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_ring1, HAnimSegment l_ring_proximal"))
                                                          .addChild(new Transform().setTranslation(0.1956,0.7815,-0.0794)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_ring1'/> to <HAnimJoint name='l_ring2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1956,0.7815,-0.0794,0.1973,0.7287,-0.0777})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_ring2").setName("l_ring2").setCenter(0.1973,0.7287,-0.0777).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_ring_middle").setName("l_ring_middle")
                                                            .addComments(" <HAnimJoint name='l_ring2'/> visualization sphere is placed within <HAnimSegment name='l_ring_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_ring2, HAnimSegment l_ring_middle"))
                                                            .addChild(new Transform().setTranslation(0.1973,0.7287,-0.0777)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_ring2'/> to <HAnimJoint name='l_ring3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1973,0.7287,-0.0777,0.1983,0.7045,-0.0767})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_ring3").setName("l_ring3").setCenter(0.1983,0.7045,-0.0767).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_ring_distal").setName("l_ring_distal")
                                                              .addComments(" <HAnimJoint name='l_ring3'/> visualization sphere is placed within <HAnimSegment name='l_ring_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_ring3, HAnimSegment l_ring_distal"))
                                                              .addChild(new Transform().setTranslation(0.1983,0.7045,-0.0767)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_ring3'/> to <HAnimSite name='l_ring_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1983,0.7045,-0.0767,0.2035,0.675,-0.0756})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_ring_distal_tip").setName("l_ring_distal_tip").setTranslation(0.2035,0.675,-0.0756)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_ring_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_l_pinky0").setName("l_pinky0").setCenter(0.1925,0.8066,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_l_pinky_metacarpal").setName("l_pinky_metacarpal")
                                                        .addComments(" <HAnimJoint name='l_pinky0'/> visualization sphere is placed within <HAnimSegment name='l_pinky_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky0, HAnimSegment l_pinky_metacarpal"))
                                                        .addChild(new Transform().setTranslation(0.1925,0.8066,-0.1036)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_pinky0'/> to <HAnimJoint name='l_pinky1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1925,0.8066,-0.1036,0.1925,0.7866,-0.1036})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_l_pinky1").setName("l_pinky1").setCenter(0.1925,0.7866,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_l_pinky_proximal").setName("l_pinky_proximal")
                                                          .addComments(" <HAnimJoint name='l_pinky1'/> visualization sphere is placed within <HAnimSegment name='l_pinky_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky1, HAnimSegment l_pinky_proximal"))
                                                          .addChild(new Transform().setTranslation(0.1925,0.7866,-0.1036)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_pinky1'/> to <HAnimJoint name='l_pinky2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1925,0.7866,-0.1036,0.1938,0.7452,-0.1024})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_l_pinky2").setName("l_pinky2").setCenter(0.1938,0.7452,-0.1024).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_l_pinky_middle").setName("l_pinky_middle")
                                                            .addComments(" <HAnimJoint name='l_pinky2'/> visualization sphere is placed within <HAnimSegment name='l_pinky_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky2, HAnimSegment l_pinky_middle"))
                                                            .addChild(new Transform().setTranslation(0.1938,0.7452,-0.1024)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='l_pinky2'/> to <HAnimJoint name='l_pinky3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1938,0.7452,-0.1024,0.1948,0.7277,-0.1017})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_l_pinky3").setName("l_pinky3").setCenter(0.1948,0.7277,-0.1017).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_l_pinky_distal").setName("l_pinky_distal")
                                                              .addComments(" <HAnimJoint name='l_pinky3'/> visualization sphere is placed within <HAnimSegment name='l_pinky_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint l_pinky3, HAnimSegment l_pinky_distal"))
                                                              .addChild(new Transform().setTranslation(0.1948,0.7277,-0.1017)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='l_pinky3'/> to <HAnimSite name='l_pinky_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.1948,0.7277,-0.1017,0.2014,0.7009,-0.1012})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_l_pinky_distal_tip").setName("l_pinky_distal_tip").setTranslation(0.2014,0.7009,-0.1012)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite l_pinky_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))))
                                          .addChild(new HAnimJoint("hanim_r_sternoclavicular").setName("r_sternoclavicular").setCenter(-0.082,1.4488,-0.0353).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                            .addChild(new HAnimSegment("hanim_r_clavicle").setName("r_clavicle")
                                              .addComments(" <HAnimJoint name='r_sternoclavicular'/> visualization sphere is placed within <HAnimSegment name='r_clavicle'/> ")
                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_sternoclavicular, HAnimSegment r_clavicle"))
                                              .addChild(new Transform().setTranslation(-0.082,1.4488,-0.0353)
                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                              .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_sternoclavicular'/> to <HAnimJoint name='r_acromioclavicular'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.0962,1.4269,-0.0424})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_sternoclavicular'/> to <HAnimSite name='r_clavicale'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.0115,1.4943,0.04})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_sternoclavicular'/> to <HAnimSite name='r_acromion'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.1905,1.4791,-0.0431})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_sternoclavicular'/> to <HAnimSite name='r_axilla_ant'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.1626,1.4072,-0.0031})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_sternoclavicular'/> to <HAnimSite name='r_axilla_post'/> ")
                                              .addChild(new Shape()
                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.082,1.4488,-0.0353,-0.1603,1.4098,-0.0826})))
                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                              .addChild(new HAnimSite("hanim_r_clavicale_pt").setName("r_clavicale_pt").setTranslation(-0.0115,1.4943,0.04)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_clavicale"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_r_acromion_pt").setName("r_acromion_pt").setTranslation(-0.1905,1.4791,-0.0431)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_acromion"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_r_axilla_ant_pt").setName("r_axilla_ant_pt").setTranslation(-0.1626,1.4072,-0.0031)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_axilla_ant"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                              .addChild(new HAnimSite("hanim_r_axilla_post_pt").setName("r_axilla_post_pt").setTranslation(-0.1603,1.4098,-0.0826)
                                                .addComments(" HAnimSite visualization shape ")
                                                .addChild(new TouchSensor().setDescription("HAnimSite r_axilla_post"))
                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                            .addChild(new HAnimJoint("hanim_r_acromioclavicular").setName("r_acromioclavicular").setCenter(-0.0962,1.4269,-0.0424).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                              .addChild(new HAnimSegment("hanim_r_scapula").setName("r_scapula")
                                                .addComments(" <HAnimJoint name='r_acromioclavicular'/> visualization sphere is placed within <HAnimSegment name='r_scapula'/> ")
                                                .addChild(new TouchSensor().setDescription("HAnimJoint r_acromioclavicular, HAnimSegment r_scapula"))
                                                .addChild(new Transform().setTranslation(-0.0962,1.4269,-0.0424)
                                                  .addChild(new Shape().setUSE("HAnimJointShape")))
                                                .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_acromioclavicular'/> to <HAnimJoint name='r_shoulder'/> ")
                                                .addChild(new Shape()
                                                  .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                    .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0962,1.4269,-0.0424,-0.2029,1.4376,-0.0387})))
                                                    .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                              .addChild(new HAnimJoint("hanim_r_shoulder").setName("r_shoulder").setCenter(-0.2029,1.4376,-0.0387).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                .addChild(new HAnimSegment("hanim_r_upperarm").setName("r_upperarm")
                                                  .addComments(" <HAnimJoint name='r_shoulder'/> visualization sphere is placed within <HAnimSegment name='r_upperarm'/> ")
                                                  .addChild(new TouchSensor().setDescription("HAnimJoint r_shoulder, HAnimSegment r_upperarm"))
                                                  .addChild(new Transform().setTranslation(-0.2029,1.4376,-0.0387)
                                                    .addChild(new Shape().setUSE("HAnimJointShape")))
                                                  .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_shoulder'/> to <HAnimJoint name='r_elbow'/> ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2029,1.4376,-0.0387,-0.2014,1.1357,-0.0682})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                  .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_shoulder'/> to <HAnimSite name='r_humeral_lateral_epicn'/> ")
                                                  .addChild(new Shape()
                                                    .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2029,1.4376,-0.0387,-0.2224,1.1517,-0.1033})))
                                                      .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                  .addChild(new HAnimSite("hanim_r_humeral_lateral_epicn_pt").setName("r_humeral_lateral_epicn_pt").setTranslation(-0.2224,1.1517,-0.1033)
                                                    .addComments(" HAnimSite visualization shape ")
                                                    .addChild(new TouchSensor().setDescription("HAnimSite r_humeral_lateral_epicn"))
                                                    .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                .addChild(new HAnimJoint("hanim_r_elbow").setName("r_elbow").setCenter(-0.2014,1.1357,-0.0682).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                  .addChild(new HAnimSegment("hanim_r_forearm").setName("r_forearm")
                                                    .addComments(" <HAnimJoint name='r_elbow'/> visualization sphere is placed within <HAnimSegment name='r_forearm'/> ")
                                                    .addChild(new TouchSensor().setDescription("HAnimJoint r_elbow, HAnimSegment r_forearm"))
                                                    .addChild(new Transform().setTranslation(-0.2014,1.1357,-0.0682)
                                                      .addChild(new Shape().setUSE("HAnimJointShape")))
                                                    .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_elbow'/> to <HAnimJoint name='r_wrist'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.1984,0.8663,-0.0583})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_elbow'/> to <HAnimSite name='r_radial_styloid'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.1884,0.8676,-0.036})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_elbow'/> to <HAnimSite name='r_olecranon'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.1907,1.1405,-0.1065})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_elbow'/> to <HAnimSite name='r_humeral_medial_epicn'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.168,1.1298,-0.1062})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_elbow'/> to <HAnimSite name='r_radiale'/> ")
                                                    .addChild(new Shape()
                                                      .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2014,1.1357,-0.0682,-0.213,1.1305,-0.1091})))
                                                        .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                    .addChild(new HAnimSite("hanim_r_radial_styloid_pt").setName("r_radial_styloid_pt").setTranslation(-0.1884,0.8676,-0.036)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_radial_styloid"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_r_olecranon_pt").setName("r_olecranon_pt").setTranslation(-0.1907,1.1405,-0.1065)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_olecranon"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_r_humeral_medial_epicn_pt").setName("r_humeral_medial_epicn_pt").setTranslation(-0.168,1.1298,-0.1062)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_humeral_medial_epicn"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                    .addChild(new HAnimSite("hanim_r_radiale_pt").setName("r_radiale_pt").setTranslation(-0.213,1.1305,-0.1091)
                                                      .addComments(" HAnimSite visualization shape ")
                                                      .addChild(new TouchSensor().setDescription("HAnimSite r_radiale"))
                                                      .addChild(new Shape().setUSE("HAnimSiteShape"))))
                                                  .addChild(new HAnimJoint("hanim_r_wrist").setName("r_wrist").setCenter(-0.1984,0.8663,-0.0583).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                    .addChild(new HAnimSegment("hanim_r_hand").setName("r_hand")
                                                      .addComments(" <HAnimJoint name='r_wrist'/> visualization sphere is placed within <HAnimSegment name='r_hand'/> ")
                                                      .addChild(new TouchSensor().setDescription("HAnimJoint r_wrist, HAnimSegment r_hand"))
                                                      .addChild(new Transform().setTranslation(-0.1984,0.8663,-0.0583)
                                                        .addChild(new Shape().setUSE("HAnimJointShape")))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_wrist'/> to <HAnimJoint name='r_thumb1'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1924,0.8472,-0.0534})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_wrist'/> to <HAnimJoint name='r_index0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1983,0.8024,-0.028})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_wrist'/> to <HAnimJoint name='r_middle0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1987,0.8029,-0.053})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_wrist'/> to <HAnimJoint name='r_ring0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1956,0.8019,-0.0794})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_wrist'/> to <HAnimJoint name='r_pinky0'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1925,0.8066,-0.1036})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_wrist'/> to <HAnimSite name='r_metacarpal_pha2'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1977,0.8169,-0.0177})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_wrist'/> to <HAnimSite name='r_ulnar_styloid'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.2117,0.8562,-0.0584})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_wrist'/> to <HAnimSite name='r_metacarpal_pha5'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.1929,0.789,-0.1064})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                      .addComments(" HAnimSite/Viewpoint visualization line segment from ancestor <HAnimJoint name='r_wrist'/> to <HAnimSite name='r_hand_front_view'/> ")
                                                      .addChild(new Shape()
                                                        .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1984,0.8663,-0.0583,-0.3,0.75,0.45})))
                                                          .setColor(new ColorRGBA().setUSE("HAnimSiteViewpointLineColorRGBA"))))
                                                      .addChild(new HAnimSite("hanim_r_metacarpal_pha2_pt").setName("r_metacarpal_pha2_pt").setTranslation(-0.1977,0.8169,-0.0177)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_metacarpal_pha2"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_r_ulnar_styloid_pt").setName("r_ulnar_styloid_pt").setTranslation(-0.2117,0.8562,-0.0584)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_ulnar_styloid"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_r_metacarpal_pha5_pt").setName("r_metacarpal_pha5_pt").setTranslation(-0.1929,0.789,-0.1064)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_metacarpal_pha5"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                      .addChild(new HAnimSite("hanim_r_hand_front_view").setName("r_hand_front_view").setTranslation(-0.3,0.75,0.45)
                                                        .addComments(" HAnimSite visualization shape ")
                                                        .addChild(new TouchSensor().setDescription("HAnimSite r_hand_front_view"))
                                                        .addChild(new Shape().setUSE("HAnimSiteShape"))
                                                        .addChild(new Viewpoint("hanim_r_hand_front_viewpoint").setDescription("right hand front").setCenterOfRotation(0.0,0.7,0.0).setPosition(0.0,0.0,0.0))
                                                        .addComments(" HAnimSite/Viewpoint visualization shape ")
                                                        .addChild(new Anchor().setDescription("HAnimSite hanim_r_hand_front_view Viewpoint").setUrl(new String[] {"#hanim_r_hand_front_viewpoint"})
                                                          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
                                                            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
                                                            .addChild(new Shape().setUSE("HAnimSiteViewpointShape"))))))
                                                    .addChild(new HAnimJoint("hanim_r_thumb1").setName("r_thumb1").setCenter(-0.1924,0.8472,-0.0534).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_thumb_metacarpal").setName("r_thumb_metacarpal")
                                                        .addComments(" <HAnimJoint name='r_thumb1'/> visualization sphere is placed within <HAnimSegment name='r_thumb_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_thumb1, HAnimSegment r_thumb_metacarpal"))
                                                        .addChild(new Transform().setTranslation(-0.1924,0.8472,-0.0534)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_thumb1'/> to <HAnimJoint name='r_thumb2'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1924,0.8472,-0.0534,-0.1951,0.8226,0.0246})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_thumb2").setName("r_thumb2").setCenter(-0.1951,0.8226,0.0246).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_thumb_proximal").setName("r_thumb_proximal")
                                                          .addComments(" <HAnimJoint name='r_thumb2'/> visualization sphere is placed within <HAnimSegment name='r_thumb_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_thumb2, HAnimSegment r_thumb_proximal"))
                                                          .addChild(new Transform().setTranslation(-0.1951,0.8226,0.0246)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_thumb2'/> to <HAnimJoint name='r_thumb3'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1951,0.8226,0.0246,-0.1955,0.8159,0.0464})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_thumb3").setName("r_thumb3").setCenter(-0.1955,0.8159,0.0464).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_thumb_distal").setName("r_thumb_distal")
                                                            .addComments(" <HAnimJoint name='r_thumb3'/> visualization sphere is placed within <HAnimSegment name='r_thumb_distal'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_thumb3, HAnimSegment r_thumb_distal"))
                                                            .addChild(new Transform().setTranslation(-0.1955,0.8159,0.0464)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_thumb3'/> to <HAnimSite name='r_thumb_distal_tip'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1955,0.8159,0.0464,-0.1869,0.809,0.082})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                            .addChild(new HAnimSite("hanim_r_thumb_distal_tip").setName("r_thumb_distal_tip").setTranslation(-0.1869,0.809,0.082)
                                                              .addComments(" HAnimSite visualization shape ")
                                                              .addChild(new TouchSensor().setDescription("HAnimSite r_thumb_distal_tip"))
                                                              .addChild(new Shape().setUSE("HAnimSiteShape")))))))
                                                    .addChild(new HAnimJoint("hanim_r_index0").setName("r_index0").setCenter(-0.1983,0.8024,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_index_metacarpal").setName("r_index_metacarpal")
                                                        .addComments(" <HAnimJoint name='r_index0'/> visualization sphere is placed within <HAnimSegment name='r_index_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_index0, HAnimSegment r_index_metacarpal"))
                                                        .addChild(new Transform().setTranslation(-0.1983,0.8024,-0.028)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_index0'/> to <HAnimJoint name='r_index1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1983,0.8024,-0.028,-0.1983,0.7815,-0.028})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_index1").setName("r_index1").setCenter(-0.1983,0.7815,-0.028).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_index_proximal").setName("r_index_proximal")
                                                          .addComments(" <HAnimJoint name='r_index1'/> visualization sphere is placed within <HAnimSegment name='r_index_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_index1, HAnimSegment r_index_proximal"))
                                                          .addChild(new Transform().setTranslation(-0.1983,0.7815,-0.028)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_index1'/> to <HAnimJoint name='r_index2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1983,0.7815,-0.028,-0.2017,0.7363,-0.0248})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_index2").setName("r_index2").setCenter(-0.2017,0.7363,-0.0248).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_index_middle").setName("r_index_middle")
                                                            .addComments(" <HAnimJoint name='r_index2'/> visualization sphere is placed within <HAnimSegment name='r_index_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_index2, HAnimSegment r_index_middle"))
                                                            .addChild(new Transform().setTranslation(-0.2017,0.7363,-0.0248)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_index2'/> to <HAnimJoint name='r_index3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2017,0.7363,-0.0248,-0.2028,0.7139,-0.0236})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_index3").setName("r_index3").setCenter(-0.2028,0.7139,-0.0236).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_index_distal").setName("r_index_distal")
                                                              .addComments(" <HAnimJoint name='r_index3'/> visualization sphere is placed within <HAnimSegment name='r_index_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_index3, HAnimSegment r_index_distal"))
                                                              .addChild(new Transform().setTranslation(-0.2028,0.7139,-0.0236)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_index3'/> to <HAnimSite name='r_index_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2028,0.7139,-0.0236,-0.198,0.6883,-0.018})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_index3'/> to <HAnimSite name='r_dactylion'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2028,0.7139,-0.0236,-0.1941,0.6772,-0.0423})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_index_distal_tip").setName("r_index_distal_tip").setTranslation(-0.198,0.6883,-0.018)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_index_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))
                                                              .addChild(new HAnimSite("hanim_r_dactylion_pt").setName("r_dactylion_pt").setTranslation(-0.1941,0.6772,-0.0423)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_dactylion"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_r_middle0").setName("r_middle0").setCenter(-0.1987,0.8029,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_middle_metacarpal").setName("r_middle_metacarpal")
                                                        .addComments(" <HAnimJoint name='r_middle0'/> visualization sphere is placed within <HAnimSegment name='r_middle_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_middle0, HAnimSegment r_middle_metacarpal"))
                                                        .addChild(new Transform().setTranslation(-0.1987,0.8029,-0.053)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_middle0'/> to <HAnimJoint name='r_middle1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1987,0.8029,-0.053,-0.1987,0.7818,-0.053})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_middle1").setName("r_middle1").setCenter(-0.1987,0.7818,-0.053).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_middle_proximal").setName("r_middle_proximal")
                                                          .addComments(" <HAnimJoint name='r_middle1'/> visualization sphere is placed within <HAnimSegment name='r_middle_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_middle1, HAnimSegment r_middle_proximal"))
                                                          .addChild(new Transform().setTranslation(-0.1987,0.7818,-0.053)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_middle1'/> to <HAnimJoint name='r_middle2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1987,0.7818,-0.053,-0.2013,0.7273,-0.0503})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_middle2").setName("r_middle2").setCenter(-0.2013,0.7273,-0.0503).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_middle_middle").setName("r_middle_middle")
                                                            .addComments(" <HAnimJoint name='r_middle2'/> visualization sphere is placed within <HAnimSegment name='r_middle_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_middle2, HAnimSegment r_middle_middle"))
                                                            .addChild(new Transform().setTranslation(-0.2013,0.7273,-0.0503)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_middle2'/> to <HAnimJoint name='r_middle3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2013,0.7273,-0.0503,-0.2026,0.7011,-0.0494})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_middle3").setName("r_middle3").setCenter(-0.2026,0.7011,-0.0494).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_middle_distal").setName("r_middle_distal")
                                                              .addComments(" <HAnimJoint name='r_middle3'/> visualization sphere is placed within <HAnimSegment name='r_middle_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_middle3, HAnimSegment r_middle_distal"))
                                                              .addChild(new Transform().setTranslation(-0.2026,0.7011,-0.0494)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_middle3'/> to <HAnimSite name='r_middle_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.2026,0.7011,-0.0494,-0.1969,0.6758,-0.0427})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_middle_distal_tip").setName("r_middle_distal_tip").setTranslation(-0.1969,0.6758,-0.0427)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_middle_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_r_ring0").setName("r_ring0").setCenter(-0.1956,0.8019,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_ring_metacarpal").setName("r_ring_metacarpal")
                                                        .addComments(" <HAnimJoint name='r_ring0'/> visualization sphere is placed within <HAnimSegment name='r_ring_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_ring0, HAnimSegment r_ring_metacarpal"))
                                                        .addChild(new Transform().setTranslation(-0.1956,0.8019,-0.0794)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_ring0'/> to <HAnimJoint name='r_ring1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1956,0.8019,-0.0794,-0.1956,0.7815,-0.0794})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_ring1").setName("r_ring1").setCenter(-0.1956,0.7815,-0.0794).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_ring_proximal").setName("r_ring_proximal")
                                                          .addComments(" <HAnimJoint name='r_ring1'/> visualization sphere is placed within <HAnimSegment name='r_ring_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_ring1, HAnimSegment r_ring_proximal"))
                                                          .addChild(new Transform().setTranslation(-0.1956,0.7815,-0.0794)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_ring1'/> to <HAnimJoint name='r_ring2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1956,0.7815,-0.0794,-0.1973,0.7287,-0.0777})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_ring2").setName("r_ring2").setCenter(-0.1973,0.7287,-0.0777).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_ring_middle").setName("r_ring_middle")
                                                            .addComments(" <HAnimJoint name='r_ring2'/> visualization sphere is placed within <HAnimSegment name='r_ring_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_ring2, HAnimSegment r_ring_middle"))
                                                            .addChild(new Transform().setTranslation(-0.1973,0.7287,-0.0777)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_ring2'/> to <HAnimJoint name='r_ring3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1973,0.7287,-0.0777,-0.1983,0.7045,-0.0767})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_ring3").setName("r_ring3").setCenter(-0.1983,0.7045,-0.0767).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_ring_distal").setName("r_ring_distal")
                                                              .addComments(" <HAnimJoint name='r_ring3'/> visualization sphere is placed within <HAnimSegment name='r_ring_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_ring3, HAnimSegment r_ring_distal"))
                                                              .addChild(new Transform().setTranslation(-0.1983,0.7045,-0.0767)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_ring3'/> to <HAnimSite name='r_ring_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1983,0.7045,-0.0767,-0.1934,0.6778,-0.0693})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_ring_distal_tip").setName("r_ring_distal_tip").setTranslation(-0.1934,0.6778,-0.0693)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_ring_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape"))))))))
                                                    .addChild(new HAnimJoint("hanim_r_pinky0").setName("r_pinky0").setCenter(-0.1925,0.8066,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                      .addChild(new HAnimSegment("hanim_r_pinky_metacarpal").setName("r_pinky_metacarpal")
                                                        .addComments(" <HAnimJoint name='r_pinky0'/> visualization sphere is placed within <HAnimSegment name='r_pinky_metacarpal'/> ")
                                                        .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky0, HAnimSegment r_pinky_metacarpal"))
                                                        .addChild(new Transform().setTranslation(-0.1925,0.8066,-0.1036)
                                                          .addChild(new Shape().setUSE("HAnimJointShape")))
                                                        .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_pinky0'/> to <HAnimJoint name='r_pinky1'/> ")
                                                        .addChild(new Shape()
                                                          .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1925,0.8066,-0.1036,-0.1925,0.7866,-0.1036})))
                                                            .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                      .addChild(new HAnimJoint("hanim_r_pinky1").setName("r_pinky1").setCenter(-0.1925,0.7866,-0.1036).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                        .addChild(new HAnimSegment("hanim_r_pinky_proximal").setName("r_pinky_proximal")
                                                          .addComments(" <HAnimJoint name='r_pinky1'/> visualization sphere is placed within <HAnimSegment name='r_pinky_proximal'/> ")
                                                          .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky1, HAnimSegment r_pinky_proximal"))
                                                          .addChild(new Transform().setTranslation(-0.1925,0.7866,-0.1036)
                                                            .addChild(new Shape().setUSE("HAnimJointShape")))
                                                          .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_pinky1'/> to <HAnimJoint name='r_pinky2'/> ")
                                                          .addChild(new Shape()
                                                            .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1925,0.7866,-0.1036,-0.1938,0.7452,-0.1024})))
                                                              .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                        .addChild(new HAnimJoint("hanim_r_pinky2").setName("r_pinky2").setCenter(-0.1938,0.7452,-0.1024).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                          .addChild(new HAnimSegment("hanim_r_pinky_middle").setName("r_pinky_middle")
                                                            .addComments(" <HAnimJoint name='r_pinky2'/> visualization sphere is placed within <HAnimSegment name='r_pinky_middle'/> ")
                                                            .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky2, HAnimSegment r_pinky_middle"))
                                                            .addChild(new Transform().setTranslation(-0.1938,0.7452,-0.1024)
                                                              .addChild(new Shape().setUSE("HAnimJointShape")))
                                                            .addComments(" HAnimSegment visualization line segment from parent <HAnimJoint name='r_pinky2'/> to <HAnimJoint name='r_pinky3'/> ")
                                                            .addChild(new Shape()
                                                              .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1938,0.7452,-0.1024,-0.1948,0.7277,-0.1017})))
                                                                .setColor(new ColorRGBA().setUSE("HAnimSegmentLineColorRGBA")))))
                                                          .addChild(new HAnimJoint("hanim_r_pinky3").setName("r_pinky3").setCenter(-0.1948,0.7277,-0.1017).setLlimit(new double[] {0.0,0.0,0.0}).setUlimit(new double[] {0.0,0.0,0.0})
                                                            .addChild(new HAnimSegment("hanim_r_pinky_distal").setName("r_pinky_distal")
                                                              .addComments(" <HAnimJoint name='r_pinky3'/> visualization sphere is placed within <HAnimSegment name='r_pinky_distal'/> ")
                                                              .addChild(new TouchSensor().setDescription("HAnimJoint r_pinky3, HAnimSegment r_pinky_distal"))
                                                              .addChild(new Transform().setTranslation(-0.1948,0.7277,-0.1017)
                                                                .addChild(new Shape().setUSE("HAnimJointShape")))
                                                              .addComments(" HAnimSite visualization line segment from ancestor <HAnimJoint name='r_pinky3'/> to <HAnimSite name='r_pinky_distal_tip'/> ")
                                                              .addChild(new Shape()
                                                                .setGeometry(new LineSet().setVertexCount(new int[] {2})
                                                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.1948,0.7277,-0.1017,-0.1938,0.7035,-0.0949})))
                                                                  .setColor(new ColorRGBA().setUSE("HAnimSiteLineColorRGBA"))))
                                                              .addChild(new HAnimSite("hanim_r_pinky_distal_tip").setName("r_pinky_distal_tip").setTranslation(-0.1938,0.7035,-0.0949)
                                                                .addComments(" HAnimSite visualization shape ")
                                                                .addChild(new TouchSensor().setDescription("HAnimSite r_pinky_distal_tip"))
                                                                .addChild(new Shape().setUSE("HAnimSiteShape")))))))))))))))))))))))))))))))
      .addComments(" USE nodes go here for access by inverse kinematics (IK) engines and other tools ")
      .addComments(" Top-level HAnimSite/Viewpoint nodes that move with the human center but are unaffected by body animation ")
      .addViewpoints(new HAnimSite("hanim_l_inclined_view").setName("l_inclined_view").setRotation(-0.113,0.993,0.0347,0.671).setTranslation(1.62,1.05,2.06)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite l_inclined_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_l_inclined_viewpoint").setDescription("left inclined").setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_l_inclined_view Viewpoint").setUrl(new String[] {"#hanim_l_inclined_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_r_inclined_view").setName("r_inclined_view").setRotation(-0.113,-0.993,0.0347,0.671).setTranslation(-1.62,1.05,2.06)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite r_inclined_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_r_inclined_viewpoint").setDescription("right inclined").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_r_inclined_view Viewpoint").setUrl(new String[] {"#hanim_r_inclined_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_front_view").setName("front_view").setTranslation(0.0,0.85,2.58)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite front_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_front_viewpoint").setDescription("front").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_front_view Viewpoint").setUrl(new String[] {"#hanim_front_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_back_view").setName("back_view").setRotation(0.0,1.0,0.0,3.14).setTranslation(0.0,0.85,-2.58)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite back_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_back_viewpoint").setDescription("back").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_back_view Viewpoint").setUrl(new String[] {"#hanim_back_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_l_side_view").setName("l_side_view").setRotation(0.0,1.0,0.0,1.5708).setTranslation(2.6,0.854,0.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite l_side_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_l_side_viewpoint").setDescription("left side").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_l_side_view Viewpoint").setUrl(new String[] {"#hanim_l_side_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_Top_view").setName("Top_view").setRotation(1.0,0.0,0.0,-1.57).setTranslation(0.0,3.5,0.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite Top_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_Top_viewpoint").setDescription("Top").setCenterOfRotation(0.0,0.9,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_Top_view Viewpoint").setUrl(new String[] {"#hanim_Top_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" TODO move relevant HAnimSite/Viewpoint pairs into skeleton at appropriate locations, if so also revert containerField to default ")
      .addViewpoints(new HAnimSite("hanim_front_close_view").setName("front_close_view").setTranslation(0.0,0.854,1.575)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_front_close_viewpoint").setDescription("front close").setCenterOfRotation(0.0,0.0,1.575).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_front_close_view Viewpoint").setUrl(new String[] {"#hanim_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_side_close_view").setName("side_close_view").setRotation(0.0,1.0,0.0,1.5708).setTranslation(1.56,0.854,0.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite side_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_side_close_viewpoint").setDescription("side close").setCenterOfRotation(1.6,0.0,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_side_close_view Viewpoint").setUrl(new String[] {"#hanim_side_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_head_front_close_view").setName("head_front_close_view").setTranslation(0.0,1.5,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite head_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_head_front_close_viewpoint").setDescription("head front close").setCenterOfRotation(0.0,0.0,1.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_head_front_close_view Viewpoint").setUrl(new String[] {"#hanim_head_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_chest_front_close_view").setName("chest_front_close_view").setTranslation(0.0,1.2,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite chest_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_chest_front_close_viewpoint").setDescription("chest front close").setCenterOfRotation(0.0,0.0,1.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_chest_front_close_view Viewpoint").setUrl(new String[] {"#hanim_chest_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_pelvis_front_close_view").setName("pelvis_front_close_view").setTranslation(0.0,0.8,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite pelvis_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_pelvis_front_close_viewpoint").setDescription("pelvis front close").setCenterOfRotation(0.0,0.0,1.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_pelvis_front_close_view Viewpoint").setUrl(new String[] {"#hanim_pelvis_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_knees_front_close_view").setName("knees_front_close_view").setTranslation(0.0,0.4,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite knees_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_knees_front_close_viewpoint").setDescription("knees front close").setCenterOfRotation(0.0,0.4,0.0).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_knees_front_close_view Viewpoint").setUrl(new String[] {"#hanim_knees_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addViewpoints(new HAnimSite("hanim_feet_front_close_view").setName("feet_front_close_view").setTranslation(0.0,0.0,1.0)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite feet_front_close_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_feet_front_close_viewpoint").setDescription("feet front close").setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_feet_front_close_view Viewpoint").setUrl(new String[] {"#hanim_feet_front_close_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addComments(" right between the eyes, stationary position not animating except with body itself ")
      .addViewpoints(new HAnimSite("hanim_eye_level_view").setName("eye_level_view").setTranslation(0.0,1.6332,0.0502)
        .addComments(" HAnimSite visualization shape ")
        .addChild(new TouchSensor().setDescription("HAnimSite eye_level_view"))
        .addChild(new Shape().setUSE("HAnimSiteShape"))
        .addChild(new Viewpoint("hanim_eye_level_viewpoint").setDescription("eye level looking forward").setOrientation(0.0,1.0,0.0,3.141593).setPosition(0.0,0.0,0.0))
        .addComments(" HAnimSite/Viewpoint visualization shape ")
        .addChild(new Anchor().setDescription("HAnimSite hanim_eye_level_view Viewpoint").setUrl(new String[] {"#hanim_eye_level_viewpoint"})
          .addChild(new LOD().setForceTransitions(true).setRange(new double[] {0.04})
            .addChild(new WorldInfo().setInfo(new String[] {"hide diamond when close"}))
            .addChild(new Shape().setUSE("HAnimSiteViewpointShape")))))
      .addJoints(new HAnimJoint().setUSE("hanim_humanoid_root"))
      .addJoints(new HAnimJoint().setUSE("hanim_sacroiliac"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl5"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl4"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl3"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl2"))
      .addJoints(new HAnimJoint().setUSE("hanim_vl1"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt12"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt11"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt10"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt9"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt8"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt7"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt6"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt5"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt4"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt3"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt2"))
      .addJoints(new HAnimJoint().setUSE("hanim_vt1"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc7"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc6"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc5"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc4"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc3"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc2"))
      .addJoints(new HAnimJoint().setUSE("hanim_vc1"))
      .addJoints(new HAnimJoint().setUSE("hanim_skullbase"))
      .addJoints(new HAnimJoint().setUSE("hanim_temporomandibular"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_acromioclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_acromioclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_ankle"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_ankle"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_elbow"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_elbow"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_eyeball_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_eyeball_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_eyebrow_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_eyebrow_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_eyelid_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_eyelid_joint"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_hip"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_hip"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_index0"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_index0"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_index1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_index1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_index2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_index2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_index3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_index3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_knee"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_knee"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_metatarsal"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_metatarsal"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_middle0"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_middle0"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_middle1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_middle1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_middle2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_middle2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_middle3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_middle3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_midtarsal"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_midtarsal"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_pinky0"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_pinky0"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_pinky1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_pinky1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_pinky2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_pinky2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_pinky3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_pinky3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_ring0"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_ring0"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_ring1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_ring1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_ring2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_ring2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_ring3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_ring3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_shoulder"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_shoulder"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_sternoclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_sternoclavicular"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_subtalar"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_subtalar"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_thumb1"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_thumb1"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_thumb2"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_thumb2"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_thumb3"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_thumb3"))
      .addJoints(new HAnimJoint().setUSE("hanim_l_wrist"))
      .addJoints(new HAnimJoint().setUSE("hanim_r_wrist"))
      .addSegments(new HAnimSegment().setUSE("hanim_pelvis"))
      .addSegments(new HAnimSegment().setUSE("hanim_skull"))
      .addSegments(new HAnimSegment().setUSE("hanim_jaw"))
      .addSegments(new HAnimSegment().setUSE("hanim_c1"))
      .addSegments(new HAnimSegment().setUSE("hanim_c2"))
      .addSegments(new HAnimSegment().setUSE("hanim_c3"))
      .addSegments(new HAnimSegment().setUSE("hanim_c4"))
      .addSegments(new HAnimSegment().setUSE("hanim_c5"))
      .addSegments(new HAnimSegment().setUSE("hanim_c6"))
      .addSegments(new HAnimSegment().setUSE("hanim_c7"))
      .addSegments(new HAnimSegment().setUSE("hanim_t1"))
      .addSegments(new HAnimSegment().setUSE("hanim_t2"))
      .addSegments(new HAnimSegment().setUSE("hanim_t3"))
      .addSegments(new HAnimSegment().setUSE("hanim_t4"))
      .addSegments(new HAnimSegment().setUSE("hanim_t5"))
      .addSegments(new HAnimSegment().setUSE("hanim_t6"))
      .addSegments(new HAnimSegment().setUSE("hanim_t7"))
      .addSegments(new HAnimSegment().setUSE("hanim_t8"))
      .addSegments(new HAnimSegment().setUSE("hanim_t9"))
      .addSegments(new HAnimSegment().setUSE("hanim_t10"))
      .addSegments(new HAnimSegment().setUSE("hanim_t11"))
      .addSegments(new HAnimSegment().setUSE("hanim_t12"))
      .addSegments(new HAnimSegment().setUSE("hanim_l1"))
      .addSegments(new HAnimSegment().setUSE("hanim_l2"))
      .addSegments(new HAnimSegment().setUSE("hanim_l3"))
      .addSegments(new HAnimSegment().setUSE("hanim_l4"))
      .addSegments(new HAnimSegment().setUSE("hanim_l5"))
      .addSegments(new HAnimSegment().setUSE("hanim_sacrum"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_calf"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_calf"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_clavicle"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_clavicle"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_eyeball"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_eyeball"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_eyebrow"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_eyebrow"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_eyelid"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_eyelid"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_forearm"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_forearm"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_forefoot"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_forefoot"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_hand"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_hand"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_hindfoot"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_hindfoot"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_index_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_index_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_index_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_index_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_index_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_index_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_index_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_index_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_middistal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_middistal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_middle_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_middle_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_middle_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_middle_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_middle_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_middle_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_middle_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_middle_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_midproximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_midproximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_pinky_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_pinky_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_pinky_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_pinky_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_pinky_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_pinky_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_pinky_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_pinky_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_ring_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_ring_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_ring_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_ring_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_ring_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_ring_middle"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_ring_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_ring_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_scapula"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_scapula"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_thigh"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_thigh"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_thumb_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_thumb_distal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_thumb_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_thumb_metacarpal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_thumb_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_thumb_proximal"))
      .addSegments(new HAnimSegment().setUSE("hanim_l_upperarm"))
      .addSegments(new HAnimSegment().setUSE("hanim_r_upperarm"))
      .addSites(new HAnimSite().setUSE("hanim_crotch_pt"))
      .addSites(new HAnimSite().setUSE("hanim_skull_tip"))
      .addSites(new HAnimSite().setUSE("hanim_sellion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_supramenton_pt"))
      .addSites(new HAnimSite().setUSE("hanim_nuchale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_suprasternale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_cervicale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_substernale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_rib10_midspine_pt"))
      .addSites(new HAnimSite().setUSE("hanim_waist_preferred_post_pt"))
      .addSites(new HAnimSite().setUSE("hanim_navel_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_acromion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_acromion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_asis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_asis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_axilla_ant_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_axilla_ant_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_axilla_post_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_axilla_post_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_calcaneous_post_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_calcaneous_post_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_clavicale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_clavicale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_dactylion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_dactylion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_digit2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_digit2_pt"))
      .addViewpoints(new HAnimSite().setUSE("hanim_l_eyeball_site_view"))
      .addViewpoints(new HAnimSite().setUSE("hanim_r_eyeball_site_view"))
      .addSites(new HAnimSite().setUSE("hanim_l_femoral_lateral_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_femoral_lateral_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_femoral_medial_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_femoral_medial_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_forefoot_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_forefoot_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_gonion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_gonion_pt"))
      .addViewpoints(new HAnimSite().setUSE("hanim_l_hand_front_view"))
      .addViewpoints(new HAnimSite().setUSE("hanim_r_hand_front_view"))
      .addSites(new HAnimSite().setUSE("hanim_l_humeral_lateral_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_humeral_lateral_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_humeral_medial_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_humeral_medial_epicn_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_iliocristale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_iliocristale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_index_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_index_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_infraorbitale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_infraorbitale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_knee_crease_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_knee_crease_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_lateral_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_lateral_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_medial_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_medial_malleolus_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metacarpal_pha2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metacarpal_pha2_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metacarpal_pha5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metacarpal_pha5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metatarsal_pha1_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metatarsal_pha1_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_metatarsal_pha5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_metatarsal_pha5_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_middle_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_middle_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_neck_base_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_neck_base_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_olecranon_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_olecranon_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_pinky_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_pinky_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_psis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_psis_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_radial_styloid_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_radial_styloid_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_radiale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_radiale_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_rib10_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_rib10_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_ring_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_ring_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_temporomandibular_l_site_pt"))
      .addSites(new HAnimSite().setUSE("hanim_temporomandibular_r_site_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_sphyrion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_sphyrion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_thelion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_thelion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_thumb_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_thumb_distal_tip"))
      .addSites(new HAnimSite().setUSE("hanim_r_tragion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_tragion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_trochanterion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_trochanterion_pt"))
      .addSites(new HAnimSite().setUSE("hanim_l_ulnar_styloid_pt"))
      .addSites(new HAnimSite().setUSE("hanim_r_ulnar_styloid_pt"))));
            }
            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

	/** 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 HAnim1SpecificationLOA3Illustrated 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 HAnim1SpecificationLOA3Illustrated().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.Specifications.HAnim1SpecificationLOA3Illustrated\" 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.Specifications.HAnim1SpecificationLOA3Illustrated self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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