<?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 name='titlecontent=' Chair.x3d '/>
<meta name='descriptioncontent='A chair for a room, modeled as a Prototype for reuse.'/>
<meta name='creatorcontent='Frederic Roussille'/>
<meta name='contributorcontent='Don Brutzman'/>
<meta name='createdcontent='1 April 2001'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chair.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: chair_color, chaise, color, ExtrusionSeatBack, ExtrusionSeatBase, ExtrusionSeatCushion, seat, SeatRotationCylinderSensor

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: Chair
-->
<Scene>
<WorldInfo title='Chair.x3d'/>
<Viewpoint description='Chair example ProtoInstanceposition='0 0 4'/>
<ProtoDeclare name='Chair'>
<ProtoInterface>
<field name='diffuseColortype='SFColorvalue='0.7 0.7 0.4accessType='inputOutput'/>
</ProtoInterface>
<ProtoBody>
<Transform scale='0.15 0.15 0.15translation='0 0.52 0'>
<!-- ROUTE information for seat node:  [from SeatRotationCylinderSensor.rotation_changed to set_rotation ] -->
<Transform DEF='seat'>
<Transform rotation='1 0 0 1.57'>
<!-- seat -->
<Shape>
<Appearance DEF='chair_color'>
<Material DEF='color'>
<IS>
<connect nodeField='diffuseColorprotoField='diffuseColor'/>
</IS>
</Material>
</Appearance>
<Extrusion DEF='ExtrusionSeatCushionccw='falsecreaseAngle='1.57crossSection='-2 0 2 0 2.3 0.3 2.4 0.4 2.5 0.5 2.5 1 -2 1 -2 0scale='0.5 1solid='falsespine='1 0 0 0.92 -0.38 0 0.71 -0.71 0 0.38 -0.92 0 0 -1 0 -0.38 -0.92 0 -0.71 -0.71 0 -0.92 -0.38 0 -1 0 0 -0.92 0.38 0 -0.71 0.71 0 -0.38 0.92 0 0 1 0 0.38 0.92 0 0.71 0.71 0 0.92 0.38 0 1 0 0'/>
</Shape>
</Transform>
<Transform translation='0 1 1'>
<!-- back -->
<Shape>
<Appearance USE=' chair_color'/>
<Extrusion DEF='ExtrusionSeatBackconvex='falsecreaseAngle='1.57crossSection='1 0 0.8 0 0.736 0.304 0.568 0.568 0.304 0.736 0 0.8 -0.304 0.736 -0.568 0.568 -0.736 0.304 -0.8 0 -1 0 -0.92 0.38 -0.71 0.71 -0.38 0.92 0 1 0.38 0.92 0.71 0.71 0.92 0.38 1 0 0.8 0scale='1.4 1 2 1solid='falsespine='0 0 0 0 4 0'/>
</Shape>
</Transform>
<!-- ROUTE information for SeatRotationCylinderSensor node:  [from rotation_changed to seat.set_rotation ] -->
<CylinderSensor DEF='SeatRotationCylinderSensordescription='Swivel chair'/>
</Transform>
<Transform rotation='1 0 0 -1.57'>
<!-- foot -->
<Shape>
<Appearance USE=' chair_color'/>
<Extrusion DEF='ExtrusionSeatBasebeginCap='falseconvex='falsecreaseAngle='1.57crossSection='0 0 0.2 0 0.23 2 0.28 3 1 3.3 1.5 3.5 0 3.5 0 0endCap='falsesolid='falsespine='0.1 0 0 0.092 -0.038 0 0.071 -0.071 0 0.038 -0.092 0 0 -0.1 0 -0.038 -0.092 0 -0.071 -0.071 0 -0.092 -0.038 0 -0.1 0 0 -0.092 0.038 0 -0.071 0.071 0 -0.038 0.092 0 0 0.1 0 0.038 0.092 0 0.071 0.071 0 0.092 0.038 0 0.1 0 0'/>
</Shape>
</Transform>
</Transform>
< ROUTE  fromNode=' SeatRotationCylinderSensor' fromField='rotation_changed' toNode=' seat' toField='set_rotation'/>
</ProtoBody>
</ProtoDeclare>
<ProtoInstance name='ChairDEF='chaise'/>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: chair_color, chaise, color, ExtrusionSeatBack, ExtrusionSeatBase, ExtrusionSeatCushion, seat, SeatRotationCylinderSensor

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: Chair
-->

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

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


SeatRotationCylinderSensor
CylinderSensor
rotation_changed
SFRotation

ROUTE
event to
(1)
seat
Transform
set_rotation
SFRotation


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/StudentProjects/ChairIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/StudentProjects/Chair.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. -->