<?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 content='ProtoInstanceExample.x3d' name='title'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='26 June 2000' name='created'/>
    <meta content='20 October 2019' name='modified'/>
    <meta content='Simple PROTO example, includes Node as a field for PROTO' name='description'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Basic/development/ProtoInstanceExample.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='ProtoInstanceExample.x3d'/>
    <ProtoDeclare name='NewShape'>
      <ProtoInterface>
        <field accessType='initializeOnly' name='InitialAppearance' type='SFNode'>
          <Appearance>
            <Material diffuseColor='1 0 0'/>
          </Appearance>
        </field>
        <field accessType='initializeOnly' name='newHeight' type='SFFloat' value='3'/>
        <field accessType='initializeOnly' name='newRadius' type='SFFloat' value='0.5'/>
      </ProtoInterface>
      <ProtoBody>
        <Shape DEF='ContainedShape'>
          <IS>
            <connect nodeField='appearance' protoField='InitialAppearance'/>
          </IS>
          <Cylinder DEF='ContainedCylinder'>
            <IS>
              <connect nodeField='height' protoField='newHeight'/>
              <connect nodeField='radius' protoField='newRadius'/>
            </IS>
          </Cylinder>
        </Shape>
      </ProtoBody>
    </ProtoDeclare>
    <Billboard>
      <ProtoInstance name='NewShape'>
        <fieldValue name='newHeight' value='3'/>
        <fieldValue name='newRadius' value='4'/>
        <fieldValue name='InitialAppearance'>
          <Appearance>
            <Material DEF='CylinderMaterial' diffuseColor='0 1 0'/>
          </Appearance>
        </fieldValue>
      </ProtoInstance>
    </Billboard>
  </Scene>
</X3D>