package Savage.Locations.SanFranciscoCalifornia;

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.Navigation.*;
import org.web3d.x3d.jsail.Shape.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * <p> Cables for Golden Gate Bridge. </p>
 <p> Related links: Catalog page <a href="../../../../Locations/SanFranciscoCalifornia/GoldenGateCablesIndex.html" target="_blank">GoldenGateCables</a>,  source <a href="../../../../Locations/SanFranciscoCalifornia/GoldenGateCables.java">GoldenGateCables.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="../../../../Locations/SanFranciscoCalifornia/GoldenGateCables.x3d">GoldenGateCables.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> description </i> </td>
			<td> Cables for Golden Gate Bridge </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> creator </i> </td>
			<td> Yeo Chee Beng </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> created </i> </td>
			<td> 22 September 2001 </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.GoldenGateBridge.org" target="_blank">http://www.GoldenGateBridge.org</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://gocalifornia.about.com/library/weekly/aa030899.htm" target="_blank">http://gocalifornia.about.com/library/weekly/aa030899.htm</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://www.sfmuseum.org/assoc/bridge00.html" target="_blank">http://www.sfmuseum.org/assoc/bridge00.html</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://www.nps.gov/goga" target="_blank">http://www.nps.gov/goga</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> reference </i> </td>
			<td> <a href="http://www.thoma.com/thoma/ggbfacts.html" target="_blank">http://www.thoma.com/thoma/ggbfacts.html</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> subject </i> </td>
			<td> San Francisco Golden Gate Bridge </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/Locations/SanFranciscoCalifornia/GoldenGateCables.x3d" target="_blank">https://www.web3d.org/x3d/content/examples/Savage/Locations/SanFranciscoCalifornia/GoldenGateCables.x3d</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> generator </i> </td>
			<td> X3D-Edit 3.2, <a href="https://www.web3d.org/x3d/tools/X3D-Edit" target="_blank">https://www.web3d.org/x3d/tools/X3D-Edit</a> </td>
		</tr>
		<tr>
			<td style="text-align:right; vertical-align: text-top;"> <i> license </i> </td>
			<td> <a href="../../../../Locations/SanFranciscoCalifornia/../../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 Yeo Chee Beng
 */

