<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saxon="http://icl.com/saxon" xmlns="http://www.w3.org/TR/xhtml1/strict">
<head>
<title>HelloWorldProgramOutput.x3d (X3dToXhtml listing)</title>
<!-- I18N -->
<meta http-equiv="X-UA-Compatible" content="chrome=1,IE=edge"/>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<style type="text/css">
span.element {color: navy}
span.attribute {color: green}
span.value {color: teal}
span.plain {color: black}
span.gray  {color: gray}
span.idName {color: maroon}
a.idName {color: maroon}
div.center {text-align: center}
div.indent {margin-left: 25px}

span.prototype {color: purple}
a.prototype {color: purple}
a.prototype:visited {color: black}
span.route {color: red}
b.warning {color: #CC5500}
b.error {color: #CC0000}

                </style>
<style type="text/css">
table.curvedEdges { border:10px solid RoyalBlue;-webkit-border-radius:13px;-moz-border-radius:13px;-ms-border-radius:13px;-o-border-radius:13px;border-radius:13px; }
table.curvedEdges td, table.curvedEdges th { border-bottom:1px dotted black;padding:5px; }
</style>
<meta name="generator" content="XSLT processor Apache Software Foundation (Xalan XSLTC)"/>
<meta name="generator" content="http://www.web3d.org/x3d/stylesheets/X3dToXhtml.xslt"/>
<meta name="generator" content="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/X3dToXhtml.xslt"/>
<link rel="shortcut icon" href="http://www.web3d.org/x3d/content/icons/X3DtextIcon16.png" title="X3D"/>
</head>
<body>
<code title="XML declaration"><?xml version="1.0" encoding="UTF-8"?></code>
<br/>
<code title="Document Type Declaration (DTD) for X3D validation"><!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "<a href="http://www.web3d.org/specifications/x3d-3.3.dtd">http://www.web3d.org/specifications/x3d-3.3.dtd</a>"></code>
<div>
<span title="X3D is the top-most XML element for an Extensible 3D (X3D) Graphics file"><<span class="element">X3D</span> <span title="X3D Immersive Profile supports most nodes, similar to VRML97"><span class="attribute">profile</span>='<span class="value">Immersive</span>'</span> <span class="attribute">version</span>='<span class="value">3.3</span>' <span title="XML namespace for X3D Graphics schema validation"><span title="XML namespace for XML Schema validation">
<span class="attribute">xmlns:xsd</span>='<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>'
</span>
<span title="XML namespace for X3D Graphics schema validation">
<span class="attribute">xsd:noNamespaceSchemaLocation</span>
</span>='
<a href="http://www.web3d.org/specifications/x3d-3.3.xsd">http://www.web3d.org/specifications/x3d-3.3.xsd</a>
'</span>>
</span><div class="indent">
<span title="head can contain component, unit, and author-defined metadata (meta) tags"><<span class="element">head</span>>
</span><div class="indent">
<span title="X3D component name and level indicate any additional scene functionality needed above the given X3D profile"><<span class="element">component</span> 
<span class="attribute">level</span>='<span class="value">1</span>' <span class="attribute">name</span>='<span class="value">Core</span>'/>
</span><br />

<span title="unit defines scene scaling factors for length, angle, mass, or force"><<span class="element">unit</span> 
<span class="attribute">category</span>='<span class="value">angle</span>' <span class="attribute">conversionFactor</span>='<span class="value">1.0</span>' <span class="attribute">name</span>='<span class="value">AngleUnitConversion</span>'/>
</span><br />

<span title="unit defines scene scaling factors for length, angle, mass, or force"><<span class="element">unit</span> 
<span class="attribute">category</span>='<span class="value">length</span>' <span class="attribute">conversionFactor</span>='<span class="value">1.0</span>' <span class="attribute">name</span>='<span class="value">LengthUnitConversion</span>'/>
</span><br />

<span title="meta 'title' provides file name for this resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">title</span>' <span class="attribute">content</span>='<a href="HelloWorldProgramOutput.x3d">HelloWorldProgramOutput.x3d</a>'/>
</span><br />

<span title="meta 'description' provides summary overview describing this resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">description</span>' <span class="attribute">content</span>='<span class="plain">Example HelloWorldProgram creates an X3D model using the X3D Java Scene Access Interface (SAI) Library</span>'/>
</span><br />

<span title="meta 'reference' provides name or reference link to a supporting resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">reference</span>' <span class="attribute">content</span>='
<a href="http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html">http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html</a>
'/>
</span><br />

<span title="meta 'generator' provides name of authoring tool or translation tool producing this scene"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">generator</span>' <span class="attribute">content</span>='<a href="HelloWorldProgramOutput.java" target="_blank">HelloWorldProgramOutput.java</a>'/>
</span><br />

<span title="meta 'created' provides date of initial version"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">created</span>' <span class="attribute">content</span>='<span class="value">6 September 2016</span>'/>
</span><br />

<span title="meta 'modified' provides date of modified version"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">modified</span>' <span class="attribute">content</span>='<span class="value">1 December 2016</span>'/>
</span><br />

<span title="meta 'generator' provides name of authoring tool or translation tool producing this scene"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">generator</span>' <span class="attribute">content</span>='<span class="value">X3D Java Scene Access Interface (SAI) Library</span>'/>
</span><br />

<span title="meta 'generator' provides name of authoring tool or translation tool producing this scene"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">generator</span>' <span class="attribute">content</span>='<a href="http://www.web3d.org/specifications/java/examples/HelloWorldProgram.java" target="_blank">http://www.web3d.org/specifications/java/examples/HelloWorldProgram.java</a>'/>
</span><br />

<span title="meta 'generator' provides name of authoring tool or translation tool producing this scene"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">generator</span>' <span class="attribute">content</span>='<span class="value">Netbeans </span>
<a href="http://www.netbeans.org" target="_blank">http://www.netbeans.org</a>'/>
</span><br />

<span title="meta 'creator' provides name of original author"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">creator</span>' <span class="attribute">content</span>='<span class="value">Don Brutzman</span>'/>
</span><br />

<span title="meta 'reference' provides name or reference link to a supporting resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">reference</span>' <span class="attribute">content</span>='
<a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.x3d">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/java/examples/HelloWorldProgramOutput.x3d</a>
'/>
</span><br />

<span title="meta 'reference' provides name or reference link to a supporting resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">reference</span>' <span class="attribute">content</span>='<span class="value">Console output, ClassicVRML encoding, VRML97 encoding and pretty-print documentation:</span>'/>
</span><br />

<span title="meta 'reference' provides name or reference link to a supporting resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">reference</span>' <span class="attribute">content</span>='<a href="HelloWorldProgramOutput.txt">HelloWorldProgramOutput.txt</a>'/>
</span><br />

<span title="meta 'reference' provides name or reference link to a supporting resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">reference</span>' <span class="attribute">content</span>='<a href="HelloWorldProgramOutput.x3dv">HelloWorldProgramOutput.x3dv</a>'/>
</span><br />

<span title="meta 'reference' provides name or reference link to a supporting resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">reference</span>' <span class="attribute">content</span>='<a href="HelloWorldProgramOutput.wrl">HelloWorldProgramOutput.wrl</a>'/>
</span><br />

<span title="meta 'reference' provides name or reference link to a supporting resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">reference</span>' <span class="attribute">content</span>='<a href="HelloWorldProgramOutput.html">HelloWorldProgramOutput.html</a>'/>
</span><br />

<span title="author-defined metadata"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">X3dValidator</span>' <span class="attribute">content</span>='
https://savage.nps.edu/X3dValidator?url=<a href="http://www.web3d.org/specifications/java/examples/HelloWorldProgramOutput.x3d">http://www.web3d.org/specifications/java/examples/HelloWorldProgramOutput.x3d</a>
'/>
</span><br />

<span title="meta 'identifier' provides the unique Uniform Resource Identifier (URI) or url address for this resource"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">identifier</span>' <span class="attribute">content</span>='
<a href="http://www.web3d.org/specifications/java/examples/HelloWorldProgramOutput.x3d">http://www.web3d.org/specifications/java/examples/HelloWorldProgramOutput.x3d</a>
'/>
</span><br />

<span title="meta 'license' provides software license link or information"><<span class="element">meta</span> 
<span class="attribute">name</span>='<span class="value">license</span>' <span class="attribute">content</span>='
<a href="../license.html">../license.html</a>'/>
</span><br /><span title="XML comment"><!-- comment #1 --></span>
<br /><span title="XML comment"><!-- comment #2 --></span>
<br /><span title="XML comment"><!-- comment #3 --></span>
<br /><span title="XML comment"><!-- comment #4 --></span>
</div><span title="head can contain component, unit, and author-defined metadata (meta) tags"></<span class="element">head</span>>
</span><br /><span style="color:white">
<!--
</span>
<div class="center">
<hr style="width:100%"/>
<b>
<i>Index for ExternProtoDeclare definition</i>
</b>: 
<a title="go to this declaration" href="#ExternProtoDeclare_ArtDeco02" class="prototype">ArtDeco02</a>
<br /><hr width="50%"/>
<b>
<i>Index for ProtoDeclare definition</i>
</b>: 
<a title="go to this declaration" href="#ProtoDeclare_ArtDeco01" class="prototype">ArtDeco01</a>
<br /><hr width="50%"/>
<b>
<i>Index for DEF nodes</i>
</b>: 
<a title="go to this Group node" href="#BackgroundGroup" class="idName">BackgroundGroup</a>,
<a title="go to this PositionInterpolator node" href="#BoxPathAnimator" class="idName">BoxPathAnimator</a>,
<a title="go to this Shape node" href="#BoxShape" class="idName">BoxShape</a>,
<a title="go to this ColorInterpolator node" href="#ColorAnimator" class="idName">ColorAnimator</a>,
<a title="go to this TimeSensor node" href="#ColorClock" class="idName">ColorClock</a>,
<a title="go to this Script node" href="#colorTypeConversionScript" class="idName">colorTypeConversionScript</a>,
<a title="go to this Viewpoint node" href="#DefaultView" class="idName">DefaultView</a>,
<a title="go to this Background node" href="#GradualBackground" class="idName">GradualBackground</a>,
<a title="go to this Material node" href="#GreenMaterial" class="idName">GreenMaterial</a>,
<a title="go to this Shape node" href="#LineShape" class="idName">LineShape</a>,
<a title="go to this Transform node" href="#LogoGeometryTransform" class="idName">LogoGeometryTransform</a>,
<a title="go to this TimeSensor node" href="#OrbitClock" class="idName">OrbitClock</a>,
<a title="go to this TimeSensor node" href="#SpinClock" class="idName">SpinClock</a>,
<a title="go to this OrientationInterpolator node" href="#SpinInterpolator" class="idName">SpinInterpolator</a>,
<a title="go to this Shape node" href="#TestShape1" class="idName">TestShape1</a>,
<a title="go to this Shape node" href="#TestShape2" class="idName">TestShape2</a>,
<a title="go to this Transform node" href="#TextTransform" class="idName">TextTransform</a>,
<a title="go to this Viewpoint node" href="#TopDownView" class="idName">TopDownView</a>
<hr style="width:100%"/>
</div>
<span style="color:white">
-->
</span><br />

<span title="Scene is the root node that contains an X3D scene graph"><<span class="element">Scene</span>>
</span><div class="indent">
<a name="DefaultView"> </a> 
<span title="Viewpoint provides a specific location and direction where the user may view the scene"><<span class="element">Viewpoint</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">DefaultView</span>' <span class="attribute">description</span>='<span class="value">Hello X3D Java SAI</span>'/>
</span><br />
<a name="TopDownView"> </a> 
<span title="Viewpoint provides a specific location and direction where the user may view the scene"><<span class="element">Viewpoint</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">TopDownView</span>' <span class="attribute">description</span>='<span class="value">top-down view from above</span>' <span class="attribute">orientation</span>='<span class="value">1.0 0.0 0.0 -1.570796</span>' <span class="attribute">position</span>='<span class="value">0.0 10.0 0.0</span>'/>
</span><br />

<span title="WorldInfo contains persistent documentation information about the 3D world"><<span class="element">WorldInfo</span> 
<span class="attribute">title</span>='<span class="value">HelloWorldProgram produced by X3D Java SAI Library</span>'/>
</span><br />
<a name="LogoGeometryTransform"> </a> 
<!-- <span class="idName">LogoGeometryTransform</span> <i>ROUTE</i>: 
[<a title="go to this ROUTE" href="#ROUTE_1"><i>from</i> <span class="idName">BoxPathAnimator</span>.<span class="attribute">value_changed</span> <i>to</i> <span class="attribute">translation</span>
</a>]
 --><br />
<span title="Transform translates, orients and scales child geometry within the local world coordinate system"><<span class="element">Transform</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">LogoGeometryTransform</span>' <span class="attribute">translation</span>='<span class="value">0.0 1.5 0.0</span>'>
</span><div class="indent">
<span title="Selecting Anchored geometry loads content specified by the url field"><<span class="element">Anchor</span> 
<span class="attribute">description</span>='<span class="value">select for X3D Java SAI Library description</span>'
<br />
  <span title="uniform resource locator (url) list of relative or absolute file addresses, performed in order until resource retrieval succeeds"><span class="attribute">url</span>='
"<a href="../X3dJavaSceneAuthoringInterface.html">../X3dJavaSceneAuthoringInterface.html</a>"
"<a href="http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html">http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html</a>" '</span>>
</span><div class="indent">
<a name="BoxShape"> </a> 
<span title="Shape contains geometry and optional corresponding Appearance"><<span class="element">Shape</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">BoxShape</span>'>
</span><div class="indent">
<span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"><<span class="element">Appearance</span>>
</span><div class="indent">
<a name="GreenMaterial"> </a> 
<span title="Material specifies surface rendering properties for associated geometry"><<span class="element">Material</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">GreenMaterial</span>' <span class="attribute">diffuseColor</span>='<span class="value">0.276305 0.11431 0.139857</span>' <span class="attribute">transparency</span>='<span class="value">0.1</span>'/>
</span><br />

<span title="ImageTexture maps a 2D-image file onto a geometric shape"><<span class="element">ImageTexture</span>
<br />
  <span title="uniform resource locator (url) list of relative or absolute file addresses, performed in order until resource retrieval succeeds"><span class="attribute">url</span>='
 "<a href="images/X3dJavaSceneAccessInterfaceSaiLibrary.png">images/X3dJavaSceneAccessInterfaceSaiLibrary.png</a>" "<a href="http://www.web3d.org/specifications/java/examples/images/X3dJavaSceneAccessInterfaceSaiLibrary.png">http://www.web3d.org/specifications/java/examples/images/X3dJavaSceneAccessInterfaceSaiLibrary.png</a>" '</span>/>
</span></div><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"></<span class="element">Appearance</span>>
</span><br />

<span title="Box is a geometry primitive node"><<span class="element">Box</span> 
<span class="attribute">class</span>='<span class="value">textured</span>'/>
</span></div><span title="Shape contains geometry and optional corresponding Appearance"></<span class="element">Shape</span>>
</span></div><span title="Selecting Anchored geometry loads content specified by the url field"></<span class="element">Anchor</span>>
</span></div><span title="Transform translates, orients and scales child geometry within the local world coordinate system"></<span class="element">Transform</span>>
</span><br />
<a name="LineShape"> </a> 
<span title="Shape contains geometry and optional corresponding Appearance"><<span class="element">Shape</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">LineShape</span>'>
</span><div class="indent">
<span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"><<span class="element">Appearance</span>>
</span><div class="indent">
<span title="Material specifies surface rendering properties for associated geometry"><<span class="element">Material</span> 
<span class="attribute">emissiveColor</span>='<span class="value">0.6 0.19607843 0.8</span>'/>
</span></div><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"></<span class="element">Appearance</span>>
</span><br />

<span title="IndexedLineSet is a geometry node"><<span class="element">IndexedLineSet</span> 
<span class="attribute">coordIndex</span>='<span class="value">0 1 2 3 4 0</span>'>
</span><div class="indent">
<span title="Coordinate defines a set of 3D coordinate triplet values"><<span class="element">Coordinate</span> 
<span class="attribute">point</span>='<span class="value">0.0 1.5 0.0 2.0 1.5 0.0 2.0 1.5 -2.0 -2.0 1.5 -2.0 -2.0 1.5 0.0 0.0 1.5 0.0</span>'/>
</span></div><span title="IndexedLineSet is a geometry node"></<span class="element">IndexedLineSet</span>>
</span></div><span title="Shape contains geometry and optional corresponding Appearance"></<span class="element">Shape</span>>
</span><br />
<a name="BoxPathAnimator"> </a> 
<!-- <span class="idName">BoxPathAnimator</span> <i>ROUTEs</i>: 
[<a title="go to this ROUTE" href="#ROUTE_0"><i>from</i> <span class="idName">OrbitClock</span>.<span class="attribute">fraction_changed</span> <i>to</i> <span class="attribute">set_fraction</span>
</a>]
[<a title="go to this ROUTE" href="#ROUTE_1"><i>from</i> <span class="attribute">value_changed</span> <i>to</i> <span class="idName">LogoGeometryTransform</span>.<span class="attribute">translation</span>
</a>]
 --><br />
<span title="Interpolator nodes output event values using piecewise-linear function definitions"><<span class="element">PositionInterpolator</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">BoxPathAnimator</span>' <span class="attribute">key</span>='<span class="value">0.0 0.125 0.375 0.625 0.875 1.0</span>' <span class="attribute">keyValue</span>='<span class="value">0.0 1.5 0.0 2.0 1.5 0.0 2.0 1.5 -2.0 -2.0 1.5 -2.0 -2.0 1.5 0.0 0.0 1.5 0.0</span>'/>
</span><br />
<a name="OrbitClock"> </a> 
<!-- <span class="idName">OrbitClock</span> <i>ROUTE</i>: 
[<a title="go to this ROUTE" href="#ROUTE_0"><i>from</i> <span class="attribute">fraction_changed</span> <i>to</i> <span class="idName">BoxPathAnimator</span>.<span class="attribute">set_fraction</span>
</a>]
 --><br />
<span title="TimeSensor continuously generates events as time passes"><<span class="element">TimeSensor</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">OrbitClock</span>' <span class="attribute">cycleInterval</span>='<span class="value">8.0</span>' <span class="attribute">loop</span>='<span class="value">true</span>'/>
</span><br />
<a name="ROUTE_0"> </a> 
<span title="ROUTE connects fields between nodes to enable event passing"><<span class="route">ROUTE</span> 
<span class="attribute">fromNode</span>='<a title="go to the original DEF node definition" href="#OrbitClock" class="idName">OrbitClock</a>' <span class="attribute">fromField</span>='<span class="value">fraction_changed</span>' <span class="attribute">toNode</span>='<a title="go to the original DEF node definition" href="#BoxPathAnimator" class="idName">BoxPathAnimator</a>' <span class="attribute">toField</span>='<span class="value">set_fraction</span>'/>
</span><br />
<a name="ROUTE_1"> </a> 
<span title="ROUTE connects fields between nodes to enable event passing"><<span class="route">ROUTE</span> 
<span class="attribute">fromNode</span>='<a title="go to the original DEF node definition" href="#BoxPathAnimator" class="idName">BoxPathAnimator</a>' <span class="attribute">fromField</span>='<span class="value">value_changed</span>' <span class="attribute">toNode</span>='<a title="go to the original DEF node definition" href="#LogoGeometryTransform" class="idName">LogoGeometryTransform</a>' <span class="attribute">toField</span>='<span class="value">translation</span>'/>
</span><br />
<a name="TextTransform"> </a> 
<!-- <span class="idName">TextTransform</span> <i>ROUTE</i>: 
[<a title="go to this ROUTE" href="#ROUTE_3"><i>from</i> <span class="idName">SpinInterpolator</span>.<span class="attribute">value_changed</span> <i>to</i> <span class="attribute">rotation</span>
</a>]
 --><br />
<span title="Transform translates, orients and scales child geometry within the local world coordinate system"><<span class="element">Transform</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">TextTransform</span>' <span class="attribute">translation</span>='<span class="value">0.0 -1.5 0.0</span>'>
</span><div class="indent">
<span title="Shape contains geometry and optional corresponding Appearance"><<span class="element">Shape</span>>
</span><div class="indent">
<span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"><<span class="element">Appearance</span>>
</span><div class="indent">
<span title="Material specifies surface rendering properties for associated geometry"><<span class="element">Material</span> 
<span class="attribute">USE</span>='<a title="go to the original DEF node definition" href="#GreenMaterial" class="idName">GreenMaterial</a>'/>
</span></div><span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"></<span class="element">Appearance</span>>
</span><br />

<span title="Text is a geometry primitive node"><<span class="element">Text</span> 
<span class="attribute">string</span>='<span class="value">"Hello!" "SAI Library" "X3D Java"</span>'>
</span><div class="indent">
<span title="FontStyle defines the size, family, justification, and other styles used by Text nodes"><<span class="element">FontStyle</span> 
<span class="attribute">justify</span>='<span class="value">"MIDDLE","MIDDLE"</span>' <span class="attribute">topToBottom</span>='<span class="value">false</span>'>
</span><div class="indent">
<span title="XML comment"><!-- comment #1 --></span>
<br /><span title="XML comment"><!-- comment #2 --></span>
<br /><span title="XML comment"><!-- comment #3 --></span>
<br /><span title="XML comment"><!-- comment #4 --></span>
</div><span title="FontStyle defines the size, family, justification, and other styles used by Text nodes"></<span class="element">FontStyle</span>>
</span></div><span title="Text is a geometry primitive node"></<span class="element">Text</span>>
</span></div><span title="Shape contains geometry and optional corresponding Appearance"></<span class="element">Shape</span>>
</span><br /><span title="XML comment"><!-- It's a beautiful world --></span>
<br /><span title="XML comment"><!-- ... for you! --></span>
<br /><span title="XML comment"><!-- https://en.wikipedia.org/wiki/Beautiful_World_(Devo_song) --></span>
</div><span title="Transform translates, orients and scales child geometry within the local world coordinate system"></<span class="element">Transform</span>>
</span><br /><span title="XML comment"><!-- repeatedly spin 180 degrees as a readable special effect --></span>
<br />
<a name="SpinInterpolator"> </a> 
<!-- <span class="idName">SpinInterpolator</span> <i>ROUTEs</i>: 
[<a title="go to this ROUTE" href="#ROUTE_2"><i>from</i> <span class="idName">SpinClock</span>.<span class="attribute">fraction_changed</span> <i>to</i> <span class="attribute">set_fraction</span>
</a>]
[<a title="go to this ROUTE" href="#ROUTE_3"><i>from</i> <span class="attribute">value_changed</span> <i>to</i> <span class="idName">TextTransform</span>.<span class="attribute">rotation</span>
</a>]
 --><br />
<span title="Interpolator nodes output event values using piecewise-linear function definitions"><<span class="element">OrientationInterpolator</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">SpinInterpolator</span>' <span class="attribute">key</span>='<span class="value">0.0 0.5 1.0</span>' <span class="attribute">keyValue</span>='<span class="value">0.0 1.0 0.0 4.712389 0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.5707964</span>'/>
</span><br />
<a name="SpinClock"> </a> 
<!-- <span class="idName">SpinClock</span> <i>ROUTE</i>: 
[<a title="go to this ROUTE" href="#ROUTE_2"><i>from</i> <span class="attribute">fraction_changed</span> <i>to</i> <span class="idName">SpinInterpolator</span>.<span class="attribute">set_fraction</span>
</a>]
 --><br />
<span title="TimeSensor continuously generates events as time passes"><<span class="element">TimeSensor</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">SpinClock</span>' <span class="attribute">cycleInterval</span>='<span class="value">5.0</span>' <span class="attribute">loop</span>='<span class="value">true</span>'/>
</span><br />
<a name="ROUTE_2"> </a> 
<span title="ROUTE connects fields between nodes to enable event passing"><<span class="route">ROUTE</span> 
<span class="attribute">fromNode</span>='<a title="go to the original DEF node definition" href="#SpinClock" class="idName">SpinClock</a>' <span class="attribute">fromField</span>='<span class="value">fraction_changed</span>' <span class="attribute">toNode</span>='<a title="go to the original DEF node definition" href="#SpinInterpolator" class="idName">SpinInterpolator</a>' <span class="attribute">toField</span>='<span class="value">set_fraction</span>'/>
</span><br />
<a name="ROUTE_3"> </a> 
<span title="ROUTE connects fields between nodes to enable event passing"><<span class="route">ROUTE</span> 
<span class="attribute">fromNode</span>='<a title="go to the original DEF node definition" href="#SpinInterpolator" class="idName">SpinInterpolator</a>' <span class="attribute">fromField</span>='<span class="value">value_changed</span>' <span class="attribute">toNode</span>='<a title="go to the original DEF node definition" href="#TextTransform" class="idName">TextTransform</a>' <span class="attribute">toField</span>='<span class="value">rotation</span>'/>
</span><br />
<a name="BackgroundGroup"> </a> 
<span title="Group is a Grouping node that can contain most nodes"><<span class="element">Group</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">BackgroundGroup</span>'>
</span><div class="indent">
<a name="GradualBackground"> </a> 
<!-- <span class="idName">GradualBackground</span> <i>ROUTE</i>: 
[<a title="go to this ROUTE" href="#ROUTE_4"><i>from</i> <span class="idName">colorTypeConversionScript</span>.<span class="attribute">colorsOutput</span> <i>to</i> <span class="attribute">skyColor</span>
</a>]
 --><br />
<span title="Background simulates ground and sky, using vertical arrays of wraparound color values or backdrop textures on all six sides"><<span class="element">Background</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">GradualBackground</span>'/>
</span><br />
<a name="colorTypeConversionScript"> </a> 
<!-- <span class="idName">colorTypeConversionScript</span> <i>ROUTEs</i>: 
[<a title="go to this ROUTE" href="#ROUTE_5"><i>from</i> <span class="idName">ColorAnimator</span>.<span class="attribute">value_changed</span> <i>to</i> <span class="attribute">colorInput</span>
</a>]
[<a title="go to this ROUTE" href="#ROUTE_4"><i>from</i> <span class="attribute">colorsOutput</span> <i>to</i> <span class="idName">GradualBackground</span>.<span class="attribute">skyColor</span>
</a>]
 --><br />
<<span class="element">Script</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">colorTypeConversionScript</span>'>
<div class="indent">
<span title="A field element defines an interface attribute or node for a parent Script"><<span class="prototype">field</span> 
<span class="attribute">name</span>='<span class="prototype">colorInput</span>' <span class="attribute">type</span>='<span class="value">SFColor</span>' <span class="attribute">accessType</span>='<span class="value">inputOnly</span>'/>
</span><br />

<span title="A field element defines an interface attribute or node for a parent Script"><<span class="prototype">field</span> 
<span class="attribute">name</span>='<span class="prototype">colorsOutput</span>' <span class="attribute">type</span>='<span class="value">MFColor</span>' <span class="attribute">accessType</span>='<span class="value">outputOnly</span>'/>
</span><br />
</div class="indent">
</div class="indent">
</div class="indent">
<code>
<b><![CDATA[</b>
</code>
<pre>

ecmascript:

function colorInput (eventValue) // Example source code
{
   colorsOutput = new MFColor(eventValue); // assigning value sends output event
// Browser.print('colorInput=' + eventValue + ', colorsOutput=' + colorsOutput + '\n');
}

            </pre>
<code>
<b>]]></b>
</code>
<div class="indent">
<div class="indent">
<div class="indent">
</div></<span class="element">Script</span>>
<br />
<a name="ColorAnimator"> </a> 
<!-- <span class="idName">ColorAnimator</span> <i>ROUTEs</i>: 
[<a title="go to this ROUTE" href="#ROUTE_6"><i>from</i> <span class="idName">ColorClock</span>.<span class="attribute">fraction_changed</span> <i>to</i> <span class="attribute">set_fraction</span>
</a>]
[<a title="go to this ROUTE" href="#ROUTE_5"><i>from</i> <span class="attribute">value_changed</span> <i>to</i> <span class="idName">colorTypeConversionScript</span>.<span class="attribute">colorInput</span>
</a>]
 --><br />
<span title="Interpolator nodes output event values using piecewise-linear function definitions"><<span class="element">ColorInterpolator</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">ColorAnimator</span>' <span class="attribute">key</span>='<span class="value">0.0 0.5 1.0</span>' <span class="attribute">keyValue</span>='<span class="value">0.9411765 1.0 1.0 0.29411766 0.0 0.50980395 0.9411765 1.0 1.0</span>'>
</span><div class="indent">
<span title="XML comment"><!-- AZURE to INDIGO and back again --></span>
</div><span title="Interpolator nodes output event values using piecewise-linear function definitions"></<span class="element">ColorInterpolator</span>>
</span><br />
<a name="ColorClock"> </a> 
<!-- <span class="idName">ColorClock</span> <i>ROUTE</i>: 
[<a title="go to this ROUTE" href="#ROUTE_6"><i>from</i> <span class="attribute">fraction_changed</span> <i>to</i> <span class="idName">ColorAnimator</span>.<span class="attribute">set_fraction</span>
</a>]
 --><br />
<span title="TimeSensor continuously generates events as time passes"><<span class="element">TimeSensor</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">ColorClock</span>' <span class="attribute">cycleInterval</span>='<span class="value">60.0</span>' <span class="attribute">loop</span>='<span class="value">true</span>'/>
</span><br />
<a name="ROUTE_4"> </a> 
<span title="ROUTE connects fields between nodes to enable event passing"><<span class="route">ROUTE</span> 
<span class="attribute">fromNode</span>='<a title="go to the original DEF node definition" href="#colorTypeConversionScript" class="idName">colorTypeConversionScript</a>' <span class="attribute">fromField</span>='<span class="value">colorsOutput</span>' <span class="attribute">toNode</span>='<a title="go to the original DEF node definition" href="#GradualBackground" class="idName">GradualBackground</a>' <span class="attribute">toField</span>='<span class="value">skyColor</span>'/>
</span><br />
<a name="ROUTE_5"> </a> 
<span title="ROUTE connects fields between nodes to enable event passing"><<span class="route">ROUTE</span> 
<span class="attribute">fromNode</span>='<a title="go to the original DEF node definition" href="#ColorAnimator" class="idName">ColorAnimator</a>' <span class="attribute">fromField</span>='<span class="value">value_changed</span>' <span class="attribute">toNode</span>='<a title="go to the original DEF node definition" href="#colorTypeConversionScript" class="idName">colorTypeConversionScript</a>' <span class="attribute">toField</span>='<span class="value">colorInput</span>'/>
</span><br />
<a name="ROUTE_6"> </a> 
<span title="ROUTE connects fields between nodes to enable event passing"><<span class="route">ROUTE</span> 
<span class="attribute">fromNode</span>='<a title="go to the original DEF node definition" href="#ColorClock" class="idName">ColorClock</a>' <span class="attribute">fromField</span>='<span class="value">fraction_changed</span>' <span class="attribute">toNode</span>='<a title="go to the original DEF node definition" href="#ColorAnimator" class="idName">ColorAnimator</a>' <span class="attribute">toField</span>='<span class="value">set_fraction</span>'/>
</span></div><span title="Group is a Grouping node that can contain most nodes"></<span class="element">Group</span>>
</span><br />
<a name="ProtoDeclare_ArtDeco01"> </a> 
<span title="ProtoDeclare is a Prototype declaration, defining a new node made up of other node(s)"><<span class="prototype">ProtoDeclare</span> 
<span class="attribute">name</span>='<span class="prototype">ArtDeco01</span>' <span title="application information for this ProtoDeclare"><span class="gray">appinfo</span>='<span class="value">tooltip: ArtDeco01 prototype is a Material node</span>'</span>>
</span><div class="indent">
<<span class="prototype">ProtoInterface</span>>
<div class="indent">
<a name="ArtDeco01ProtoField_description"> </a> 
<span title="A field element defines an interface attribute or node"><<span class="prototype">field</span> 
<span class="attribute">name</span>='<span class="prototype">description</span>' <span class="attribute">type</span>='<span class="value">SFString</span>' <span class="attribute">value</span>='<span class="value">ArtDeco01 prototype is a Material node</span>' <span class="attribute">accessType</span>='<span class="value">inputOutput</span>'
<br />
 <span title="application information for this field"><span class="gray">appinfo</span>='<span class="gray">tooltip for descriptionField</span>'</span>/>
</span></div></<span class="prototype">ProtoInterface</span>>
<br />

<<span class="prototype">ProtoBody</span>>
<div class="indent">
<span title="XML comment"><!-- Initial node of ProtoBody determines prototype node type --></span>
<br />

<span title="Material specifies surface rendering properties for associated geometry"><<span class="element">Material</span> 
<span class="attribute">ambientIntensity</span>='<span class="value">0.25</span>' <span class="attribute">diffuseColor</span>='<span class="value">0.282435 0.085159 0.134462</span>' <span class="attribute">shininess</span>='<span class="value">0.127273</span>' <span class="attribute">specularColor</span>='<span class="value">0.276305 0.11431 0.139857</span>'/>
</span><br /><span title="XML comment"><!-- ArtDeco01ProtoDeclare.getNodeType()="Material" --></span>
<br />

<span title="Selecting Anchored geometry loads content specified by the url field"><<span class="element">Anchor</span>>
</span><div class="indent">
<span title="IS connects ProtoDeclare interface fields to node fields inside ProtoDeclare definitions"><<span class="element">IS</span>>
</span><div class="indent">
<span title="connect tags define each ProtoDeclare field connection within ProtoDeclare definitions"><<span class="element">connect</span> 
<span class="attribute">nodeField</span>='<span class="prototype" title="connect interface events to this field in given node">description</span>' <span class="attribute">protoField</span>='<span title="field interface connecting events into the prototype interior"><span class="prototype">
<a title="go to the protoField definition" href="#ArtDeco01ProtoField_description" class="prototype">description</a></span></span>'/>
</span></div><span title="IS connects ProtoDeclare interface fields to node fields inside ProtoDeclare definitions"></<span class="element">IS</span>>
</span></div><span title="Selecting Anchored geometry loads content specified by the url field"></<span class="element">Anchor</span>>
</span><br /><span title="XML comment"><!-- presence of Anchor shows that additional nonrendering nodes are allowed in ProtoBody after primary rendering node --></span>
</div></<span class="prototype">ProtoBody</span>>
</div><span title="ProtoDeclare is a Prototype declaration, defining a new node made up of other node(s)"></<span class="prototype">ProtoDeclare</span>>
</span><br />
<a name="ExternProtoDeclare_ArtDeco02"> </a> 
<span title="ExternProtoDeclare refers to a ProtoDeclare node declaration provided in another file"><<span class="prototype">ExternProtoDeclare</span> 
<span class="attribute">name</span>='<span class="prototype">ArtDeco02</span>' <span title="application information for this ExternProtoDeclare"><span class="gray">appinfo</span>='<span class="value">a different Material node</span>'</span>
<br />
  <span title="uniform resource locator (url) list of relative or absolute file addresses, performed in order until resource retrieval succeeds"><span class="attribute">url</span>='
"<a href="http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter14-Prototypes/ArtDecoPrototypesExcerpt.x3d#ArtDeco02">http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter14-Prototypes/ArtDecoPrototypesExcerpt.x3d#ArtDeco02</a>" "<a href="http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter14-Prototypes/ArtDecoPrototypesExcerpt.x3dv#ArtDeco02">http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter14-Prototypes/ArtDecoPrototypesExcerpt.x3dv#ArtDeco02</a>" '</span>>
</span><div class="indent">
<span title="A field element defines an interface attribute or node for a parent ExternProtoDeclare"><<span class="prototype">field</span> 
<span class="attribute">name</span>='<span class="prototype">description</span>' <span class="attribute">type</span>='<span class="value">SFString</span>' <span class="attribute">accessType</span>='<span class="value">inputOutput</span>'
<br />
 <span title="application information for this field"><span class="gray">appinfo</span>='<span class="gray">tooltip for descriptionField</span>'</span>/>
</span><br /><span title="XML comment"><!-- ArtDeco02ExternProtoDeclare.getNodeType()="UNKNOWN" --></span>
</div><span title="ExternProtoDeclare refers to a ProtoDeclare node declaration provided in another file"></<span class="prototype">ExternProtoDeclare</span>>
</span><br />
<a name="TestShape1"> </a> 
<span title="Shape contains geometry and optional corresponding Appearance"><<span class="element">Shape</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">TestShape1</span>'>
</span><div class="indent">
<span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"><<span class="element">Appearance</span>/>
</span></div><span title="Shape contains geometry and optional corresponding Appearance"></<span class="element">Shape</span>>
</span><br />
<a name="TestShape2"> </a> 
<span title="Shape contains geometry and optional corresponding Appearance"><<span class="element">Shape</span> 
<span class="attribute">DEF</span>='<span class="idName" title="DEF name is a unique ID for a given node">TestShape2</span>'>
</span><div class="indent">
<span title="Appearance specifies visual properties of geometry by containing Material, texture and TextureTransform nodes"><<span class="element">Appearance</span>/>
</span></div><span title="Shape contains geometry and optional corresponding Appearance"></<span class="element">Shape</span>>
</span><br /><span title="XML comment"><!-- TODO test for improper node type when ProtoInstance is added in wrong place --></span>
<br />

<span title="ProtoInstance creates an instance of a locally or externally declared prototype node"><<span class="prototype">ProtoInstance</span> 
<span class="attribute">name</span>='<a title="go to the defining ProtoDeclare for this prototype instance" href="#ProtoDeclare_ArtDeco01" class="prototype">ArtDeco01</a>'>
</span><div class="indent">
<span title="A fieldValue element is used to re-initialize a default field value in a ProtoInstance"><<span class="prototype">fieldValue</span> 
<span class="attribute">name</span>='<span class="prototype">description</span>' <span class="attribute">value</span>='<span class="value">ArtDeco01 can substitute for a Material node</span>'/>
</span><br /><span title="XML comment"><!-- ArtDeco01ProtoInstance.getNodeType()="Material" --></span>
</div><span title="ProtoInstance creates an instance of a locally or externally declared prototype node"></<span class="prototype">ProtoInstance</span>>
</span><br />

<span title="ProtoInstance creates an instance of a locally or externally declared prototype node"><<span class="prototype">ProtoInstance</span> 
<span class="attribute">name</span>='<a title="go to the defining ExternProtoDeclare for this prototype instance" href="#ExternProtoDeclare_ArtDeco02" class="prototype">ArtDeco02</a>'>
</span><div class="indent">
<span title="A fieldValue element is used to re-initialize a default field value in a ProtoInstance"><<span class="prototype">fieldValue</span> 
<span class="attribute">name</span>='<span class="prototype">description</span>' <span class="attribute">value</span>='<span class="value">ArtDeco02 can substitute for another Material node</span>'/>
</span><br /><span title="XML comment"><!-- ArtDeco02ProtoInstance.getNodeType()="UNKNOWN" --></span>
</div><span title="ProtoInstance creates an instance of a locally or externally declared prototype node"></<span class="prototype">ProtoInstance</span>>
</span></div><span title="Scene is the root node that contains an X3D scene graph"></<span class="element">Scene</span>>
</span></div><span title="X3D is the top-most XML element for an Extensible 3D (X3D) Graphics file"></<span class="element">X3D</span>>
</span><br /><span style="color:white">
<!--
</span>
<div class="center">
<hr style="width:100%"/>
<b>
<i>Index for ExternProtoDeclare definition</i>
</b>: 
<a title="go to this declaration" href="#ExternProtoDeclare_ArtDeco02" class="prototype">ArtDeco02</a>
<br /><hr width="50%"/>
<b>
<i>Index for ProtoDeclare definition</i>
</b>: 
<a title="go to this declaration" href="#ProtoDeclare_ArtDeco01" class="prototype">ArtDeco01</a>
<br /><hr width="50%"/>
<b>
<i>Index for DEF nodes</i>
</b>: 
<a title="go to this Group node" href="#BackgroundGroup" class="idName">BackgroundGroup</a>,
<a title="go to this PositionInterpolator node" href="#BoxPathAnimator" class="idName">BoxPathAnimator</a>,
<a title="go to this Shape node" href="#BoxShape" class="idName">BoxShape</a>,
<a title="go to this ColorInterpolator node" href="#ColorAnimator" class="idName">ColorAnimator</a>,
<a title="go to this TimeSensor node" href="#ColorClock" class="idName">ColorClock</a>,
<a title="go to this Script node" href="#colorTypeConversionScript" class="idName">colorTypeConversionScript</a>,
<a title="go to this Viewpoint node" href="#DefaultView" class="idName">DefaultView</a>,
<a title="go to this Background node" href="#GradualBackground" class="idName">GradualBackground</a>,
<a title="go to this Material node" href="#GreenMaterial" class="idName">GreenMaterial</a>,
<a title="go to this Shape node" href="#LineShape" class="idName">LineShape</a>,
<a title="go to this Transform node" href="#LogoGeometryTransform" class="idName">LogoGeometryTransform</a>,
<a title="go to this TimeSensor node" href="#OrbitClock" class="idName">OrbitClock</a>,
<a title="go to this TimeSensor node" href="#SpinClock" class="idName">SpinClock</a>,
<a title="go to this OrientationInterpolator node" href="#SpinInterpolator" class="idName">SpinInterpolator</a>,
<a title="go to this Shape node" href="#TestShape1" class="idName">TestShape1</a>,
<a title="go to this Shape node" href="#TestShape2" class="idName">TestShape2</a>,
<a title="go to this Transform node" href="#TextTransform" class="idName">TextTransform</a>,
<a title="go to this Viewpoint node" href="#TopDownView" class="idName">TopDownView</a>
<hr style="width:100%"/>
</div>
<span style="color:white">
-->
</span>
</div>
<p style="text-align:center; background-color:lightgrey">
<span style="color:lightgrey"><!--</span>
Color key: <!--(matching X3D and XML terminology) -->
<<span class="element">X3dNode</span>
<span class="idName"> DEF</span>='<span class="idName">idName</span>' <span class="attribute">field</span>='<span class="value">value</span>'/> 
 matches 
<<span class="element">XmlElement</span>
<span class="idName"> DEF</span>='<span class="idName">idName</span>' <span class="attribute">attribute</span>='<span class="value">value</span>'/>    
<<span class="prototype">Prototype</span> <span class="attribute">name</span>='<span class="prototype">ProtoName</span>'>
        <<span class="prototype">field</span>
<span class="attribute">name</span>='<span class="prototype">fieldName</span>'/> </<span class="prototype">Prototype</span>>
<span style="color:lightgrey"> --></span>
</p>
<p style="text-align:center; background-color:white">
<span style="color:white"><!--</span>

                    Additional help information about X3D scenes:  
                    <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html" title="Numerous resources that support X3D graphics">X3D Resources</a>,
                    <a href="http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html" title="Style guidelines, authoring tips and best practices">X3D Scene Authoring Hints</a>
                    and
                    <a href="http://www.web3d.org/x3d/content/X3dTooltips.html" title="Summary descriptions and authoring hints for each X3D node (element) and field (attribute)">X3D Tooltips</a>
<span style="color:white">--></span>
</p>
</body>
</html>