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='http://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, stripedsurfperch

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='2'/>
 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='2'/>
 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 provides a 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, stripedsurfperch

Index for Viewpoint node: stripedsurfperch
-->
X3D Tooltips element index: 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 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.

BaseTouchSensor
TouchSensor
description='select to rotate' 
No direct ROUTE connection found for events to/from this node.
(TouchSensor description is providing a tooltip for associated geometry.)  

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


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