X3D Model Documentation: KelpPrototype.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='Immersive' 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='KelpPrototype.x3d'/>
  6            <meta name='descriptioncontent='Creates Kelp Prototype - this file uses Bulb and is used by KelpExamplesNoBase.'/>
  7            <meta name='creatorcontent='Joseph Cannon, Dan DeVos'/>
  8            <meta name='createdcontent='18 March 1999'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='referencecontent='http://faculty.nps.edu/brutzman/kelp'/>
 11            <meta name='referencecontent='KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf'/>
 12            <meta name='referencecontent='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestDesignPaperWeb3dSymposiumFebruary2002.pdf'/>
 13            <meta name='referencecontent='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/Teaching3d-KelpForestCaseStudy.pdf'/>
 14            <meta name='accessRightscontent='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='identifiercontent='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/KelpForestExhibit/KelpPrototype.x3d'/>
 16            <meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
 17            <meta name='licensecontent='../license.html'/>
 18       </head>
<!--

<!-- Event Graph ROUTE Table shows event connections. -->

<!-- to top Index for DEF nodes: 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='Kelpappinfo='Kelp strands and bulbs with no base'>
 22                 <ProtoInterface>
 23                      <field name='frontBladeSizetype='SFVec3fvalue='0.7 0.7 0.7accessType='inputOutput'/>
 24                      <field name='frontSideBladeHeighttype='SFVec3fvalue='0 4 0accessType='inputOutput'/>
 25                      <field name='rightBladeSizetype='SFVec3fvalue='0.7 0.7 0.7accessType='inputOutput'/>
 26                      <field name='rightSideBladeHeighttype='SFVec3fvalue='0 12 0accessType='inputOutput'/>
 27                      <field name='rearBladeSizetype='SFVec3fvalue='0.4 0.4 0.4accessType='inputOutput'/>
 28                      <field name='rearSideBladeHeighttype='SFVec3fvalue='0 20 0accessType='inputOutput'/>
 29                      <field name='leftBladeSizetype='SFVec3fvalue='0.4 0.4 0.4accessType='inputOutput'/>
 30                      <field name='leftSideBladeHeighttype='SFVec3fvalue='0 24 0accessType='inputOutput'/>
 31                 </ProtoInterface>
 32                 <ProtoBody>
 33                      <Group>
 34                           <Transform DEF='stipecenter='0 -16 0translation='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='falseheight='28.0radius='0.2top='false'/>
 40                                </Shape>
 41 
                              <!-- ROUTE information for horizontalStipe node:  [from horizontalStipeMover.value_changed to set_rotation ] -->
                              <Transform DEF='horizontalStipecenter='0 16 0rotation='0 0 1 1.5707scale='0.5 0.3 0.5translation='1.3 0 0'>
 42                                     <Transform>
 43                                          <Shape USE='stemShape'/>
 44                                     </Transform>
 45                                     <Transform DEF='blade_X1rotation='0 1 0 1.0translation='0 12 0'>
 46 
                                        <!-- Transform bladeRotateZ is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                        <Transform DEF='bladeRotateZrotation='0 0 1 -1.2'>
 47 
                                             <!-- Transform BLADE is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
                                             <Transform DEF='BLADEcenter='-0.5 0 0translation='1 0 0'>
 48 
                                                  <!-- Inline bulb is a DEF node that has 1 USE node: USE_1 -->
                                                  <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_X2rotation='0 1 0 -1.0'>
 53                                          <Transform USE='bladeRotateZ'/>
 54                                     </Transform>
 55                                     <Transform DEF='blade_X3rotation='0 1 0 4.342translation='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.57crossSection='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 0scale='1 1 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5spine='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_Y1rotation='0 0 1 1.2'>
 67                                <IS>
 68                                     <connect nodeField='scaleprotoField='frontBladeSize'/>
 69                                     <connect nodeField='translationprotoField='frontSideBladeHeight'/>
 70                                </IS>
 71                                <Transform USE='BLADE'/>
 72                           </Transform>
 73                           <Transform DEF='blade_Y2rotation='0 1 0 4.2'>
 74                                <IS>
 75                                     <connect nodeField='scaleprotoField='rightBladeSize'/>
 76                                     <connect nodeField='translationprotoField='rightSideBladeHeight'/>
 77                                </IS>
 78 
                              <!-- Transform bladeToTheSide is a DEF node that has 1 USE node: USE_1 -->
                              <Transform DEF='bladeToTheSiderotation='1 0 0 3.142'>
 79                                     <Transform rotation='0 0 1 -1.2'>
 80                                          <Transform DEF='rotateBlade90center='-0.5 0 0rotation='1 0 0 1.5707translation='1 0 0'>
 81                                               <Inline USE='bulb'/>
 82                                          </Transform>
 83                                     </Transform>
 84                                </Transform>
 85                           </Transform>
 86                           <Transform DEF='blade_Y3rotation='0 1 0 3.2'>
 87                                <IS>
 88                                     <connect nodeField='scaleprotoField='rearBladeSize'/>
 89                                     <connect nodeField='translationprotoField='rearSideBladeHeight'/>
 90                                </IS>
 91                                <Transform DEF='Blade-Zrotation='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_Y4rotation='0 1 0 1.2'>
 98                                <IS>
 99                                     <connect nodeField='scaleprotoField='leftBladeSize'/>
100                                     <connect nodeField='translationprotoField='leftSideBladeHeight'/>
101                                </IS>
102                                <Transform USE='bladeToTheSide'/>
103                           </Transform>
104 
                         <!-- ROUTE information for Clock node:  [from fraction_changed to horizontalStipeMover.set_fraction ] -->
                         <TimeSensor DEF='ClockcycleInterval='5.5loop='true'/>
105 
                         <!-- ROUTE information for horizontalStipeMover node:  [from Clock.fraction_changed to set_fraction ] [from value_changed to horizontalStipe.set_rotation ] -->
                         <OrientationInterpolator DEF='horizontalStipeMoverkey='0 0.25 0.5 0.75 1.0keyValue='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 exampleposition='0 0 8'/>
113            <!-- Redirection text in case a user examines this PROTO file via a 3D browser: -->
114            <Anchor DEF='TouchTextForExampledescription='KelpNoBaseparameter='"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 1emissiveColor='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 Index for DEF nodes: 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: 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, accessType and type, XML data types, field types

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

Clock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
horizontalStipeMover
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
horizontalStipeMover
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(2)
horizontalStipe
Transform
set_rotation
SFRotation

TouchTextForExample
Anchor
description='KelpNoBase' 
User-interaction hint for this node. 

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