<?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='Interactive' 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='Doors.x3d'/>
<meta name='descriptioncontent='Two doors activated by different fields from a TouchSensor node.'/>
<meta name='creatorcontent='Leonard Daly and Don Brutzman'/>
<meta name='createdcontent='6 June 2006'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent=' https://X3dGraphics.com '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/X3dResources.html '/>
<meta name='rightscontent='Copyright 2006, Daly Realism and Don Brutzman'/>
<meta name='subjectcontent=' X3D book, X3D graphics, X3D-Edit, http://www.x3dGraphics.com '/>
<meta name='identifiercontent=' https://X3dGraphics.com/examples/X3dForWebAuthors/Chapter08UserInteractivity/Doors.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<WorldInfo title='Doors.x3d'/>
<Background skyColor='1 1 1'/>
<NavigationInfo type='"WALK" "ANY"'/>
<Viewpoint description='Initial defaultposition='0 1.4 10'/>
<Viewpoint description='Book Viewposition='0 1.4 4.5'/>
<Transform>
<Shape>
<Appearance> </Appearance>
<IndexedFaceSet DEF='WallcoordIndex='0 1 2 3 -1 0 3 8 11 -1 4 5 6 7 -1 8 9 10 11 -1 12 15 14 13 -1 12 23 20 15 -1 16 19 18 17 -1 20 23 22 21 -1 0 1 13 12 -1 2 14 15 3 -1 4 16 17 5 -1 7 6 18 19 -1 8 20 21 9 -1 11 10 22 23 -1 0 11 23 12 -1 1 13 14 2 -1 3 15 16 4 -1 7 19 20 8 -1 5 17 18 6 -1 9 21 22 10 -1'>
<Coordinate point='-2 3 0 -2 0 0 -1.5 0 0 -1.5 2.25 0 -.5 2.25 0 -.5 0 0 .5 0 0 .5 2.25 0 1.5 2.25 0 1.5 0 0 2 0 0 2 3 0 -2 3 -.1 -2 0 -.1 -1.5 0 -.1 -1.5 2.25 -.1 -.5 2.25 -.1 -.5 0 -.1 .5 0 -.1 .5 2.25 -.1 1.5 2.25 -.1 1.5 0 -.1 2 0 -.1 2 3 -.1'/>
</IndexedFaceSet>
</Shape>
</Transform>
<!-- ROUTE information for DoorLeftTransform node:  [from MoverLeft.value_changed to rotation ] -->
<Transform DEF='DoorLeftTransformcenter='-.5 0 0translation='-1 1.125 -.05'>
<Group DEF='Door'>
<Shape DEF='DoorShape'>
<Appearance DEF='DoorApp'> </Appearance>
<IndexedFaceSet DEF='DoorGeometrycoordIndex='0 1 2 3 -1 4 7 6 5 -1 0 1 5 4 -1 1 5 6 2 -1 2 6 7 3 -1 3 7 6 4 -1'>
<Coordinate point='-.5 -1.125 .05 .5 -1.125 .05 .5 1.125 .05 -.5 1.125 .05 -.5 -1.125 -.05 .5 -1.125 -.05 .5 1.125 -.05 -.5 1.125 -.05'/>
<TextureCoordinate point='0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 .95 0 1 .95 .95 .95 1 0 .95 0 1 .95 .95 .95 1 0 .95 0 1 .95 .95 .95 1 0 .95 0 1 .95 .95 .95'/>
</IndexedFaceSet>
</Shape>
</Group>
<!-- ROUTE information for MoverLeft node:  [from TimerLeft.fraction_changed to set_fraction ] [from value_changed to DoorLeftTransform.rotation ] -->
<OrientationInterpolator DEF='MoverLeftkey='0 1keyValue='0 1 0 0 0 1 0 -1'/>
<!-- ROUTE information for TimerLeft node:  [from TriggerLeft.triggerTime to startTime ] [from fraction_changed to MoverLeft.set_fraction ] -->
<TimeSensor DEF='TimerLeftcycleInterval='3'/>
<!-- ROUTE information for TriggerLeft node:  [from FilterLeft.inputTrue to set_boolean ] [from triggerTime to TimerLeft.startTime ] -->
<TimeTrigger DEF='TriggerLeftcontainerField='children'/>
<!-- ROUTE information for FilterLeft node:  [from TouchLeft.isActive to set_boolean ] [from inputTrue to TriggerLeft.set_boolean ] -->
<BooleanFilter DEF='FilterLeftcontainerField='children'/>
<!-- ROUTE information for TouchLeft node:  [from isActive to FilterLeft.set_boolean ] -->
<TouchSensor DEF='TouchLeftdescription='touch to activate'/>
<ROUTE fromNode='TouchLeftfromField='isActivetoNode='FilterLefttoField='set_boolean'/>
<ROUTE fromNode='FilterLeftfromField='inputTruetoNode='TriggerLefttoField='set_boolean'/>
<ROUTE fromNode='TriggerLeftfromField='triggerTimetoNode='TimerLefttoField='startTime'/>
<ROUTE fromNode='TimerLeftfromField='fraction_changedtoNode='MoverLefttoField='set_fraction'/>
<ROUTE fromNode='MoverLeftfromField='value_changedtoNode='DoorLeftTransformtoField='rotation'/>
</Transform>
<!-- ROUTE information for DoorRight node:  [from MoverRight.value_changed to rotation ] -->
<Transform DEF='DoorRightcenter='-.5 0 0translation='1 1.125 -.05'>
<Group USE='Door'/>
<!-- ROUTE information for MoverRight node:  [from TimerRight.fraction_changed to set_fraction ] [from value_changed to DoorRight.rotation ] -->
<OrientationInterpolator DEF='MoverRightkey='0 1keyValue='0 1 0 0 0 1 0 -1'/>
<!-- ROUTE information for TimerRight node:  [from TouchRight.touchTime to startTime ] [from fraction_changed to MoverRight.set_fraction ] -->
<TimeSensor DEF='TimerRightcycleInterval='3'/>
<!-- ROUTE information for TouchRight node:  [from touchTime to TimerRight.startTime ] -->
<TouchSensor DEF='TouchRightdescription='touch to activate'/>
<ROUTE fromNode='TouchRightfromField='touchTimetoNode='TimerRighttoField='startTime'/>
<ROUTE fromNode='TimerRightfromField='fraction_changedtoNode='MoverRighttoField='set_fraction'/>
<ROUTE fromNode='MoverRightfromField='value_changedtoNode='DoorRighttoField='rotation'/>
</Transform>
</Scene>
</X3D>
<!--

Index for DEF nodes : Door, DoorApp, DoorGeometry, DoorImage, DoorLeftTransform, DoorMat, DoorRight, DoorShape, FilterLeft, MoverLeft, MoverRight, TimerLeft, TimerRight, TouchLeft, TouchRight, TriggerLeft, Wall

Index for Viewpoint images : Viewpoint_1, Viewpoint_2
-->

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

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