package Savage.Buildings.SoccerStadium;

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.Interpolation.*;
import org.web3d.x3d.jsail.Lighting.*;
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.Shape.*;
import org.web3d.x3d.jsail.Sound.*;
import org.web3d.x3d.jsail.Texturing.*;
import org.web3d.x3d.jsail.Time.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> Soccer field without seats. </p>
 <p> Related links: Catalog page <a href="../../../../Buildings/SoccerStadium/SoccerFieldIIIndex.html" target="_blank">SoccerFieldII</a>,  source <a href="../../../../Buildings/SoccerStadium/SoccerFieldII.java">SoccerFieldII.java</a>, <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;">&nbsp; Document Metadata </td>
		</tr>

		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> title </i> </td>
			<td> <a href="../../../../Buildings/SoccerStadium/SoccerFieldII.x3d">SoccerFieldII.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> Soccer field without seats </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> LT Christos Kalogrias - Hellenic Navy </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 15 July 2003 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> modified </i> </td>
			<td> 20 October 2019 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://www.lucia.it/vrml/group/home/ignazio/vmhome.html" target="_blank">http://www.lucia.it/vrml/group/home/ignazio/vmhome.html</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://www.lucia.it/vrml/projects/frank/frank_e.html" target="_blank">http://www.lucia.it/vrml/projects/frank/frank_e.html</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> identifier </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/SoccerFieldII.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/SoccerFieldII.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> <a href="https://www.web3d.org/x3d/content/README.X3D-Edit.html" target="_blank">https://www.web3d.org/x3d/content/README.X3D-Edit.html</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../Buildings/SoccerStadium/../../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 LT Christos Kalogrias - Hellenic Navy
 */

