<?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=' CopperRockfishPlacardViewer.x3d '/>
<meta name='descriptioncontent='Viewer for tank placards - needs photo on one side, placard on other, and conversion into prototype once ready.'/>
<meta name='createdcontent='1 April 2002'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='creatorcontent='Todd Gagnon and Mark A. Boyd'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CopperRockfishPlacardViewer.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<WorldInfo title='CopperRockfishPlacardViewer.x3d'/>
<Viewpoint DEF='CopperRockfishdescription='Copper Rockfishposition='0.0 0.0 4.0'/>
<Group>
<!-- ROUTE information for BlueRockfishTouchSensor node:  [from touchTime to BLUEROCKFISHCLOCK.set_startTime ] -->
<TouchSensor DEF='BlueRockfishTouchSensordescription='touch to rotate'/>


<!-- ROUTE information for BlueRockfishPathInterpolator node:  [from BLUEROCKFISHCLOCK.fraction_changed to set_fraction ] [from value_changed to BLUEROCKFISH_TRANSFORM.set_rotation ] -->
<OrientationInterpolator DEF='BlueRockfishPathInterpolatorkey='0.0 0.5 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.57 0.0 1.0 0.0 3.14'/>

<Shape>
<Appearance> </Appearance>
<IndexedFaceSet coordIndex='0 1 2 3 0 -1'>
<Coordinate point='-2 -1 0 2 -1 0 2 1 0 -2 1 0'/>
</IndexedFaceSet>
</Shape>
</Transform>
<Group>
<Transform DEF='BUTTON_TRANSFORMtranslation='1.0 2.0 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.0 1.0 0.0'/>
</Appearance>
<Sphere radius='0.5'/>
</Shape>
</Transform>
<!-- ROUTE information for FrontTouchSensor node:  [from touchTime to FRONTTOUCHSENSORCLOCK.set_startTime ] -->
<TouchSensor DEF='FrontTouchSensordescription='touch to rotate'/>

<!-- ROUTE information for FRONTTOUCHSENSORCLOCK node:  [from FrontTouchSensor.touchTime to set_startTime ] [from fraction_changed to PlaqueToPictureInterpolator.set_fraction ] -->
<TimeSensor DEF='FRONTTOUCHSENSORCLOCKcycleInterval='2.0'/>

<!-- ROUTE information for PlaqueToPictureInterpolator node:  [from FRONTTOUCHSENSORCLOCK.fraction_changed to set_fraction ] [from value_changed to BLUEROCKFISH_TRANSFORM.set_rotation ] -->
<OrientationInterpolator DEF='PlaqueToPictureInterpolatorkey='0.0 0.5 1.0keyValue='0.0 1.0 0.0 3.14 0.0 1.0 0.0 1.57 0.0 1.0 0.0 0.0'/>
</Group>
<Group>
<Transform DEF='BUTTON_TRANSFORM2translation='-1.0 2.0 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='1.0 0.0 0.0'/>
</Appearance>
<Sphere radius='0.5'/>
</Shape>
</Transform>
<!-- ROUTE information for PictureTouchSensor node:  [from touchTime to BLUEROCKFISHCLOCK.set_startTime ] -->
<TouchSensor DEF='PictureTouchSensordescription='touch to rotate'/>
</Group>
<Group>
<Transform DEF='BASE_TRANSFORMtranslation='0.0 0.0 -0.3'>
<Shape>
<Appearance>
<Material diffuseColor='0.3 0.3 0.6'/>
</Appearance>
<Box size='8.0 6.0 0.3'/>
</Shape>
</Transform>
<Group>
<Transform translation='0.0 -2.6 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.8 0.8 0.2'/>
</Appearance>
<Box size='8.0 1.0 1.0'/>
</Shape>
</Transform>
</Group>
<Group>
<Transform translation='0.0 2.6 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.8 0.8 0.2'/>
</Appearance>
<Box size='8.0 1.0 1.0'/>
</Shape>
</Transform>
</Group>
<Group>
<Transform rotation='0.0 0.0 1.0 1.58translation='3.6 0.0 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.8 0.8 0.2'/>
</Appearance>
<Box size='6.2 1.0 1.0'/>
</Shape>
</Transform>
</Group>
<Group>
<Transform rotation='0.0 0.0 1.0 1.58translation='-3.6 0.0 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='0.8 0.8 0.2'/>
</Appearance>
<Box size='6.2 1.0 1.0'/>
</Shape>
</Transform>
</Group>
</Group>
</Group>
< ROUTE  fromNode=' BlueRockfishTouchSensor' fromField='touchTime' toNode=' BLUEROCKFISHCLOCK' toField='set_startTime'/>
< ROUTE  fromNode=' BLUEROCKFISHCLOCK' fromField='fraction_changed' toNode=' BlueRockfishPathInterpolator' toField='set_fraction'/>
< ROUTE  fromNode=' BlueRockfishPathInterpolator' fromField='value_changed' toNode=' BLUEROCKFISH_TRANSFORM' toField='set_rotation'/>
< ROUTE  fromNode=' FrontTouchSensor' fromField='touchTime' toNode=' FRONTTOUCHSENSORCLOCK' toField='set_startTime'/>
< ROUTE  fromNode=' FRONTTOUCHSENSORCLOCK' fromField='fraction_changed' toNode=' PlaqueToPictureInterpolator' toField='set_fraction'/>
< ROUTE  fromNode=' PlaqueToPictureInterpolator' fromField='value_changed' toNode=' BLUEROCKFISH_TRANSFORM' toField='set_rotation'/>
< ROUTE  fromNode=' PictureTouchSensor' fromField='touchTime' toNode=' BLUEROCKFISHCLOCK' toField='set_startTime'/>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: BASE_TRANSFORM, BLUEROCKFISH_TRANSFORM, BLUEROCKFISHCLOCK, BlueRockfishPathInterpolator, BlueRockfishTouchSensor, BUTTON_TRANSFORM, BUTTON_TRANSFORM2, CopperRockfish, CopperRockfishImage, FrontTouchSensor, FRONTTOUCHSENSORCLOCK, PictureTouchSensor, PlaqueToPictureInterpolator

Index for Viewpoint node: CopperRockfish
-->

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

BlueRockfishTouchSensor
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
BLUEROCKFISHCLOCK
TimeSensor
set_startTime
SFTime

 
 
then
BLUEROCKFISHCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueRockfishPathInterpolator
OrientationInterpolator
set_fraction
SFFloat

 
 
then
BlueRockfishPathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BLUEROCKFISH_TRANSFORM
Transform
set_rotation
SFRotation


FrontTouchSensor
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
FRONTTOUCHSENSORCLOCK
TimeSensor
set_startTime
SFTime

 
 
then
FRONTTOUCHSENSORCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
PlaqueToPictureInterpolator
OrientationInterpolator
set_fraction
SFFloat

 
 
then
PlaqueToPictureInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BLUEROCKFISH_TRANSFORM
Transform
set_rotation
SFRotation


PictureTouchSensor
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
BLUEROCKFISHCLOCK
TimeSensor
set_startTime
SFTime

 
 
then
BLUEROCKFISHCLOCK
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
BlueRockfishPathInterpolator
OrientationInterpolator
set_fraction
SFFloat

 
 
then
BlueRockfishPathInterpolator
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(3)
BLUEROCKFISH_TRANSFORM
Transform
set_rotation
SFRotation



-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CopperRockfishPlacardViewerIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/CopperRockfishPlacardViewer.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)
-->

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