<?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>
<!--

to top <!-- Index for DEF nodes: AntenaeBar, Eye, RobotColor, RobotGlow, Rod

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: Robot
-->
<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>
<!--

to top <!-- Index for DEF nodes: AntenaeBar, Eye, RobotColor, RobotGlow, Rod

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: Robot
-->

Event Graph ROUTE Table with 0 ROUTE 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.


ProtoInstance
Robot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
Robot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
Robot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
Robot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
Robot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
Robot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
Robot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/RobotsIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Robots.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)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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