X3D Model Documentation: KelpPrototype.x3d go to online X3D Example Archives model page

  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='Immersive' 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='title' content=' KelpPrototype.x3d '/>
  6            <meta name='description' content='Creates Kelp Prototype - this file uses Bulb and is used by KelpExamplesNoBase.'/>
  7            <meta name='creator' content='Joseph Cannon, Dan DeVos'/>
  8            <meta name='created' content='18 March 1999'/>
  9            <meta name='modified' content='20 October 2019'/>
 10            <meta name='reference' content='http://faculty.nps.edu/brutzman/kelp'/>
 11            <meta name='reference' content=' KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf '/>
 12            <meta name='reference' content=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf '/>
 13            <meta name='reference' content=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Teaching3d-KelpForestCaseStudy.pdf '/>
 14            <meta name='accessRights' content='All content has permissions for free use. Please provide credit to the Naval Postgraduate School (NPS) Modeling Virtual Environments and Simulation (MOVES) Institute.'/>
 15            <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpPrototype.x3d '/>
 16            <meta name='generator' content=' Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html '/>
 17            <meta name='license' content='../license.html'/>
 18       </head>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: BLADE, blade_X1, blade_X2, blade_X3, blade_Y1, blade_Y2, blade_Y3, blade_Y4, bladeRotateZ, bladeToTheSide, Blade-Z, bulb, Clock, horizontalStipe, horizontalStipeMover, kelpColor, rotateBlade90, stemShape, stipe, TouchTextForExample

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: Kelp

-->
 19       <Scene>
 20            <WorldInfo title='KelpPrototype.x3d'/>
 21            <ProtoDeclare name='Kelp' appinfo='Kelp strands and bulbs with no base'>
 22                 <ProtoInterface>
 23                      <field name='frontBladeSize' type='SFVec3f' value='0.7 0.7 0.7' accessType='inputOutput'/>
 24                      <field name='frontSideBladeHeight' type='SFVec3f' value='0 4 0' accessType='inputOutput'/>
 25                      <field name='rightBladeSize' type='SFVec3f' value='0.7 0.7 0.7' accessType='inputOutput'/>
 26                      <field name='rightSideBladeHeight' type='SFVec3f' value='0 12 0' accessType='inputOutput'/>
 27                      <field name='rearBladeSize' type='SFVec3f' value='0.4 0.4 0.4' accessType='inputOutput'/>
 28                      <field name='rearSideBladeHeight' type='SFVec3f' value='0 20 0' accessType='inputOutput'/>
 29                      <field name='leftBladeSize' type='SFVec3f' value='0.4 0.4 0.4' accessType='inputOutput'/>
 30                      <field name='leftSideBladeHeight' type='SFVec3f' value='0 24 0' accessType='inputOutput'/>
 31                 </ProtoInterface>
 32                 <ProtoBody>
 33                      <Group>
 34                           <Transform DEF='stipe' center='0 -16 0' translation='0 14 0'>
 35 
                              <!-- Shape stemShape is a DEF node that has 1 USE node: USE_1 -->
                              <Shape DEF='stemShape'>
 36 
                                   <!-- Appearance kelpColor is a DEF node that has 1 USE node: USE_1 -->
                                   <Appearance DEF='kelpColor'>
 37                                          <Material diffuseColor='0.882 0.757 0.184'/>
 38                                     </Appearance>
 39                                     <Cylinder bottom='false' height='28.0' radius='0.2' top='false'/>
 40                                </Shape>
 41 
                              <!-- ROUTE information for horizontalStipe node:  [from horizontalStipeMover.value_changed to set_rotation ] -->
                              <Transform DEF='horizontalStipe' center='0 16 0' rotation='0 0 1 1.5707' scale='0.5 0.3 0.5' translation='1.3 0 0'>
 42                                     <Transform>
 43                                          <Shape USE='stemShape'/>
 44                                     </Transform>
 45                                     <Transform DEF='blade_X1' rotation='0 1 0 1.0' translation='0 12 0'>
 46 
                                        <!-- Transform bladeRotateZ is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                        <Transform DEF='bladeRotateZ' rotation='0 0 1 -1.2'>
 47 
                                             <!-- Transform BLADE is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                             <Transform DEF='BLADE' center='-0.5 0 0' translation='1 0 0'>
 48 
                                                  <!-- Inline bulb is a DEF node that has 1 USE node: USE_1 -->
