package X3dForWebAuthors.KelpForestExhibit;

import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Geometry3D.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.PointingDeviceSensor.*;
import org.web3d.x3d.jsail.Scripting.*;
import org.web3d.x3d.jsail.Shape.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> Rock-like floor and walls of kelp forest exhibit, modeled to scale. </p>
 <p> Related links: Catalog page <a href="../../../KelpForestExhibit/RockFloorIndex.html" target="_blank">RockFloor</a>,  source <a href="../../../KelpForestExhibit/RockFloor.java">RockFloor.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="../../../KelpForestExhibit/RockFloor.x3d">RockFloor.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> Rock-like floor and walls of kelp forest exhibit, modeled to scale. </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Ray McLain, Moss Landing Marine Labs (MLML) </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translator </i> </td>
			<td> Xeena VRML importer, X3D-Edit 3.1, <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> created </i> </td>
			<td> 9 June 1998 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> translated </i> </td>
			<td> 20 December 2002 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 29 April 2021 </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> hint </i> </td>
			<td> enable TouchSensor to show hitPoint values in console window </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="../../../KelpForestExhibit/KelpTank.x3d">KelpTank.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> Image </i> </td>
			<td> <a href="http://faculty.nps.edu/brutzman/kelp/physics/whole_tank.jpg" target="_blank">http://faculty.nps.edu/brutzman/kelp/physics/whole_tank.jpg</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://faculty.nps.edu/brutzman/kelp/physics.html" target="_blank">http://faculty.nps.edu/brutzman/kelp/physics.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/X3dForWebAuthors/KelpForestExhibit/RockFloor.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> X3D-Edit 3.3, <a href="https://savage.nps.edu/X3D-Edit" target="_blank">https://savage.nps.edu/X3D-Edit</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> Programmers File Editor PFE </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> Vrml97ToX3dNist, <a href="http://ovrt.nist.gov/v2_x3d.html" target="_blank">http://ovrt.nist.gov/v2_x3d.html</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../KelpForestExhibit/../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 Ray McLain, Moss Landing Marine Labs (MLML)
 */

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

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_3)
  .setHead(new head()
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("RockFloor.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Rock-like floor and walls of kelp forest exhibit, modeled to scale."))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Ray McLain, Moss Landing Marine Labs (MLML)"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATOR ).setContent("Xeena VRML importer, X3D-Edit 3.1, https://www.web3d.org/x3d/content/README.X3D-Edit.html"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("9 June 1998"))
    .addMeta(new meta().setName(meta.NAME_TRANSLATED ).setContent("20 December 2002"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("29 April 2021"))
    .addMeta(new meta().setName(meta.NAME_HINT       ).setContent("enable TouchSensor to show hitPoint values in console window"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("KelpTank.x3d"))
    .addMeta(new meta().setName(meta.NAME_IMAGE      ).setContent("http://faculty.nps.edu/brutzman/kelp/physics/whole_tank.jpg"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://faculty.nps.edu/brutzman/kelp/physics.html"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RockFloor.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("Programmers File Editor PFE"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setInfo(new String[] {"DTG of last updated: 091030Jun98","Added: ","Updated: changed diffuseColor","Modeled by: Ray McLain"}).setTitle("rockFloor1.6.wrl"))
    .addChild(new Transform().setTranslation(-20.0,5.0,-30.0)
      .addComments(" Trace tool to find location of surface points ")
      .addChild(new TouchSensor("TouchDetect").setDescription("touch floor to see location output in console window").setEnabled(false))
      .addChild(new Script("TouchLocation").setSourceCode("""
ecmascript:

function hitPoint_changed (value, timestamp)
{
	xBlock = Math.floor(value[0] / xSpacing);
	zBlock = Math.floor(value[2] / zSpacing);
	Browser.println ('hitPoint=' + value + ', Index(x,z)=(' +
		xBlock + ',' + zBlock + ')');
}
""")
        .addField(new field().setName("hitPoint_changed").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_INPUTONLY))
        .addComments(" TODO why are these fields included? ")
        .addField(new field().setName("xDimension").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setValue(77))
        .addField(new field().setName("zDimension").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setValue(43))
        .addField(new field().setName("xSpacing").setType(field.TYPE_SFFLOAT).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setValue(0.5))
        .addField(new field().setName("zSpacing").setType(field.TYPE_SFFLOAT).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setValue(0.5)))
      .addChild(new ROUTE().setFromNode("TouchDetect").setFromField("hitPoint_changed").setToNode("TouchLocation").setToField("hitPoint_changed"))
      .addChild(new Shape()
        .setAppearance(new Appearance()
          .setMaterial(new Material().setDiffuseColor(0.459,0.329,0.23)))
        .setGeometry(new ElevationGrid().setCreaseAngle(4.56).setXDimension(77).setXSpacing(0.5).setZDimension(43).setZSpacing(0.5).setHeight(getElevationGrid_5_29_height())))));
            }
            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[] getElevationGrid_5_29_height_1()
		{
			double[] value = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.2444e-008,5.212e-009,-0.388889,-0.388889,-0.388888,-8.37783e-007,-1.57735e-007,1.12142e-006,-0.388888,-0.777778,-0.777777,-0.38889,3.68971e-007,4.01385e-007,8.88132e-008,-2.54556e-013,8.86935e-012,-5.3894e-012,3.974e-014,1.64523e-014,1.6211e-013,-2.72465e-014,-6.80445e-014,2.27583e-014,1.02561e-014,2.10494e-016,-5.3051e-015,-5.86962e-016,2.18548e-015,4.05916e-008,5.70642e-008,6.49837e-008,-5.40939e-009,-7.6385e-009,-1.5558e-008,5.52097e-008,1.38156e-008,-1.04921e-008,-5.14583e-008,-2.43077e-008,1.0335e-018,1.05771e-018,-1.93376e-019,-3.68475e-019,1.57463e-020,1.21964e-019,7.61443e-021,-2.70411e-020,-3.67439e-021,-1.3502e-020,-3.82059e-020,-2.49348e-020,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-9.06632e-008,1.66936e-007,-0.777778,-4.66667,-1.55556,-1.16667,-1.16667,-1.16667,-1.55556,-5.44444,-5.44445,-1.16667,-0.388889,6.44504e-007,5.87708e-008,9.04235e-025,-2.20901e-025,-1.83118e-024,-3.29111e-024,-3.85893e-024,-3.77503e-024,-2.36115e-024,5.13699e-025,6.0704e-024,1.36668e-023,2.00046e-023,1.8971e-023,7.29772e-008,8.51153e-008,4.72491e-008,3.43321e-007,2.15719e-007,2.56348e-007,6.21808e-008,3.1892e-007,9.54733e-008,3.65296e-007,-8.78543e-008,-7.96721e-008,8.89236e-008,-3.29187e-008,-6.46124e-022,-6.49366e-022,-5.90437e-022,-1.07956e-021,-3.4627e-022,1.03977e-021,1.93726e-021,-8.19339e-022,-5.75367e-021,-7.27607e-021,-4.32458e-021,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-7.65788e-008,-1.1379e-006,-1.16667,-5.44444,-6.22222,-5.83333,-5.83333,-5.83333,-6.22222,-6.61112,-6.61111,-5.44444,-0.777777,-2.66956e-007,2.02897e-008,-2.1899e-008,-2.05589e-010,-6.372e-011,-7.43517e-011,0,0,0,0,0,0,0,7.24117e-008,1.59633e-007,7.85503e-007,-0.388889,-0.777779,-1.16667,-0.777777,-0.388887,1.32605e-006,-0.388889,-0.38889,-0.388888,1.59548e-006,-8.16918e-008,-8.08428e-008,-1.94808e-008,3.61135e-008,3.77301e-008,3.50829e-008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3.28048e-008,-1.31852e-008,-0.388889,-1.55555,-6.22222,-7,-7,-7,-7,-7,-7,-7,-5.83333,-1.16667,-1.56564e-007,-4.09047e-007,-1.01561e-007,-1.09904e-010,-7.32885e-010,-7.43517e-011,0,0,0,0,-2.83649e-008,3.48584e-008,-2.711e-009,7.65897e-008,-0.388888,-0.777778,-1.55556,-5.44444,-5.83333,-5.44444,-1.55555,-1.16667,-1.55556,-5.05556,-1.16667,-0.388887,4.18356e-008,-1.32726e-007,1.65225e-007,3.34522e-007,5.01671e-007,1.49592e-007,-3.27454e-008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7.228e-008,4.06303e-008,-0.388888,-1.16667,-5.83333,-6.61111,-7,-7,-7,-7,-7,-7.00001,-7,-6.22222,-1.55556,-0.38889,-8.8431e-007,-6.72482e-008,1.65937e-008,-6.372e-011,-7.43517e-011,0,0,0,7.23011e-008,2.32341e-008,-1.2685e-007,5.58787e-007,-0.388889,-1.16667,-5.44444,-6.22222,-6.61111,-7,-6.61111,-6.22222,-5.83333,-6.22222,-6.22222,-5.83333,-1.55556,-1.16667,-1.16667,-0.777777,-0.388889,1.33583e-006,-1.04689e-007,2.1859e-008,-2.07501e-010,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8.59772e-009,1.4568e-007,-0.388888,-1.16667,-5.83333,-6.66667,-7.05556,-7.05556,-7,-7,-7,-7,-7,-7.05556,-6.72222,-5.55556,-0.833333,3.51646e-007,2.81309e-007,-7.44978e-008,-1.18362e-007,-4.24868e-008,0,0,-2.7525e-008,3.52495e-008,-0.388888,-0.777778,-1.16667,-1.55556,-5.83333,-6.61111,-7,-6.99999,-7,-7,-7,-6.99999,-6.99999,-7,-6.61111,-6.22222,-5.83333,-5.83333,-5.44444,-1.16667,-0.388889,4.34664e-007,1.95881e-008,-2.07501e-010,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.62744e-008,3.49292e-008,2.5015e-009,2.14268e-008,2.772e-009,3.51997e-008,0,1.62739e-008,9.97255e-008,4.06072e-007,-0.777777,-5.5,-6.72222,-7.22222,-7.72222,-7.22222,-7.22222,-7.27778,-7.27778,-7.22223,-7.22222,-7.33333,-7.88889,-7.05556,-1.72222,-0.444442,1.13529e-007,-1.26441e-006,-8.03825e-007,-2.81614e-007,-5.38358e-008,3.27898e-008,7.77495e-008,-0.388889,-1.16667,-5.44444,-5.83333,-6.22222,-6.61111,-7.05555,-7.11111,-7.16667,-7.16667,-7.11111,-7.05555,-7,-7,-7,-7,-7,-7,-7,-6.61111,-5.44445,-0.77778,3.78523e-008,3.63792e-007,7.12974e-008,8.12456e-008,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.48723e-008,4.40773e-008,2.98446e-007,3.82154e-007,5.86983e-008,5.16847e-007,1.07387e-007,-7.34438e-008,-5.41035e-008,1.69502e-007,-0.388887,-1.55555,-6.27778,-7.66667,-7.83333,-7.88889,-7.94445,-7.99999,-8.66667,-8.72222,-8.22223,-8.22222,-8.83333,-8.94444,-8,-7.05556,-2.05556,-1.05556,-0.500001,-1.61578e-006,-1.13158e-006,2.33099e-007,6.31083e-007,-1.51295e-007,-0.777777,-5.44444,-6.61111,-7,-7.05555,-7.11111,-7.22222,-7.83333,-8.11111,-8.16667,-8.05556,-7.27778,-7.11111,-7.05556,-7,-7,-7,-7.00001,-7,-6.61111,-5.44444,-0.777778,2.20043e-006,4.77587e-007,9.15507e-007,1.94174e-007,-3.21633e-008,0,0,-2.33493e-009,0,0,0,0,0,0,0,0,0,0,0,0,2.0081e-009,-9.35107e-008,-0.388889,-0.777778,-0.777777,-0.388887,1.75676e-006,-5.7117e-008,-1.40765e-007,-0.388889,-0.777778,-1.55556,-5.83333,-6.72222,-7.27778,-7.94444,-8.05556,-8.16667,-8.88889,-9.16667,-9.83333,-9.83333,-9.77778,-9.83333,-9.94444,-10.4444,-9.33333,-8.66667,-7,-1.88889,-1.27778,-0.833332,-0.388887,1.32893e-006,-0.38889,-1.55556,-6.22222,-7.05556,-7.11112,-7.22222,-7.77778,-7.94445,-8.27777,-9.27778,-11,-9.38889,-8.44444,-8.05556,-7.27778,-7.11111,-7.05555,-7,-7,-7,-6.61111,-2.33333,-1.55556,-0.777777,-0.388889,1.3886e-006,-1.94368e-007,-1.09941e-007,-1.65017e-007,0,-3.80579e-008,0,0,0,0,0,0,0,0,0,0,7.27917e-008,7.66488e-008,4.23228e-008,-1.03284e-007,-0.777779,-5.05556,-5.44444,-1.55555,-1.16667,-1.16667,-1.16667,-1.55556,-5.44445,-6.22222,-6.61111,-7.11111,-7.77778,-8,-8.16667,-8.88888,-9.11111,-9.94444,-10.6667,-10.8333,-10.3333,-10.3333,-10.8889,-10.8889,-10.7222,-9.44445,-8.66667,-7.5,-6.77778,-5.72222,-1.77778,-1.44444,-1.88889,-6.16667,-6.8889,-7.27778,-7.77778,-7.88889,-7.94445,-8.11111,-9.11111,-11.2778,-11.6667,-11.6111,-11.2222,-9.38889,-8.5,-8.1111,-7.27777,-7.05555,-7,-7,-6.61111,-6.22222,-5.83333,-5.44445,-1.16667,-0.388889,9.90801e-007,-1.62621e-006,-1.91223e-007,-8.93976e-008,1.25722e-008,0,0,0,0,0,0,0,0,1.62741e-008,5.00017e-008,1.7242e-007,1.01492e-006,-0.388889,-0.777778,-1.94445,-6.22223,-6.61111,-6.22222,-5.83333,-5.83333,-5.83333,-6.22223,-6.61111,-7,-7,-7.16667,-7.83333,-8.11111,-8.77778,-9.05556,-9.83333,-10.1667,-10.8889,-11,-11.5556,-11.5556,-11.0556,-11,-10.8333,-10.1667,-9.94444,-9.77778,-9,-7.83333,-7.33333,-7.44444,-7.88889,-8.27778,-8.61111,-8.05556,-8,-8,-8.11111,-8.44444,-9.61111,-11.6667,-12,-12,-11.8333,-11.6111,-11.2778,-9.94444,-8.61111,-7.77778,-7.5,-7.22222,-7.05555,-7,-7,-6.61112,-5.83333,-1.16667,-0.388889,4.41653e-007,-6.54516e-007,-2.49479e-007,3.04176e-007};
			return value;
		}
		private double[] getElevationGrid_5_29_height_2()
		{
			double[] value = {0,0,0,0,0,0,0,3.62304e-008,3.91976e-008,1.67914e-007,-0.388888,-0.777777,-1.55555,-5.44444,-6.22222,-6.61111,-7,-7,-7,-7,-7,-7,-7,-7.00001,-7.05556,-7.22222,-7.94445,-8.22222,-8.94444,-9.33333,-10.1111,-10.8889,-10.9444,-11.1111,-11.2778,-11.8333,-11.2222,-11.0556,-10.9444,-10.8889,-10.8333,-10.7778,-10.1111,-9.83333,-9.11111,-9,-9.00001,-9,-8.94444,-8.83333,-8.16667,-8.16667,-8.44444,-9.94444,-11.5,-11.8333,-12,-12,-12,-12,-11.8889,-11.6667,-11.3889,-11.1111,-9.83333,-8.55556,-7.77777,-7.49999,-7.22222,-7.11112,-6.77778,-6.05555,-1.72222,-0.833333,-0.388889,7.41224e-007,5.56395e-007,0,0,0,0,0,0,-6.12383e-008,-1.0266e-007,-0.388889,-0.777778,-1.55556,-5.44444,-6.22222,-6.61111,-7,-7,-7,-6.99999,-7.05556,-7.11111,-7.16667,-7.16667,-7.16667,-7.16667,-7.22222,-7.88889,-8.11112,-8.83333,-9.05556,-9.94445,-11.3333,-11.1111,-11.1667,-11.2222,-11.8333,-11.8333,-11.7222,-11.0556,-11,-11,-11.0556,-11,-11.3889,-10.5556,-9.77777,-9.05556,-9,-9.00001,-9,-8.94444,-8.83333,-8.38889,-9.83333,-11.4444,-11.8889,-12,-12,-12,-12,-12,-12,-12,-12,-11.8889,-11.6667,-11.3889,-11.1111,-9.83333,-8.55555,-7.94444,-8.5,-8.66666,-7.61111,-5.94444,-1.72222,-1.16667,-1.16667,0,0,0,0,0,5.34346e-008,-1.38558e-007,-0.38889,-1.16667,-5.44444,-6.22222,-6.61111,-7,-7,-7,-7,-7,-7.05556,-7.16667,-7.77778,-7.83333,-7.83333,-7.83333,-7.88888,-8,-8.16667,-8.83333,-9,-9.22223,-10.0556,-10.8333,-11.6111,-11.7222,-11.8889,-11.9444,-11.8889,-11.2222,-11.0556,-11,-11.0556,-11.1111,-11.5556,-10.3889,-10.0556,-9.27777,-9.05556,-9.00001,-9.00001,-9,-9,-8.94445,-9.11111,-10.1111,-11.6667,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-11.9444,-11.8889,-11.7222,-11.4444,-11.1111,-10.9444,-10.8889,-10.8889,-10.8333,-9.27778,-7,-6.16667,-5.88889,-12.5,0,0,0,7.22956e-008,6.16335e-008,-0.388889,-1.16667,-5.83333,-6.61111,-7,-7,-7,-7.05556,-7.16667,-7.33333,-7.44445,-7.50001,-8.05556,-8.11111,-8.16667,-8.16667,-8.16667,-8.22223,-8.77778,-8.88889,-8.99999,-9.16667,-9.83333,-10,-10.1667,-10.3889,-11.6111,-11.8333,-11.9444,-11.8889,-11.2222,-11.0556,-11.0556,-11.1667,-11.7222,-11,-10.2222,-9.83333,-9.16667,-9,-9,-8.99999,-9,-9,-9.05556,-9.33333,-10.3333,-11.7778,-12,-12,-12,-12,-12,-12,-12,-12,-11.9444,-11.8889,-11.7778,-11.2222,-11.1111,-10.9444,-10.2222,-10.0556,-9.88889,-8.83333,-9.38889,-11.0556,-10.9444,-8.66666,-7.88889,-12.5,0,9.116e-011,-1.25858e-008,2.00249e-009,-0.388888,-1.16667,-5.88889,-6.72222,-7.22222,-7.27778,-7.33333,-7.33333,-7.38889,-8.05556,-8.83334,-9.61111,-9.66667,-9.11111,-9,-9.11111,-9.11112,-9.11111,-9.05556,-9.11111,-9.16667,-9.22222,-9.83333,-9.94444,-10,-10,-10.1111,-10.2778,-11.0556,-11.7778,-11.8889,-11.8333,-11.2222,-11.2222,-11.7778,-11.6667,-10.8889,-10.1111,-9.83333,-9.16667,-9,-8.99999,-8.99999,-9,-9,-9.11111,-10,-11.5,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.2778,-11.1111,-11,-10.7778,-9.94445,-9.11111,-8.38889,-8.22222,-8.16667,-8.33333,-9.33333,-11.2222,-11.3333,-11.2222,-12.5,0,9.116e-011,-8.4436e-008,-1.8556e-007,-0.777778,-5.5,-6.77778,-7.83333,-8,-8.61111,-8.66667,-8.66667,-8.72222,-9,-9.88888,-10.8333,-11.3889,-10.3333,-10.1667,-10.2778,-11.2222,-10.1111,-9.88888,-9.83333,-9.83333,-9.88888,-9.94444,-9.99999,-10,-10,-10,-10.0556,-10.2778,-11.1111,-11.8889,-11.9444,-11.8889,-11.8889,-11.7778,-11.0556,-10.2222,-10.0556,-9.88889,-9.22222,-9.05556,-9,-9.11111,-9.22222,-9.33333,-9.44444,-10.3333,-11.7222,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.7778,-11.1111,-11,-10.8889,-10.1111,-9.16668,-8.27778,-8.05556,-8,-8,-8.05556,-8.38889,-9.55556,-11.6667,-12.5,-12.5,0,-1.31611e-011,-1.28013e-007,-8.90428e-007,-1.16667,-5.94444,-7.83333,-8.11111,-8.83333,-8.94444,-9.00001,-9,-9.11111,-9.38889,-10.7222,-11.0556,-11.6667,-11.7222,-11.6667,-11.7778,-11.6667,-10.9444,-10.1111,-10,-10,-10,-10,-10,-10,-10,-10,-10.0555,-10.2222,-11.0556,-11.8333,-12.5,-12.5,-11.9444,-11.7222,-10.3889,-10.1111,-10,-9.94444,-9.83333,-9.22222,-9.22223,-9.33334,-10.4444,-10.5,-10.6111,-10.9444,-11.7778,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.2778,-11.1111,-11,-10.8889,-10.1111,-9.11112,-8.22222,-8,-8,-8,-8,-8.16666,-9.33333,-11.5,-12.5,-12.5,0,-1.04321e-010,-1.83978e-007,-5.75592e-007,-1.22222,-6.05555,-7.99999,-8.77778,-8.94444,-9,-9.11111,-9.22223,-9.44444,-10.6667,-10.8889,-11.0556,-11.2222,-11.8889,-12.5,-12.5,-11.8333,-11,-10.1667,-10,-10,-10,-10,-9.99999,-10,-10,-9.99999,-10.1111,-10.8333,-11.1667,-11.8889,-12.5,-12.5,-11.9444,-11.2222,-10.9444,-10.1667,-10.0556,-10,-9.94444,-9.94444,-10,-10.6111,-10.1667,-10.2778,-10.4444,-11.2222,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.7778,-11.1111,-11,-10.9444,-10.7222,-9.72222,-8.27778,-7.99999,-8,-7.99999,-8,-8.16667,-9.33333,-11.5,-12.5,-12.5,0,-1.04321e-010,-1.68151e-007,-6.20994e-007,-1.22222,-6.61111,-8.11111,-8.88889,-9,-9.11111,-9.33333,-10.6111,-10.8889,-11.0556,-11.1667,-11.1667,-11.2778,-11.8889,-12.5,-12.5,-11.8333,-11,-10.1667,-9.99999,-10,-10,-9.99999,-10,-10,-10,-10,-10.1111,-10.7778,-11.5556,-11.7778,-11.9444,-12.5,-11.9444,-11.7778,-11.0556,-10.7778,-10.1111,-10.0556,-10.1111,-10.2222,-10.8333,-10.8333,-10.2778,-10.2778,-11.5,-11.7778,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.2222,-11.0556,-11,-10.8333,-9.88889,-8.38889,-8.05555,-8,-8,-8,-8.11111,-9.27778,-11.4444,-12.5,-12.5,0,0,-1.87611e-007,-4.75266e-007,-1.33333,-6.27778,-8.77777,-8.94445,-9,-9.22222,-10.6111,-11.0556,-11.7778,-11.8333,-11.8333,-11.8333,-11.8889,-11.9444,-12.5,-12.5,-11.8889,-11.1111,-10.3333,-10.1111,-10.0556,-10,-10.0556,-10.0556,-10.0556,-10.0556,-10.1111,-10.1667,-10.2222,-10.3889,-11.1667,-11.8889,-12.5,-12.5,-11.8889,-11.2778,-11,-10.2778,-10.1111,-10.6111,-10.7778,-10.8333,-10.8333,-10.7778,-10.9444,-11.2222,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.7778,-11.1111,-11,-10.8333,-9.94444,-8.94444,-8.11111,-7.99999,-8,-8,-8.11111,-8.77777,-11.4444,-12.5,-12.5,0,0,-1.63247e-007,-6.15186e-007,-1.27778,-7.27777,-8.77778,-9,-9,-9.33333,-10.7778,-11.7778,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.6667,-10.8889,-10.6111,-10.0555,-10.0556,-10.1667,-10.6667,-10.1111,-10.1111,-10.7222,-10.7222,-10.1667,-10.2222,-11.0556,-11.8333,-12.5,-12.5,-11.9444,-11.8889,-11.6667,-10.9444,-10.2778,-10.2778,-10.3889,-10.8333,-10.2778,-10.2778,-11,-11.7778,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.2222,-11.0556,-10.8333,-10,-9,-8.16667,-8,-8,-8,-8.1111,-9.27778,-11.4444,-12.5,-12.5,0,0,-1.27753e-007,-5.68207e-007,-0.888889,-5.77778,-8.27778,-8.88889,-9,-9.22222,-10.6667,-11.6667,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.7222,-10.4444,-10.1111,-10.0556,-10.1111,-10.7778,-10.7778,-10.1667,-10.1667,-10.8333,-10.8889,-10.3889,-10.9444,-11.2222,-11.8889,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.2222,-11.0556,-11,-11.0556,-10.9444,-10.3333,-10.2778,-11.0556,-11.8333,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.7222,-11.0556,-10.8889,-10.1111,-9.11111,-8.22222,-8,-8,-8,-8.16667,-9.33333,-11.5,-12.5,-12.5,0,-1.13352e-010,-9.83225e-008,-3.89674e-007,-0.777778,-2.05556,-7.05556,-8.77778,-9.0,-9.11112,-9.5,-11.0,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.7778,-10.5,-10.2222,-10.1667,-10.2778,-10.9444,-11.0,-10.4444,-10.4444,-11.0556,-11.1111,-11.1667,-11.7222,-11.8889,-11.9444,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.8889,-11.8333,-11.8333,-11.8333,-11.7222,-11.0556,-11.0,-11.1667,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.3333,-11.1667,-11.0,-10.7222,-9.77778,-8.33333,-8.05555,-8.0,-8.0,-8.16667,-9.33333,-11.5};
			return value;
		}
		private double[] getElevationGrid_5_29_height_3()
		{
			double[] value = {-12.5,-12.5,0,-1.13352e-010,-1.28765e-007,-4.20019e-007,-0.777778,-5.44444,-6.94444,-8.66667,-9,-9,-9.33333,-10.8333,-11.8333,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.7222,-11.0556,-11,-11.0556,-11.1667,-11.7222,-11.7222,-11.7222,-11.7778,-11.8333,-11.8889,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.8333,-11.2778,-11.8333,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.8889,-11.7222,-11.1111,-10.8333,-9.94444,-8.94444,-8.1111,-7.99999,-8,-8.16667,-9.33333,-11.5,-12.5,-12.5,0,-2.17447e-010,-1.47412e-007,-8.40581e-007,-1.16667,-5.83333,-7.22222,-8.55556,-8.88889,-9,-9.33333,-10.8333,-11.8333,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.8889,-11.8333,-11.8333,-11.8889,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.9444,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.2222,-10.8889,-9.99999,-9,-8.16667,-8,-7.99999,-8.16667,-9.33333,-11.5,-12.5,-12.5,0,-1.04095e-010,-1.69582e-007,-5.22064e-007,-1.16667,-5.83333,-7.11111,-7.44445,-8.77778,-9,-9.33333,-10.8333,-11.8333,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.8333,-11.0556,-10.1111,-9.05555,-8.16667,-8,-8,-8.16667,-9.33333,-11.5,-12.5,-12.5,0,-2.10393e-010,-1.37994e-007,-6.59216e-007,-1.16667,-5.83334,-7,-7.33334,-8.66667,-8.99999,-9.33333,-10.8333,-11.8333,-12.5,-12.5,-12.5,-11.9444,-11.8889,-11.8889,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.9444,-11.7222,-10.7778,-9.22222,-8.27778,-8.05556,-8,-8.16667,-9.33333,-11.5,-12.5,-12.5,0,-1.06298e-010,-7.87915e-008,-5.61641e-007,-1.16667,-5.83333,-7,-7.27778,-8.61111,-8.94444,-9.33333,-10.8333,-11.8333,-12.5,-12.5,-11.9444,-11.8889,-11.2778,-11.3333,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.1111,-10.2222,-9.22222,-8.33333,-8.05556,-8.16667,-9.33333,-11.5,-12.5,-12.5,0,-3.26872e-008,-2.65951e-007,-3.5861e-007,-1.16667,-5.83333,-7,-7.22222,-8.05555,-8.94444,-9.38889,-10.8889,-11.8333,-12.5,-12.5,-11.8889,-11.3333,-11.6667,-11.2778,-11.8333,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.7778,-11.6667,-11.6667,-11.6667,-11.6667,-11.7778,-11.7778,-11.7778,-11.6667,-11.7778,-11.8889,-11.8889,-11.7778,-11.6667,-11.6667,-11.6111,-11.6111,-11.5556,-11.3333,-9.5,-8.72222,-8.77778,-9.72222,-11.6667,-12.5,-12.5,-12.5,-1.63153e-007,-0.38889,-0.77778,-1.94445,-6.22222,-7.0,-7.16667,-8.0,-8.88889,-9.88889,-10.8889,-11.8333,-12.5,-12.5,-11.8889,-11.3333,-11.7222,-11.3333,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.6667,-10.3889,-10.2222,-10.1111,-10.1111,-10.1111,-10.2778,-11.2778,-10.3333,-10.2222,-10.3333,-11.3889,-11.4444,-10.3333,-10.2778,-10.2778,-10.3333,-10.4444,-11.6667,-11.7222,-11.6111,-11.3889,-11.3889,-11.6111,-11.8333,-12.5,-12.5,-12.5,-12.5,-0.77778,-5.05556,-6.22222,-6.61111,-7.0,-7.16666,-7.99999,-8.88889,-9.33333,-10.7778,-11.7222,-11.9444,-12.5,-11.9444,-11.8889,-11.3333,-11.8889,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-10.5556,-10.1111,-9.22222,-9.0,-8.44444,-8.94444,-9.11111,-9.16667,-9.27778,-9.72222,-9.33334,-9.38889,-9.44444,-9.83333,-9.27778,-9.83333,-9.94444,-10.1111,-10.3333,-11.6667,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-6.22222,-7.0,-7.0,-7.0,-7.1111,-7.94444,-8.77778,-9.16667,-10.0,-10.9444,-11.7778,-11.9444,-12.5,-11.9444,-11.9444,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.8889,-11.6111,-10.1667,-9.22222,-8.38889,-8.22222,-8.22223,-8.27778,-8.38889,-8.99999,-9.05555,-9.05555,-9.0,-9.05556,-9.05556,-9.11111,-9.22222,-9.88888,-10.0556,-10.2778,-10.6111,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-7.0,-7.0,-7.0,-7.05556,-7.27778,-8.5,-8.72223,-9.0,-10.0,-11.0556,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.7778,-10.9444,-9.94444,-9.16666,-8.94444,-8.38889,-8.83333,-8.88889,-8.94445,-8.99999,-9.0,-9.0,-9.0,-9.0,-9.05556,-9.22222,-9.88888,-10.1667,-10.8889,-11.7222,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-7.0,-7.0,-7.0,-7.11111,-7.22222,-7.44444,-7.88889,-9.44444,-10.8889,-11.5,-11.6111,-11.7778,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-10.8333,-10.1111,-9.88889,-9.77778,-9.16667,-9.16666,-9.16667,-9.16667,-9.11111,-9.11111,-9.11111,-9.16667,-9.22222,-9.94444,-10.1667,-10.5,-11.7222,-11.9444,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-7.0,-7.0,-6.99999,-7.11111,-7.33333,-8.72222,-10.5556,-10.2222,-9.33333,-9.61111,-11.0556,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.0556,-10.8889,-10.7778,-10.1667,-10.0556,-9.94444,-9.88889,-9.83333,-9.77778,-9.27777,-9.77778,-9.83333,-9.88889,-10.1667,-11.4444,-11.7778,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-7.0,-7.0,-7.11111,-8.33333,-8.61111,-7.72222,-7.61111,-7.66667,-9.11111,-10.8333,-11.8333,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.0556,-10.9444,-10.8889,-10.8333,-10.7778,-10.2222,-10.1667,-10.1111,-10.0556,-10.0,-10.0,-10.1111,-10.4444,-11.7778,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5};
			return value;
		}
		private double[] getElevationGrid_5_29_height_4()
		{
			double[] value = {-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-7.0,-7.11111,-7.22222,-7.22222,-7.11111,-7.11111,-7.55556,-9.27777,-11.0,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.1111,-11.0556,-11.0,-11.0,-11.0,-11.0,-11.0,-10.9444,-10.3889,-10.3333,-10.4444,-11.6667,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-7.0,-7.0,-7.0,-7.0,-7.11111,-8.55556,-10.2778,-11.5,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-11.1667,-11.2222,-11.7778,-11.8333,-11.8333,-11.7778,-11.7222,-11.6667,-11.7778,-11.8889,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5,-12.5};
			return value;
		}

		/** Large attribute array: ElevationGrid height field, scene-graph level=5, element #29, 3311 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 MFFloat getElevationGrid_5_29_height()
		{
			MFFloat ElevationGrid_5_29_height = new MFFloat()/*2.finalize*/
				.append(new MFFloat(getElevationGrid_5_29_height_1()))
				.append(new MFFloat(getElevationGrid_5_29_height_2()))
				.append(new MFFloat(getElevationGrid_5_29_height_3()))
				.append(new MFFloat(getElevationGrid_5_29_height_4()));
			return ElevationGrid_5_29_height;
		}

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

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