<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile='Immersive' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-4.0.xsd'>
  <head>
    <meta content='PrototypesPlus.x3d' name='title'/>
    <meta content='X3D encodings example: using an externally defined prototype.' name='description'/>
    <meta content='Don Brutzman and Joe Williams' name='creator'/>
    <meta content='1 June 2002' name='created'/>
    <meta content='28 September 2025' name='modified'/>
    <meta content='X3D encodings, ISO/IEC 19776-1.3, Part 1: XML encoding, Annex C.7 Prototypes and alternate representations' name='specificationSection'/>
    <meta content='https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-CD/Part01/examples.html#PrototyesAndAlternateReps' name='specificationUrl'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/PrototypesPlus.x3d' name='identifier'/>
    <meta content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <!-- external protype definition -->
    <WorldInfo title='PrototypesPlus.x3d'/>
    <ExternProtoDeclare name='RefractiveMaterial' url='"RefractiveMaterial.x3d#RefractiveMaterial" "https://www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/RefractiveMaterial.x3d#RefractiveMaterial" "urn:inet:foo.com:types:RefractiveMaterial" "RefractiveMaterial.wrl#RefractiveMaterial" "https://www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/RefractiveMaterial.wrl#RefractiveMaterial"'>
      <field accessType='inputOutput' name='ambientIntensity' type='SFFloat'/>
      <field accessType='inputOutput' name='diffuseColor' type='SFColor'/>
      <field accessType='inputOutput' name='specularColor' type='SFColor'/>
      <field accessType='inputOutput' name='emissiveColor' type='SFColor'/>
      <field accessType='inputOutput' name='shininess' type='SFFloat'/>
      <field accessType='inputOutput' name='transparency' type='SFFloat'/>
      <field accessType='inputOutput' name='indexOfRefraction' type='SFFloat'/>
    </ExternProtoDeclare>
    <!-- renderable scene graph begins here -->
    <Shape>
      <Sphere/>
      <Appearance>
        <ProtoInstance containerField='material' name='RefractiveMaterial'>
          <fieldValue name='transparency' value='0.1'/>
          <fieldValue name='ambientIntensity' value='0.2'/>
          <fieldValue name='diffuseColor' value='1 0 0'/>
          <fieldValue name='indexOfRefraction' value='0.4'/>
        </ProtoInstance>
      </Appearance>
    </Shape>
  </Scene>
</X3D>