X3D Model Documentation: StripedSurfPerchPlaque.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <X3D profile='Interactive' version='3.3 xmlns:xsd='https://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.3.xsd'>
  4       <head>
  5            <meta name='titlecontent=' StripedSurfPerchPlaque.x3d '/>
  6            <meta name='creatorcontent='Michael Collins'/>
  7            <meta name='createdcontent='18 February 2001'/>
  8            <meta name='modifiedcontent='29 November 2025'/>
  9            <meta name=' warning content=' under development '/>
 10            <meta name='descriptioncontent='One fish plaque with lithograph on one side and actual picture on the back. Click on plaque to go to picture or click on buttons to change picture.'/>
 11            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerchPlaque.x3d '/>
 12            <meta name='generatorcontent='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 13            <meta name='generatorcontent='Sunrize, https://create3000.github.io/sunrize'/>
 14            <meta name='Imagecontent='StripedSurfPerchPatch.jpg'/>
 15            <meta name='Imagecontent='RainbowSurfPerch002.jpg'/>
 16            <meta name='licensecontent='../license.html'/>
 17       </head>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: BASE_TRANSFORM, BaseTouchSensor, BLUEROCKFISH_TRANSFORM, BLUEROCKFISHCLOCK, BlueRockfishPathInterpolator, BlueRockfishTouchSensor, BUTTON_TRANSFORM, BUTTON_TRANSFORM2, FrontTouchSensor, FRONTTOUCHSENSORCLOCK, PictureTouchSensor, PlaqueToPictureInterpolator

Index for Viewpoint node: stripedsurfperch

-->
 18       <Scene>
 19            <WorldInfo title='StripedSurfPerchPlaque.x3d'/>
 20            <Viewpoint DEF='stripedsurfperchdescription='Striped Surf Perchposition='0 0 6'/>
 21            <!-- Fish Plaques -->
 22            <Group>
 23 
               <!-- ROUTE information for BlueRockfishTouchSensor node:  [from touchTime to BLUEROCKFISHCLOCK.set_startTime ] -->
               <TouchSensor DEF='BlueRockfishTouchSensordescription='touch to rotate'/>
 24 
               <!-- ROUTE information for BLUEROCKFISHCLOCK node:  [from BlueRockfishTouchSensor.touchTime to set_startTime ] [from PictureTouchSensor.touchTime to set_startTime ] [from fraction_changed to BlueRockfishPathInterpolator.set_fraction ] -->
               <TimeSensor DEF='BLUEROCKFISHCLOCKcycleInterval='2enabled='trueloop='false'/>
 25 
               <!-- 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.50 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'/>
 26 
               <!-- ROUTE information for BLUEROCKFISH_TRANSFORM node:  [from BlueRockfishPathInterpolator.value_changed to set_rotation ] [from PlaqueToPictureInterpolator.value_changed to set_rotation ] -->
               <Transform DEF='BLUEROCKFISH_TRANSFORM'>
 27                      <Shape>
 28                           <Box size='4 2 .1'/>
 29                           <Appearance>
 30                                <ImageTexture   url=' "StripedSurfPerchPatch.jpg " "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerchPatch.jpg " '/>
 31                           </Appearance>
 32                      </Shape>
 33                      <Transform translation='0 0 -.1'>
 34                           <Shape>
 35                                <Box size='4 2 .2'/>
 36                                <Appearance>
 37                                     <ImageTexture   url=' "RainbowSurfPerch002.jpg " "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/RainbowSurfPerch002.jpg " '/>
 38                                </Appearance>
 39                           </Shape>
 40                      </Transform>
 41                 </Transform>
 42                 <Group>
 43                      <Transform DEF='BUTTON_TRANSFORMtranslation='1 2 0'>
 44                           <Shape>
 45                                <Sphere radius='.5'/>
 46                                <Appearance>
 47                                     <Material diffuseColor='0 1 0'/>
 48                                </Appearance>
 49                           </Shape>
 50                      </Transform>
 51 
                    <!-- ROUTE information for FrontTouchSensor node:  [from touchTime to FRONTTOUCHSENSORCLOCK.set_startTime ] -->
                    <TouchSensor DEF='FrontTouchSensordescription='front TouchSensor'/>
 52 
                    <!-- ROUTE information for FRONTTOUCHSENSORCLOCK node:  [from FrontTouchSensor.touchTime to set_startTime ] [from fraction_changed to PlaqueToPictureInterpolator.set_fraction ] -->
                    <TimeSensor DEF='FRONTTOUCHSENSORCLOCKcycleInterval='2enabled='trueloop='false'/>
 53 
                    <!-- 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.50 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.00'/>
 54                 </Group>
 55                 <Group>
 56                      <Transform DEF='BUTTON_TRANSFORM2translation='-1 2 0'>
 57                           <Shape>
 58                                <Sphere radius='.5'/>
 59                                <Appearance>
 60                                     <Material diffuseColor='1 0 0'/>
 61                                </Appearance>
 62                           </Shape>
 63                      </Transform>
 64 
                    <!-- ROUTE information for PictureTouchSensor node:  [from touchTime to BLUEROCKFISHCLOCK.set_startTime ] -->
                    <TouchSensor DEF='PictureTouchSensordescription='picture TouchSensor'/>
 65                 </Group>
 66                 <Group>
 67                      <Transform DEF='BASE_TRANSFORMtranslation='0 0 -.3'>
 68                           <Shape>
 69                                <Box size='8 6 .3'/>
 70                                <Appearance>
 71                                     <Material diffuseColor='.3 .3 .6'/>
 72                                </Appearance>
 73                           </Shape>
 74                      </Transform>
 75 
                    <!-- ROUTE information for BaseTouchSensor node:  [this TouchSensor node is an author-provided hint for peer geometry] -->
                    <TouchSensor DEF='BaseTouchSensordescription='select to rotate'/>
 76                      <Group>
 77                           <Transform translation='0 -2.6 0'>
 78                                <Shape>
 79                                     <Box size='8 1 1'/>
 80                                     <Appearance>
 81                                          <Material diffuseColor='0.8 0.8 0.2'/>
 82                                     </Appearance>
 83                                </Shape>
 84                           </Transform>
 85                      </Group>
 86                      <Group>
 87                           <Transform translation='0 2.6 0'>
 88                                <Shape>
 89                                     <Box size='8 1 1'/>
 90                                     <Appearance>
 91                                          <Material diffuseColor='0.8 0.8 0.2'/>
 92                                     </Appearance>
 93                                </Shape>
 94                           </Transform>
 95                      </Group>
 96                      <Group>
 97                           <Transform rotation='0 0 1 1.58translation='3.6 0 0'>
 98                                <Shape>
 99                                     <Box size='6.2 1 1'/>