go to online X3D Example Archives model page                                                   <Inline DEF='bulb'   url=' "KelpBulb.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpBulb.x3d" "KelpBulb.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpBulb.wrl"'/>
 49                                               </Transform>
 50                                          </Transform>
 51                                     </Transform>
 52                                     <Transform DEF='blade_X2' rotation='0 1 0 -1.0'>
 53                                          <Transform USE='bladeRotateZ'/>
 54                                     </Transform>
 55                                     <Transform DEF='blade_X3' rotation='0 1 0 4.342' translation='0 -12 0'>
 56                                          <Transform USE='bladeRotateZ'/>
 57                                     </Transform>
 58                                </Transform>
 59                                <Transform translation='0 14 0'>
 60                                     <Shape>
 61                                          <Appearance USE='kelpColor'/>
 62                                          <Extrusion creaseAngle='1.57' crossSection='0.2 0 0.184 -0.076 0.142 -0.142 0.076 -0.184 0 -0.2 -0.076 -0.184 -0.142 -0.142 -0.184 -0.076 -0.2 -0 -0.184 0.076 -0.142 0.142 -0.076 0.184 0 0.2 0.076 0.184 0.142 0.142 0.184 0.076 0.2 0' scale='1 1 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5' spine='0 0 0 0.15 0.77 0 0.59 1.41 0 1.23 1.85 0 2 2 0'/>
 63                                     </Shape>
 64                                </Transform>
 65                           </Transform>
 66                           <Transform DEF='blade_Y1' rotation='0 0 1 1.2'>
 67                                <IS>
 68                                     <connect nodeField='scale' protoField='frontBladeSize'/>
 69                                     <connect nodeField='translation' protoField='frontSideBladeHeight'/>
 70                                </IS>
 71                                <Transform USE='BLADE'/>
 72                           </Transform>
 73                           <Transform DEF='blade_Y2' rotation='0 1 0 4.2'>
 74                                <IS>
 75                                     <connect nodeField='scale' protoField='rightBladeSize'/>
 76                                     <connect nodeField='translation' protoField='rightSideBladeHeight'/>
 77                                </IS>
 78 
                              <!-- Transform bladeToTheSide is a DEF node that has 1 USE node: USE_1 -->
                              <Transform DEF='bladeToTheSide' rotation='1 0 0 3.142'>
 79                                     <Transform rotation='0 0 1 -1.2'>
 80                                          <Transform DEF='rotateBlade90' center='-0.5 0 0' rotation='1 0 0 1.5707' translation='1 0 0'>
 81                                               <Inline USE='bulb'/>
 82                                          </Transform>
 83                                     </Transform>
 84                                </Transform>
 85                           </Transform>
 86                           <Transform DEF='blade_Y3' rotation='0 1 0 3.2'>
 87                                <IS>
 88                                     <connect nodeField='scale' protoField='rearBladeSize'/>
 89                                     <connect nodeField='translation' protoField='rearSideBladeHeight'/>
 90                                </IS>
 91                                <Transform DEF='Blade-Z' rotation='1 0 0 3.142'>
 92                                     <Transform rotation='0 0 1 -1.2'>
 93                                          <Transform USE='BLADE'/>
 94                                     </Transform>
 95                                </Transform>
 96                           </Transform>
 97                           <Transform DEF='blade_Y4' rotation='0 1 0 1.2'>
 98                                <IS>
 99                                     <connect nodeField='scale' protoField='leftBladeSize'/>
100                                     <connect nodeField='translation' protoField='leftSideBladeHeight'/>
101                                </IS>
102                                <Transform USE='bladeToTheSide'/>
103                           </Transform>
104 
                         <!-- ROUTE information for Clock node:  [from fraction_changed to horizontalStipeMover.set_fraction ] -->
                         <TimeSensor DEF='Clock' cycleInterval='5.5' loop='true' enabled='true'/>