public class GoldenGateCables
{
	/** Default constructor to create this object. */
	public GoldenGateCables ()
	{
	  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("GoldenGateCables.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Cables for Golden Gate Bridge"))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Yeo Chee Beng"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("22 September 2001"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("20 October 2019"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.GoldenGateBridge.org"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://gocalifornia.about.com/library/weekly/aa030899.htm"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.sfmuseum.org/assoc/bridge00.html"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.nps.gov/goga"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("http://www.thoma.com/thoma/ggbfacts.html"))
    .addMeta(new meta().setName(meta.NAME_SUBJECT    ).setContent("San Francisco Golden Gate Bridge"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/Savage/Locations/SanFranciscoCalifornia/GoldenGateCables.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("GoldenGateCables.x3d"))
    .addChild(new NavigationInfo().setSpeed(20))
    .addChild(new Viewpoint().setDescription("From the bank").setPosition(50.0,50.0,1400.0))
    .addComments(" Arching cables ")
    .addChild(new Group()
      .addChild(new Transform("Sidecable1")
        .addChild(new Shape()
          .setAppearance(new Appearance("Cablecolour")
            .setMaterial(new Material().setDiffuseColor(1.0,0.0,0.0)))
          .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.5,0.1,0.489897949,0.2,0.458257569,0.3,0.4,0.4,0.3,0.5,0.0,0.4,-0.3,0.3,-0.4,0.2,-0.458257569,0.1,-0.489897949,0.0,-0.5,-0.1,-0.489897949,-0.2,-0.458257569,-0.3,-0.4,-0.4,-0.3,-0.5,0.0,-0.4,0.3,-0.3,0.4,-0.2,0.458257569,-0.1,0.489897949,0.0,0.5})).setSolid(false).setSpine(getExtrusion_6_21_spine()))))
      .addChild(new Transform("Sidecable2")
        .addChild(new Shape()
          .setAppearance(new Appearance().setUSE("Cablecolour"))
          .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.5,0.1,0.489897949,0.2,0.458257569,0.3,0.4,0.4,0.3,0.5,0.0,0.4,-0.3,0.3,-0.4,0.2,-0.458257569,0.1,-0.489897949,0.0,-0.5,-0.1,-0.489897949,-0.2,-0.458257569,-0.3,-0.4,-0.4,-0.3,-0.5,0.0,-0.4,0.3,-0.3,0.4,-0.2,0.458257569,-0.1,0.489897949,0.0,0.5})).setSolid(false).setSpine(getExtrusion_6_25_spine()))))
      .addChild(new Transform("Centrecable1")
        .addChild(new Shape()
          .setAppearance(new Appearance().setUSE("Cablecolour"))
          .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.5,0.1,0.489897949,0.2,0.458257569,0.3,0.4,0.4,0.3,0.5,0.0,0.4,-0.3,0.3,-0.4,0.2,-0.458257569,0.1,-0.489897949,0.0,-0.5,-0.1,-0.489897949,-0.2,-0.458257569,-0.3,-0.4,-0.4,-0.3,-0.5,0.0,-0.4,0.3,-0.3,0.4,-0.2,0.458257569,-0.1,0.489897949,0.0,0.5})).setSolid(false).setSpine(getExtrusion_6_29_spine()))))
      .addChild(new Transform("Centrecable2")
        .addChild(new Shape()
          .setAppearance(new Appearance().setUSE("Cablecolour"))
          .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.5,0.1,0.489897949,0.2,0.458257569,0.3,0.4,0.4,0.3,0.5,0.0,0.4,-0.3,0.3,-0.4,0.2,-0.458257569,0.1,-0.489897949,0.0,-0.5,-0.1,-0.489897949,-0.2,-0.458257569,-0.3,-0.4,-0.4,-0.3,-0.5,0.0,-0.4,0.3,-0.3,0.4,-0.2,0.458257569,-0.1,0.489897949,0.0,0.5})).setSolid(false).setSpine(getExtrusion_6_33_spine())))))
    .addComments(" Vertical supporting cables ")
    .addChild(new Group()
      .addComments(" Centre cable ")
      .addChild(new Transform()
        .addChild(new Shape()
          .setAppearance(new Appearance().setUSE("Cablecolour"))
          .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,0.0,0.0,3.0,0.0})))))
      .addComments(" Side cables ")
      .addChild(new Group("SideCable")
        .addChild(new Transform("z10")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,10.0,0.0,3.035765837,10.0})))))
        .addChild(new Transform("z20")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,20.0,0.0,3.143068837,20.0})))))
        .addChild(new Transform("z30")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,30.0,0.0,3.321925478,30.0})))))
        .addChild(new Transform("z40")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,40.0,0.0,3.572363233,40.0})))))
        .addChild(new Transform("z60")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,60.0,0.0,4.288147111,60.0})))))
        .addChild(new Transform("z80")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,80.0,0.0,5.290861247,80.0})))))
        .addChild(new Transform("z100")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,100.0,0.0,6.581124626,100.0})))))
        .addChild(new Transform("z120")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,120.0,0.0,8.159736366,120.0})))))
        .addChild(new Transform("z140")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,140.0,0.0,10.0276782,140.0})))))
        .addChild(new Transform("z160")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,160.0,0.0,12.18611758,160.0})))))
        .addChild(new Transform("z180")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,180.0,0.0,14.63641133,180.0})))))
        .addChild(new Transform("z200")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,200.0,0.0,17.38011,200.0})))))
        .addChild(new Transform("z220")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,220.0,0.0,20.4189629,220.0})))))
        .addChild(new Transform("z240")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,240.0,0.0,23.75492377,240.0})))))
        .addChild(new Transform("z260")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,260.0,0.0,27.39015729,260.0})))))
        .addChild(new Transform("z280")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,280.0,0.0,31.32704634,280.0})))))
        .addChild(new Transform("z300")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,300.0,0.0,35.56820017,300.0})))))
        .addChild(new Transform("z320")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,320.0,0.0,40.11646347,320.0})))))
        .addChild(new Transform("z340")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,340.0,0.0,44.97492649,340.0})))))
        .addChild(new Transform("z360")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,360.0,0.0,50.14693619,360.0})))))
        .addChild(new Transform("z380")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,380.0,0.0,55.63610871,380.0})))))
        .addChild(new Transform("z400")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,400.0,0.0,61.44634299,400.0})))))
        .addChild(new Transform("z420")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,420.0,0.0,67.58183603,420.0})))))
        .addChild(new Transform("z440")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,440.0,0.0,74.04709955,440.0})))))
        .addChild(new Transform("z460")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,460.0,0.0,80.84697857,460.0})))))
        .addChild(new Transform("z480")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,480.0,0.0,87.98667181,480.0})))))
        .addChild(new Transform("z500")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,500.0,0.0,95.47175442,500.0})))))
        .addChild(new Transform("z520")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,520.0,0.0,103.308203,520.0})))))
        .addChild(new Transform("z540")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,540.0,0.0,111.5024234,540.0})))))
        .addChild(new Transform("z560")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,560.0,0.0,120.0612817,560.0})))))
        .addChild(new Transform("z580")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,580.0,0.0,128.9921384,580.0})))))
        .addChild(new Transform("z600")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,600.0,0.0,138.3028867,600.0})))))
        .addChild(new Transform("z620")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,620.0,0.0,148.0019952,620.0})))))
        .addChild(new Transform("z630")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,630.0,0.0,153.0,630.0})))))
        .addChild(new Transform("z640")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,640.0,0.0,142.5125472,640.0})))))
        .addChild(new Transform("z660")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,660.0,0.0,123.895903,660.0})))))
        .addChild(new Transform("z680")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,680.0,0.0,107.2308713,680.0})))))
        .addChild(new Transform("z700")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,700.0,0.0,92.27131251,700.0})))))
        .addChild(new Transform("z720")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,720.0,0.0,78.83048894,720.0})))))
        .addChild(new Transform("z740")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,740.0,0.0,66.76327174,740.0})))))
        .addChild(new Transform("z760")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,760.0,0.0,55.95476207,760.0})))))
        .addChild(new Transform("z780")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,780.0,0.0,46.31271205,780.0})))))
        .addChild(new Transform("z800")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,800.0,0.0,37.76230756,800.0})))))
        .addChild(new Transform("z820")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,820.0,0.0,30.24247907,820.0})))))
        .addChild(new Transform("z840")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,840.0,0.0,23.70323587,840.0})))))
        .addChild(new Transform("z860")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,860.0,0.0,18.10370726,860.0})))))
        .addChild(new Transform("z880")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,880.0,0.0,13.41068586,880.0})))))
        .addChild(new Transform("z900")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,900.0,0.0,9.597537569,900.0})))))
        .addChild(new Transform("z920")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,920.0,0.0,6.64338644,920.0})))))
        .addChild(new Transform("z940")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,940.0,0.0,4.532511932,940.0})))))
        .addChild(new Transform("z960")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,960.0,0.0,3.253915678,960.0})))))
        .addChild(new Transform("z970")
          .addChild(new Shape()
            .setAppearance(new Appearance().setUSE("Cablecolour"))
            .setGeometry(new Extrusion().setConvex(false).setCrossSection(new MFVec2f(new double[] {0.0,0.1,0.02,0.09797959,0.04,0.091651514,0.06,0.08,0.08,0.06,0.1,0.0,0.08,-0.06,0.06,-0.08,0.04,-0.091651514,0.02,-0.09797959,0.0,-0.1,-0.02,-0.09797959,-0.04,-0.091651514,-0.06,-0.08,-0.08,-0.06,-0.1,0.0,-0.08,0.06,-0.06,0.08,-0.04,0.091651514,-0.02,0.09797959,0.0,0.1})).setSolid(false).setSpine(new MFVec3f(new double[] {0.0,-1.0,970.0,0.0,2.924501544,970.0}))))))
      .addChild(new Transform().setRotation(0.0,1.0,0.0,3.1415)
        .addChild(new Group().setUSE("SideCable")))));
            }
            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_6_21_spine_1()
		{
			double[] value = {0.0,152.6527109,630.0,0.0,150.576701,632.0,0.0,148.5251111,634.0,0.0,146.4975022,636.0,0.0,144.4934505,638.0,0.0,142.5125472,640.0,0.0,140.554397,642.0,0.0,138.6186184,644.0,0.0,136.7048424,646.0,0.0,134.8127121,648.0,0.0,132.9418822,650.0,0.0,131.0920185,652.0,0.0,129.2627975,654.0,0.0,127.4539055,656.0,0.0,125.6650389,658.0,0.0,123.895903,660.0,0.0,122.1462123,662.0,0.0,120.4156898,664.0,0.0,118.7040665,666.0,0.0,117.0110814,668.0,0.0,115.336481,670.0,0.0,113.6800192,672.0,0.0,112.0414566,674.0,0.0,110.4205608,676.0,0.0,108.8171056,678.0,0.0,107.2308713,680.0,0.0,105.6616438,682.0,0.0,104.1092151,684.0,0.0,102.5733826,686.0,0.0,101.0539491,688.0,0.0,99.55072254,690.0,0.0,98.06351591,692.0,0.0,96.59214694,694.0,0.0,95.13643806,696.0,0.0,93.69621617,698.0,0.0,92.27131251,700.0,0.0,90.86156255,702.0,0.0,89.46680579,704.0,0.0,88.08688567,706.0,0.0,86.72164943,708.0,0.0,85.370948,710.0,0.0,84.03463587,712.0,0.0,82.71257099,714.0,0.0,81.40461466,716.0,0.0,80.11063141,718.0,0.0,78.83048894,720.0,0.0,77.56405799,722.0,0.0,76.31121227,724.0,0.0,75.07182837,726.0,0.0,73.84578566,728.0,0.0,72.63296623,730.0,0.0,71.4332548,732.0,0.0,70.24653866,734.0,0.0,69.07270758,736.0,0.0,67.91165376,738.0,0.0,66.76327174,740.0,0.0,65.62745836,742.0,0.0,64.50411268,744.0,0.0,63.39313593,746.0,0.0,62.29443145,748.0,0.0,61.20790466,750.0,0.0,60.13346293,752.0,0.0,59.07101564,754.0,0.0,58.02047402,756.0,0.0,56.9817512,758.0,0.0,55.95476207,760.0,0.0,54.93942332,762.0,0.0,53.93565334,764.0,0.0,52.9433722,766.0,0.0,51.96250161,768.0,0.0,50.99296488,770.0,0.0,50.03468688,772.0,0.0,49.08759399,774.0,0.0,48.1516141,776.0,0.0,47.22667653,778.0,0.0,46.31271205,780.0,0.0,45.40965279,782.0,0.0,44.51743226,784.0,0.0,43.63598528,786.0,0.0,42.76524799,788.0,0.0,41.90515778,790.0,0.0,41.0556533,792.0,0.0,40.21667441,794.0,0.0,39.38816215,796.0,0.0,38.57005875,798.0,0.0,37.76230756,800.0,0.0,36.96485307,802.0,0.0,36.17764085,804.0,0.0,35.40061756,806.0,0.0,34.63373089,808.0,0.0,33.87692958,810.0,0.0,33.13016339,812.0,0.0,32.39338305,814.0,0.0,31.66654028,816.0,0.0,30.94958775,818.0,0.0,30.24247907,820.0,0.0,29.54516878,822.0,0.0,28.8576123,824.0,0.0,28.17976597,826.0,0.0,27.51158697,828.0};
			return value;
		}
		private double[] getExtrusion_6_21_spine_2()
		{
			double[] value = {0.0,26.85303335,830.0,0.0,26.204064,832.0,0.0,25.56463866,834.0,0.0,24.93471783,836.0,0.0,24.31426287,838.0,0.0,23.70323587,840.0,0.0,23.10159975,842.0,0.0,22.50931813,844.0,0.0,21.92635542,846.0,0.0,21.35267676,848.0,0.0,20.78824801,850.0,0.0,20.23303574,852.0,0.0,19.68700721,854.0,0.0,19.15013042,856.0,0.0,18.62237399,858.0,0.0,18.10370726,860.0,0.0,17.59410021,862.0,0.0,17.09352347,864.0,0.0,16.60194833,866.0,0.0,16.1193467,868.0,0.0,15.64569113,870.0,0.0,15.18095477,872.0,0.0,14.7251114,874.0,0.0,14.27813538,876.0,0.0,13.84000168,878.0,0.0,13.41068586,880.0,0.0,12.99016404,882.0,0.0,12.57841292,884.0,0.0,12.17540978,886.0,0.0,11.78113245,888.0,0.0,11.3955593,890.0,0.0,11.01866926,892.0,0.0,10.65044181,894.0,0.0,10.29085693,896.0,0.0,9.939895168,898.0,0.0,9.597537569,900.0,0.0,9.263765707,902.0,0.0,8.938561666,904.0,0.0,8.621908038,906.0,0.0,8.313787919,908.0,0.0,8.014184901,910.0,0.0,7.723083073,912.0,0.0,7.44046701,914.0,0.0,7.166321776,916.0,0.0,6.900632912,918.0,0.0,6.64338644,920.0,0.0,6.394568853,922.0,0.0,6.154167116,924.0,0.0,5.92216866,926.0,0.0,5.698561377,928.0,0.0,5.483333621,930.0,0.0,5.276474202,932.0,0.0,5.077972385,934.0,0.0,4.887817884,936.0,0.0,4.706000863,938.0,0.0,4.532511932,940.0,0.0,4.367342141,942.0,0.0,4.210482986,944.0,0.0,4.061926397,946.0,0.0,3.921664745,948.0,0.0,3.789690831,950.0,0.0,3.665997893,952.0,0.0,3.550579598,954.0,0.0,3.443430043,956.0,0.0,3.344543753,958.0,0.0,3.253915678,960.0,0.0,3.171541196,962.0,0.0,3.097416107,964.0,0.0,3.031536635,966.0,0.0,2.973899425,968.0,0.0,2.924501544,970.0};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getExtrusion_6_25_spine_1()
		{
			double[] value = {0.0,152.6527109,-630.0,0.0,150.576701,-632.0,0.0,148.5251111,-634.0,0.0,146.4975022,-636.0,0.0,144.4934505,-638.0,0.0,142.5125472,-640.0,0.0,140.554397,-642.0,0.0,138.6186184,-644.0,0.0,136.7048424,-646.0,0.0,134.8127121,-648.0,0.0,132.9418822,-650.0,0.0,131.0920185,-652.0,0.0,129.2627975,-654.0,0.0,127.4539055,-656.0,0.0,125.6650389,-658.0,0.0,123.895903,-660.0,0.0,122.1462123,-662.0,0.0,120.4156898,-664.0,0.0,118.7040665,-666.0,0.0,117.0110814,-668.0,0.0,115.336481,-670.0,0.0,113.6800192,-672.0,0.0,112.0414566,-674.0,0.0,110.4205608,-676.0,0.0,108.8171056,-678.0,0.0,107.2308713,-680.0,0.0,105.6616438,-682.0,0.0,104.1092151,-684.0,0.0,102.5733826,-686.0,0.0,101.0539491,-688.0,0.0,99.55072254,-690.0,0.0,98.06351591,-692.0,0.0,96.59214694,-694.0,0.0,95.13643806,-696.0,0.0,93.69621617,-698.0,0.0,92.27131251,-700.0,0.0,90.86156255,-702.0,0.0,89.46680579,-704.0,0.0,88.08688567,-706.0,0.0,86.72164943,-708.0,0.0,85.370948,-710.0,0.0,84.03463587,-712.0,0.0,82.71257099,-714.0,0.0,81.40461466,-716.0,0.0,80.11063141,-718.0,0.0,78.83048894,-720.0,0.0,77.56405799,-722.0,0.0,76.31121227,-724.0,0.0,75.07182837,-726.0,0.0,73.84578566,-728.0,0.0,72.63296623,-730.0,0.0,71.4332548,-732.0,0.0,70.24653866,-734.0,0.0,69.07270758,-736.0,0.0,67.91165376,-738.0,0.0,66.76327174,-740.0,0.0,65.62745836,-742.0,0.0,64.50411268,-744.0,0.0,63.39313593,-746.0,0.0,62.29443145,-748.0,0.0,61.20790466,-750.0,0.0,60.13346293,-752.0,0.0,59.07101564,-754.0,0.0,58.02047402,-756.0,0.0,56.9817512,-758.0,0.0,55.95476207,-760.0,0.0,54.93942332,-762.0,0.0,53.93565334,-764.0,0.0,52.9433722,-766.0,0.0,51.96250161,-768.0,0.0,50.99296488,-770.0,0.0,50.03468688,-772.0,0.0,49.08759399,-774.0,0.0,48.1516141,-776.0,0.0,47.22667653,-778.0,0.0,46.31271205,-780.0,0.0,45.40965279,-782.0,0.0,44.51743226,-784.0,0.0,43.63598528,-786.0,0.0,42.76524799,-788.0,0.0,41.90515778,-790.0,0.0,41.0556533,-792.0,0.0,40.21667441,-794.0,0.0,39.38816215,-796.0,0.0,38.57005875,-798.0,0.0,37.76230756,-800.0,0.0,36.96485307,-802.0,0.0,36.17764085,-804.0,0.0,35.40061756,-806.0,0.0,34.63373089,-808.0,0.0,33.87692958,-810.0,0.0,33.13016339,-812.0,0.0,32.39338305,-814.0,0.0,31.66654028,-816.0,0.0,30.94958775,-818.0,0.0,30.24247907,-820.0,0.0,29.54516878,-822.0,0.0,28.8576123,-824.0,0.0,28.17976597,-826.0,0.0,27.51158697,-828.0};
			return value;
		}
		private double[] getExtrusion_6_25_spine_2()
		{
			double[] value = {0.0,26.85303335,-830.0,0.0,26.204064,-832.0,0.0,25.56463866,-834.0,0.0,24.93471783,-836.0,0.0,24.31426287,-838.0,0.0,23.70323587,-840.0,0.0,23.10159975,-842.0,0.0,22.50931813,-844.0,0.0,21.92635542,-846.0,0.0,21.35267676,-848.0,0.0,20.78824801,-850.0,0.0,20.23303574,-852.0,0.0,19.68700721,-854.0,0.0,19.15013042,-856.0,0.0,18.62237399,-858.0,0.0,18.10370726,-860.0,0.0,17.59410021,-862.0,0.0,17.09352347,-864.0,0.0,16.60194833,-866.0,0.0,16.1193467,-868.0,0.0,15.64569113,-870.0,0.0,15.18095477,-872.0,0.0,14.7251114,-874.0,0.0,14.27813538,-876.0,0.0,13.84000168,-878.0,0.0,13.41068586,-880.0,0.0,12.99016404,-882.0,0.0,12.57841292,-884.0,0.0,12.17540978,-886.0,0.0,11.78113245,-888.0,0.0,11.3955593,-890.0,0.0,11.01866926,-892.0,0.0,10.65044181,-894.0,0.0,10.29085693,-896.0,0.0,9.939895168,-898.0,0.0,9.597537569,-900.0,0.0,9.263765707,-902.0,0.0,8.938561666,-904.0,0.0,8.621908038,-906.0,0.0,8.313787919,-908.0,0.0,8.014184901,-910.0,0.0,7.723083073,-912.0,0.0,7.44046701,-914.0,0.0,7.166321776,-916.0,0.0,6.900632912,-918.0,0.0,6.64338644,-920.0,0.0,6.394568853,-922.0,0.0,6.154167116,-924.0,0.0,5.92216866,-926.0,0.0,5.698561377,-928.0,0.0,5.483333621,-930.0,0.0,5.276474202,-932.0,0.0,5.077972385,-934.0,0.0,4.887817884,-936.0,0.0,4.706000863,-938.0,0.0,4.532511932,-940.0,0.0,4.367342141,-942.0,0.0,4.210482986,-944.0,0.0,4.061926397,-946.0,0.0,3.921664745,-948.0,0.0,3.789690831,-950.0,0.0,3.665997893,-952.0,0.0,3.550579598,-954.0,0.0,3.443430043,-956.0,0.0,3.344543753,-958.0,0.0,3.253915678,-960.0,0.0,3.171541196,-962.0,0.0,3.097416107,-964.0,0.0,3.031536635,-966.0,0.0,2.973899425,-968.0,0.0,2.924501544,-970.0};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getExtrusion_6_29_spine_1()
		{
			double[] value = {0.0,3.0,0.0,0.0,3.001430616,2.0,0.0,3.005722472,4.0,0.0,3.012875596,6.0,0.0,3.02289003,8.0,0.0,3.035765837,10.0,0.0,3.051503095,12.0,0.0,3.070101901,14.0,0.0,3.091562369,16.0,0.0,3.115884631,18.0,0.0,3.143068837,20.0,0.0,3.173115153,22.0,0.0,3.206023765,24.0,0.0,3.241794873,26.0,0.0,3.280428698,28.0,0.0,3.321925478,30.0,0.0,3.366285467,32.0,0.0,3.413508938,34.0,0.0,3.463596181,36.0,0.0,3.516547504,38.0,0.0,3.572363233,40.0,0.0,3.631043711,42.0,0.0,3.692589299,44.0,0.0,3.757000375,46.0,0.0,3.824277337,48.0,0.0,3.894420597,50.0,0.0,3.967430587,52.0,0.0,4.043307758,54.0,0.0,4.122052576,56.0,0.0,4.203665526,58.0,0.0,4.288147111,60.0,0.0,4.375497852,62.0,0.0,4.465718287,64.0,0.0,4.558808972,66.0,0.0,4.654770481,68.0,0.0,4.753603407,70.0,0.0,4.855308358,72.0,0.0,4.959885963,74.0,0.0,5.067336868,76.0,0.0,5.177661735,78.0,0.0,5.290861247,80.0,0.0,5.406936102,82.0,0.0,5.525887019,84.0,0.0,5.647714733,86.0,0.0,5.772419997,88.0,0.0,5.900003584,90.0,0.0,6.030466283,92.0,0.0,6.163808901,94.0,0.0,6.300032265,96.0,0.0,6.439137219,98.0,0.0,6.581124626,100.0,0.0,6.725995365,102.0,0.0,6.873750337,104.0,0.0,7.024390457,106.0,0.0,7.177916662,108.0,0.0,7.334329905,110.0,0.0,7.493631159,112.0,0.0,7.655821414,114.0,0.0,7.820901678,116.0,0.0,7.988872981,118.0,0.0,8.159736366,120.0,0.0,8.333492899,122.0,0.0,8.510143664,124.0,0.0,8.68968976,126.0,0.0,8.87213231,128.0,0.0,9.057472451,130.0,0.0,9.245711341,132.0,0.0,9.436850157,134.0,0.0,9.630890094,136.0,0.0,9.827832366,138.0,0.0,10.0276782,140.0,0.0,10.23042886,142.0,0.0,10.43608561,144.0,0.0,10.64464974,146.0,0.0,10.85612255,148.0,0.0,11.07050539,150.0,0.0,11.28779958,152.0,0.0,11.5080065,154.0,0.0,11.73112754,156.0,0.0,11.95716409,158.0,0.0,12.18611758,160.0,0.0,12.41798946,162.0,0.0,12.65278118,164.0,0.0,12.89049423,166.0,0.0,13.13113011,168.0,0.0,13.37469034,170.0,0.0,13.62117646,172.0,0.0,13.87059003,174.0,0.0,14.12293263,176.0,0.0,14.37820585,178.0,0.0,14.63641133,180.0,0.0,14.89755068,182.0,0.0,15.16162559,184.0,0.0,15.42863771,186.0,0.0,15.69858875,188.0,0.0,15.97148044,190.0,0.0,16.2473145,192.0,0.0,16.5260927,194.0,0.0,16.80781681,196.0,0.0,17.09248864,198.0};
			return value;
		}
		private double[] getExtrusion_6_29_spine_2()
		{
			double[] value = {0.0,17.38011,200.0,0.0,17.67068274,202.0,0.0,17.96420871,204.0,0.0,18.26068979,206.0,0.0,18.56012789,208.0,0.0,18.86252493,210.0,0.0,19.16788285,212.0,0.0,19.47620361,214.0,0.0,19.7874892,216.0,0.0,20.10174162,218.0,0.0,20.4189629,220.0,0.0,20.73915509,222.0,0.0,21.06232025,224.0,0.0,21.38846047,226.0,0.0,21.71757787,228.0,0.0,22.04967457,230.0,0.0,22.38475273,232.0,0.0,22.72281453,234.0,0.0,23.06386215,236.0,0.0,23.40789782,238.0,0.0,23.75492377,240.0,0.0,24.10494227,242.0,0.0,24.4579556,244.0,0.0,24.81396606,246.0,0.0,25.17297599,248.0,0.0,25.53498772,250.0,0.0,25.90000364,252.0,0.0,26.26802612,254.0,0.0,26.6390576,256.0,0.0,27.0131005,258.0,0.0,27.39015729,260.0,0.0,27.77023044,262.0,0.0,28.15332247,264.0,0.0,28.5394359,266.0,0.0,28.92857329,268.0,0.0,29.3207372,270.0,0.0,29.71593023,272.0,0.0,30.11415501,274.0,0.0,30.51541417,276.0,0.0,30.91971038,278.0,0.0,31.32704634,280.0,0.0,31.73742474,282.0,0.0,32.15084834,284.0,0.0,32.56731989,286.0,0.0,32.98684217,288.0,0.0,33.40941799,290.0,0.0,33.83505019,292.0,0.0,34.26374161,294.0,0.0,34.69549514,296.0,0.0,35.13031368,298.0,0.0,35.56820017,300.0,0.0,36.00915754,302.0,0.0,36.45318878,304.0,0.0,36.9002969,306.0,0.0,37.35048491,308.0,0.0,37.80375587,310.0,0.0,38.26011286,312.0,0.0,38.71955897,314.0,0.0,39.18209734,316.0,0.0,39.64773111,318.0,0.0,40.11646347,320.0,0.0,40.58829761,322.0,0.0,41.06323676,324.0,0.0,41.54128419,326.0,0.0,42.02244316,328.0,0.0,42.50671698,330.0,0.0,42.994109,332.0,0.0,43.48462255,334.0,0.0,43.97826104,336.0,0.0,44.47502787,338.0,0.0,44.97492649,340.0,0.0,45.47796034,342.0,0.0,45.98413293,344.0,0.0,46.49344778,346.0,0.0,47.00590843,348.0,0.0,47.52151846,350.0,0.0,48.04028146,352.0,0.0,48.56220106,354.0,0.0,49.08728092,356.0,0.0,49.61552473,358.0,0.0,50.14693619,360.0,0.0,50.68151905,362.0,0.0,51.21927707,364.0,0.0,51.76021405,366.0,0.0,52.30433381,368.0,0.0,52.85164021,370.0,0.0,53.40213713,372.0,0.0,53.95582849,374.0,0.0,54.51271822,376.0,0.0,55.07281029,378.0,0.0,55.63610871,380.0,0.0,56.20261749,382.0,0.0,56.77234071,384.0,0.0,57.34528245,386.0,0.0,57.92144682,388.0,0.0,58.50083799,390.0,0.0,59.08346012,392.0,0.0,59.66931743,394.0,0.0,60.25841416,396.0,0.0,60.85075458,398.0};
			return value;
		}
		private double[] getExtrusion_6_29_spine_3()
		{
			double[] value = {0.0,61.44634299,400.0,0.0,62.04518373,402.0,0.0,62.64728117,404.0,0.0,63.2526397,406.0,0.0,63.86126374,408.0,0.0,64.47315777,410.0,0.0,65.08832627,412.0,0.0,65.70677378,414.0,0.0,66.32850484,416.0,0.0,66.95352405,418.0,0.0,67.58183603,420.0,0.0,68.21344545,422.0,0.0,68.84835698,424.0,0.0,69.48657536,426.0,0.0,70.12810534,428.0,0.0,70.77295171,430.0,0.0,71.4211193,432.0,0.0,72.07261297,434.0,0.0,72.72743761,436.0,0.0,73.38559815,438.0,0.0,74.04709955,440.0,0.0,74.71194682,442.0,0.0,75.38014499,444.0,0.0,76.05169912,446.0,0.0,76.72661433,448.0,0.0,77.40489575,450.0,0.0,78.08654856,452.0,0.0,78.77157798,454.0,0.0,79.45998925,456.0,0.0,80.15178768,458.0,0.0,80.84697857,460.0,0.0,81.54556729,462.0,0.0,82.24755924,464.0,0.0,82.95295987,466.0,0.0,83.66177464,468.0,0.0,84.37400907,470.0,0.0,85.08966871,472.0,0.0,85.80875915,474.0,0.0,86.53128603,476.0,0.0,87.25725502,478.0,0.0,87.98667181,480.0,0.0,88.71954217,482.0,0.0,89.45587188,484.0,0.0,90.19566678,486.0,0.0,90.93893272,488.0,0.0,91.68567563,490.0,0.0,92.43590146,492.0,0.0,93.18961619,494.0,0.0,93.94682587,496.0,0.0,94.70753658,498.0,0.0,95.47175442,500.0,0.0,96.23948558,502.0,0.0,97.01073624,504.0,0.0,97.78551266,506.0,0.0,98.56382114,508.0,0.0,99.34566801,510.0,0.0,100.1310596,512.0,0.0,100.9200025,514.0,0.0,101.7125029,516.0,0.0,102.5085676,518.0,0.0,103.308203,520.0,0.0,104.1114157,522.0,0.0,104.9182125,524.0,0.0,105.7285999,526.0,0.0,106.5425847,528.0,0.0,107.3601738,530.0,0.0,108.1813739,532.0,0.0,109.006192,534.0,0.0,109.8346349,536.0,0.0,110.6667097,538.0,0.0,111.5024234,540.0,0.0,112.3417831,542.0,0.0,113.1847959,544.0,0.0,114.0314689,546.0,0.0,114.8818095,548.0,0.0,115.7358248,550.0,0.0,116.5935223,552.0,0.0,117.4549092,554.0,0.0,118.3199931,556.0,0.0,119.1887815,558.0,0.0,120.0612817,560.0,0.0,120.9375015,562.0,0.0,121.8174485,564.0,0.0,122.7011304,566.0,0.0,123.5885549,568.0,0.0,124.4797299,570.0,0.0,125.3746632,572.0,0.0,126.2733626,574.0,0.0,127.1758363,576.0,0.0,128.0820922,578.0,0.0,128.9921384,580.0,0.0,129.905983,582.0,0.0,130.8236343,584.0,0.0,131.7451005,586.0,0.0,132.6703898,588.0,0.0,133.5995108,590.0,0.0,134.5324718,592.0,0.0,135.4692813,594.0,0.0,136.4099478,596.0,0.0,137.3544801,598.0};
			return value;
		}
		private double[] getExtrusion_6_29_spine_4()
		{
			double[] value = {0.0,138.3028867,600.0,0.0,139.2551764,602.0,0.0,140.2113579,604.0,0.0,141.1714402,606.0,0.0,142.1354322,608.0,0.0,143.1033429,610.0,0.0,144.0751812,612.0,0.0,145.0509564,614.0,0.0,146.0306777,616.0,0.0,147.0143541,618.0,0.0,148.0019952,620.0,0.0,148.9936102,622.0,0.0,149.9892087,624.0,0.0,150.9888001,626.0,0.0,151.9923939,628.0,0.0,153.0,630.0};
			return value;
		}


		/** Define subarrays using type double[] */
		private double[] getExtrusion_6_33_spine_1()
		{
			double[] value = {0.0,3.0,0.0,0.0,3.001430616,-2.0,0.0,3.005722472,-4.0,0.0,3.012875596,-6.0,0.0,3.02289003,-8.0,0.0,3.035765837,-10.0,0.0,3.051503095,-12.0,0.0,3.070101901,-14.0,0.0,3.091562369,-16.0,0.0,3.115884631,-18.0,0.0,3.143068837,-20.0,0.0,3.173115153,-22.0,0.0,3.206023765,-24.0,0.0,3.241794873,-26.0,0.0,3.280428698,-28.0,0.0,3.321925478,-30.0,0.0,3.366285467,-32.0,0.0,3.413508938,-34.0,0.0,3.463596181,-36.0,0.0,3.516547504,-38.0,0.0,3.572363233,-40.0,0.0,3.631043711,-42.0,0.0,3.692589299,-44.0,0.0,3.757000375,-46.0,0.0,3.824277337,-48.0,0.0,3.894420597,-50.0,0.0,3.967430587,-52.0,0.0,4.043307758,-54.0,0.0,4.122052576,-56.0,0.0,4.203665526,-58.0,0.0,4.288147111,-60.0,0.0,4.375497852,-62.0,0.0,4.465718287,-64.0,0.0,4.558808972,-66.0,0.0,4.654770481,-68.0,0.0,4.753603407,-70.0,0.0,4.855308358,-72.0,0.0,4.959885963,-74.0,0.0,5.067336868,-76.0,0.0,5.177661735,-78.0,0.0,5.290861247,-80.0,0.0,5.406936102,-82.0,0.0,5.525887019,-84.0,0.0,5.647714733,-86.0,0.0,5.772419997,-88.0,0.0,5.900003584,-90.0,0.0,6.030466283,-92.0,0.0,6.163808901,-94.0,0.0,6.300032265,-96.0,0.0,6.439137219,-98.0,0.0,6.581124626,-100.0,0.0,6.725995365,-102.0,0.0,6.873750337,-104.0,0.0,7.024390457,-106.0,0.0,7.177916662,-108.0,0.0,7.334329905,-110.0,0.0,7.493631159,-112.0,0.0,7.655821414,-114.0,0.0,7.820901678,-116.0,0.0,7.988872981,-118.0,0.0,8.159736366,-120.0,0.0,8.333492899,-122.0,0.0,8.510143664,-124.0,0.0,8.68968976,-126.0,0.0,8.87213231,-128.0,0.0,9.057472451,-130.0,0.0,9.245711341,-132.0,0.0,9.436850157,-134.0,0.0,9.630890094,-136.0,0.0,9.827832366,-138.0,0.0,10.0276782,-140.0,0.0,10.23042886,-142.0,0.0,10.43608561,-144.0,0.0,10.64464974,-146.0,0.0,10.85612255,-148.0,0.0,11.07050539,-150.0,0.0,11.28779958,-152.0,0.0,11.5080065,-154.0,0.0,11.73112754,-156.0,0.0,11.95716409,-158.0,0.0,12.18611758,-160.0,0.0,12.41798946,-162.0,0.0,12.65278118,-164.0,0.0,12.89049423,-166.0,0.0,13.13113011,-168.0,0.0,13.37469034,-170.0,0.0,13.62117646,-172.0,0.0,13.87059003,-174.0,0.0,14.12293263,-176.0,0.0,14.37820585,-178.0,0.0,14.63641133,-180.0,0.0,14.89755068,-182.0,0.0,15.16162559,-184.0,0.0,15.42863771,-186.0,0.0,15.69858875,-188.0,0.0,15.97148044,-190.0,0.0,16.2473145,-192.0,0.0,16.5260927,-194.0,0.0,16.80781681,-196.0,0.0,17.09248864,-198.0};
			return value;
		}
		private double[] getExtrusion_6_33_spine_2()
		{
			double[] value = {0.0,17.38011,-200.0,0.0,17.67068274,-202.0,0.0,17.96420871,-204.0,0.0,18.26068979,-206.0,0.0,18.56012789,-208.0,0.0,18.86252493,-210.0,0.0,19.16788285,-212.0,0.0,19.47620361,-214.0,0.0,19.7874892,-216.0,0.0,20.10174162,-218.0,0.0,20.4189629,-220.0,0.0,20.73915509,-222.0,0.0,21.06232025,-224.0,0.0,21.38846047,-226.0,0.0,21.71757787,-228.0,0.0,22.04967457,-230.0,0.0,22.38475273,-232.0,0.0,22.72281453,-234.0,0.0,23.06386215,-236.0,0.0,23.40789782,-238.0,0.0,23.75492377,-240.0,0.0,24.10494227,-242.0,0.0,24.4579556,-244.0,0.0,24.81396606,-246.0,0.0,25.17297599,-248.0,0.0,25.53498772,-250.0,0.0,25.90000364,-252.0,0.0,26.26802612,-254.0,0.0,26.6390576,-256.0,0.0,27.0131005,-258.0,0.0,27.39015729,-260.0,0.0,27.77023044,-262.0,0.0,28.15332247,-264.0,0.0,28.5394359,-266.0,0.0,28.92857329,-268.0,0.0,29.3207372,-270.0,0.0,29.71593023,-272.0,0.0,30.11415501,-274.0,0.0,30.51541417,-276.0,0.0,30.91971038,-278.0,0.0,31.32704634,-280.0,0.0,31.73742474,-282.0,0.0,32.15084834,-284.0,0.0,32.56731989,-286.0,0.0,32.98684217,-288.0,0.0,33.40941799,-290.0,0.0,33.83505019,-292.0,0.0,34.26374161,-294.0,0.0,34.69549514,-296.0,0.0,35.13031368,-298.0,0.0,35.56820017,-300.0,0.0,36.00915754,-302.0,0.0,36.45318878,-304.0,0.0,36.9002969,-306.0,0.0,37.35048491,-308.0,0.0,37.80375587,-310.0,0.0,38.26011286,-312.0,0.0,38.71955897,-314.0,0.0,39.18209734,-316.0,0.0,39.64773111,-318.0,0.0,40.11646347,-320.0,0.0,40.58829761,-322.0,0.0,41.06323676,-324.0,0.0,41.54128419,-326.0,0.0,42.02244316,-328.0,0.0,42.50671698,-330.0,0.0,42.994109,-332.0,0.0,43.48462255,-334.0,0.0,43.97826104,-336.0,0.0,44.47502787,-338.0,0.0,44.97492649,-340.0,0.0,45.47796034,-342.0,0.0,45.98413293,-344.0,0.0,46.49344778,-346.0,0.0,47.00590843,-348.0,0.0,47.52151846,-350.0,0.0,48.04028146,-352.0,0.0,48.56220106,-354.0,0.0,49.08728092,-356.0,0.0,49.61552473,-358.0,0.0,50.14693619,-360.0,0.0,50.68151905,-362.0,0.0,51.21927707,-364.0,0.0,51.76021405,-366.0,0.0,52.30433381,-368.0,0.0,52.85164021,-370.0,0.0,53.40213713,-372.0,0.0,53.95582849,-374.0,0.0,54.51271822,-376.0,0.0,55.07281029,-378.0,0.0,55.63610871,-380.0,0.0,56.20261749,-382.0,0.0,56.77234071,-384.0,0.0,57.34528245,-386.0,0.0,57.92144682,-388.0,0.0,58.50083799,-390.0,0.0,59.08346012,-392.0,0.0,59.66931743,-394.0,0.0,60.25841416,-396.0,0.0,60.85075458,-398.0};
			return value;
		}
		private double[] getExtrusion_6_33_spine_3()
		{
			double[] value = {0.0,61.44634299,-400.0,0.0,62.04518373,-402.0,0.0,62.64728117,-404.0,0.0,63.2526397,-406.0,0.0,63.86126374,-408.0,0.0,64.47315777,-410.0,0.0,65.08832627,-412.0,0.0,65.70677378,-414.0,0.0,66.32850484,-416.0,0.0,66.95352405,-418.0,0.0,67.58183603,-420.0,0.0,68.21344545,-422.0,0.0,68.84835698,-424.0,0.0,69.48657536,-426.0,0.0,70.12810534,-428.0,0.0,70.77295171,-430.0,0.0,71.4211193,-432.0,0.0,72.07261297,-434.0,0.0,72.72743761,-436.0,0.0,73.38559815,-438.0,0.0,74.04709955,-440.0,0.0,74.71194682,-442.0,0.0,75.38014499,-444.0,0.0,76.05169912,-446.0,0.0,76.72661433,-448.0,0.0,77.40489575,-450.0,0.0,78.08654856,-452.0,0.0,78.77157798,-454.0,0.0,79.45998925,-456.0,0.0,80.15178768,-458.0,0.0,80.84697857,-460.0,0.0,81.54556729,-462.0,0.0,82.24755924,-464.0,0.0,82.95295987,-466.0,0.0,83.66177464,-468.0,0.0,84.37400907,-470.0,0.0,85.08966871,-472.0,0.0,85.80875915,-474.0,0.0,86.53128603,-476.0,0.0,87.25725502,-478.0,0.0,87.98667181,-480.0,0.0,88.71954217,-482.0,0.0,89.45587188,-484.0,0.0,90.19566678,-486.0,0.0,90.93893272,-488.0,0.0,91.68567563,-490.0,0.0,92.43590146,-492.0,0.0,93.18961619,-494.0,0.0,93.94682587,-496.0,0.0,94.70753658,-498.0,0.0,95.47175442,-500.0,0.0,96.23948558,-502.0,0.0,97.01073624,-504.0,0.0,97.78551266,-506.0,0.0,98.56382114,-508.0,0.0,99.34566801,-510.0,0.0,100.1310596,-512.0,0.0,100.9200025,-514.0,0.0,101.7125029,-516.0,0.0,102.5085676,-518.0,0.0,103.308203,-520.0,0.0,104.1114157,-522.0,0.0,104.9182125,-524.0,0.0,105.7285999,-526.0,0.0,106.5425847,-528.0,0.0,107.3601738,-530.0,0.0,108.1813739,-532.0,0.0,109.006192,-534.0,0.0,109.8346349,-536.0,0.0,110.6667097,-538.0,0.0,111.5024234,-540.0,0.0,112.3417831,-542.0,0.0,113.1847959,-544.0,0.0,114.0314689,-546.0,0.0,114.8818095,-548.0,0.0,115.7358248,-550.0,0.0,116.5935223,-552.0,0.0,117.4549092,-554.0,0.0,118.3199931,-556.0,0.0,119.1887815,-558.0,0.0,120.0612817,-560.0,0.0,120.9375015,-562.0,0.0,121.8174485,-564.0,0.0,122.7011304,-566.0,0.0,123.5885549,-568.0,0.0,124.4797299,-570.0,0.0,125.3746632,-572.0,0.0,126.2733626,-574.0,0.0,127.1758363,-576.0,0.0,128.0820922,-578.0,0.0,128.9921384,-580.0,0.0,129.905983,-582.0,0.0,130.8236343,-584.0,0.0,131.7451005,-586.0,0.0,132.6703898,-588.0,0.0,133.5995108,-590.0,0.0,134.5324718,-592.0,0.0,135.4692813,-594.0,0.0,136.4099478,-596.0,0.0,137.3544801,-598.0};
			return value;
		}
		private double[] getExtrusion_6_33_spine_4()
		{
			double[] value = {0.0,138.3028867,-600.0,0.0,139.2551764,-602.0,0.0,140.2113579,-604.0,0.0,141.1714402,-606.0,0.0,142.1354322,-608.0,0.0,143.1033429,-610.0,0.0,144.0751812,-612.0,0.0,145.0509564,-614.0,0.0,146.0306777,-616.0,0.0,147.0143541,-618.0,0.0,148.0019952,-620.0,0.0,148.9936102,-622.0,0.0,149.9892087,-624.0,0.0,150.9888001,-626.0,0.0,151.9923939,-628.0,0.0,153.0,-630.0};
			return value;
		}

		/** Large attribute array: Extrusion spine field, scene-graph level=6, element #21, 513 total numbers made up of 171 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_6_21_spine()
		{
			MFVec3f Extrusion_6_21_spine = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getExtrusion_6_21_spine_1()))
				.append(new MFVec3f(getExtrusion_6_21_spine_2()));
			return Extrusion_6_21_spine;
		}
		/** Large attribute array: Extrusion spine field, scene-graph level=6, element #25, 513 total numbers made up of 171 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_6_25_spine()
		{
			MFVec3f Extrusion_6_25_spine = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getExtrusion_6_25_spine_1()))
				.append(new MFVec3f(getExtrusion_6_25_spine_2()));
			return Extrusion_6_25_spine;
		}
		/** Large attribute array: Extrusion spine field, scene-graph level=6, element #29, 948 total numbers made up of 316 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_6_29_spine()
		{
			MFVec3f Extrusion_6_29_spine = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getExtrusion_6_29_spine_1()))
				.append(new MFVec3f(getExtrusion_6_29_spine_2()))
				.append(new MFVec3f(getExtrusion_6_29_spine_3()))
				.append(new MFVec3f(getExtrusion_6_29_spine_4()));
			return Extrusion_6_29_spine;
		}
		/** Large attribute array: Extrusion spine field, scene-graph level=6, element #33, 948 total numbers made up of 316 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_6_33_spine()
		{
			MFVec3f Extrusion_6_33_spine = new MFVec3f()/*2.finalize*/
				.append(new MFVec3f(getExtrusion_6_33_spine_1()))
				.append(new MFVec3f(getExtrusion_6_33_spine_2()))
				.append(new MFVec3f(getExtrusion_6_33_spine_3()))
				.append(new MFVec3f(getExtrusion_6_33_spine_4()));
			return Extrusion_6_33_spine;
		}

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

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