100                                     <Appearance>
101                                          <Material diffuseColor='0.8 0.8 0.2'/>
102                                     </Appearance>
103                                </Shape>
104                           </Transform>
105                      </Group>
106                      <Group>
107                           <Transform rotation='0 0 1 1.58translation='-3.6 0 0'>
108                                <Shape>
109                                     <Box size='6.2 1 1'/>
110                                     <Appearance>
111                                          <Material diffuseColor='0.8 0.8 0.2'/>
112                                     </Appearance>
113                                </Shape>
114                           </Transform>
115                      </Group>
116                 </Group>
117            </Group>
118            < ROUTE  fromNode='BlueRockfishTouchSensor' fromField='touchTime' toNode='BLUEROCKFISHCLOCK' toField='set_startTime'/>
119            < ROUTE  fromNode='BLUEROCKFISHCLOCK' fromField='fraction_changed' toNode='BlueRockfishPathInterpolator' toField='set_fraction'/>
120            < ROUTE  fromNode='BlueRockfishPathInterpolator' fromField='value_changed' toNode='BLUEROCKFISH_TRANSFORM' toField='set_rotation'/>
121            < ROUTE  fromNode='FrontTouchSensor' fromField='touchTime' toNode='FRONTTOUCHSENSORCLOCK' toField='set_startTime'/>
122            < ROUTE  fromNode='FRONTTOUCHSENSORCLOCK' fromField='fraction_changed' toNode='PlaqueToPictureInterpolator' toField='set_fraction'/>
123            < ROUTE  fromNode='PlaqueToPictureInterpolator' fromField='value_changed' toNode='BLUEROCKFISH_TRANSFORM' toField='set_rotation'/>
124            <!-- Picture touch sensor only has to tie into the BLUEROCKFISHCLOCK so that it will turn picture. -->
125            < ROUTE  fromNode='PictureTouchSensor' fromField='touchTime' toNode='BLUEROCKFISHCLOCK' toField='set_startTime'/>
126       </Scene>
127  </X3D>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: BASE_TRANSFORM, BaseTouchSensor, BLUEROCKFISH_TRANSFORM, BLUEROCKFISHCLOCK, BlueRockfishPathInterpolator, BlueRockfishTouchSensor, BUTTON_TRANSFORM, BUTTON_TRANSFORM2, FrontTouchSensor, FRONTTOUCHSENSORCLOCK, PictureTouchSensor, PlaqueToPictureInterpolator

Index for Viewpoint node: stripedsurfperch

-->
X3D Tooltips element index: to top Appearance, Box, Group, head, ImageTexture, Material, meta, OrientationInterpolator, ROUTE, Scene, Shape, Sphere, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D,
plus documentation for accessType definitions, type definitions, XML data types, and field types

🔖   Event Graph ROUTE Table entries with 7 ROUTE connections and 4 TouchSensor hover hints, showing X3D event-model relationships for this scene.

Each row with a ROUTE statement shows an event cascade that may occur during a single timestamp interval between frame renderings, performed as part of the X3D execution model.

BLUEROCKFISHCLOCK
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
BlueRockfishPathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
BlueRockfishPathInterpolator
OrientationInterpolator
value_changed
SFRotation
→
ROUTE
event to
(2)
BLUEROCKFISH_TRANSFORM
Transform
set_rotation
SFRotation

FRONTTOUCHSENSORCLOCK
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
PlaqueToPictureInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
PlaqueToPictureInterpolator
OrientationInterpolator
value_changed
SFRotation
→
ROUTE
event to
(2)
BLUEROCKFISH_TRANSFORM
Transform
set_rotation
SFRotation

BlueRockfishTouchSensor
TouchSensor
touchTime
SFTime
→
ROUTE
event to
(1)
BLUEROCKFISHCLOCK
TimeSensor
set_startTime
SFTime
then
from
same
node
BLUEROCKFISHCLOCK
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
BlueRockfishPathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
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
from
same
node
FRONTTOUCHSENSORCLOCK
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
PlaqueToPictureInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
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
from
same
node
BLUEROCKFISHCLOCK
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(2)
BlueRockfishPathInterpolator
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
BlueRockfishPathInterpolator
OrientationInterpolator
value_changed
SFRotation
→
ROUTE
event to
(3)
BLUEROCKFISH_TRANSFORM
Transform
set_rotation
SFRotation

BaseTouchSensor
TouchSensor
description='select to rotate' 
This TouchSensor node is an author-provided hover hint for peer geometry.
No direct ROUTE connection found for events to/from this node. 

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets.
Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerchPlaqueIndex.html -->
<!-- SourceForge version control Version control at    
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/StripedSurfPerchPlaque.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode DEF='idNamefield='value'/> matches XML terminology <XmlElement DEF='idNameattribute='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. -->