<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>examples/X3dForWebAuthors/Chapter14-Prototypes/ViewFrustumExample.json</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I am prototype expanding this file from x3d resources examples.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I expand into this snippet (don’t ask how I got here, I’m trying to actually figure out what I should do?), which is not passing JSON Schema:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> "-ViewpointNode": {</p><p class=MsoNormal> "#comment": "prefer empty description to prevent entry in player's ViewpointList"</p><p class=MsoNormal> },</p><p class=MsoNormal> "-NavigationInfoNode": {</p><p class=MsoNormal> "NavigationInfo": {</p><p class=MsoNormal> "@visibilityLimit": 15</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I believe the leading – is coming from the -children. However, it’s likely those objects shouldn’t even be there. Obviously, I should be seeing that it’s an SFNode and returning the first child. Arranging that may be more difficult. On the other hand, this is in a script node, and the prototype expander is obviously trying to set a default value or some such for the Script field…which the prototype expander likely shouldn’t be doing IDK. I should probably leave the field as is and set a default value of the SFNode information. Apparently, I am doing something horrible with script fields, likely if they are SFNode type. Code is at <a href="https://github.com/coderextreme/PrototypeExpander.js">https://github.com/coderextreme/PrototypeExpander.js</a> What should I do with script fields that have a default value assigned from the prototype, especially if they are SFNodes?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Complete expanded JSON follows:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>{</p><p class=MsoNormal> "X3D": {</p><p class=MsoNormal> "encoding": "UTF-8",</p><p class=MsoNormal> "@profile": "Immersive",</p><p class=MsoNormal> "@version": "3.3",</p><p class=MsoNormal> "@xsd:noNamespaceSchemaLocation": "http://www.web3d.org/specifications/x3d-3.3.xsd",</p><p class=MsoNormal> "JSON schema": "http://www.web3d.org/specifications/x3d-3.3-JSONSchema.json",</p><p class=MsoNormal> "head": {</p><p class=MsoNormal> "meta": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "title",</p><p class=MsoNormal> "@content": "ViewFrustumExample.x3d"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "description",</p><p class=MsoNormal> "@content": "Display view frustum associated with a given pair of Viewpoint and NavigationInfo nodes"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "creator",</p><p class=MsoNormal> "@content": "Don Brutzman"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "translated",</p><p class=MsoNormal> "@content": "16 August 2008"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "modified",</p><p class=MsoNormal> "@content": "23 December 2010"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "reference",</p><p class=MsoNormal> "@content": "ViewFrustumPrototype.x3d"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "drawing",</p><p class=MsoNormal> "@content": "ViewFrustumComputation.png"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "Image",</p><p class=MsoNormal> "@content": "ViewFrustumOverheadView.png"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "Image",</p><p class=MsoNormal> "@content": "ViewFrustumObliqueView.png"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "Image",</p><p class=MsoNormal> "@content": "ViewpointCalculator.png"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "subject",</p><p class=MsoNormal> "@content": "view culling frustum"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "identifier",</p><p class=MsoNormal> "@content": "http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter14-Prototypes/ViewFrustumExample.x3d"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "generator",</p><p class=MsoNormal> "@content": "X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "license",</p><p class=MsoNormal> "@content": "../license.html"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "translated",</p><p class=MsoNormal> "@content": "27 March 2016"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "generator",</p><p class=MsoNormal> "@content": "X3dToJson.xslt, http://www.web3d.org/x3d/stylesheets/X3dToJson.html"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "warning",</p><p class=MsoNormal> "@content": "An experimental version of X3D JSON encoding is used for this scene. Status online at http://www.web3d.org/wiki/index.php/X3D_JSON_Encoding"</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> },</p><p class=MsoNormal> "Scene": {</p><p class=MsoNormal> "-children": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "Viewpoint": {</p><p class=MsoNormal> "@description": "ViewFrustum from above, looking down",</p><p class=MsoNormal> "@orientation": [</p><p class=MsoNormal> 1,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> -1.57</p><p class=MsoNormal> ],</p><p class=MsoNormal> "@position": [</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 40,</p><p class=MsoNormal> 0</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Viewpoint": {</p><p class=MsoNormal> "@description": "ViewFrustum from point of view"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Viewpoint": {</p><p class=MsoNormal> "@description": "ViewFrustum behind point of view",</p><p class=MsoNormal> "@position": [</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 15</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Viewpoint": {</p><p class=MsoNormal> "@description": "ViewFrustum oblique side view",</p><p class=MsoNormal> "@orientation": [</p><p class=MsoNormal> 0.8005,</p><p class=MsoNormal> 0.5926,</p><p class=MsoNormal> 0.0898,</p><p class=MsoNormal> -0.3743</p><p class=MsoNormal> ],</p><p class=MsoNormal> "@position": [</p><p class=MsoNormal> -5,</p><p class=MsoNormal> 5,</p><p class=MsoNormal> 20</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "NavigationInfo": {</p><p class=MsoNormal> "@type": [</p><p class=MsoNormal> "EXAMINE",</p><p class=MsoNormal> "FLY",</p><p class=MsoNormal> "ANY"</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {},</p><p class=MsoNormal> {</p><p class=MsoNormal> "#comment": "Example use"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Switch": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_VisibilitySwitch",</p><p class=MsoNormal> "@whichChoice": -1,</p><p class=MsoNormal> "-children": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "Transform": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_PositionTransform",</p><p class=MsoNormal> "@rotation": [</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 1,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 3.14159</p><p class=MsoNormal> ],</p><p class=MsoNormal> "-children": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "Transform": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_OrientationTransform",</p><p class=MsoNormal> "-children": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "Shape": {</p><p class=MsoNormal> "-geometry": {</p><p class=MsoNormal> "IndexedLineSet": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_FrustumLines",</p><p class=MsoNormal> "@coordIndex": [</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 1,</p><p class=MsoNormal> 2,</p><p class=MsoNormal> 3,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> -1,</p><p class=MsoNormal> 4,</p><p class=MsoNormal> 5,</p><p class=MsoNormal> 6,</p><p class=MsoNormal> 7,</p><p class=MsoNormal> 4,</p><p class=MsoNormal> -1,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 4,</p><p class=MsoNormal> -1,</p><p class=MsoNormal> 1,</p><p class=MsoNormal> 5,</p><p class=MsoNormal> -1,</p><p class=MsoNormal> 2,</p><p class=MsoNormal> 6,</p><p class=MsoNormal> -1,</p><p class=MsoNormal> 3,</p><p class=MsoNormal> 7,</p><p class=MsoNormal> -1</p><p class=MsoNormal> ],</p><p class=MsoNormal> "-coord": {</p><p class=MsoNormal> "Coordinate": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_FrustumCoordinate",</p><p class=MsoNormal> "@point": [</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0,</p><p class=MsoNormal> 0</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> "-appearance": {</p><p class=MsoNormal> "Appearance": {</p><p class=MsoNormal> "-material": {</p><p class=MsoNormal> "Material": {</p><p class=MsoNormal> "@emissiveColor": [</p><p class=MsoNormal> 0.9,</p><p class=MsoNormal> 0.9,</p><p class=MsoNormal> 0.9</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Shape": {</p><p class=MsoNormal> "-geometry": {</p><p class=MsoNormal> "Extrusion": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_FrustumExtrusion"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> "-appearance": {</p><p class=MsoNormal> "Appearance": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_FrustumAppearance",</p><p class=MsoNormal> "-material": {</p><p class=MsoNormal> "Material": {</p><p class=MsoNormal> "@diffuseColor": [</p><p class=MsoNormal> 0.8,</p><p class=MsoNormal> 0.8,</p><p class=MsoNormal> 0.8</p><p class=MsoNormal> ],</p><p class=MsoNormal> "@transparency": 0.75</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Shape": {</p><p class=MsoNormal> "-geometry": {</p><p class=MsoNormal> "Sphere": {</p><p class=MsoNormal> "@radius": 0.08</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> "-appearance": {</p><p class=MsoNormal> "Appearance": {</p><p class=MsoNormal> "@USE": "DECLViewFrustum_INSTANCE_FrustumAppearance"</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Script": {</p><p class=MsoNormal> "@DEF": "DECLViewFrustum_INSTANCE_GeometryComputationScript",</p><p class=MsoNormal> "@directOutput": true,</p><p class=MsoNormal> "@url": [</p><p class=MsoNormal> "examples/X3dForWebAuthors/Chapter14-Prototypes/ViewFrustumPrototypeScript.js",</p><p class=MsoNormal> "http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter14-Prototypes/ViewFrustumPrototypeScript.js"</p><p class=MsoNormal> ],</p><p class=MsoNormal> "field": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "visible",</p><p class=MsoNormal> "@accessType": "inputOutput",</p><p class=MsoNormal> "@appinfo": "Whether or not frustum geometry is rendered",</p><p class=MsoNormal> "@type": "SFBool",</p><p class=MsoNormal> "@value": true</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "visibilitySwitchSelection",</p><p class=MsoNormal> "@accessType": "outputOnly",</p><p class=MsoNormal> "@appinfo": "Adjust Switch selection to make geometry visible or not",</p><p class=MsoNormal> "@type": "SFInt32"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "ViewpointNode",</p><p class=MsoNormal> "@accessType": "initializeOnly",</p><p class=MsoNormal> "@type": "SFNode",</p><p class=MsoNormal> "-children": {</p><p class=MsoNormal> "#comment": "NULL node, ProtoInstance must provide"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "NavigationInfoNode",</p><p class=MsoNormal> "@accessType": "initializeOnly",</p><p class=MsoNormal> "@type": "SFNode",</p><p class=MsoNormal> "-children": {</p><p class=MsoNormal> "#comment": "NULL node, ProtoInstance must provide"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "FrustumCoordinate",</p><p class=MsoNormal> "@accessType": "initializeOnly",</p><p class=MsoNormal> "@type": "SFNode",</p><p class=MsoNormal> "-children": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "Coordinate": {</p><p class=MsoNormal> "@USE": "DECLViewFrustum_INSTANCE_FrustumCoordinate"</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "FrustumExtrusion",</p><p class=MsoNormal> "@accessType": "initializeOnly",</p><p class=MsoNormal> "@type": "SFNode",</p><p class=MsoNormal> "-children": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "Extrusion": {</p><p class=MsoNormal> "@USE": "DECLViewFrustum_INSTANCE_FrustumExtrusion"</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "recompute",</p><p class=MsoNormal> "@accessType": "inputOnly",</p><p class=MsoNormal> "@type": "SFBool"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "aspectRatio",</p><p class=MsoNormal> "@accessType": "inputOutput",</p><p class=MsoNormal> "@appinfo": "assumed ratio height/width",</p><p class=MsoNormal> "@type": "SFFloat",</p><p class=MsoNormal> "@value": 0.75</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "position_changed",</p><p class=MsoNormal> "@accessType": "outputOnly",</p><p class=MsoNormal> "@type": "SFVec3f"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "orientation_changed",</p><p class=MsoNormal> "@accessType": "outputOnly",</p><p class=MsoNormal> "@type": "SFRotation"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "spine_changed",</p><p class=MsoNormal> "@accessType": "outputOnly",</p><p class=MsoNormal> "@type": "MFVec3f"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "scale_changed",</p><p class=MsoNormal> "@accessType": "outputOnly",</p><p class=MsoNormal> "@type": "MFVec2f"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "point_changed",</p><p class=MsoNormal> "@accessType": "outputOnly",</p><p class=MsoNormal> "@type": "MFVec3f"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "@name": "trace",</p><p class=MsoNormal> "@accessType": "initializeOnly",</p><p class=MsoNormal> "@type": "SFBool",</p><p class=MsoNormal> "@value": false</p><p class=MsoNormal> }</p><p class=MsoNormal> ],</p><p class=MsoNormal> "@visible": true,</p><p class=MsoNormal> "-ViewpointNode": {</p><p class=MsoNormal> "#comment": "prefer empty description to prevent entry in player's ViewpointList"</p><p class=MsoNormal> },</p><p class=MsoNormal> "-NavigationInfoNode": {</p><p class=MsoNormal> "NavigationInfo": {</p><p class=MsoNormal> "@visibilityLimit": 15</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> "@aspectRatio": 0.75,</p><p class=MsoNormal> "@trace": true</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "ROUTE": {</p><p class=MsoNormal> "@fromNode": "DECLViewFrustum_INSTANCE_GeometryComputationScript",</p><p class=MsoNormal> "@fromField": "visibilitySwitchSelection",</p><p class=MsoNormal> "@toNode": "DECLViewFrustum_INSTANCE_VisibilitySwitch",</p><p class=MsoNormal> "@toField": "whichChoice"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "ROUTE": {</p><p class=MsoNormal> "@fromNode": "DECLViewFrustum_INSTANCE_GeometryComputationScript",</p><p class=MsoNormal> "@fromField": "position_changed",</p><p class=MsoNormal> "@toNode": "DECLViewFrustum_INSTANCE_PositionTransform",</p><p class=MsoNormal> "@toField": "translation"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "ROUTE": {</p><p class=MsoNormal> "@fromNode": "DECLViewFrustum_INSTANCE_GeometryComputationScript",</p><p class=MsoNormal> "@fromField": "orientation_changed",</p><p class=MsoNormal> "@toNode": "DECLViewFrustum_INSTANCE_OrientationTransform",</p><p class=MsoNormal> "@toField": "rotation"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "ROUTE": {</p><p class=MsoNormal> "@fromNode": "DECLViewFrustum_INSTANCE_GeometryComputationScript",</p><p class=MsoNormal> "@fromField": "spine_changed",</p><p class=MsoNormal> "@toNode": "DECLViewFrustum_INSTANCE_FrustumExtrusion",</p><p class=MsoNormal> "@toField": "set_spine"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "ROUTE": {</p><p class=MsoNormal> "@fromNode": "DECLViewFrustum_INSTANCE_GeometryComputationScript",</p><p class=MsoNormal> "@fromField": "scale_changed",</p><p class=MsoNormal> "@toNode": "DECLViewFrustum_INSTANCE_FrustumExtrusion",</p><p class=MsoNormal> "@toField": "set_scale"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "ROUTE": {</p><p class=MsoNormal> "@fromNode": "DECLViewFrustum_INSTANCE_GeometryComputationScript",</p><p class=MsoNormal> "@fromField": "point_changed",</p><p class=MsoNormal> "@toNode": "DECLViewFrustum_INSTANCE_FrustumCoordinate",</p><p class=MsoNormal> "@toField": "point"</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "#comment": "Visualization assists"</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Inline": {</p><p class=MsoNormal> "@DEF": "GridXZ",</p><p class=MsoNormal> "@url": [</p><p class=MsoNormal> "../../Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d",</p><p class=MsoNormal> "https://savage.nps.edu/Savage/Tools/Authoring/GridXZ_20x20Fixed.x3d"</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> },</p><p class=MsoNormal> {</p><p class=MsoNormal> "Transform": {</p><p class=MsoNormal> "@scale": [</p><p class=MsoNormal> 5,</p><p class=MsoNormal> 5,</p><p class=MsoNormal> 5</p><p class=MsoNormal> ],</p><p class=MsoNormal> "-children": [</p><p class=MsoNormal> {</p><p class=MsoNormal> "Inline": {</p><p class=MsoNormal> "@DEF": "CoordinateAxes",</p><p class=MsoNormal> "@url": [</p><p class=MsoNormal> "../Chapter03-Grouping/CoordinateAxes.x3d",</p><p class=MsoNormal> "http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter03-Grouping/CoordinateAxes.x3d"</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal> ]</p><p class=MsoNormal> }</p><p class=MsoNormal> }</p><p class=MsoNormal>}<span style='font-size:12.0pt;font-family:"Times New Roman",serif'><o:p></o:p></span></p></div></body></html>