<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersive'  version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.0.xsd ' >
<head>
<meta name='titlecontent=' ProxyShapeExample.x3d '/>
<meta name='creatorcontent='Don Brutzman'/>
<meta name='createdcontent='14 January 2000'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='descriptioncontent='Collision node, child test case: can reorder children nodes as Shape Proxy Shape or other variations without problems in XML encoding, but reordering difficulties can occur in other programming language bindings.'/>
<meta name='referencecontent=' https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#Collision '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/development/ProxyShapeExample.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: MyCollision, MyNodeProducer, RedAppearance
-->
<Scene>
<WorldInfo title='ProxyShapeExample.x3d'/>
<!-- ROUTE information for MyCollision node:  [from MyNodeProducer.outputNode to children ] -->
<Collision DEF='MyCollision'>
<!-- can experiment with order of proxy and children nodes without error in XML encoding, but reordering difficulties can occur in other programming language bindings. -->
<Shape containerField='proxy'>
<Box size='16 16 16'/>
</Shape>
<Shape>
<Sphere/>
<Appearance DEF='RedAppearance'>
<Material diffuseColor='1 0 0'/>
</Appearance>
</Shape>
<Shape>
<Cone/>
<Appearance USE=' RedAppearance'/>
</Shape>
</Collision>
<!-- ROUTE information for MyNodeProducer node:  [from outputNode to MyCollision.children ] -->
<Script DEF='MyNodeProducerdirectOutput='true'>
<field name='outputNodetype='MFNodeaccessType='outputOnly'/>
<![CDATA[
      
ecmascript:

function initialize ()
{
	nodesString ='Group { children [ Shape {' +
	'geometry Text {' + 
		 'string [ \"proxy is\" \"any-order child\" \"of Collision\" ]' +
		 'fontStyle FontStyle { justify [ \"MIDDLE\" \"MIDDLE\" ] } }' +
	'appearance Appearance {' +
		 'material Material { diffuseColor 0.1  0.4 0.8 }' + 
	'} } ] }';
	Browser.println (nodesString);
	outputNode = Browser.createVrmlFromString (nodesString);
}

    
]]>
</Script>
< ROUTE  fromNode=' MyNodeProducer' fromField='outputNode' toNode=' MyCollision' toField='children'/>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: MyCollision, MyNodeProducer, RedAppearance
-->

Event Graph ROUTE Table with 1 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

MyNodeProducer
Script
outputNode
MFNode

ROUTE
event to
(1)
MyCollision
Collision
children
MFNode


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/development/ProxyShapeExampleIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/ProxyShapeExample.x3d -->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->