105 
                         <!-- ROUTE information for horizontalStipeMover node:  [from Clock.fraction_changed to set_fraction ] [from value_changed to horizontalStipe.set_rotation ] -->
                         <OrientationInterpolator DEF='horizontalStipeMover' key='0 0.25 0.5 0.75 1.0' keyValue='0 0 1 1.471 0 0 1 1.571 0 0 1 1.671 0 0 1 1.571 0 0 1 1.471'/>
106                      </Group>
107                      < ROUTE  fromNode='Clock' fromField='fraction_changed' toNode='horizontalStipeMover' toField='set_fraction'/>
108                      < ROUTE  fromNode='horizontalStipeMover' fromField='value_changed' toNode='horizontalStipe' toField='set_rotation'/>
109                 </ProtoBody>
110            </ProtoDeclare>
111            <!-- Example use of this prototype is in KelpNoBase.x3d, .wrl -->
112            <Viewpoint description='click message to view example' position='0 0 8'/>
113            <!-- Redirection text in case a user examines this PROTO file via a 3D browser: -->
114  go to online X3D Example Archives model page           <Anchor DEF='TouchTextForExample' description='KelpNoBase' parameter='"target=_blank"'   url=' "KelpExamplesNoBase.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.x3d" "KelpExamplesNoBase.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpExamplesNoBase.wrl"'>
115                 <Shape>
116                      <Appearance>
117                           <Material diffuseColor='0 1 1' emissiveColor='0 1 1'/>
118                      </Appearance>
119                      <Text string='"KelpPrototype" "is a Prototype declaration file." "" "To see an example using 3 instances of" "this new node, click this text and view" "KelpNoBase scene"'>
120                           <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.5'/>
121                      </Text>
122                 </Shape>
123                 <!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
124                 <Shape>
125                      <Box size='8 3 .001'/>
126                      <Appearance>
127                           <Material transparency='1'/>
128                      </Appearance>
129                 </Shape>
130            </Anchor>
131       </Scene>
132  </X3D>
<!--

Event Graph ROUTE Table shows event connections.

--> <!-- to top DEF nodes index: BLADE, blade_X1, blade_X2, blade_X3, blade_Y1, blade_Y2, blade_Y3, blade_Y4, bladeRotateZ, bladeToTheSide, Blade-Z, bulb, Clock, horizontalStipe, horizontalStipeMover, kelpColor, rotateBlade90, stemShape, stipe, TouchTextForExample

Index for Viewpoint node: Viewpoint_1

Index for ProtoDeclare definition: Kelp

-->

X3D Tooltips element index: to top Anchor, Appearance, Box, connect, Cylinder, Extrusion, field, FontStyle, Group, head, Inline, IS, Material, meta, OrientationInterpolator, ProtoBody, ProtoDeclare, ProtoInterface, ROUTE, Scene, Shape, Text, TimeSensor, Transform, Viewpoint, WorldInfo, X3D,
plus documentation for accessType definitions, type definitions, XML data types, and field types

🔖   Event Graph ROUTE Table entries with 2 ROUTE connections and 1 Anchor hover hint, 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.

Clock
TimeSensor
fraction_changed
SFFloat
→
ROUTE
event to
(1)
horizontalStipeMover
OrientationInterpolator
set_fraction
SFFloat
then
from
same
node
horizontalStipeMover
OrientationInterpolator
value_changed
SFRotation
→
ROUTE
event to
(2)
horizontalStipe
Transform
set_rotation
SFRotation

TouchTextForExample
Anchor
description='KelpNoBase' 
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! 😀

-->
go to online X3D Example Archives model page <!-- Online at
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpPrototypeIndex.html -->
<!-- SourceForge version control Version control at    
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpPrototype.x3d -->

<!-- Color-coding 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)
    <ProtoDeclare name='ProtoName'> <field name='fieldName'/> </ProtoDeclare> -->

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