public class SoccerFieldII
{
	/** Default constructor to create this object. */
	public SoccerFieldII ()
	{
	  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_0)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("SoccerFieldII.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Soccer field without seats"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("LT Christos Kalogrias - Hellenic Navy"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("15 July 2003"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 October 2019"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.lucia.it/vrml/group/home/ignazio/vmhome.html"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.lucia.it/vrml/projects/frank/frank_e.html"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/SoccerFieldII.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("https://www.web3d.org/x3d/content/README.X3D-Edit.html"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("SoccerFieldII.x3d"))
    .addChild(new ExternProtoDeclare("TimeDelaySensor").setName("TimeDelaySensor").setUrl(new String[] {"TimeDelaySensorPrototype.wrl#TimeDelaySensor","../../../Savage/Tools/Animation/TimeDelaySensorPrototype.wrl#TimeDelaySensor","https://www.web3d.org/x3d/content/examples/Basic/development/TimeDelaySensorPrototype.wrl#TimeDelaySensor","https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/TimeDelaySensorPrototype.wrl#TimeDelaySensor","TimeDelaySensorPrototype.x3d#TimeDelaySensor","../../../Savage/Tools/Animation/TimeDelaySensorPrototype.x3d#TimeDelaySensor","https://www.web3d.org/x3d/content/examples/Basic/development/TimeDelaySensorPrototype.x3d#TimeDelaySensor","https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/TimeDelaySensorPrototype.x3d#TimeDelaySensor"})
      .addField(new field().setName("startTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT))
      .addField(new field().setName("enabled").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTOUTPUT))
      .addField(new field().setName("delayInterval").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setAppinfo("seconds"))
      .addField(new field().setName("delayCompleteTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_OUTPUTONLY)))
    .addChild(new Background().setGroundAngle(new double[] {1.309,1.5702}).setGroundColor(new MFColor(new double[] {0.8,0.3,0.3,0.8,0.3,0.3,0.8,0.4,0.4})).setSkyAngle(new double[] {1.309,1.572}).setSkyColor(new MFColor(new double[] {0.0,0.5,0.7,0.0,0.5,1.0,1.0,1.0,1.0})))
    .addChild(new Viewpoint().setDescription("Field OverView").setOrientation(1.0,0.0,0.0,-1.37).setPosition(0.0,180.0,30.0))
    .addChild(new Viewpoint().setDescription("Yellow Player View").setPosition(0.0,1.5,-35.0))
    .addChild(new Viewpoint().setDescription("Goalpost View").setPosition(0.0,1.5,-45.0))
    .addChild(new Viewpoint().setDescription("Kick Side View").setOrientation(0.0,1.0,0.0,1.57).setPosition(12.0,1.5,-45.0))
    .addChild(new Viewpoint().setDescription("Referee View").setOrientation(0.0,1.0,0.0,1.57).setPosition(-4.0,1.5,-45.0))
    .addChild(new Viewpoint().setDescription("Posts Back View").setOrientation(0.0,1.0,0.0,3.14).setPosition(0.0,1.5,-57.0))
    .addChild(new PointLight().setLocation(0.0,2.5,-39.0))
    .addChild(new PointLight().setLocation(0.0,2.0,-48.0))
    .addChild(new Transform("Field")
      .addChild(new Transform("Terain")
        .addChild(new Transform("HalfTerain")
          .addChild(new Shape("Stripe1")
            .setAppearance(new Appearance()
              .setTexture(new ImageTexture().setUrl(new String[] {"grass_2.gif","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/grass_2.gif"})))
            .setGeometry(new Box().setSize(70.0,0.1,5.0)))
          .addChild(new Transform().setTranslation(0.0,0.0,-5.0)
            .addChild(new Shape("Stripe2")
              .setAppearance(new Appearance()
                .setTexture(new ImageTexture().setUrl(new String[] {"grass_1.gif","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/grass_1.gif"})))
              .setGeometry(new Box().setSize(70.0,0.1,5.0))))
          .addChild(new Transform().setTranslation(0.0,0.0,-10.0)
            .addChild(new Shape().setUSE("Stripe1")))
          .addChild(new Transform().setTranslation(0.0,0.0,-15.0)
            .addChild(new Shape().setUSE("Stripe2")))
          .addChild(new Transform().setTranslation(0.0,0.0,-20.0)
            .addChild(new Shape().setUSE("Stripe1")))
          .addChild(new Transform().setTranslation(0.0,0.0,-30.0)
            .addChild(new Shape().setUSE("Stripe1")))
          .addChild(new Transform().setTranslation(0.0,0.0,-40.0)
            .addChild(new Shape().setUSE("Stripe1")))
          .addChild(new Transform().setTranslation(0.0,0.0,-50.0)
            .addChild(new Shape().setUSE("Stripe1")))
          .addChild(new Transform().setTranslation(0.0,0.0,-15.0)
            .addChild(new Shape().setUSE("Stripe2")))
          .addChild(new Transform().setTranslation(0.0,0.0,-25.0)
            .addChild(new Shape().setUSE("Stripe2")))
          .addChild(new Transform().setTranslation(0.0,0.0,-35.0)
            .addChild(new Shape().setUSE("Stripe2")))
          .addChild(new Transform().setTranslation(0.0,0.0,-45.0)
            .addChild(new Shape().setUSE("Stripe2"))))
        .addChild(new Transform().setRotation(0.0,1.0,0.0,3.14)
          .addChild(new Transform().setUSE("HalfTerain"))))
      .addChild(new Transform("HalfField").setTranslation(0.0,0.0,-50.0)
        .addChild(new Inline().setUrl(new String[] {"./GoalPost.wrl","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/GoalPost.wrl"}))
        .addChild(new Transform("OneSideBox")
          .addChild(new Shape()
            .setAppearance(new Appearance()
              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0).setEmissiveColor(0.5,0.5,0.5)))
            .setGeometry(new Extrusion().setCrossSection(new MFVec2f(new double[] {-0.05,0.05,0.05,0.05,0.05,-0.05,-0.05,-0.05})).setSpine(new MFVec3f(new double[] {-32.0,0.01,0.0,-32.0,0.01,50.0,32.0,0.01,50.0,32.0,0.01,0.0,-32.0,0.01,0.0})))))
        .addChild(new Transform("SmallBox")
          .addChild(new Shape()
            .setAppearance(new Appearance()
              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0).setEmissiveColor(0.5,0.5,0.5)))
            .setGeometry(new Extrusion().setCrossSection(new MFVec2f(new double[] {-0.05,0.05,0.05,0.05,0.05,-0.05,-0.05,-0.05})).setSpine(new MFVec3f(new double[] {-9.16,0.01,0.0,-9.16,0.01,5.5,9.16,0.01,5.5,9.16,0.01,0.0})))))
        .addChild(new Transform("BigBox")
          .addChild(new Shape()
            .setAppearance(new Appearance()
              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0).setEmissiveColor(0.5,0.5,0.5)))
            .setGeometry(new Extrusion().setCrossSection(new MFVec2f(new double[] {-0.05,0.05,0.05,0.05,0.05,-0.05,-0.05,-0.05})).setSpine(new MFVec3f(new double[] {-15.16,0.01,0.0,-15.16,0.01,16.5,15.16,0.01,16.5,15.16,0.01,0.0})))))
        .addChild(new Transform("PenSpot").setTranslation(0.0,0.0,10.97)
          .addChild(new Shape()
            .setAppearance(new Appearance()
              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0).setEmissiveColor(0.5,0.5,0.5)))
            .setGeometry(new Cylinder().setHeight(0.11).setRadius(0.1))))
        .addChild(new Transform("CentSpot").setTranslation(0.0,0.0,50.0)
          .addChild(new Shape()
            .setAppearance(new Appearance()
              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0).setEmissiveColor(0.5,0.5,0.5)))
            .setGeometry(new Cylinder().setHeight(0.11).setRadius(0.1))))
        .addChild(new Transform("CentCircl").setTranslation(0.0,0.0,50.0)
          .addChild(new Shape()
            .setAppearance(new Appearance()
              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0).setEmissiveColor(0.5,0.5,0.5)))
            .setGeometry(new Extrusion().setCrossSection(new MFVec2f(new double[] {-0.05,0.05,0.05,0.05,0.05,-0.05,-0.05,-0.05})).setSpine(new MFVec3f(new double[] {9.1000,0.0,0.0,9.0282,0.0,1.1405,8.8141,0.0,2.2631,8.4610,0.0,3.3499,7.9744,0.0,4.3840,7.3621,0.0,5.3488,6.6336,0.0,6.2294,5.8006,0.0,7.0117,4.8760,0.0,7.6834,3.8746,0.0,8.2339,2.8121,0.0,8.6546,1.7052,0.0,8.9388,0.5714,0.0,9.0820,-0.5714,0.0,9.0820,-1.7052,0.0,8.9388,-2.8121,0.0,8.6546,-3.8746,0.0,8.2339,-4.8760,0.0,7.6834,-5.8006,0.0,7.0117,-6.6336,0.0,6.2294,-7.3621,0.0,5.3488,-7.9744,0.0,4.3840,-8.4610,0.0,3.3499,-8.8141,0.0,2.2631,-9.0282,0.0,1.1405,-9.1000,0.0,0.0000,-9.0282,0.0,-1.1405,-8.8141,0.0,-2.2631,-8.4610,0.0,-3.3499,-7.9744,0.0,-4.3840,-7.3621,0.0,-5.3488,-6.6336,0.0,-6.2294,-5.8006,0.0,-7.0117,-4.8760,0.0,-7.6834,-3.8746,0.0,-8.2339,-2.8121,0.0,-8.6546,-1.7052,0.0,-8.9388,-0.5714,0.0,-9.0820,0.5714,0.0,-9.0820,1.7052,0.0,-8.9388,2.8121,0.0,-8.6546,3.8746,0.0,-8.2339,4.8760,0.0,-7.6834,5.8006,0.0,-7.0117,6.6336,0.0,-6.2294,7.3621,0.0,-5.3488,7.9744,0.0,-4.3840,8.4610,0.0,-3.3499,8.8141,0.0,-2.2631,9.0282,0.0,-1.1405,9.1000,0.0,-0.0})))))
        .addChild(new Transform("BBoxCircl").setRotation(0.0,-1.0,0.0,0.93).setTranslation(0.0,0.0,9.144)
          .addChild(new Shape()
            .setAppearance(new Appearance()
              .setMaterial(new Material().setDiffuseColor(1.0,1.0,1.0).setEmissiveColor(0.5,0.5,0.5)))
            .setGeometry(new Extrusion().setCrossSection(new MFVec2f(new double[] {-0.05,0.05,0.05,0.05,0.05,-0.05,-0.05,-0.05})).setSpine(getExtrusion_7_93_spine()))))
        .addChild(new Transform("CornFlag1").setTranslation(-32.0,0.0,0.0)
          .addChild(new Transform().setTranslation(0.0,0.75,0.0)
            .addChild(new Shape()
              .setAppearance(new Appearance()
                .setMaterial(new Material()))
              .setGeometry(new Cylinder().setHeight(1.5).setRadius(0.01))))
          .addChild(new Transform().setScale(0.1,0.1,0.1).setTranslation(0.0,1.0,0.0)
            .addChild(new Group()
              .addChild(new Transform()
                .addChild(new Shape()
                  .setGeometry(new IndexedFaceSet("Flag").setDEF("Flag").setConvex(false).setSolid(false).setCoordIndex(new int[] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,0})
                    .setCoord(new Coordinate("FlagCoor").setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,0.5,0.0,0.0,1.0,0.0,0.0,1.5,0.0,0.0,2.0,0.0,0.0,2.5,0.0,0.0,3.0,0.0,0.0,3.5,0.0,0.0,4.0,0.0,0.0,4.5,0.0,0.0,5.0,0.0,0.0,5.5,0.0,0.0,6.0,0.0,0.0,6.5,0.0,0.0,7.0,0.0,0.0,7.5,0.0,0.0,7.5,0.5,0.0,7.5,1.0,0.0,7.5,1.5,0.0,7.5,2.0,0.0,7.5,2.5,0.0,7.5,3.0,0.0,7.5,3.5,0.0,7.5,4.0,0.0,7.5,4.5,0.0,7.5,5.0,0.0,7.0,5.0,0.0,6.5,5.0,0.0,6.0,5.0,0.0,5.5,5.0,0.0,5.0,5.0,0.0,4.5,5.0,0.0,4.0,5.0,0.0,3.5,5.0,0.0,3.0,5.0,0.0,2.5,5.0,0.0,2.0,5.0,0.0,1.5,5.0,0.0,1.0,5.0,0.0,0.5,5.0,0.0,0.0,5.0,0.0,0.0,4.5,0.0,0.0,4.0,0.0,0.0,3.5,0.0,0.0,3.0,0.0,0.0,2.5,0.0,0.0,2.0,0.0,0.0,1.5,0.0,0.0,1.0,0.0,0.0,0.5,0.0}))))
                  .setAppearance(new Appearance()
                    .setMaterial(new Material().setDiffuseColor(0.8,0.2,0.2).setShininess(0.8))
                    .setTexture(new ImageTexture().setUrl(new String[] {"./AekFlag.jpg","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/AekFlag.jpg"}))
                    .setTextureTransform(new TextureTransform().setScale(1.0,1.3).setTranslation(0.0,0.05))))
                .addChild(new TimeSensor("timer").setCycleInterval(4.0).setLoop(true))
                .addChild(new CoordinateInterpolator("MoveFlag").setKey(new double[] {0.0,0.25,0.5,0.75,1.0}).setKeyValue(getMoveFlag_9_109_keyValue()))))
            .addChild(new ROUTE().setFromNode("timer").setFromField("fraction_changed").setToNode("MoveFlag").setToField("set_fraction"))
            .addChild(new ROUTE().setFromNode("MoveFlag").setFromField("value_changed").setToNode("FlagCoor").setToField("set_point"))))
        .addChild(new Transform("CornFlag2").setTranslation(64.0,0.0,0.0)
          .addChild(new Transform().setUSE("CornFlag1"))))
      .addChild(new Transform().setRotation(0.0,1.0,0.0,3.14)
        .addChild(new Transform().setUSE("HalfField"))))
    .addChild(new Transform("SoccerBall").setScale(0.16,0.16,0.16).setTranslation(0.0,0.21,-39.03)
      .addChild(new Transform("SoccerBallSpin")
        .addChild(new Inline().setUrl(new String[] {"./SoccerBall.wrl","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/SoccerBallwrl"}))
        .addChild(new TouchSensor("Toucher").setDescription("Click on ball to shoot")))
      .addChild(new Viewpoint().setDescription("Ball View").setPosition(0.4,0.3,5.0)))
    .addChild(new Transform("Referee").setRotation(0.0,1.0,0.0,1.57).setScale(1.0,0.9,1.0).setTranslation(-7.0,0.1,-45.0)
      .addChild(new Inline().setUrl(new String[] {"Referee.wrl","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/Referee.wrl","Referee.x3d","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/Referee.x3d"}))
      .addChild(new Transform()
        .addChild(new Sound().setMaxBack(4500).setMaxFront(4500).setMinBack(1500).setMinFront(1500)
          .setSource(new AudioClip("PenWhistle").setDescription("Background noise").setPitch(0.65).setUrl(new String[] {"./whist.wav","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/whist.wav"}))))
      .addChild(new ROUTE().setFromNode("Toucher").setFromField("touchTime").setToNode("PenWhistle").setToField("set_startTime")))
    .addChild(new Transform("YellowPlayer").setRotation(0.0,1.0,0.0,3.14).setTranslation(-0.2,0.05,-38.8)
      .addChild(new Transform("Scala_Complessiva").setScale(0.0107,0.0107,0.0107)
        .addComments(" This is Frank's holle body. ")
        .addChild(new Transform("parte_superiore").setTranslation(-8.4,101.0,-23.765)
          .addComments(" This is the upper part ")
          .addChild(new Transform("busto_x").setRotation(1.0,0.0,0.0,0.05)
            .addChild(new Transform("busto_y")
              .addChild(new Transform("busto_z")
                .addChild(new Transform("torace").setScale(0.84,3.0,0.84)
                  .addComments(" Main Body ")
                  .addChild(new Shape("blocco")
                    .addComments(" One peace of the main body. It has four ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,6,7,-1,2,1,7,8,-1,3,2,8,9,-1,4,3,9,10,-1,5,4,10,11,-1,0,5,11,6,-1,0,1,2,3,4,5,-1,11,10,9,8,7,6,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-14.85,2.673,6.2055,-7.425,2.673,14.22,7.425,2.673,14.22,14.85,2.673,6.2055,7.425,2.673,-1.809,-7.425,2.673,-1.809,-14.4,0.0,5.8405,-7.2,0.0,13.49,7.2,0.0,13.49,14.4,0.0,5.8405,7.2,0.0,-1.509,-7.2,0.0,-1.509})))))
                  .addChild(new Transform().setScale(1.05,1.4,1.05).setTranslation(0.0,2.6,0.0)
                    .addChild(new Shape().setUSE("blocco"))
                    .addChild(new Transform().setScale(1.05,1.3,1.05).setTranslation(0.0,2.6,0.0)
                      .addChild(new Shape().setUSE("blocco"))
                      .addChild(new Transform().setScale(1.0,0.85,0.9).setTranslation(0.0,2.6,0.0)
                        .addComments(" Upper piece of main body ")
                        .addChild(new Shape()
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,6,7,-1,2,1,7,8,-1,3,2,8,9,-1,4,3,9,10,-1,5,4,10,11,-1,0,5,11,6,-1,0,1,2,3,4,5,-1,11,10,9,8,7,6,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-14.85,2.673,6.2055,-7.425,2.673,14.22,7.425,2.673,14.22,14.85,2.673,6.2055,7.425,2.673,-1.809,-7.425,2.673,-1.809,-14.4,0.0,7.0,-7.2,0.0,16.0,7.2,0.0,16.0,14.4,0.0,7.0,7.2,0.0,-2.609,-7.2,0.0,-2.609})))))))))
                .addChild(new Transform("base_collo").setRotation(1.0,-3.07161E-8,1.82376E-7,0.355698).setTranslation(0.0,47.445,3.49)
                  .addComments(" Head ")
                  .addChild(new Shape()
                    .addComments(" Head base ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.1)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {1,0,6,7,-1,2,1,7,8,-1,3,2,8,9,-1,4,3,9,10,-1,5,4,10,11,-1,0,5,11,6,-1,0,1,2,3,4,5,-1,11,10,9,8,7,6,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-6.3,2.223,1.3455,-3.15,2.223,4.5,3.15,2.223,4.5,6.3,2.223,1.3455,3.15,2.223,-1.809,-3.15,2.223,-1.809,-8.1,0.0,2.6955,-4.05,0.0,7.2,4.05,0.0,7.2,8.1,0.0,2.6955,4.05,0.0,-1.809,-4.05,0.0,-1.809})))))
                  .addChild(new Transform().setRotation(1.0,-3.07161E-8,1.82376E-7,-0.355698)
                    .addChild(new Transform("collo_x").setRotation(1.0,0.0,0.0,0.25)
                      .addChild(new Transform("collo_y")
                        .addChild(new Transform("collo_z")
                          .addChild(new Transform("collo").setRotation(-0.577,-0.577,-0.577,2.094).setTranslation(0.0,2.175,0.8079)
                            .addComments(" Head w/out the base ")
                            .addChild(new Shape()
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                              .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,1,7,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,0,6,11,-1,6,7,12,-1,7,8,12,-1,8,9,12,-1,9,10,12,-1,10,11,12,-1,11,6,12,-1,5,4,3,2,1,0,-1})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {4.45152,-2.17003,-1.65596,4.45152,2.45372,-1.65596,0.936255,3.75084,-0.348291,-2.0021,2.45372,0.597931,-2.0021,-2.17003,0.597931,0.936255,-3.46716,-0.348291,4.80862,-2.17003,5.47309,4.80862,2.45372,5.47309,1.05862,3.75084,5.47309,-2.11447,2.45372,5.11166,-2.11447,-2.17003,5.11166,1.05862,-3.74916,5.47309,-0.0247538,0.141844,7.46774})))))
                            .addChild(new Transform("testa").setTranslation(0.0,0.0,2.0)
                              .addComments(" Head w/out the neck ")
                              .addChild(new Shape()
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(1.0,0.8,0.8)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(getIndexedFaceSet_17_161_coordIndex())
                                  .setCoord(new Coordinate().setPoint(getCoordinate_18_161_point())))))))))))
                .addChild(new Transform("clavicola_sinistra").setRotation(0.707,2.10734E-8,0.707,3.14159).setTranslation(3.68,44.23,4.295)
                  .addComments(" Left hand + shoulder ")
                  .addChild(new Shape()
                    .addComments(" Left Shoulder ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {1,2,0,-1,2,20,0,-1,0,3,19,-1,4,5,0,-1,14,6,15,-1,15,6,16,-1,7,8,2,1,-1,17,9,3,20,-1,3,9,18,19,-1,10,11,5,4,-1,11,12,6,14,5,-1,12,7,1,16,6,-1,13,8,7,-1,13,9,17,-1,13,10,18,-1,13,11,10,-1,13,12,11,-1,13,7,12,-1,15,0,5,-1,15,16,1,-1,1,0,15,-1,20,2,8,17,-1,15,5,14,-1,20,3,0,-1,0,19,4,-1,19,18,10,4,-1,13,18,9,-1,13,17,8,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,1.48143,20.4295,-3.76,6.31898,11.3924,-5.02,1.42392,18.2963,0.0,-2.23765,14.2125,5.02,1.42392,18.2963,3.76,6.26603,11.3768,-0.0073367,13.0624,2.55425,-3.76,6.26604,2.47568,-3.76,0.693588,2.47568,0.0,-4.45516,2.47568,3.76,0.594813,2.47568,3.76,6.26604,2.47568,-0.00678022,13.4975,-3.79546,0.0,0.0,0.0,1.87693,10.1351,7.78251,-8.7608E-4,8.83749,10.5483,-1.88308,10.1224,7.87083,-1.91737,-3.80795,2.47568,1.77166,-3.86248,2.47568,3.49215,-1.35336,16.4408,-2.65838,-0.995574,15.6679})))))
                  .addChild(new Transform("brsup_sin").setRotation(0.707,2.10734E-8,0.707,-3.14159)
                    .addComments(" Left hand ")
                    .addChild(new Transform("spalla_sin").setRotation(1.0,0.0,0.0,0.0).setTranslation(16.14,1.03,0.0)
                      .addComments(" rotation of left hand ")
                      .addChild(new Transform("spalla_sinistra").setRotation(0.577,-0.577,0.577,2.094)
                        .addChild(new Shape("avambraccio")
                          .addComments(" Left up hand ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,7,8,13,-1,8,9,13,-1,9,10,13,-1,10,11,13,-1,11,12,13,-1,12,7,13,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0472,0.03465,34.8689,2.8112,2.24,31.34,2.8112,-2.24,31.34,-0.0472,-4.3309,31.34,-2.8112,-2.24,31.34,-2.8112,2.24,31.34,-0.0472,4.3309,31.34,4.0,2.81576,2.45392,5.02,-2.15631,2.45392,0.0,-4.28954,2.51143,-5.02,-2.15631,2.45392,-4.0,2.84589,2.45392,-0.132948,5.30748,2.45392,-0.0472,0.03465,0.0,2.43,1.9362,33.1044,2.43,-1.9362,33.1044,-0.0472,-3.7506,33.1044,-2.43,-1.9362,33.1044,-2.43,1.9362,33.1044,-0.0472,3.7506,33.1044})))))
                        .addChild(new Transform().setRotation(0.577,-0.577,0.577,-2.0944)
                          .addChild(new Transform("braccio_sin").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-31.34,0.0)
                            .addComments(" L lower hand + palm. ")
                            .addComments(" L Ellbow rotation ")
                            .addChild(new Transform("braccio_sinistro").setRotation(0.577,-0.577,0.577,2.0944)
                              .addChild(new Shape()
                                .addComments(" Lower left hand ")
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,21,20,-1,0,22,21,-1,0,23,22,-1,0,24,23,-1,0,25,24,-1,0,20,25,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,7,8,15,14,-1,8,9,16,15,-1,9,10,17,16,-1,10,11,18,17,-1,11,12,19,18,-1,12,7,14,19,-1,21,2,1,20,-1,22,3,2,21,-1,23,4,3,22,-1,24,5,4,23,-1,25,6,5,24,-1,20,1,6,25,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0671,0.0,28.8269,1.40855,0.9656,27.02,1.40855,-0.9656,27.02,-0.0671,-1.9312,27.02,-1.40855,-0.9656,27.02,-1.40855,0.9656,27.02,-0.0671,1.9312,27.02,2.75,2.0688,0.0,2.75,-2.0688,0.0,-0.0671,-4.0,0.0,-2.75,-2.0688,0.0,-2.75,2.0688,0.0,-0.0671,4.0,0.0,-0.0671,0.0,-3.52881,2.57455,1.9368,-1.76441,2.57455,-1.9368,-1.76441,-0.0671,-3.464,-1.76441,-2.57455,-1.9368,-1.76441,-2.57455,1.9368,-1.76441,-0.0671,3.464,-1.76441,1.21984,0.836236,27.9234,1.21984,-0.836236,27.9234,0.0,-1.67247,27.9234,-1.21984,-0.836236,27.9234,-1.21984,0.836236,27.9234,0.0,1.67247,27.9234})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.0944).setScale(0.6,0.6,0.6)
                                .addChild(new Transform("mano_sinistra").setRotation(0.0,1.0,0.0,1.57).setScale(0.6,1.1,1.0).setTranslation(0.0,-45.0,0.0)
                                  .addComments(" L palm + fing ")
                                  .addComments(" L palm rotation ")
                                  .addChild(new Shape("palmo")
                                    .setAppearance(new Appearance()
                                      .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,3,2,1,-1,4,5,0,1,-1,7,6,5,4,-1,0,5,6,11,8,3,-1,8,9,2,3,-1,11,10,9,8,-1,10,7,4,1,2,9,-1,6,7,10,11,-1})
                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-4.5,0.0,2.5,-4.5,0.0,-2.5,4.5,0.0,-2.5,4.5,0.0,2.5,-10.0,-8.0,-1.5,-10.0,-8.0,1.5,-10.0,-14.0,1.5,-10.0,-14.0,-1.5,8.0,-8.0,1.5,8.0,-8.0,-1.5,8.0,-14.0,-1.5,8.0,-14.0,1.5})))))
                                  .addChild(new Transform("indice_sinistro").setScale(1.6,0.8,1.0).setTranslation(-8.0,-14.0,0.0)
                                    .addChild(new Transform("ind_s_inf").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape("ditoinf")
                                        .setAppearance(new Appearance()
                                          .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                                        .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,1,2,3,4,5,6,7,-1,15,14,13,12,11,10,9,8,-1,15,7,6,14,-1,15,8,0,7,-1,8,9,1,0,-1,9,10,2,1,-1,10,11,3,2,-1,11,12,4,3,-1,12,13,5,4,-1,13,14,6,5,-1})
                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.8,0.0,1.5,0.8,0.0,1.5,1.3,0.0,0.8,1.3,0.0,-0.8,0.8,0.0,-1.5,-0.8,0.0,-1.5,-1.3,0.0,-0.8,-1.3,0.0,0.8,-0.8,-6.0,1.5,0.8,-6.0,1.5,1.3,-6.0,0.8,1.3,-6.0,-0.8,0.8,-6.0,-1.5,-0.8,-6.0,-1.5,-1.3,-6.0,-0.8,-1.3,-6.0,0.8})))))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("ind_s_sup").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape("ditosup")
                                            .setAppearance(new Appearance()
                                              .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                                            .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,1,2,3,4,5,6,7,-1,15,14,13,12,11,10,9,8,-1,15,7,6,14,-1,15,8,0,7,-1,8,9,1,0,-1,9,10,2,1,-1,10,11,3,2,-1,11,12,4,3,-1,12,13,5,4,-1,13,14,6,5,-1})
                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.8,0.0,1.5,0.8,0.0,1.5,1.3,0.0,0.8,1.3,0.0,-0.8,0.8,0.0,-1.5,-0.8,0.0,-1.5,-1.3,0.0,-0.8,-1.3,0.0,0.8,-0.6,-6.0,1.0,0.6,-6.0,1.0,0.8,-6.0,0.6,0.8,-6.0,-0.6,0.6,-6.0,-1.0,-0.6,-6.0,-1.0,-0.8,-6.0,-0.6,-0.8,-6.0,0.6})))))))))
                                  .addChild(new Transform("medio_sinistro").setScale(1.8,0.9,1.0).setTranslation(-3.0,-14.0,0.0)
                                    .addChild(new Transform("med_s_inf").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape().setUSE("ditoinf"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("med_s_sup").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape().setUSE("ditosup"))))))
                                  .addChild(new Transform("anulare_sinistro").setScale(1.5,0.8,0.95).setTranslation(1.6,-14.0,0.0)
                                    .addChild(new Transform("an_s_inf").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape().setUSE("ditoinf"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("an_s_sup").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape().setUSE("ditosup"))))))
                                  .addChild(new Transform("mignolo_sinistro").setScale(1.35,0.7,1.0).setTranslation(6.0,-14.0,0.0)
                                    .addChild(new Transform("min_s_inf").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape().setUSE("ditoinf"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("min_s_sup").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape().setUSE("ditosup"))))))
                                  .addChild(new Transform("pollice_sinistro").setRotation(0.0,0.0,1.0,-0.8).setScale(1.3,0.7,1.3).setTranslation(-9.5,-11.0,0.0)
                                    .addChild(new Transform().setRotation(1.0,0.0,0.0,0.2)
                                      .addChild(new Transform("pol_s_inf")
                                        .addChild(new Shape().setUSE("ditoinf"))
                                        .addChild(new Transform().setScale(1.0,0.9,1.0).setTranslation(0.0,-6.0,0.0)
                                          .addChild(new Transform("pol_s_sup")
                                            .addChild(new Shape().setUSE("ditosup"))))))))))))))))
                .addChild(new Transform("clavicola_destra").setRotation(-2.185573E-8,-1.0,7.9466E-9,1.57079).setTranslation(-3.68,44.23,4.295)
                  .addComments(" R hand + shoulder ")
                  .addChild(new Shape()
                    .addComments(" R shoulder ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,2,1,-1,0,20,2,-1,19,3,0,-1,0,5,4,-1,15,6,14,-1,16,6,15,-1,1,2,8,7,-1,20,3,9,17,-1,19,18,9,3,-1,4,5,11,10,-1,5,14,6,12,11,-1,6,16,1,7,12,-1,7,8,13,-1,17,9,13,-1,18,10,13,-1,10,11,13,-1,11,12,13,-1,12,7,13,-1,5,0,15,-1,1,16,15,-1,15,0,1,-1,17,8,2,20,-1,14,5,15,-1,0,3,20,-1,4,19,0,-1,4,10,18,19,-1,9,18,13,-1,8,17,13,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,-1.48143,20.4295,-3.76,-6.31898,11.3924,-5.02,-1.42392,18.2963,0.0,2.23765,14.2125,5.02,-1.42392,18.2963,3.76,-6.26603,11.3768,-0.0073367,-13.0624,2.55425,-3.76,-6.26604,2.47568,-3.76,-0.693588,2.47568,0.0,4.45516,2.47568,3.76,-0.594813,2.47568,3.76,-6.26604,2.47568,-0.00678022,-13.4975,-3.79546,0.0,0.0,0.0,1.87693,-10.1351,7.78251,-8.7608E-4,-8.83749,10.5483,-1.88308,-10.1224,7.87083,-1.91737,3.80795,2.47568,1.77166,3.86248,2.47568,3.49215,1.35336,16.4408,-2.65838,0.995574,15.6679})))))
                  .addChild(new Transform().setRotation(-2.185573E-8,-1.0,7.9466E-9,-1.57079)
                    .addComments(" R hand ")
                    .addChild(new Transform("spalla_des").setRotation(1.0,0.0,0.0,0.0).setTranslation(-16.14,1.03,0.0)
                      .addComments(" rotation of R hand ")
                      .addChild(new Transform("brsup_des").setRotation(0.577,-0.577,0.577,2.0944)
                        .addChild(new Shape()
                          .addComments(" R up hand ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,7,8,13,-1,8,9,13,-1,9,10,13,-1,10,11,13,-1,11,12,13,-1,12,7,13,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0472,0.03465,34.8689,2.8112,2.24,31.34,2.8112,-2.24,31.34,-0.0472,-4.3309,31.34,-2.8112,-2.24,31.34,-2.8112,2.24,31.34,-0.0472,4.3309,31.34,5.02,2.15631,2.45392,4.0,-2.90427,2.45392,-0.0472,-6.45702,2.45392,-4.0,-2.90263,2.45392,-5.02,2.15631,2.45392,0.0,4.28954,2.51143,-0.0472,0.03465,0.0,2.43,1.9362,33.1044,2.43,-1.9362,33.1044,-0.0472,-3.7506,33.1044,-2.43,-1.9362,33.1044,-2.43,1.9362,33.1044,-0.0472,3.7506,33.1044})))))
                        .addChild(new Transform().setRotation(0.577,-0.577,0.577,-2.0944)
                          .addChild(new Transform("braccio_des").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-31.34,0.0)
                            .addComments(" R lower hand + palm ")
                            .addComments(" lower hand rotation ")
                            .addChild(new Transform("brinf_des").setRotation(0.577,-0.577,0.577,2.0944)
                              .addChild(new Shape()
                                .addComments(" R lower hand ")
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,21,20,-1,0,22,21,-1,0,23,22,-1,0,24,23,-1,0,25,24,-1,0,20,25,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,7,8,15,14,-1,8,9,16,15,-1,9,10,17,16,-1,10,11,18,17,-1,11,12,19,18,-1,12,7,14,19,-1,21,2,1,20,-1,22,3,2,21,-1,23,4,3,22,-1,24,5,4,23,-1,25,6,5,24,-1,20,1,6,25,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0671,0.0,28.8269,1.40855,0.9656,27.02,1.40855,-0.9656,27.02,-0.0671,-1.9312,27.02,-1.40855,-0.9656,27.02,-1.40855,0.9656,27.02,-0.0671,1.9312,27.02,2.75,2.0688,0.0,2.75,-2.0688,0.0,-0.0671,-4.0,0.0,-2.75,-2.0688,0.0,-2.75,2.0688,0.0,-0.0671,4.0,0.0,-0.0671,0.0,-3.52881,2.57455,1.9368,-1.76441,2.57455,-1.9368,-1.76441,-0.0671,-3.464,-1.76441,-2.57455,-1.9368,-1.76441,-2.57455,1.9368,-1.76441,-0.0671,3.464,-1.76441,1.21984,0.836236,27.9234,1.21984,-0.836236,27.9234,0.0,-1.67247,27.9234,-1.21984,-0.836236,27.9234,-1.21984,0.836236,27.9234,0.0,1.67247,27.9234})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.0944).setScale(0.6,0.6,0.6)
                                .addChild(new Transform("mano_destra").setRotation(0.0,1.0,0.0,1.57).setScale(0.6,1.1,1.0).setTranslation(0.0,-45.0,0.0)
                                  .addComments(" R palm ")
                                  .addComments(" rotation of R palm ")
                                  .addChild(new Shape().setUSE("palmo"))
                                  .addChild(new Transform("indice_destro").setScale(1.6,0.8,1.0).setTranslation(-8.0,-14.0,0.0)
                                    .addChild(new Transform("ind_d_inf").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinf"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("ind_d_sup").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosup"))))))
                                  .addChild(new Transform("medio_destro").setScale(1.8,0.9,1.0).setTranslation(-3.0,-14.0,0.0)
                                    .addChild(new Transform("med_d_inf").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinf"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("med_d_sup").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosup"))))))
                                  .addChild(new Transform("anulare_destro").setScale(1.5,0.8,0.95).setTranslation(1.6,-14.0,0.0)
                                    .addChild(new Transform("an_d_inf").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinf"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("an_d_sup").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosup"))))))
                                  .addChild(new Transform("mignolo_destro").setScale(1.35,0.7,1.0).setTranslation(6.0,-14.0,0.0)
                                    .addChild(new Transform("min_d_inf").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinf"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("min_d_sup").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosup"))))))
                                  .addChild(new Transform("pollice_destro").setRotation(0.0,0.0,1.0,-0.8).setScale(1.3,0.7,1.3).setTranslation(-9.5,-11.0,0.0)
                                    .addChild(new Transform().setRotation(1.0,0.0,0.0,-0.2)
                                      .addChild(new Transform("pol_d_inf").setRotation(1.0,0.0,0.0,0.0)
                                        .addChild(new Shape().setUSE("ditoinf"))
                                        .addChild(new Transform().setScale(1.0,0.9,1.0).setTranslation(0.0,-6.0,0.0)
                                          .addChild(new Transform("pol_d_sup").setRotation(1.0,0.0,0.0,0.0)
                                            .addChild(new Shape().setUSE("ditosup"))))))))))))))))))))
        .addChild(new Transform("parte_inferiore").setTranslation(-8.4,101.0,-23.765)
          .addComments(" Lower part ")
          .addChild(new Transform("torso").setRotation(-0.577,-0.577,-0.577,2.0944).setTranslation(0.06,-12.71,7.525)
            .addChild(new Shape()
              .addComments(" waste ")
              .setAppearance(new Appearance()
                .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.1)))
              .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {8,12,17,16,-1,4,12,8,-1,0,4,8,-1,7,0,8,-1,8,16,7,-1,10,19,18,12,-1,10,12,4,-1,10,4,1,-1,10,1,11,-1,10,11,19,-1,17,15,13,-1,4,0,1,-1,7,16,13,5,-1,16,17,13,-1,19,11,6,14,-1,11,1,3,6,-1,1,0,2,3,-1,0,7,5,2,-1,2,5,9,-1,5,13,9,-1,13,14,9,-1,14,6,9,-1,6,3,9,-1,3,2,9,-1,18,19,14,-1,15,18,14,-1,15,14,13,-1,15,12,18,-1,17,12,15,-1})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-10.1695,-11.252,0.0,-10.1695,11.252,0.0,-7.25989,-6.075,13.5186,-7.25989,6.075,13.5186,-4.54952,0.0,-1.76908,-1.12652,-12.15,12.0597,-1.12652,12.15,12.0597,0.0,-14.3316,0.0,0.0,-8.30424,-2.0,0.0,0.0,16.1,0.0,8.30424,-2.0,0.0,14.947,0.0,0.777966,0.0,-0.517646,6.76335,-7.423,10.6008,6.46148,7.87094,10.6008,5.49435,-0.575459,3.07913,6.34917,-11.1683,0.0,6.43068,-4.06308,0.0,6.41322,4.0032,0.0,6.48024,11.252,0.0})))))
            .addChild(new Transform().setRotation(-0.577,-0.577,-0.577,-2.0944)
              .addComments(" Both legs ")
              .addChild(new Transform("coscia_des").setRotation(1.0,0.0,0.0,0.0).setTranslation(-8.4,0.0,0.0)
                .addComments(" R leg ")
                .addComments(" R leg rotation ")
                .addChild(new Transform("coscia_destra").setRotation(0.57735,-0.57735,0.57735,2.09439)
                  .addChild(new Shape()
                    .addComments(" R up leg ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.1)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,20,21,13,-1,21,22,13,-1,22,23,13,-1,23,24,13,-1,24,25,13,-1,25,20,13,-1,21,20,7,8,-1,22,21,8,9,-1,23,22,9,10,-1,24,23,10,11,-1,25,24,11,12,-1,20,25,12,7,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,45.5983,4.87835,2.43917,40.72,4.87835,-2.43917,40.72,0.0,-4.87835,40.72,-4.87835,-2.43917,40.72,-4.87835,2.43917,40.72,0.0,4.87835,40.72,6.34917,2.76829,0.0,6.43068,-4.33692,0.0,0.0,-8.06858,0.0,-10.1695,-2.852,0.0,-10.1695,2.852,0.0,0.0,5.93159,0.0,0.0,0.0,-10.8845,4.22452,2.11262,43.1591,4.22452,-2.11262,43.1591,0.0,-4.22452,43.1591,-4.22452,-2.11262,43.1591,-4.22452,2.11262,43.1591,0.0,4.22452,43.1591,5.28309,0.295353,-5.44019,6.19037,-2.0145,-5.44019,0.0,-4.73717,-5.44019,-8.71143,-2.37429,-5.44019,-8.5567,0.713856,-5.44019,-0.117189,4.52141,-5.44019})))))
                  .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                    .addChild(new Transform("polp_des").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-40.72,0.0)
                      .addComments(" R lower leg + foot ")
                      .addComments(" R knee rotation ")
                      .addChild(new Transform("polpaccio_destro").setRotation(0.57735,-0.57735,0.57735,2.09439)
                        .addChild(new Shape()
                          .addComments(" R lower leg ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,2,1,-1,0,3,2,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,15,14,7,8,-1,14,19,12,7,-1,19,18,11,12,-1,18,17,10,11,-1,17,16,9,10,-1,16,15,8,9,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,37.983,4.815,2.16675,37.983,4.815,-2.16675,37.983,0.0,-3.745,37.983,-3.745,-2.16675,37.983,-3.745,2.16675,37.983,0.0,3.745,37.983,4.88081,2.44014,0.0,4.88081,-2.44014,0.0,0.0,-4.88081,0.0,-4.88081,-2.44014,0.0,-4.88081,2.44014,0.0,0.0,4.88081,0.0,0.0,0.0,-4.87909,4.22704,2.11325,-2.44127,4.22704,-2.11325,-2.44127,0.0,-4.22704,-2.44127,-4.22704,-2.11325,-2.44127,-4.22704,2.11325,-2.44127,0.0,4.22704,-2.44127})))))
                        .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                          .addChild(new Transform("cav_des").setTranslation(0.0,-34.53,0.0)
                            .addComments(" R foot ")
                            .addComments(" R foot rotation ")
                            .addChild(new Transform("caviglia_destra").setRotation(0.57735,-0.57735,0.57735,2.09439)
                              .addChild(new Shape()
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,2,-1,2,0,3,-1,3,0,4,-1,4,0,5,-1,5,0,1,-1,1,2,7,6,-1,2,3,8,7,-1,3,4,9,8,-1,5,10,9,-1,9,4,5,-1,5,1,6,-1,6,10,5,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-2.82282,0.0,8.07176,0.0,2.66471,4.65658,-3.44673,3.213,13.04,-3.44673,-2.8833,13.04,0.0,-2.66471,4.65658,0.0,0.0,0.0,11.7663,3.73,7.76141,11.7663,3.28613,13.04,11.7663,-3.28613,13.04,11.7663,-3.73,7.76141,11.7663,0.0,6.20965})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                                .addChild(new Transform("piede_des").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-13.04,11.74)
                                  .addChild(new Transform("piede2_destro").setRotation(0.57735,-0.57735,0.57735,2.09439)
                                    .addChild(new Shape()
                                      .setAppearance(new Appearance()
                                        .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                      .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {7,8,14,13,-1,10,6,12,16,-1,13,12,6,7,-1,12,13,14,15,16,-1,15,14,8,9,-1,16,15,9,10,-1})
                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,-1.13164,0.0,0.0,0.0,-0.074362,-0.274157,-0.958806,-1.2218,-0.333,-0.1336,0.0,-0.6644,-0.1336,0.0273,3.73,-5.26816,0.0273,3.28613,0.010432,0.0273,-3.28613,0.010432,0.0273,-3.73,-5.26816,0.0273,0.0,-6.81992,-0.333,-0.1336,-1.4263,7.20118,2.76803,-3.61711,7.20118,2.47356,0.010432,7.20118,-2.50096,0.010432,7.20118,-2.75649,-3.52969,7.20118,0.0,-4.73182}))))))))))))))))
              .addChild(new Transform("coscia_sin").setRotation(1.0,0.0,0.0,0.0).setTranslation(8.4,0.0,0.0)
                .addComments(" Left leg ")
                .addComments(" L leg rotation ")
                .addChild(new Transform("coscia_sinistra").setRotation(0.57735,-0.57735,0.57735,2.09439)
                  .addComments(" L leg+knee+foot ")
                  .addChild(new Shape()
                    .addComments(" L upper leg ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.1)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,20,21,13,-1,21,22,13,-1,22,23,13,-1,23,24,13,-1,24,25,13,-1,25,20,13,-1,21,20,7,8,-1,22,21,8,9,-1,23,22,9,10,-1,24,23,10,11,-1,25,24,11,12,-1,20,25,12,7,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,45.5983,4.87835,2.43917,40.72,4.87835,-2.43917,40.72,0.0,-4.87835,40.72,-4.87835,-2.43917,40.72,-4.87835,2.43917,40.72,0.0,4.87835,40.72,6.41322,4.39679,0.0,6.48024,-2.852,0.0,0.0,-6.54699,0.0,-10.1695,-2.852,0.0,-10.1695,2.852,0.0,0.0,8.35993,0.0,0.0,0.0,-10.8845,4.22452,2.11262,43.1591,4.22452,-2.11262,43.1591,0.0,-4.22452,43.1591,-4.22452,-2.11262,43.1591,-4.22452,2.11262,43.1591,0.0,4.22452,43.1591,5.57893,2.37318,-5.44019,4.88202,-0.501396,-5.36555,0.0,-4.89339,-5.44019,-8.37244,-0.788649,-5.44019,-8.71143,2.37429,-5.44019,0.0,4.73717,-5.44019})))))
                  .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                    .addChild(new Transform("polp_sin").setTranslation(0.0,-40.72,0.0)
                      .addComments(" L foot ")
                      .addComments(" L foot rotation ")
                      .addChild(new Transform("polpaccio_sinistro").setRotation(0.57735,-0.57735,0.57735,2.09439)
                        .addChild(new Shape()
                          .addComments(" L lower leg ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,1.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,2,1,-1,0,3,2,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,15,14,7,8,-1,14,19,12,7,-1,19,18,11,12,-1,18,17,10,11,-1,17,16,9,10,-1,16,15,8,9,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,37.983,4.815,2.16675,37.983,4.815,-2.16675,37.983,0.0,-3.745,37.983,-3.745,-2.16675,37.983,-3.745,2.16675,37.983,0.0,3.745,37.983,4.88081,2.44014,0.0,4.88081,-2.44014,0.0,0.0,-4.88081,0.0,-4.88081,-2.44014,0.0,-4.88081,2.44014,0.0,0.0,4.88081,0.0,0.0,0.0,-4.87909,4.22704,2.11325,-2.44127,4.22704,-2.11325,-2.44127,0.0,-4.22704,-2.44127,-4.22704,-2.11325,-2.44127,-4.22704,2.11325,-2.44127,0.0,4.22704,-2.44127})))))
                        .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                          .addChild(new Transform("cav_sin").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-34.53,0.0)
                            .addChild(new Transform("piede1_sinistro").setRotation(0.57735,-0.57735,0.57735,2.09439)
                              .addChild(new Shape()
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,2,-1,2,0,3,-1,3,0,4,-1,4,0,5,-1,5,0,1,-1,1,2,7,6,-1,2,3,8,7,-1,3,4,9,8,-1,5,10,9,-1,9,4,5,-1,5,1,6,-1,6,10,5,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-2.82282,0.0,8.07176,0.0,2.66471,4.65658,-3.44673,3.213,13.04,-3.44673,-2.8833,13.04,0.0,-2.66471,4.65658,0.0,0.0,0.0,11.7663,3.73,7.76141,11.7663,3.28613,13.04,11.7663,-3.28613,13.04,11.7663,-3.73,7.76141,11.7663,0.0,6.20965})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                                .addChild(new Transform("piede_sin").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-13.04,11.74)
                                  .addChild(new Transform("piede2_sinistro").setRotation(0.57735,-0.57735,0.57735,2.09439)
                                    .addChild(new Shape()
                                      .setAppearance(new Appearance()
                                        .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                      .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {7,8,14,13,-1,10,6,12,16,-1,13,12,6,7,-1,12,13,14,15,16,-1,15,14,8,9,-1,16,15,9,10,-1})
                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,-0.1336,0.0,-0.918231,0.0,-1.4263,-0.4,0.0,0.0,0.0,-0.426383,-0.0456987,-0.903387,-1.2218,0.333,-0.1336,0.0273,3.73,-5.26816,0.0273,3.28613,0.010432,0.0273,-3.28613,0.010432,0.0273,-3.73,-5.26816,0.0273,0.0,-6.81992,0.6644,-0.1336,-1.2218,7.20118,2.76803,-3.61711,7.20118,2.47356,0.010432,7.20118,-2.50096,0.010432,7.20118,-2.75649,-3.52969,7.20118,0.0,-4.73182})))))))))))))))))))
        .addChild(new TimeSensor("CLOCK_Y").setCycleInterval(3))
        .addComments(" ========================= ")
        .addComments(" Yellow_Player_Animation ")
        .addComments(" ================================ ")
        .addChild(new OrientationInterpolator("LegPath").setKey(new double[] {0.0,0.4,0.45,0.5,0.8}).setKeyValue(new MFRotation(new double[] {1.0,0.0,0.2,0.0,1.0,0.0,0.2,1.0,1.0,0.0,0.2,0.0,1.0,0.0,0.2,-1.3,1.0,0.0,0.2,0.0})))
        .addChild(new OrientationInterpolator("KneePath").setKey(new double[] {0.1,0.2,0.3,0.8}).setKeyValue(new MFRotation(new double[] {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.7,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0})))
        .addChild(new ROUTE().setFromNode("Toucher").setFromField("touchTime").setToNode("CLOCK_Y").setToField("set_startTime"))
        .addChild(new ROUTE().setFromNode("CLOCK_Y").setFromField("fraction_changed").setToNode("LegPath").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("CLOCK_Y").setFromField("fraction_changed").setToNode("KneePath").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("LegPath").setFromField("value_changed").setToNode("coscia_des").setToField("set_rotation"))
        .addChild(new ROUTE().setFromNode("KneePath").setFromField("value_changed").setToNode("polp_des").setToField("set_rotation"))))
    .addChild(new TimeSensor("CLOCK").setCycleInterval(6))
    .addChild(new Transform("RedPlayer").setScale(1.0,0.9,1.0).setTranslation(0.0,0.1,-49.5)
      .addChild(new Transform("Scala_ComplessivaR").setScale(0.0107,0.0107,0.0107)
        .addChild(new Transform("parte_superioreR").setTranslation(-8.4,101.0,-23.765)
          .addComments(" This is the upper part ")
          .addChild(new Transform("busto_xR").setRotation(1.0,0.0,0.0,0.05)
            .addChild(new Transform("busto_yR")
              .addChild(new Transform("busto_zR")
                .addChild(new Transform("toraceR").setScale(0.84,3.0,0.84)
                  .addComments(" Main Body ")
                  .addChild(new Shape("bloccoR")
                    .addComments(" One peace of the main body. It has four ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,6,7,-1,2,1,7,8,-1,3,2,8,9,-1,4,3,9,10,-1,5,4,10,11,-1,0,5,11,6,-1,0,1,2,3,4,5,-1,11,10,9,8,7,6,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-14.85,2.673,6.2055,-7.425,2.673,14.22,7.425,2.673,14.22,14.85,2.673,6.2055,7.425,2.673,-1.809,-7.425,2.673,-1.809,-14.4,0.0,5.8405,-7.2,0.0,13.49,7.2,0.0,13.49,14.4,0.0,5.8405,7.2,0.0,-1.509,-7.2,0.0,-1.509})))))
                  .addChild(new Transform().setScale(1.05,1.4,1.05).setTranslation(0.0,2.6,0.0)
                    .addChild(new Shape().setUSE("bloccoR"))
                    .addChild(new Transform().setScale(1.05,1.3,1.05).setTranslation(0.0,2.6,0.0)
                      .addChild(new Shape().setUSE("bloccoR"))
                      .addChild(new Transform().setScale(1.0,0.85,0.9).setTranslation(0.0,2.6,0.0)
                        .addComments(" Upper piece of main body ")
                        .addChild(new Shape()
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,6,7,-1,2,1,7,8,-1,3,2,8,9,-1,4,3,9,10,-1,5,4,10,11,-1,0,5,11,6,-1,0,1,2,3,4,5,-1,11,10,9,8,7,6,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-14.85,2.673,6.2055,-7.425,2.673,14.22,7.425,2.673,14.22,14.85,2.673,6.2055,7.425,2.673,-1.809,-7.425,2.673,-1.809,-14.4,0.0,7.0,-7.2,0.0,16.0,7.2,0.0,16.0,14.4,0.0,7.0,7.2,0.0,-2.609,-7.2,0.0,-2.609})))))))))
                .addChild(new Transform("base_colloR").setRotation(1.0,-3.07161E-8,1.82376E-7,0.355698).setTranslation(0.0,47.445,3.49)
                  .addComments(" Head ")
                  .addChild(new Shape()
                    .addComments(" Head base ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(0.9,0.9,0.9)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {1,0,6,7,-1,2,1,7,8,-1,3,2,8,9,-1,4,3,9,10,-1,5,4,10,11,-1,0,5,11,6,-1,0,1,2,3,4,5,-1,11,10,9,8,7,6,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-6.3,2.223,1.3455,-3.15,2.223,4.5,3.15,2.223,4.5,6.3,2.223,1.3455,3.15,2.223,-1.809,-3.15,2.223,-1.809,-8.1,0.0,2.6955,-4.05,0.0,7.2,4.05,0.0,7.2,8.1,0.0,2.6955,4.05,0.0,-1.809,-4.05,0.0,-1.809})))))
                  .addChild(new Transform().setRotation(1.0,-3.07161E-8,1.82376E-7,-0.355698)
                    .addChild(new Transform("collo_xR").setRotation(1.0,0.0,0.0,0.25)
                      .addChild(new Transform("collo_yR")
                        .addChild(new Transform("collo_zR")
                          .addChild(new Transform("colloR").setRotation(-0.577,-0.577,-0.577,2.094).setTranslation(0.0,2.175,0.8079)
                            .addComments(" Head w/out the base ")
                            .addChild(new Shape()
                              .setAppearance(new Appearance()
                                .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                              .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,1,7,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,0,6,11,-1,6,7,12,-1,7,8,12,-1,8,9,12,-1,9,10,12,-1,10,11,12,-1,11,6,12,-1,5,4,3,2,1,0,-1})
                                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {4.45152,-2.17003,-1.65596,4.45152,2.45372,-1.65596,0.936255,3.75084,-0.348291,-2.0021,2.45372,0.597931,-2.0021,-2.17003,0.597931,0.936255,-3.46716,-0.348291,4.80862,-2.17003,5.47309,4.80862,2.45372,5.47309,1.05862,3.75084,5.47309,-2.11447,2.45372,5.11166,-2.11447,-2.17003,5.11166,1.05862,-3.74916,5.47309,-0.0247538,0.141844,7.46774})))))
                            .addChild(new Transform("testaR").setTranslation(0.0,0.0,2.0)
                              .addComments(" Head w/out the neck ")
                              .addChild(new Shape()
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(1.0,0.8,0.8)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(getIndexedFaceSet_17_408_coordIndex())
                                  .setCoord(new Coordinate().setPoint(getCoordinate_18_408_point())))))))))))
                .addChild(new Transform("clavicola_sinistraR").setRotation(0.707,2.10734E-8,0.707,3.14159).setTranslation(3.68,44.23,4.295)
                  .addComments(" Left hand + shoulder ")
                  .addChild(new Shape()
                    .addComments(" Left Shoulder ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {1,2,0,-1,2,20,0,-1,0,3,19,-1,4,5,0,-1,14,6,15,-1,15,6,16,-1,7,8,2,1,-1,17,9,3,20,-1,3,9,18,19,-1,10,11,5,4,-1,11,12,6,14,5,-1,12,7,1,16,6,-1,13,8,7,-1,13,9,17,-1,13,10,18,-1,13,11,10,-1,13,12,11,-1,13,7,12,-1,15,0,5,-1,15,16,1,-1,1,0,15,-1,20,2,8,17,-1,15,5,14,-1,20,3,0,-1,0,19,4,-1,19,18,10,4,-1,13,18,9,-1,13,17,8,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,1.48143,20.4295,-3.76,6.31898,11.3924,-5.02,1.42392,18.2963,0.0,-2.23765,14.2125,5.02,1.42392,18.2963,3.76,6.26603,11.3768,-0.0073367,13.0624,2.55425,-3.76,6.26604,2.47568,-3.76,0.693588,2.47568,0.0,-4.45516,2.47568,3.76,0.594813,2.47568,3.76,6.26604,2.47568,-0.00678022,13.4975,-3.79546,0.0,0.0,0.0,1.87693,10.1351,7.78251,-8.7608E-4,8.83749,10.5483,-1.88308,10.1224,7.87083,-1.91737,-3.80795,2.47568,1.77166,-3.86248,2.47568,3.49215,-1.35336,16.4408,-2.65838,-0.995574,15.6679})))))
                  .addChild(new Transform("brsup_sinR").setRotation(0.707,2.10734E-8,0.707,-3.14159)
                    .addComments(" Left hand ")
                    .addChild(new Transform("spalla_sinR").setRotation(1.0,0.0,0.0,0.0).setTranslation(16.14,1.03,0.0)
                      .addComments(" rotation of left hand ")
                      .addChild(new Transform("spalla_sinistraR").setRotation(0.577,-0.577,0.577,2.094)
                        .addChild(new Shape("avambraccioR")
                          .addComments(" Left up hand ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,7,8,13,-1,8,9,13,-1,9,10,13,-1,10,11,13,-1,11,12,13,-1,12,7,13,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0472,0.03465,34.8689,2.8112,2.24,31.34,2.8112,-2.24,31.34,-0.0472,-4.3309,31.34,-2.8112,-2.24,31.34,-2.8112,2.24,31.34,-0.0472,4.3309,31.34,4.0,2.81576,2.45392,5.02,-2.15631,2.45392,0.0,-4.28954,2.51143,-5.02,-2.15631,2.45392,-4.0,2.84589,2.45392,-0.132948,5.30748,2.45392,-0.0472,0.03465,0.0,2.43,1.9362,33.1044,2.43,-1.9362,33.1044,-0.0472,-3.7506,33.1044,-2.43,-1.9362,33.1044,-2.43,1.9362,33.1044,-0.0472,3.7506,33.1044})))))
                        .addChild(new Transform().setRotation(0.577,-0.577,0.577,-2.0944)
                          .addChild(new Transform("braccio_sinR").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-31.34,0.0)
                            .addComments(" L lower hand + palm. ")
                            .addComments(" L Ellbow rotation ")
                            .addChild(new Transform("braccio_sinistroR").setRotation(0.577,-0.577,0.577,2.0944)
                              .addChild(new Shape()
                                .addComments(" Lower left hand ")
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,21,20,-1,0,22,21,-1,0,23,22,-1,0,24,23,-1,0,25,24,-1,0,20,25,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,7,8,15,14,-1,8,9,16,15,-1,9,10,17,16,-1,10,11,18,17,-1,11,12,19,18,-1,12,7,14,19,-1,21,2,1,20,-1,22,3,2,21,-1,23,4,3,22,-1,24,5,4,23,-1,25,6,5,24,-1,20,1,6,25,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0671,0.0,28.8269,1.40855,0.9656,27.02,1.40855,-0.9656,27.02,-0.0671,-1.9312,27.02,-1.40855,-0.9656,27.02,-1.40855,0.9656,27.02,-0.0671,1.9312,27.02,2.75,2.0688,0.0,2.75,-2.0688,0.0,-0.0671,-4.0,0.0,-2.75,-2.0688,0.0,-2.75,2.0688,0.0,-0.0671,4.0,0.0,-0.0671,0.0,-3.52881,2.57455,1.9368,-1.76441,2.57455,-1.9368,-1.76441,-0.0671,-3.464,-1.76441,-2.57455,-1.9368,-1.76441,-2.57455,1.9368,-1.76441,-0.0671,3.464,-1.76441,1.21984,0.836236,27.9234,1.21984,-0.836236,27.9234,0.0,-1.67247,27.9234,-1.21984,-0.836236,27.9234,-1.21984,0.836236,27.9234,0.0,1.67247,27.9234})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.0944).setScale(0.6,0.6,0.6)
                                .addChild(new Transform("mano_sinistraR").setRotation(0.0,1.0,0.0,1.57).setScale(0.6,1.1,1.0).setTranslation(0.0,-45.0,0.0)
                                  .addComments(" L palm + fing ")
                                  .addComments(" L palm rotation ")
                                  .addChild(new Shape("palmoR")
                                    .setAppearance(new Appearance()
                                      .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,3,2,1,-1,4,5,0,1,-1,7,6,5,4,-1,0,5,6,11,8,3,-1,8,9,2,3,-1,11,10,9,8,-1,10,7,4,1,2,9,-1,6,7,10,11,-1})
                                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-4.5,0.0,2.5,-4.5,0.0,-2.5,4.5,0.0,-2.5,4.5,0.0,2.5,-10.0,-8.0,-1.5,-10.0,-8.0,1.5,-10.0,-14.0,1.5,-10.0,-14.0,-1.5,8.0,-8.0,1.5,8.0,-8.0,-1.5,8.0,-14.0,-1.5,8.0,-14.0,1.5})))))
                                  .addChild(new Transform("indice_sinistroR").setScale(1.6,0.8,1.0).setTranslation(-8.0,-14.0,0.0)
                                    .addChild(new Transform("ind_s_infR").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape("ditoinfR")
                                        .setAppearance(new Appearance()
                                          .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                                        .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,1,2,3,4,5,6,7,-1,15,14,13,12,11,10,9,8,-1,15,7,6,14,-1,15,8,0,7,-1,8,9,1,0,-1,9,10,2,1,-1,10,11,3,2,-1,11,12,4,3,-1,12,13,5,4,-1,13,14,6,5,-1})
                                          .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.8,0.0,1.5,0.8,0.0,1.5,1.3,0.0,0.8,1.3,0.0,-0.8,0.8,0.0,-1.5,-0.8,0.0,-1.5,-1.3,0.0,-0.8,-1.3,0.0,0.8,-0.8,-6.0,1.5,0.8,-6.0,1.5,1.3,-6.0,0.8,1.3,-6.0,-0.8,0.8,-6.0,-1.5,-0.8,-6.0,-1.5,-1.3,-6.0,-0.8,-1.3,-6.0,0.8})))))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("ind_s_supR").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape("ditosupR")
                                            .setAppearance(new Appearance()
                                              .setMaterial(new Material().setDiffuseColor(1.0,0.7,0.7)))
                                            .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,1,2,3,4,5,6,7,-1,15,14,13,12,11,10,9,8,-1,15,7,6,14,-1,15,8,0,7,-1,8,9,1,0,-1,9,10,2,1,-1,10,11,3,2,-1,11,12,4,3,-1,12,13,5,4,-1,13,14,6,5,-1})
                                              .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.8,0.0,1.5,0.8,0.0,1.5,1.3,0.0,0.8,1.3,0.0,-0.8,0.8,0.0,-1.5,-0.8,0.0,-1.5,-1.3,0.0,-0.8,-1.3,0.0,0.8,-0.6,-6.0,1.0,0.6,-6.0,1.0,0.8,-6.0,0.6,0.8,-6.0,-0.6,0.6,-6.0,-1.0,-0.6,-6.0,-1.0,-0.8,-6.0,-0.6,-0.8,-6.0,0.6})))))))))
                                  .addChild(new Transform("medio_sinistroR").setScale(1.8,0.9,1.0).setTranslation(-3.0,-14.0,0.0)
                                    .addChild(new Transform("med_s_infR").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape().setUSE("ditoinfR"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("med_s_supR").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape().setUSE("ditosupR"))))))
                                  .addChild(new Transform("anulare_sinistroR").setScale(1.5,0.8,0.95).setTranslation(1.6,-14.0,0.0)
                                    .addChild(new Transform("an_s_infR").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape().setUSE("ditoinfR"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("an_s_supR").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape().setUSE("ditosupR"))))))
                                  .addChild(new Transform("mignolo_sinistroR").setScale(1.35,0.7,1.0).setTranslation(6.0,-14.0,0.0)
                                    .addChild(new Transform("min_s_infR").setRotation(1.0,0.0,0.0,0.3)
                                      .addChild(new Shape().setUSE("ditoinfR"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("min_s_supR").setRotation(1.0,0.0,0.0,0.4)
                                          .addChild(new Shape().setUSE("ditosupR"))))))
                                  .addChild(new Transform("pollice_sinistroR").setRotation(0.0,0.0,1.0,-0.8).setScale(1.3,0.7,1.3).setTranslation(-9.5,-11.0,0.0)
                                    .addChild(new Transform().setRotation(1.0,0.0,0.0,0.2)
                                      .addChild(new Transform("pol_s_infR")
                                        .addChild(new Shape().setUSE("ditoinfR"))
                                        .addChild(new Transform().setScale(1.0,0.9,1.0).setTranslation(0.0,-6.0,0.0)
                                          .addChild(new Transform("pol_s_supR")
                                            .addChild(new Shape().setUSE("ditosupR"))))))))))))))))
                .addChild(new Transform("clavicola_destraR").setRotation(-2.185573E-8,-1.0,7.9466E-9,1.57079).setTranslation(-3.68,44.23,4.295)
                  .addComments(" R hand + shoulder ")
                  .addChild(new Shape()
                    .addComments(" R shoulder ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,2,1,-1,0,20,2,-1,19,3,0,-1,0,5,4,-1,15,6,14,-1,16,6,15,-1,1,2,8,7,-1,20,3,9,17,-1,19,18,9,3,-1,4,5,11,10,-1,5,14,6,12,11,-1,6,16,1,7,12,-1,7,8,13,-1,17,9,13,-1,18,10,13,-1,10,11,13,-1,11,12,13,-1,12,7,13,-1,5,0,15,-1,1,16,15,-1,15,0,1,-1,17,8,2,20,-1,14,5,15,-1,0,3,20,-1,4,19,0,-1,4,10,18,19,-1,9,18,13,-1,8,17,13,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,-1.48143,20.4295,-3.76,-6.31898,11.3924,-5.02,-1.42392,18.2963,0.0,2.23765,14.2125,5.02,-1.42392,18.2963,3.76,-6.26603,11.3768,-0.0073367,-13.0624,2.55425,-3.76,-6.26604,2.47568,-3.76,-0.693588,2.47568,0.0,4.45516,2.47568,3.76,-0.594813,2.47568,3.76,-6.26604,2.47568,-0.00678022,-13.4975,-3.79546,0.0,0.0,0.0,1.87693,-10.1351,7.78251,-8.7608E-4,-8.83749,10.5483,-1.88308,-10.1224,7.87083,-1.91737,3.80795,2.47568,1.77166,3.86248,2.47568,3.49215,1.35336,16.4408,-2.65838,0.995574,15.6679})))))
                  .addChild(new Transform().setRotation(-2.185573E-8,-1.0,7.9466E-9,-1.57079)
                    .addComments(" R hand ")
                    .addChild(new Transform("spalla_desR").setRotation(1.0,0.0,0.0,0.0).setTranslation(-16.14,1.03,0.0)
                      .addComments(" rotation of R hand ")
                      .addChild(new Transform("brsup_desR").setRotation(0.577,-0.577,0.577,2.0944)
                        .addChild(new Shape()
                          .addComments(" R up hand ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,7,8,13,-1,8,9,13,-1,9,10,13,-1,10,11,13,-1,11,12,13,-1,12,7,13,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0472,0.03465,34.8689,2.8112,2.24,31.34,2.8112,-2.24,31.34,-0.0472,-4.3309,31.34,-2.8112,-2.24,31.34,-2.8112,2.24,31.34,-0.0472,4.3309,31.34,5.02,2.15631,2.45392,4.0,-2.90427,2.45392,-0.0472,-6.45702,2.45392,-4.0,-2.90263,2.45392,-5.02,2.15631,2.45392,0.0,4.28954,2.51143,-0.0472,0.03465,0.0,2.43,1.9362,33.1044,2.43,-1.9362,33.1044,-0.0472,-3.7506,33.1044,-2.43,-1.9362,33.1044,-2.43,1.9362,33.1044,-0.0472,3.7506,33.1044})))))
                        .addChild(new Transform().setRotation(0.577,-0.577,0.577,-2.0944)
                          .addChild(new Transform("braccio_desR").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-31.34,0.0)
                            .addComments(" R lower hand + palm ")
                            .addComments(" lower hand rotation ")
                            .addChild(new Transform("brinf_desR").setRotation(0.577,-0.577,0.577,2.0944)
                              .addChild(new Shape()
                                .addComments(" R lower hand ")
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {0,21,20,-1,0,22,21,-1,0,23,22,-1,0,24,23,-1,0,25,24,-1,0,20,25,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,7,8,15,14,-1,8,9,16,15,-1,9,10,17,16,-1,10,11,18,17,-1,11,12,19,18,-1,12,7,14,19,-1,21,2,1,20,-1,22,3,2,21,-1,23,4,3,22,-1,24,5,4,23,-1,25,6,5,24,-1,20,1,6,25,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-0.0671,0.0,28.8269,1.40855,0.9656,27.02,1.40855,-0.9656,27.02,-0.0671,-1.9312,27.02,-1.40855,-0.9656,27.02,-1.40855,0.9656,27.02,-0.0671,1.9312,27.02,2.75,2.0688,0.0,2.75,-2.0688,0.0,-0.0671,-4.0,0.0,-2.75,-2.0688,0.0,-2.75,2.0688,0.0,-0.0671,4.0,0.0,-0.0671,0.0,-3.52881,2.57455,1.9368,-1.76441,2.57455,-1.9368,-1.76441,-0.0671,-3.464,-1.76441,-2.57455,-1.9368,-1.76441,-2.57455,1.9368,-1.76441,-0.0671,3.464,-1.76441,1.21984,0.836236,27.9234,1.21984,-0.836236,27.9234,0.0,-1.67247,27.9234,-1.21984,-0.836236,27.9234,-1.21984,0.836236,27.9234,0.0,1.67247,27.9234})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.0944).setScale(0.6,0.6,0.6)
                                .addChild(new Transform("mano_destraR").setRotation(0.0,1.0,0.0,1.57).setScale(0.6,1.1,1.0).setTranslation(0.0,-45.0,0.0)
                                  .addComments(" R palm ")
                                  .addComments(" rotation of R palm ")
                                  .addChild(new Shape().setUSE("palmoR"))
                                  .addChild(new Transform("indice_destroR").setScale(1.6,0.8,1.0).setTranslation(-8.0,-14.0,0.0)
                                    .addChild(new Transform("ind_d_infR").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinfR"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("ind_d_supR").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosupR"))))))
                                  .addChild(new Transform("medio_destroR").setScale(1.8,0.9,1.0).setTranslation(-3.0,-14.0,0.0)
                                    .addChild(new Transform("med_d_infR").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinfR"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("med_d_supR").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosupR"))))))
                                  .addChild(new Transform("anulare_destroR").setScale(1.5,0.8,0.95).setTranslation(1.6,-14.0,0.0)
                                    .addChild(new Transform("an_d_infR").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinfR"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("an_d_supR").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosupR"))))))
                                  .addChild(new Transform("mignolo_destroR").setScale(1.35,0.7,1.0).setTranslation(6.0,-14.0,0.0)
                                    .addChild(new Transform("min_d_infR").setRotation(1.0,0.0,0.0,-0.3)
                                      .addChild(new Shape().setUSE("ditoinfR"))
                                      .addChild(new Transform().setTranslation(0.0,-6.0,0.0)
                                        .addChild(new Transform("min_d_supR").setRotation(1.0,0.0,0.0,-0.4)
                                          .addChild(new Shape().setUSE("ditosupR"))))))
                                  .addChild(new Transform("pollice_destroR").setRotation(0.0,0.0,1.0,-0.8).setScale(1.3,0.7,1.3).setTranslation(-9.5,-11.0,0.0)
                                    .addChild(new Transform().setRotation(1.0,0.0,0.0,-0.2)
                                      .addChild(new Transform("pol_d_infR").setRotation(1.0,0.0,0.0,0.0)
                                        .addChild(new Shape().setUSE("ditoinfR"))
                                        .addChild(new Transform().setScale(1.0,0.9,1.0).setTranslation(0.0,-6.0,0.0)
                                          .addChild(new Transform("pol_d_supR").setRotation(1.0,0.0,0.0,0.0)
                                            .addChild(new Shape().setUSE("ditosupR"))))))))))))))))))))
        .addChild(new Transform("parte_inferioreR").setTranslation(-8.4,101.0,-23.765)
          .addComments(" Lower part ")
          .addChild(new Transform("torsoR").setRotation(-0.577,-0.577,-0.577,2.0944).setTranslation(0.06,-12.71,7.525)
            .addChild(new Shape()
              .addComments(" waste ")
              .setAppearance(new Appearance()
                .setMaterial(new Material().setDiffuseColor(0.9,0.9,0.9)))
              .setGeometry(new IndexedFaceSet().setCreaseAngle(1.0).setCoordIndex(new int[] {8,12,17,16,-1,4,12,8,-1,0,4,8,-1,7,0,8,-1,8,16,7,-1,10,19,18,12,-1,10,12,4,-1,10,4,1,-1,10,1,11,-1,10,11,19,-1,17,15,13,-1,4,0,1,-1,7,16,13,5,-1,16,17,13,-1,19,11,6,14,-1,11,1,3,6,-1,1,0,2,3,-1,0,7,5,2,-1,2,5,9,-1,5,13,9,-1,13,14,9,-1,14,6,9,-1,6,3,9,-1,3,2,9,-1,18,19,14,-1,15,18,14,-1,15,14,13,-1,15,12,18,-1,17,12,15,-1})
                .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-10.1695,-11.252,0.0,-10.1695,11.252,0.0,-7.25989,-6.075,13.5186,-7.25989,6.075,13.5186,-4.54952,0.0,-1.76908,-1.12652,-12.15,12.0597,-1.12652,12.15,12.0597,0.0,-14.3316,0.0,0.0,-8.30424,-2.0,0.0,0.0,16.1,0.0,8.30424,-2.0,0.0,14.947,0.0,0.777966,0.0,-0.517646,6.76335,-7.423,10.6008,6.46148,7.87094,10.6008,5.49435,-0.575459,3.07913,6.34917,-11.1683,0.0,6.43068,-4.06308,0.0,6.41322,4.0032,0.0,6.48024,11.252,0.0})))))
            .addChild(new Transform().setRotation(-0.577,-0.577,-0.577,-2.0944)
              .addComments(" Both legs ")
              .addChild(new Transform("coscia_desR").setRotation(1.0,0.0,0.0,0.0).setTranslation(-8.4,0.0,0.0)
                .addComments(" R leg ")
                .addComments(" R leg rotation ")
                .addChild(new Transform("coscia_destraR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                  .addChild(new Shape()
                    .addComments(" R up leg ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(0.9,0.9,0.9)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,20,21,13,-1,21,22,13,-1,22,23,13,-1,23,24,13,-1,24,25,13,-1,25,20,13,-1,21,20,7,8,-1,22,21,8,9,-1,23,22,9,10,-1,24,23,10,11,-1,25,24,11,12,-1,20,25,12,7,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,45.5983,4.87835,2.43917,40.72,4.87835,-2.43917,40.72,0.0,-4.87835,40.72,-4.87835,-2.43917,40.72,-4.87835,2.43917,40.72,0.0,4.87835,40.72,6.34917,2.76829,0.0,6.43068,-4.33692,0.0,0.0,-8.06858,0.0,-10.1695,-2.852,0.0,-10.1695,2.852,0.0,0.0,5.93159,0.0,0.0,0.0,-10.8845,4.22452,2.11262,43.1591,4.22452,-2.11262,43.1591,0.0,-4.22452,43.1591,-4.22452,-2.11262,43.1591,-4.22452,2.11262,43.1591,0.0,4.22452,43.1591,5.28309,0.295353,-5.44019,6.19037,-2.0145,-5.44019,0.0,-4.73717,-5.44019,-8.71143,-2.37429,-5.44019,-8.5567,0.713856,-5.44019,-0.117189,4.52141,-5.44019})))))
                  .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                    .addChild(new Transform("polp_desR").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-40.72,0.0)
                      .addComments(" R lower leg + foot ")
                      .addComments(" R knee rotation ")
                      .addChild(new Transform("polpaccio_destroR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                        .addChild(new Shape()
                          .addComments(" R lower leg ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,2,1,-1,0,3,2,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,15,14,7,8,-1,14,19,12,7,-1,19,18,11,12,-1,18,17,10,11,-1,17,16,9,10,-1,16,15,8,9,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,37.983,4.815,2.16675,37.983,4.815,-2.16675,37.983,0.0,-3.745,37.983,-3.745,-2.16675,37.983,-3.745,2.16675,37.983,0.0,3.745,37.983,4.88081,2.44014,0.0,4.88081,-2.44014,0.0,0.0,-4.88081,0.0,-4.88081,-2.44014,0.0,-4.88081,2.44014,0.0,0.0,4.88081,0.0,0.0,0.0,-4.87909,4.22704,2.11325,-2.44127,4.22704,-2.11325,-2.44127,0.0,-4.22704,-2.44127,-4.22704,-2.11325,-2.44127,-4.22704,2.11325,-2.44127,0.0,4.22704,-2.44127})))))
                        .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                          .addChild(new Transform("cav_desR").setTranslation(0.0,-34.53,0.0)
                            .addComments(" R foot ")
                            .addComments(" R foot rotation ")
                            .addChild(new Transform("caviglia_destraR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                              .addChild(new Shape()
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,2,-1,2,0,3,-1,3,0,4,-1,4,0,5,-1,5,0,1,-1,1,2,7,6,-1,2,3,8,7,-1,3,4,9,8,-1,5,10,9,-1,9,4,5,-1,5,1,6,-1,6,10,5,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-2.82282,0.0,8.07176,0.0,2.66471,4.65658,-3.44673,3.213,13.04,-3.44673,-2.8833,13.04,0.0,-2.66471,4.65658,0.0,0.0,0.0,11.7663,3.73,7.76141,11.7663,3.28613,13.04,11.7663,-3.28613,13.04,11.7663,-3.73,7.76141,11.7663,0.0,6.20965})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                                .addChild(new Transform("piede_desR").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-13.04,11.74)
                                  .addChild(new Transform("piede2_destroR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                                    .addChild(new Shape()
                                      .setAppearance(new Appearance()
                                        .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                      .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {7,8,14,13,-1,10,6,12,16,-1,13,12,6,7,-1,12,13,14,15,16,-1,15,14,8,9,-1,16,15,9,10,-1})
                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,-1.13164,0.0,0.0,0.0,-0.074362,-0.274157,-0.958806,-1.2218,-0.333,-0.1336,0.0,-0.6644,-0.1336,0.0273,3.73,-5.26816,0.0273,3.28613,0.010432,0.0273,-3.28613,0.010432,0.0273,-3.73,-5.26816,0.0273,0.0,-6.81992,-0.333,-0.1336,-1.4263,7.20118,2.76803,-3.61711,7.20118,2.47356,0.010432,7.20118,-2.50096,0.010432,7.20118,-2.75649,-3.52969,7.20118,0.0,-4.73182}))))))))))))))))
              .addChild(new Transform("coscia_sinR").setRotation(1.0,0.0,0.0,0.0).setTranslation(8.4,0.0,0.0)
                .addComments(" Left leg ")
                .addComments(" L leg rotation ")
                .addChild(new Transform("coscia_sinistraR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                  .addComments(" L leg+knee+foot ")
                  .addChild(new Shape()
                    .addComments(" L upper leg ")
                    .setAppearance(new Appearance()
                      .setMaterial(new Material().setDiffuseColor(0.9,0.9,0.9)))
                    .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,15,14,-1,0,16,15,-1,0,17,16,-1,0,18,17,-1,0,19,18,-1,0,14,19,-1,14,15,2,1,-1,15,16,3,2,-1,16,17,4,3,-1,17,18,5,4,-1,18,19,6,5,-1,19,14,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,20,21,13,-1,21,22,13,-1,22,23,13,-1,23,24,13,-1,24,25,13,-1,25,20,13,-1,21,20,7,8,-1,22,21,8,9,-1,23,22,9,10,-1,24,23,10,11,-1,25,24,11,12,-1,20,25,12,7,-1})
                      .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,45.5983,4.87835,2.43917,40.72,4.87835,-2.43917,40.72,0.0,-4.87835,40.72,-4.87835,-2.43917,40.72,-4.87835,2.43917,40.72,0.0,4.87835,40.72,6.41322,4.39679,0.0,6.48024,-2.852,0.0,0.0,-6.54699,0.0,-10.1695,-2.852,0.0,-10.1695,2.852,0.0,0.0,8.35993,0.0,0.0,0.0,-10.8845,4.22452,2.11262,43.1591,4.22452,-2.11262,43.1591,0.0,-4.22452,43.1591,-4.22452,-2.11262,43.1591,-4.22452,2.11262,43.1591,0.0,4.22452,43.1591,5.57893,2.37318,-5.44019,4.88202,-0.501396,-5.36555,0.0,-4.89339,-5.44019,-8.37244,-0.788649,-5.44019,-8.71143,2.37429,-5.44019,0.0,4.73717,-5.44019})))))
                  .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                    .addChild(new Transform("polp_sinR").setTranslation(0.0,-40.72,0.0)
                      .addComments(" L foot ")
                      .addComments(" L foot rotation ")
                      .addChild(new Transform("polpaccio_sinistroR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                        .addChild(new Shape()
                          .addComments(" L lower leg ")
                          .setAppearance(new Appearance()
                            .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
                          .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {0,2,1,-1,0,3,2,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,14,15,13,-1,15,16,13,-1,16,17,13,-1,17,18,13,-1,18,19,13,-1,19,14,13,-1,15,14,7,8,-1,14,19,12,7,-1,19,18,11,12,-1,18,17,10,11,-1,17,16,9,10,-1,16,15,8,9,-1})
                            .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,37.983,4.815,2.16675,37.983,4.815,-2.16675,37.983,0.0,-3.745,37.983,-3.745,-2.16675,37.983,-3.745,2.16675,37.983,0.0,3.745,37.983,4.88081,2.44014,0.0,4.88081,-2.44014,0.0,0.0,-4.88081,0.0,-4.88081,-2.44014,0.0,-4.88081,2.44014,0.0,0.0,4.88081,0.0,0.0,0.0,-4.87909,4.22704,2.11325,-2.44127,4.22704,-2.11325,-2.44127,0.0,-4.22704,-2.44127,-4.22704,-2.11325,-2.44127,-4.22704,2.11325,-2.44127,0.0,4.22704,-2.44127})))))
                        .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                          .addChild(new Transform("cav_sinR").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-34.53,0.0)
                            .addChild(new Transform("piede1_sinistroR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                              .addChild(new Shape()
                                .setAppearance(new Appearance()
                                  .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {1,0,2,-1,2,0,3,-1,3,0,4,-1,4,0,5,-1,5,0,1,-1,1,2,7,6,-1,2,3,8,7,-1,3,4,9,8,-1,5,10,9,-1,9,4,5,-1,5,1,6,-1,6,10,5,-1})
                                  .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {-2.82282,0.0,8.07176,0.0,2.66471,4.65658,-3.44673,3.213,13.04,-3.44673,-2.8833,13.04,0.0,-2.66471,4.65658,0.0,0.0,0.0,11.7663,3.73,7.76141,11.7663,3.28613,13.04,11.7663,-3.28613,13.04,11.7663,-3.73,7.76141,11.7663,0.0,6.20965})))))
                              .addChild(new Transform().setRotation(0.57735,-0.57735,0.57735,-2.09439)
                                .addChild(new Transform("piede_sinR").setRotation(1.0,0.0,0.0,0.0).setTranslation(0.0,-13.04,11.74)
                                  .addChild(new Transform("piede2_sinistroR").setRotation(0.57735,-0.57735,0.57735,2.09439)
                                    .addChild(new Shape()
                                      .setAppearance(new Appearance()
                                        .setMaterial(new Material().setDiffuseColor(0.1,0.1,0.4)))
                                      .setGeometry(new IndexedFaceSet().setCreaseAngle(3.0).setCoordIndex(new int[] {7,8,14,13,-1,10,6,12,16,-1,13,12,6,7,-1,12,13,14,15,16,-1,15,14,8,9,-1,16,15,9,10,-1})
                                        .setCoord(new Coordinate().setPoint(new MFVec3f(new double[] {0.0,0.0,0.0,-0.1336,0.0,-0.918231,0.0,-1.4263,-0.4,0.0,0.0,0.0,-0.426383,-0.0456987,-0.903387,-1.2218,0.333,-0.1336,0.0273,3.73,-5.26816,0.0273,3.28613,0.010432,0.0273,-3.28613,0.010432,0.0273,-3.73,-5.26816,0.0273,0.0,-6.81992,0.6644,-0.1336,-1.2218,7.20118,2.76803,-3.61711,7.20118,2.47356,0.010432,7.20118,-2.50096,0.010432,7.20118,-2.75649,-3.52969,7.20118,0.0,-4.73182})))))))))))))))))))
        .addComments(" ======================================================== ")
        .addComments(" Red Player Animation ")
        .addComments(" ======================================================== ")
        .addChild(new OrientationInterpolator("LegPathR").setKey(new double[] {0.0,0.15,0.2}).setKeyValue(new MFRotation(new double[] {1.0,0.0,0.0,0.0,1.0,0.0,0.0,-0.4,1.0,0.0,0.0,0.0})))
        .addChild(new OrientationInterpolator("KneePathR").setKey(new double[] {0.0,0.15,0.2}).setKeyValue(new MFRotation(new double[] {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.5,1.0,0.0,0.0,0.0})))
        .addChild(new OrientationInterpolator("ArmPath").setKey(new double[] {0.0,0.15,0.2,0.5}).setKeyValue(new MFRotation(new double[] {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.5,1.0,0.0,0.0,-0.2,1.0,0.0,0.0,-3.0})))
        .addChild(new PositionInterpolator("RedPos").setKey(new double[] {0.0,0.15,0.2,0.37,0.47,0.57,0.67,0.77,0.82,0.9,0.95}).setKeyValue(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,-0.1,0.0,0.0,0.0,0.0,0.0,0.1,0.0,0.2,0.25,0.0,0.4,0.5,0.0,0.6,0.75,0.0,0.8,0.9,0.0,1.0,0.75,0.0,1.2,0.25,0.0,1.5,0.1,0.0})))
        .addChild(new OrientationInterpolator("RedPath").setKey(new double[] {0.3,0.9}).setKeyValue(new MFRotation(new double[] {0.0,0.0,1.0,0.0,0.0,0.0,1.0,-1.5})))
        .addChild(new ROUTE().setFromNode("Toucher").setFromField("touchTime").setToNode("CLOCK").setToField("set_startTime"))
        .addComments(" =============================================== ")
        .addChild(new ROUTE().setFromNode("CLOCK").setFromField("fraction_changed").setToNode("LegPathR").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("CLOCK").setFromField("fraction_changed").setToNode("KneePathR").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("CLOCK").setFromField("fraction_changed").setToNode("ArmPath").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("CLOCK").setFromField("fraction_changed").setToNode("RedPos").setToField("set_fraction"))
        .addChild(new ROUTE().setFromNode("CLOCK").setFromField("fraction_changed").setToNode("RedPath").setToField("set_fraction"))
        .addComments(" ======================================================= ")
        .addChild(new ROUTE().setFromNode("LegPathR").setFromField("value_changed").setToNode("coscia_desR").setToField("set_rotation"))
        .addChild(new ROUTE().setFromNode("LegPathR").setFromField("value_changed").setToNode("coscia_sinR").setToField("set_rotation"))
        .addChild(new ROUTE().setFromNode("KneePathR").setFromField("value_changed").setToNode("polp_desR").setToField("set_rotation"))
        .addChild(new ROUTE().setFromNode("KneePathR").setFromField("value_changed").setToNode("polp_sinR").setToField("set_rotation"))
        .addChild(new ROUTE().setFromNode("ArmPath").setFromField("value_changed").setToNode("spalla_desR").setToField("set_rotation"))
        .addChild(new ROUTE().setFromNode("ArmPath").setFromField("value_changed").setToNode("spalla_sinR").setToField("set_rotation"))
        .addChild(new ROUTE().setFromNode("RedPos").setFromField("value_changed").setToNode("Scala_ComplessivaR").setToField("set_translation"))
        .addChild(new ROUTE().setFromNode("RedPath").setFromField("value_changed").setToNode("Scala_ComplessivaR").setToField("set_rotation"))))
    .addComments(" ======================================================= ")
    .addComments(" Ball_Animation ")
    .addComments(" ======================================================= ")
    .addChild(new PositionInterpolator("BallPATH").setKey(new double[] {0.26,0.5,0.7,0.9,1.0}).setKeyValue(new MFVec3f(new double[] {0.0,0.21,-39.03,2.0,1.5,-44.03,2.5,2.0,-47.0,3.0,2.2,-51.0,3.0,0.21,-51.1})))
    .addChild(new OrientationInterpolator("BallSpin").setKey(new double[] {0.26,0.36,0.46,0.56,0.66,0.76,0.86,0.96}).setKeyValue(new MFRotation(new double[] {-0.5,1.0,0.0,1.57,-0.5,1.0,0.0,3.14,-0.5,1.0,0.0,4.71,-0.5,1.0,0.0,6.28,-0.5,1.0,0.0,1.57,-0.5,1.0,0.0,3.14,-0.5,1.0,0.0,4.71,-0.5,1.0,0.0,6.28})))
    .addChild(new ROUTE().setFromNode("CLOCK").setFromField("fraction_changed").setToNode("BallPATH").setToField("set_fraction"))
    .addChild(new ROUTE().setFromNode("CLOCK").setFromField("fraction_changed").setToNode("BallSpin").setToField("set_fraction"))
    .addChild(new ROUTE().setFromNode("BallPATH").setFromField("value_changed").setToNode("SoccerBall").setToField("set_translation"))
    .addChild(new ROUTE().setFromNode("BallSpin").setFromField("value_changed").setToNode("SoccerBallSpin").setToField("set_rotation"))
    .addChild(new Group("CrowdCheer")
      .addChild(new ProtoInstance("TimeDelaySensor", "DelayTimer").setContainerField("children")
        .addFieldValue(new fieldValue().setName("delayInterval").setValue(5.5)))
      .addChild(new ROUTE().setFromNode("Toucher").setFromField("touchTime").setToNode("DelayTimer").setToField("set_startTime"))
      .addChild(new Transform()
        .addChild(new Sound().setMaxBack(4500).setMaxFront(4500).setMinBack(1500).setMinFront(1500)
          .setSource(new AudioClip("GoalCheer").setDescription("Door opening").setPitch(0.65).setUrl(new String[] {"Goal.wav","https://www.web3d.org/x3d/content/examples/Savage/Buildings/SoccerStadium/Goal.wav"}))))
      .addChild(new ROUTE().setFromNode("DelayTimer").setFromField("delayCompleteTime").setToNode("GoalCheer").setToField("set_startTime"))));
            }
            catch (Exception ex)
            {       
                System.err.println ("*** Further hints on X3DJSAIL errors and exceptions at");
                System.err.println ("*** https://www.web3d.org/specifications/java/X3DJSAIL.html");
                throw (ex);
            }
	}
	// end of initialize() method

		/** Define subarrays using type double[] */
		private double[] getExtrusion_7_93_spine_1()
		{
			double[] value = {9.1440,0.0,0.0,9.1433,0.0,0.1163,9.1410,0.0,0.2326,9.1373,0.0,0.3489,9.1322,0.0,0.4651,9.1255,0.0,0.5812,9.1174,0.0,0.6972,9.1078,0.0,0.8131,9.0967,0.0,0.9289,9.0841,0.0,1.0446,9.0701,0.0,1.1600,9.0546,0.0,1.2753,9.0377,0.0,1.3904,9.0193,0.0,1.5052,8.9994,0.0,1.6198,8.9780,0.0,1.7342,8.9553,0.0,1.8482,8.9310,0.0,1.9620,8.9053,0.0,2.0755,8.8782,0.0,2.1886,8.8497,0.0,2.3013,8.8197,0.0,2.4137,8.7883,0.0,2.5257,8.7554,0.0,2.6373,8.7212,0.0,2.7484,8.6855,0.0,2.8591,8.6484,0.0,2.9694,8.6100,0.0,3.0792,8.5701,0.0,3.1884,8.5288,0.0,3.2972,8.4862,0.0,3.4054,8.4422,0.0,3.5131,8.3968,0.0,3.6202,8.3501,0.0,3.7267,8.3020,0.0,3.8326,8.2526,0.0,3.9379,8.2019,0.0,4.0426,8.1498,0.0,4.1466,8.0964,0.0,4.2499,8.0416,0.0,4.3525,7.9856,0.0,4.4545,7.9283,0.0,4.5557,7.8697,0.0,4.6562,7.8099,0.0,4.7559,7.7487,0.0,4.8549,7.6864,0.0,4.9530,7.6227,0.0,5.0504,7.5579,0.0,5.1470,7.4918,0.0,5.2427,7.4245,0.0,5.3376,7.3560,0.0,5.4316,7.2863,0.0,5.5247,7.2155,0.0,5.6169,7.1434,0.0,5.7083,7.0702,0.0,5.7987,6.9959,0.0,5.8881,6.9204,0.0,5.9766,6.8439,0.0,6.0642,6.7662,0.0,6.1508,6.6874,0.0,6.2363,6.6075,0.0,6.3209,6.5266,0.0,6.4044,6.4446,0.0,6.4869,6.3615,0.0,6.5684,6.2775,0.0,6.6488,6.1924,0.0,6.7281,6.1063,0.0,6.8063,6.0192,0.0,6.8834,5.9312,0.0,6.9594,5.8422,0.0,7.0343,5.7522,0.0,7.1081,5.6614,0.0,7.1807,5.5696,0.0,7.2521,5.4769,0.0,7.3223,5.3833,0.0,7.3914,5.2888,0.0,7.4593,5.1935,0.0,7.5260,5.0974,0.0,7.5914,5.0004,0.0,7.6556,4.9026,0.0,7.7186,4.8040,0.0,7.7804,4.7047,0.0,7.8409,4.6045,0.0,7.9001,4.5037,0.0,7.9580,4.4021,0.0,8.0146,4.2998,0.0,8.0700,4.1968,0.0,8.1240,4.0931,0.0,8.1768,3.9888,0.0,8.2282,3.8838,0.0,8.2782,3.7782,0.0,8.3270,3.6719,0.0,8.3743,3.5651,0.0,8.4204,3.4577,0.0,8.4650,3.3498,0.0,8.5083,3.2413,0.0,8.5503,3.1322,0.0,8.5908,3.0227,0.0,8.6299,2.9127,0.0,8.6677,2.8022,0.0,8.7040};
			return value;
		}
		private double[] getExtrusion_7_93_spine_2()
		{
			double[] value = {2.6913,0.0,8.7390};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getMoveFlag_9_109_keyValue_1()
		{
			double[] value = {0.0,0.0,0.0,0.5,0.0,0.87,1.0,0.0,1.0,1.5,0.0,0.87,2.0,0.0,0.0,2.5,0.0,-0.87,3.0,0.0,-1.0,3.5,0.0,-0.87,4.0,0.0,0.0,4.5,0.0,0.87,5.0,0.0,1.0,5.5,0.0,0.87,6.0,0.0,0.0,6.5,0.0,-0.87,7.0,0.0,-1.0,7.5,0.0,-0.87,7.5,0.5,-0.87,7.5,1.0,-0.87,7.5,1.5,-0.87,7.5,2.0,-0.87,7.5,2.5,-0.87,7.5,3.0,-0.87,7.5,3.5,-0.87,7.5,4.0,-0.87,7.5,4.5,-0.87,7.5,5.0,-0.87,7.0,5.0,-1.0,6.5,5.0,-0.87,6.0,5.0,0.0,5.5,5.0,0.87,5.0,5.0,1.0,4.5,5.0,0.87,4.0,5.0,0.0,3.5,5.0,-0.87,3.0,5.0,-1.0,2.5,5.0,-0.87,2.0,5.0,0.0,1.5,5.0,0.87,1.0,5.0,1.0,0.5,5.0,0.87,0.0,5.0,0.0,0.0,4.5,0.0,0.0,4.0,0.0,0.0,3.5,0.0,0.0,3.0,0.0,0.0,2.5,0.0,0.0,2.0,0.0,0.0,1.5,0.0,0.0,1.0,0.0,0.0,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.0,-0.87,1.0,0.0,-1.0,1.5,0.0,-0.87,2.0,0.0,0.0,2.5,0.0,0.87,3.0,0.0,1.0,3.5,0.0,0.87,4.0,0.0,0.0,4.5,0.0,-0.87,5.0,0.0,-1.0,5.5,0.0,-0.87,6.0,0.0,0.0,6.5,0.0,0.87,7.0,0.0,1.0,7.5,0.0,0.87,7.5,0.5,0.87,7.5,1.0,0.87,7.5,1.5,0.87,7.5,2.0,0.87,7.5,2.5,0.87,7.5,3.0,0.87,7.5,3.5,0.87,7.5,4.0,0.87,7.5,4.5,0.87,7.5,5.0,0.87,7.0,5.0,1.0,6.5,5.0,0.87,6.0,5.0,0.0,5.5,5.0,-0.87,5.0,5.0,-1.0,4.5,5.0,-0.87,4.0,5.0,0.0,3.5,5.0,0.87,3.0,5.0,1.0,2.5,5.0,0.87,2.0,5.0,0.0,1.5,5.0,-0.87,1.0,5.0,-1.0,0.5,5.0,-0.87,0.0,5.0,0.0,0.0,4.5,0.0,0.0,4.0,0.0,0.0,3.5,0.0,0.0,3.0,0.0,0.0,2.5,0.0,0.0,2.0,0.0,0.0,1.5,0.0,0.0,1.0,0.0};
			return value;
		}
		private double[] getMoveFlag_9_109_keyValue_2()
		{
			double[] value = {0.0,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.0,0.87,1.0,0.0,1.0,1.5,0.0,0.87,2.0,0.0,0.0,2.5,0.0,-0.87,3.0,0.0,-1.0,3.5,0.0,-0.87,4.0,0.0,0.0,4.5,0.0,0.87,5.0,0.0,1.0,5.5,0.0,0.87,6.0,0.0,0.0,6.5,0.0,-0.87,7.0,0.0,-1.0,7.5,0.0,-0.87,7.5,0.5,-0.87,7.5,1.0,-0.87,7.5,1.5,-0.87,7.5,2.0,-0.87,7.5,2.5,-0.87,7.5,3.0,-0.87,7.5,3.5,-0.87,7.5,4.0,-0.87,7.5,4.5,-0.87,7.5,5.0,-0.87,7.0,5.0,-1.0,6.5,5.0,-0.87,6.0,5.0,0.0,5.5,5.0,0.87,5.0,5.0,1.0,4.5,5.0,0.87,4.0,5.0,0.0,3.5,5.0,-0.87,3.0,5.0,-1.0,2.5,5.0,-0.87,2.0,5.0,0.0,1.5,5.0,0.87,1.0,5.0,1.0,0.5,5.0,0.87,0.0,5.0,0.0,0.0,4.5,0.0,0.0,4.0,0.0,0.0,3.5,0.0,0.0,3.0,0.0,0.0,2.5,0.0,0.0,2.0,0.0,0.0,1.5,0.0,0.0,1.0,0.0,0.0,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.0,-0.87,1.0,0.0,-1.0,1.5,0.0,-0.87,2.0,0.0,0.0,2.5,0.0,0.87,3.0,0.0,1.0,3.5,0.0,0.87,4.0,0.0,0.0,4.5,0.0,-0.87,5.0,0.0,-1.0,5.5,0.0,-0.87,6.0,0.0,0.0,6.5,0.0,0.87,7.0,0.0,1.0,7.5,0.0,0.87,7.5,0.5,0.87,7.5,1.0,0.87,7.5,1.5,0.87,7.5,2.0,0.87,7.5,2.5,0.87,7.5,3.0,0.87,7.5,3.5,0.87,7.5,4.0,0.87,7.5,4.5,0.87,7.5,5.0,0.87,7.0,5.0,1.0,6.5,5.0,0.87,6.0,5.0,0.0,5.5,5.0,-0.87,5.0,5.0,-1.0,4.5,5.0,-0.87,4.0,5.0,0.0,3.5,5.0,0.87,3.0,5.0,1.0,2.5,5.0,0.87,2.0,5.0,0.0,1.5,5.0,-0.87,1.0,5.0,-1.0,0.5,5.0,-0.87,0.0,5.0,0.0,0.0,4.5,0.0,0.0,4.0,0.0,0.0,3.5,0.0,0.0,3.0,0.0,0.0,2.5,0.0,0.0,2.0,0.0};
			return value;
		}
		private double[] getMoveFlag_9_109_keyValue_3()
		{
			double[] value = {0.0,1.5,0.0,0.0,1.0,0.0,0.0,0.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.5,0.0,0.87,1.0,0.0,1.0,1.5,0.0,0.87,2.0,0.0,0.0,2.5,0.0,-0.87,3.0,0.0,-1.0,3.5,0.0,-0.87,4.0,0.0,0.0,4.5,0.0,0.87,5.0,0.0,1.0,5.5,0.0,0.87,6.0,0.0,0.0,6.5,0.0,-0.87,7.0,0.0,-1.0,7.5,0.0,-0.87,7.5,0.5,-0.87,7.5,1.0,-0.87,7.5,1.5,-0.87,7.5,2.0,-0.87,7.5,2.5,-0.87,7.5,3.0,-0.87,7.5,3.5,-0.87,7.5,4.0,-0.87,7.5,4.5,-0.87,7.5,5.0,-0.87,7.0,5.0,-1.0,6.5,5.0,-0.87,6.0,5.0,0.0,5.5,5.0,0.87,5.0,5.0,1.0,4.5,5.0,0.87,4.0,5.0,0.0,3.5,5.0,-0.87,3.0,5.0,-1.0,2.5,5.0,-0.87,2.0,5.0,0.0,1.5,5.0,0.87,1.0,5.0,1.0,0.5,5.0,0.87,0.0,5.0,0.0,0.0,4.5,0.0,0.0,4.0,0.0,0.0,3.5,0.0,0.0,3.0,0.0,0.0,2.5,0.0,0.0,2.0,0.0,0.0,1.5,0.0,0.0,1.0,0.0,0.0,0.5,0.0,0.0,0.0,0.0};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_17_161_coordIndex_1()
		{
			int[] value = {0,2,1,-1,0,3,2,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,7,8,14,13,-1,8,9,15,14,-1,9,10,16,15,-1,10,11,17,16,-1,11,12,18,17,-1,12,7,13,18,-1,13,14,20,19,-1,14,21,20,-1,15,16,129,22,21,-1,16,17,128,129,-1,17,18,24,23,128,-1,18,13,24,-1,19,20,26,25,-1,20,21,35,27,26,-1,21,22,34,35,-1,22,23,33,34,-1,23,24,32,33,-1,24,19,25,30,32,-1,25,26,31,-1,26,27,31,-1,27,28,31,-1,28,29,31,-1,29,30,31,-1,30,25,31,-1,14,15,21,-1,13,19,24,-1,34,28,27,35,-1,33,29,28,34,-1,32,30,29,33,-1,36,37,38,39,-1,41,43,42,40,-1,43,45,44,42,-1,45,47,46,44,-1,47,49,48,46,-1,49,51,50,48,-1,51,53,52,50,-1,53,55,54,52,-1,55,57,56,54,-1,57,59,58,56,-1,59,61,60,58,-1,61,63,62,60,-1,63,65,64,62,-1,65,67,66,64,-1,67,69,68,66,-1,69,71,70,68,-1,71,73,72,70,-1,73,75,74,72,-1,75,77,76,74,-1,77,79,78,76,-1,79,41,40,78,-1,79,77,75,73,71,69,67,65,63,61,59,57,55,53,51,49,47,45,43,41,-1,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,-1,80,82,83,81,-1,82,84,85,83,-1,84,86,87,85,-1,86,88,89,87,-1,88,90,91,89,-1,90,92,93,91,-1,92,94,95,93,-1,94,96,97,95,-1,96,98,99,97,-1,98,100,101,99,-1,100,102,103,101,-1,102,104,105,103,-1,104,106,107,105,-1,106,108,109,107,-1,108,110,111,109,-1,110,112,113,111,-1,112,114,115,113,-1,114,116,117,115,-1,116,118,119,117,-1,118,80,81,119,-1,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,-1,118,116,114,112,110,108,106,104,102,100,98,96,94,92,90,88,86,84,82,80,-1,124,127,126,125,-1,120,123,127,124,-1,122,126,127,123,-1,120,124,125,121,-1,128,23,22,129,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_18_161_point_1()
		{
			double[] value = {3.75199,0.00557172,0.0,-2.11559,2.45726,0.774298,-2.11559,-2.17316,0.774298,1.05919,-3.75457,1.13555,4.81119,-2.17316,1.13555,4.81119,2.45726,1.13555,1.05919,3.75626,1.13555,-1.98176,3.01876,2.6199,-1.96721,-3.02463,2.6199,2.48017,-4.71312,3.04377,7.47234,-2.12938,2.26562,7.45797,2.31758,2.26334,2.45746,4.72046,3.04377,-4.44866,2.2044,4.05771,-4.43802,-2.21759,4.05771,2.483,-5.89232,4.05765,8.91895,-2.19852,3.62664,8.90844,2.22346,3.62498,2.45462,5.89966,4.05765,-9.3863,2.56556,11.1571,-9.37388,-2.59342,11.1571,2.48654,-7.36632,11.1569,9.38619,-2.56556,11.1569,9.37377,2.59343,11.1569,2.45108,7.37366,11.1569,-8.3976,2.19853,20.1157,-8.38695,-2.22346,20.1157,2.48459,-6.55562,20.1157,8.3976,-2.19853,20.1157,8.38695,2.22346,20.1157,2.45303,6.56296,20.1157,2.46882,0.00367026,21.3,2.45219,6.86625,16.7639,8.582,2.29667,18.3429,8.60431,-2.2753,18.2417,2.48524,-6.87152,16.6247,9.03892,-1.68511,6.99805,8.95401,-0.903916,6.06347,8.93312,0.735113,6.03199,9.01667,1.69806,6.93117,0.219811,-8.31043,9.62343,0.134378,-7.73162,9.60773,0.856056,-8.18926,9.79412,0.770614,-7.61045,9.77843,1.41676,-8.07414,10.2347,1.33132,-7.49533,10.219,1.84703,-7.97632,10.9022,1.7616,-7.39752,10.8865,2.10478,-7.90539,11.7311,2.01934,-7.32658,11.7154,2.16474,-7.86829,12.6404,2.0793,-7.28948,12.6248,2.02107,-7.86865,13.5411,1.93564,-7.28984,13.5254,1.68783,-7.90643,14.3449,1.60239,-7.32762,14.3292,1.19762,-7.97794,14.9732,1.11218,-7.39913,14.9575,0.598444,-8.07617,15.3645,0.513002,-7.49736,15.3488,-0.0510553,-8.19151,15.4805,-0.136498,-7.6127,15.4648,-0.687301,-8.31267,15.3098,-0.772734,-7.73386,15.2941,-1.248,-8.4278,14.8692,-1.33344,-7.84899,14.8535,-1.67828,-8.52562,14.2018,-1.76372,-7.94681,14.1861,-1.93602,-8.59655,13.3728,-2.02146,-8.01773,13.3571,-1.99599,-8.63365,12.4635,-2.08143,-8.05483,12.4478,-1.85232,-8.63329,11.5629,-1.93776,-8.05448,11.5472,-1.51906,-8.59551,10.7591,-1.60451,-8.0167,10.7434,-1.02886,-8.524,10.1307,-1.1143,-7.94519,10.1151,-0.429679,-8.42577,9.73945,-0.515121,-7.84696,9.72375,0.23027,7.75592,9.29819,0.144077,7.17707,9.30595,0.866356,7.64094,9.47366,0.780163,7.06208,9.48142,1.42692,7.54303,9.9186,1.34072,6.96418,9.92635,1.85709,7.47179,10.5895,1.77089,6.89292,10.5972,2.11475,7.43417,11.4206,2.02855,6.85532,11.4284,2.17469,7.43388,12.3307,2.08849,6.85501,12.3384,2.03103,7.47092,13.2306,1.94483,6.89206,13.2383,1.69785,7.54168,14.0322,1.61165,6.96282,14.0399,1.20775,7.63924,14.6571,1.12155,7.06038,14.6648,0.608706,7.75404,15.0441,0.522513,7.17518,15.0518};
			return value;
		}
		private double[] getCoordinate_18_161_point_2()
		{
			double[] value = {-0.0406342,7.87484,15.1553,-0.126836,7.29598,15.163,-0.67672,7.98982,14.9798,-0.762922,7.41096,14.9876,-1.23728,8.08773,14.5349,-1.32348,7.50887,14.5427,-1.66745,8.15897,13.864,-1.75365,7.58012,13.8718,-1.92511,8.19659,13.0329,-2.01131,7.61774,13.0406,-1.98505,8.19689,12.1228,-2.07124,7.61803,12.1306,-1.8414,8.15984,11.2229,-1.92759,7.58099,11.2307,-1.50821,8.08908,10.4213,-1.59441,7.51022,10.4291,-1.01811,7.99153,9.7964,-1.10431,7.41266,9.80416,-0.41907,7.87672,9.40942,-0.505272,7.29787,9.41718,9.0899,-0.959294,7.83018,9.0899,-0.350023,12.2864,9.0899,0.0890149,12.2864,9.0899,0.918413,7.83018,10.3688,-0.378663,7.83299,9.26496,-0.348896,12.2864,9.26496,0.0901425,12.2864,10.3785,0.223488,7.83018,8.88037,2.40845,7.35785,8.89189,-2.38204,7.35785};
			return value;
		}


		/** Define subarrays using type int[] */
		private int[] getIndexedFaceSet_17_408_coordIndex_1()
		{
			int[] value = {0,2,1,-1,0,3,2,-1,0,4,3,-1,0,5,4,-1,0,6,5,-1,0,1,6,-1,1,2,8,7,-1,2,3,9,8,-1,3,4,10,9,-1,4,5,11,10,-1,5,6,12,11,-1,6,1,7,12,-1,7,8,14,13,-1,8,9,15,14,-1,9,10,16,15,-1,10,11,17,16,-1,11,12,18,17,-1,12,7,13,18,-1,13,14,20,19,-1,14,21,20,-1,15,16,129,22,21,-1,16,17,128,129,-1,17,18,24,23,128,-1,18,13,24,-1,19,20,26,25,-1,20,21,35,27,26,-1,21,22,34,35,-1,22,23,33,34,-1,23,24,32,33,-1,24,19,25,30,32,-1,25,26,31,-1,26,27,31,-1,27,28,31,-1,28,29,31,-1,29,30,31,-1,30,25,31,-1,14,15,21,-1,13,19,24,-1,34,28,27,35,-1,33,29,28,34,-1,32,30,29,33,-1,36,37,38,39,-1,41,43,42,40,-1,43,45,44,42,-1,45,47,46,44,-1,47,49,48,46,-1,49,51,50,48,-1,51,53,52,50,-1,53,55,54,52,-1,55,57,56,54,-1,57,59,58,56,-1,59,61,60,58,-1,61,63,62,60,-1,63,65,64,62,-1,65,67,66,64,-1,67,69,68,66,-1,69,71,70,68,-1,71,73,72,70,-1,73,75,74,72,-1,75,77,76,74,-1,77,79,78,76,-1,79,41,40,78,-1,79,77,75,73,71,69,67,65,63,61,59,57,55,53,51,49,47,45,43,41,-1,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,-1,80,82,83,81,-1,82,84,85,83,-1,84,86,87,85,-1,86,88,89,87,-1,88,90,91,89,-1,90,92,93,91,-1,92,94,95,93,-1,94,96,97,95,-1,96,98,99,97,-1,98,100,101,99,-1,100,102,103,101,-1,102,104,105,103,-1,104,106,107,105,-1,106,108,109,107,-1,108,110,111,109,-1,110,112,113,111,-1,112,114,115,113,-1,114,116,117,115,-1,116,118,119,117,-1,118,80,81,119,-1,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,-1,118,116,114,112,110,108,106,104,102,100,98,96,94,92,90,88,86,84,82,80,-1,124,127,126,125,-1,120,123,127,124,-1,122,126,127,123,-1,120,124,125,121,-1,128,23,22,129,-1};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getCoordinate_18_408_point_1()
		{
			double[] value = {3.75199,0.00557172,0.0,-2.11559,2.45726,0.774298,-2.11559,-2.17316,0.774298,1.05919,-3.75457,1.13555,4.81119,-2.17316,1.13555,4.81119,2.45726,1.13555,1.05919,3.75626,1.13555,-1.98176,3.01876,2.6199,-1.96721,-3.02463,2.6199,2.48017,-4.71312,3.04377,7.47234,-2.12938,2.26562,7.45797,2.31758,2.26334,2.45746,4.72046,3.04377,-4.44866,2.2044,4.05771,-4.43802,-2.21759,4.05771,2.483,-5.89232,4.05765,8.91895,-2.19852,3.62664,8.90844,2.22346,3.62498,2.45462,5.89966,4.05765,-9.3863,2.56556,11.1571,-9.37388,-2.59342,11.1571,2.48654,-7.36632,11.1569,9.38619,-2.56556,11.1569,9.37377,2.59343,11.1569,2.45108,7.37366,11.1569,-8.3976,2.19853,20.1157,-8.38695,-2.22346,20.1157,2.48459,-6.55562,20.1157,8.3976,-2.19853,20.1157,8.38695,2.22346,20.1157,2.45303,6.56296,20.1157,2.46882,0.00367026,21.3,2.45219,6.86625,16.7639,8.582,2.29667,18.3429,8.60431,-2.2753,18.2417,2.48524,-6.87152,16.6247,9.03892,-1.68511,6.99805,8.95401,-0.903916,6.06347,8.93312,0.735113,6.03199,9.01667,1.69806,6.93117,0.219811,-8.31043,9.62343,0.134378,-7.73162,9.60773,0.856056,-8.18926,9.79412,0.770614,-7.61045,9.77843,1.41676,-8.07414,10.2347,1.33132,-7.49533,10.219,1.84703,-7.97632,10.9022,1.7616,-7.39752,10.8865,2.10478,-7.90539,11.7311,2.01934,-7.32658,11.7154,2.16474,-7.86829,12.6404,2.0793,-7.28948,12.6248,2.02107,-7.86865,13.5411,1.93564,-7.28984,13.5254,1.68783,-7.90643,14.3449,1.60239,-7.32762,14.3292,1.19762,-7.97794,14.9732,1.11218,-7.39913,14.9575,0.598444,-8.07617,15.3645,0.513002,-7.49736,15.3488,-0.0510553,-8.19151,15.4805,-0.136498,-7.6127,15.4648,-0.687301,-8.31267,15.3098,-0.772734,-7.73386,15.2941,-1.248,-8.4278,14.8692,-1.33344,-7.84899,14.8535,-1.67828,-8.52562,14.2018,-1.76372,-7.94681,14.1861,-1.93602,-8.59655,13.3728,-2.02146,-8.01773,13.3571,-1.99599,-8.63365,12.4635,-2.08143,-8.05483,12.4478,-1.85232,-8.63329,11.5629,-1.93776,-8.05448,11.5472,-1.51906,-8.59551,10.7591,-1.60451,-8.0167,10.7434,-1.02886,-8.524,10.1307,-1.1143,-7.94519,10.1151,-0.429679,-8.42577,9.73945,-0.515121,-7.84696,9.72375,0.23027,7.75592,9.29819,0.144077,7.17707,9.30595,0.866356,7.64094,9.47366,0.780163,7.06208,9.48142,1.42692,7.54303,9.9186,1.34072,6.96418,9.92635,1.85709,7.47179,10.5895,1.77089,6.89292,10.5972,2.11475,7.43417,11.4206,2.02855,6.85532,11.4284,2.17469,7.43388,12.3307,2.08849,6.85501,12.3384,2.03103,7.47092,13.2306,1.94483,6.89206,13.2383,1.69785,7.54168,14.0322,1.61165,6.96282,14.0399,1.20775,7.63924,14.6571,1.12155,7.06038,14.6648,0.608706,7.75404,15.0441,0.522513,7.17518,15.0518};
			return value;
		}
		private double[] getCoordinate_18_408_point_2()
		{
			double[] value = {-0.0406342,7.87484,15.1553,-0.126836,7.29598,15.163,-0.67672,7.98982,14.9798,-0.762922,7.41096,14.9876,-1.23728,8.08773,14.5349,-1.32348,7.50887,14.5427,-1.66745,8.15897,13.864,-1.75365,7.58012,13.8718,-1.92511,8.19659,13.0329,-2.01131,7.61774,13.0406,-1.98505,8.19689,12.1228,-2.07124,7.61803,12.1306,-1.8414,8.15984,11.2229,-1.92759,7.58099,11.2307,-1.50821,8.08908,10.4213,-1.59441,7.51022,10.4291,-1.01811,7.99153,9.7964,-1.10431,7.41266,9.80416,-0.41907,7.87672,9.40942,-0.505272,7.29787,9.41718,9.0899,-0.959294,7.83018,9.0899,-0.350023,12.2864,9.0899,0.0890149,12.2864,9.0899,0.918413,7.83018,10.3688,-0.378663,7.83299,9.26496,-0.348896,12.2864,9.26496,0.0901425,12.2864,10.3785,0.223488,7.83018,8.88037,2.40845,7.35785,8.89189,-2.38204,7.35785};
			return value;
		}

		/** Large attribute array: Extrusion spine field, scene-graph level=7, element #93, 303 total numbers made up of 101 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getExtrusion_7_93_spine()
		{
			MFVec3f Extrusion_7_93_spine = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getExtrusion_7_93_spine_1()))
				.append(new MFVec3f(getExtrusion_7_93_spine_2()));
			return Extrusion_7_93_spine;
		}
		/** Large attribute array: CoordinateInterpolator DEF='MoveFlag' keyValue field, scene-graph level=9, element #109, 765 total numbers made up of 255 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getMoveFlag_9_109_keyValue()
		{
			MFVec3f MoveFlag_9_109_keyValue = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getMoveFlag_9_109_keyValue_1()))
				.append(new MFVec3f(getMoveFlag_9_109_keyValue_2()))
				.append(new MFVec3f(getMoveFlag_9_109_keyValue_3()));
			return MoveFlag_9_109_keyValue;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=17, element #161, 507 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_17_161_coordIndex()
		{
			MFInt32 IndexedFaceSet_17_161_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_17_161_coordIndex_1()));
			return IndexedFaceSet_17_161_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=18, element #161, 390 total numbers made up of 130 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_18_161_point()
		{
			MFVec3f Coordinate_18_161_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_18_161_point_1()))
				.append(new MFVec3f(getCoordinate_18_161_point_2()));
			return Coordinate_18_161_point;
		}
		/** Large attribute array: IndexedFaceSet coordIndex field, scene-graph level=17, element #408, 507 total numbers.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFInt32 getIndexedFaceSet_17_408_coordIndex()
		{
			MFInt32 IndexedFaceSet_17_408_coordIndex = new MFInt32()/*2.finalize*/
				.append(new MFInt32(getIndexedFaceSet_17_408_coordIndex_1()));
			return IndexedFaceSet_17_408_coordIndex;
		}
		/** Large attribute array: Coordinate point field, scene-graph level=18, element #408, 390 total numbers made up of 130 3-tuple values.
		 * Reassemble split array as single method to improve readability and runnability.
		 * Provide large array values via separate methods, hoping to avoid 'code too large' Java compilation errors. 
		 * Individual Java methods (including aggregated initializations) are limited to 64KB.
		 * @see https://stackoverflow.com/questions/2407912/code-too-large-compilation-error-in-java
		 * @see https://stackoverflow.com/questions/11437905/java-too-many-constants-jvm-error
		 */
		private MFVec3f getCoordinate_18_408_point()
		{
			MFVec3f Coordinate_18_408_point = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getCoordinate_18_408_point_1()))
				.append(new MFVec3f(getCoordinate_18_408_point_2()));
			return Coordinate_18_408_point;
		}

	/** The initialized model object, created within initialize() method. */
	private X3D x3dModel;

	/** 
	 * Provide a 
	 * <a href="https://dzone.com/articles/java-copy-shallow-vs-deep-in-which-you-will-swim" target="_blank">shallow copy</a>
	 * of the X3D model.
	 * @see <a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html">X3D</a>
	 * @return SoccerFieldII 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 SoccerFieldII().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: \"Savage.Buildings.SoccerStadium.SoccerFieldII\" 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("Savage.Buildings.SoccerStadium.SoccerFieldII self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

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