<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "https://www.web3d.org/specifications/x3d-3.1.dtd">
<X3D profile='Immersive' version='3.1 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.1.xsd '>
<head>
<meta name='titlecontent='CreateNodesFromPrototypeECMAScript.x3d'/>
<meta name='descriptioncontent='This example shows creation of nodes from a prototype'/>
<meta name='creatorcontent='X3D Specification'/>
<meta name='translatedcontent='23 February 2005'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='subjectcontent='X3D ECMAScript Script Authoring Interface (SAI)'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/ScriptConformance/CreateNodesFromPrototypeECMAScript.x3d '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/specifications/ISO-IEC-19777-1-X3DLanguageBindings-ECMAScript/Part1/examples.html#CreateNodesFromAPrototype '/>
<meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

Index for ProtoDeclare definition : ColoredSphere

Index for DEF node : SC
-->
<Scene>
<WorldInfo title='CreateNodesFromPrototypeECMAScript.x3d'/>
<ProtoDeclare name='ColoredSphere'>
<ProtoInterface>
<field name='colortype='SFColorvalue='0.0 0.0 0.0accessType='initializeOnly'/>
</ProtoInterface>
<ProtoBody>
<Shape>
<Appearance>
<Material>
<IS>
<connect nodeField='diffuseColorprotoField='color'/>
</IS>
</Material>
</Appearance>
<Sphere/>
</Shape>
</ProtoBody>
</ProtoDeclare>
<Script DEF='SC'>

<![CDATA[
      
ecmascript:

// Create nodes directly in the parent scene

function initialize()
{
    scene = Browser.currentScene;

    // Look through proto declarations for ColoredSphere
    protoDecls = scene.protoDeclarations;

    var protoDecl;

    for(i=0; i < protoDecls.length; i++) {
        if (protoDecls[i].name == 'ColoredSphere')
            protoDecl = protoDecls[i];
    }

    // Create an instance of RedSphere
    instance = protoDecl.newInstance();

    // Set the color field to Red
    instance.color = new SFColor(1,0,0);

    // Add the created proto to the scene
    scene.rootNodes[0] = instance;
}

    
]]>
</Script>
</Scene>
</X3D>
<!--

Index for ProtoDeclare definition : ColoredSphere

Index for DEF node : SC
-->

<!-- Online at https://www.web3d.org/x3d/content/examples/Basic/ScriptConformance/CreateNodesFromPrototypeECMAScriptIndex.html -->

<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/>
(Light blue background: behavior node) (Grey background: inserted documentation) (Magenta background: X3D Extensibility)
    <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->

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