<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive' version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.3.xsd '>
<head>
<meta name='titlecontent='Robots.x3d'/>
<meta name='descriptioncontent='Robot generator prototype to create multiple new nodes. For this example, we create a new "Robot" node type that has three fields, one each for setting the l color (robot body), its eye color, and its rod color (gadgets on the body). Those three fields are used within the body of the Prototype where the robot form is constructed. Each time a Prototype field (l, eye, and rod colors) is used within the Prototype body, use the "IS" syntax to say: "this field within the Prototype body IS equal to the argument in the Prototype interface."'/>
<meta name='creatorcontent='David R. Nadeau'/>
<meta name='translatorcontent='Don Brutzman'/>
<meta name='createdcontent='1 July 1998'/>
<meta name='translatedcontent='2 February 2014'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent='RoboBill.x3d'/>
<meta name='referencecontent='originals/robot.wrl'/>
<meta name='referencecontent=' http://www.siggraph.org/s98 '/>
<meta name='referencecontent=' http://www.siggraph.org/s98/conference/courses/18.html '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0479.htm '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/vrml97.htm '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/X3dResources.html '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Robots.x3d '/>
<meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
<meta name='generatorcontent='X3D-Edit, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

Index for ProtoDeclare definition : Robot

Index for DEF nodes : AntenaeBar, Eye, RobotColor, RobotGlow, Rod

