X3D Model Documentation: BollardHydraulicSecurityExample.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "https://www.web3d.org/specifications/x3d-3.1.dtd">
  3  <X3D profile='Immersive' version='3.1 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.1.xsd'>
  4       <head>
  5            <meta name='titlecontent=' BollardHydraulicSecurityExample.x3d '/>
  6            <meta name='descriptioncontent='Rising/retractable security bollard: example use, showing multiple copies of a single triggered bollard.'/>
  7            <meta name='creatorcontent='Don Brutzman and MV4205 Advanced XML class'/>
  8            <meta name='createdcontent='5 September 2007'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name=' warning content=" USE copies of the DEF'ed bollard are not animating. Shouldn't they? "/>
 11            <meta name='referencecontent='http://www.atgaccess.com'/>
 12            <meta name='referencecontent=' BollardHydraulicSecurityPrototype.x3d '/>
 13            <meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityPrototype.x3d '/>
 14            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityExample.x3d '/>
 15            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 16            <meta name='licensecontent='../../license.html'/>
 17       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Bollard, ClickToLowerBollard, ClickToRaiseBollard, GroundLevel, LeftBollard, LowerInterface, RaiseInterface, RightBollard

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: BollardHydraulicSecurity
-->
 18       <Scene>
 19            <WorldInfo title='BollardHydraulicSecurityExample.x3d'/>
 20            <ExternProtoDeclare name='BollardHydraulicSecurityappinfo='A security bollard can be raised or lowered to prevent vehicle access by blocking a road. Usually multiple bollards are installed side by side raised and lowered together.'   url=' "BollardHydraulicSecurityPrototype.x3d#BollardHydraulicSecurity" "../../../Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityPrototype.x3d#BollardHydraulicSecurity" "https://www.web3d.org/x3d/content/examples/Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityPrototype.x3d#BollardHydraulicSecurity" "BollardHydraulicSecurityPrototype.wrl#BollardHydraulicSecurity" "../../../Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityPrototype.wrl#BollardHydraulicSecurity" "https://www.web3d.org/x3d/content/examples/Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityPrototype.wrl#BollardHydraulicSecurity" '>
 21                 <field name='radiustype='SFFloataccessType='initializeOnly'/>
 22                 <field name='heighttype='SFFloataccessType='initializeOnly'/>
 23                 <field name='textureUrltype='MFStringaccessType='inputOutput'/>
 24                 <field name='diffuseColortype='SFColoraccessType='inputOutput'/>
 25                 <field name='raisetype='SFBoolaccessType='inputOnly'
                appinfo='Command to raise the bollard.'/>
 26                 <field name='lowertype='SFBoolaccessType='inputOnly'
                appinfo='Command to lower the bollard.'/>
 27                 <!-- TODO: add TimeDelaySensor nodes to report completion by the following output fields -->
 28                 <field name='isRaisedtype='SFBoolaccessType='outputOnly'
                appinfo='Notification event sent when bollard is fully raised.'/>
 29                 <field name='isLoweredtype='SFBoolaccessType='outputOnly'
                appinfo='Notification event sent when bollard is fully lowered.'/>
 30            </ExternProtoDeclare>
 31            <!-- ==================== -->
 32            <Viewpoint description='Bollard viewposition='0 0 6'/>
 33            <!-- test locally during development, once complete we split this out into a separate Example scene. -->
 34 
          <!-- ROUTE information for Bollard node:  [from ClickToRaiseBollard.isActive to raise ] [from ClickToLowerBollard.isActive to lower ] -->
          <ProtoInstance name='BollardHydraulicSecurityDEF='Bollard'>
 35                 <fieldValue name='heightvalue='0.85'/>
 36                 <fieldValue name='radiusvalue='0.2'/>
 37                 <fieldValue name='textureUrlvalue=' "fan.png" '/>
 38            </ProtoInstance>
 39            <Transform DEF='RightBollardtranslation='2 0 0'>
 40                 <ProtoInstance name='BollardHydraulicSecurity'/>
 41            </Transform>
 42            <Transform DEF='LeftBollardtranslation='-2 0 0'>
 43                 <ProtoInstance name='BollardHydraulicSecurity'/>
 44            </Transform>
 45            <Shape DEF='GroundLevel'>
 46                 <Box size='10 0.01 10'/>
 47            </Shape>
 48            <Transform DEF='RaiseInterfacetranslation='-2 -1.5 0'>
 49                 <Shape>
 50                      <Text string='"Click to" "raise"'>
 51                           <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
 52                      </Text>
 53                 </Shape>
 54                 <Shape>
 55                      <Box size='3 2 0.01'/>
 56                      <Appearance>
 57                           <Material transparency='1'/>
 58                      </Appearance>
 59                 </Shape>
 60 
               <!-- ROUTE information for ClickToRaiseBollard node:  [from isActive to Bollard.raise ] -->
               <TouchSensor DEF='ClickToRaiseBollarddescription='click to raise bollard'/>
 61                 < ROUTE  fromNode='ClickToRaiseBollard' fromField='isActive' toNode='Bollard' toField='raise'/>
 62            </Transform>
 63            <Transform DEF='LowerInterfacetranslation='2 -1.5 0'>
 64                 <Shape>
 65                      <Text string='"Click to" "lower"'>
 66                           <FontStyle justify='"MIDDLE" "MIDDLE"size='0.3'/>
 67                      </Text>
 68                 </Shape>
 69                 <Shape>
 70                      <Box size='3 2 0.01'/>
 71                      <Appearance>
 72                           <Material transparency='1'/>
 73                      </Appearance>
 74                 </Shape>
 75 
               <!-- ROUTE information for ClickToLowerBollard node:  [from isActive to Bollard.lower ] -->
               <TouchSensor DEF='ClickToLowerBollarddescription='click tolower bollard'/>
 76                 < ROUTE  fromNode='ClickToLowerBollard' fromField='isActive' toNode='Bollard' toField='lower'/>
 77            </Transform>
 78       </Scene>
 79  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: Bollard, ClickToLowerBollard, ClickToRaiseBollard, GroundLevel, LeftBollard, LowerInterface, RaiseInterface, RightBollard

Index for Viewpoint node: Viewpoint_1

Index for ExternProtoDeclare definition: BollardHydraulicSecurity
-->
X3D Tooltips element index: Appearance, Box, ExternProtoDeclare, field, fieldValue, FontStyle, head, Material, meta, ProtoInstance, ROUTE, Scene, Shape, Text, TouchSensor, 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 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.

ClickToLowerBollard
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
Bollard
ProtoInstance
lower
SFBool

ClickToRaiseBollard
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
Bollard
ProtoInstance
raise
SFBool

line 40
ProtoInstance
BollardHydraulicSecurity
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

line 43
ProtoInstance
BollardHydraulicSecurity
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

      Bollard
ProtoInstance
BollardHydraulicSecurity
No direct ROUTE connection found for events to/from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

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/Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityExampleIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Buildings/SecurityPerimeter/BollardHydraulicSecurityExample.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)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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