Index for Viewpoint image : Viewpoint_1
-->
<Scene>
<WorldInfo info='"Copyright (c) 1998, David R. Nadeau"title='Robot Generator'/>
<Viewpoint description='Entry vieworientation='1.0 0.0 0.0 -0.34position='0.0 3.6 6.8'/>
<NavigationInfo/>
<Background skyAngle='1.77 1.87 1.97skyColor='0.0 0.0 0.0 0.0 0.0 0.0 0.4 0.0 0.0 0.6 0.0 0.0'/>
<ProtoDeclare name='Robot'>
<ProtoInterface>
<field name='rodColortype='SFColorvalue='1.0 1.0 0.0accessType='initializeOnly'/>
<field name='eyeColortype='SFColorvalue='0.6 0.0 0.0accessType='initializeOnly'/>
<field name='lColortype='SFColorvalue='0.6 0.6 0.8accessType='initializeOnly'/>
</ProtoInterface>
<ProtoBody>
<Group>
<Shape>
<Appearance DEF='RobotColor'>
<Material>
<IS>
<connect nodeField='diffuseColorprotoField='lColor'/>
</IS>
</Material>
</Appearance>
<Sphere radius='0.5'/>
</Shape>
<Transform DEF='Rodrotation='0.0 0.0 1.0 -0.785translation='0.4 0.6 0.0'>
<Shape>
<Appearance DEF='RobotGlow'>
<Material diffuseColor='0.0 0.0 0.0'>
<IS>
<connect nodeField='emissiveColorprotoField='rodColor'/>
</IS>
</Material>
</Appearance>
<Cylinder height='0.65radius='0.04'/>
</Shape>
</Transform>
<Transform rotation='0.0 1.0 0.0 1.57'>
<Transform USE='Rod'/>
</Transform>
<Transform rotation='0.0 1.0 0.0 3.14'>
<Transform USE='Rod'/>
</Transform>
<Transform rotation='0.0 1.0 0.0 -1.57'>
<Transform USE='Rod'/>
</Transform>
<Transform translation='0.0 0.85 0.0'>
<Shape>
<Appearance USE='RobotColor'/>
<Cylinder height='0.1radius='0.8'/>
</Shape>
</Transform>
<Transform translation='0.0 0.95 0.0'>
<Shape>
<Appearance USE='RobotColor'/>
<Cylinder height='0.1radius='0.2'/>
</Shape>
</Transform>
<Billboard>
<Transform translation='0.0 1.4 0.0'>
<Shape>
<Appearance USE='RobotColor'/>
<Sphere radius='0.5'/>
</Shape>
<Transform translation='0.0 0.25 0.35'>
<Shape>
<Appearance>
<Material diffuseColor='0.2 0.2 0.2'/>
</Appearance>
<Box size='0.6 0.05 0.2'/>
</Shape>
</Transform>
<Transform translation='0.1 0.15 0.38'>
<Shape DEF='Eye'>
<Appearance>
<Material diffuseColor='0.0 0.0 0.0'>
<IS>
<connect nodeField='emissiveColorprotoField='eyeColor'/>
</IS>
</Material>
</Appearance>
<Sphere radius='0.09'/>
</Shape>
</Transform>
<Transform translation='-0.1 0.15 0.38'>
<Shape USE='Eye'/>
</Transform>
<Transform translation='0.85 0.1 0.0'>
<Transform rotation='0.0 0.0 1.0 1.57translation='-0.2 0.0 0.0'>
<Shape DEF='AntenaeBar'>
<Appearance USE='RobotColor'/>
<Cylinder height='0.4radius='0.04'/>
</Shape>
</Transform>
<Shape>
<Appearance USE='RobotColor'/>
<Sphere radius='0.09'/>
</Shape>
<Transform translation='0.0 0.58 0.0'>
<Shape>
<Appearance USE='RobotGlow'/>
<Cone bottomRadius='0.02height='1.0'/>
</Shape>
</Transform>
</Transform>
<Transform translation='-0.85 0.1 0.0'>
<Transform rotation='0.0 0.0 1.0 -1.57translation='0.2 0.0 0.0'>
<Shape USE='AntenaeBar'/>
</Transform>
<Transform rotation='0.0 0.0 1.0 0.785'>
<Shape>
<Appearance USE='RobotColor'/>
<Box size='0.2 0.2 0.2'/>
</Shape>
<Transform translation='0.0 0.58 0.0'>
<Shape>
<Appearance USE='RobotGlow'/>
<Box size='0.02 1.0 0.02'/>
</Shape>
</Transform>
<Transform translation='0.0 0.95 0.0'>
<Shape>
<Appearance USE='RobotGlow'/>
<Box size='0.2 0.02 0.02'/>
</Shape>
</Transform>
<Transform translation='0.0 0.85 0.0'>
<Shape>
<Appearance USE='RobotGlow'/>
<Box size='0.4 0.02 0.02'/>
</Shape>
</Transform>
</Transform>
</Transform>
</Transform>
</Billboard>
</Group>
</ProtoBody>
</ProtoDeclare>
<ProtoInstance name='Robot'>
<fieldValue name='eyeColorvalue='1.0 0.0 0.0'/>
<fieldValue name='rodColorvalue='1.0 1.0 0.0'/>
<fieldValue name='lColorvalue='0.6 0.6 0.8'/>
</ProtoInstance>
<Transform translation='-2.0 0.0 0.0'>
<ProtoInstance name='Robot'>
<fieldValue name='eyeColorvalue='0.0 1.0 0.0'/>
<fieldValue name='rodColorvalue='1.0 0.5 0.0'/>
<fieldValue name='lColorvalue='0.6 0.5 0.3'/>
</ProtoInstance>
</Transform>
<Transform translation='2.0 0.0 0.0'>
<ProtoInstance name='Robot'>
<fieldValue name='eyeColorvalue='0.0 0.8 1.0'/>
<fieldValue name='rodColorvalue='0.0 0.8 1.0'/>
<fieldValue name='lColorvalue='0.6 0.3 0.8'/>
</ProtoInstance>
</Transform>
<Transform translation='4.5 0.0 -3.0'>
<ProtoInstance name='Robot'>
<fieldValue name='eyeColorvalue='0.0 0.0 0.0'/>
<fieldValue name='rodColorvalue='1.0 0.0 0.5'/>
<fieldValue name='lColorvalue='0.0 0.4 0.9'/>
</ProtoInstance>
</Transform>
<Transform translation='1.5 0.0 -3.0'>
<ProtoInstance name='Robot'>
<fieldValue name='eyeColorvalue='0.0 1.0 0.0'/>
<fieldValue name='rodColorvalue='1.0 1.0 0.0'/>
<fieldValue name='lColorvalue='0.6 0.6 0.5'/>
</ProtoInstance>
</Transform>
<Transform translation='-1.5 0.0 -3.0'>
<ProtoInstance name='Robot'>
<fieldValue name='eyeColorvalue='1.0 1.0 0.0'/>
<fieldValue name='rodColorvalue='1.0 0.0 1.0'/>
<fieldValue name='lColorvalue='1.0 0.5 0.5'/>
</ProtoInstance>
</Transform>
<Transform translation='-4.5 0.0 -3.0'>
<ProtoInstance name='Robot'>
<fieldValue name='eyeColorvalue='1.0 0.0 0.0'/>
<fieldValue name='rodColorvalue='0.5 0.0 1.0'/>
<fieldValue name='lColorvalue='0.0 0.5 1.0'/>
</ProtoInstance>
</Transform>
</Scene>
</X3D>
<!--

Index for ProtoDeclare definition : Robot

Index for DEF nodes : AntenaeBar, Eye, RobotColor, RobotGlow, Rod

Index for Viewpoint image : Viewpoint_1
-->

<!-- Online at https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/RobotsIndex.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. -->