X3D Model Documentation: Bell.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='Bell.x3d'/>
  6            <meta name='descriptioncontent='Bell for San Carlos Cathedral'/>
  7            <meta name='creatorcontent='Michele Foti'/>
  8            <meta name='createdcontent='8 March 2012'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name=' TODO content=' update bell sound with proper recording of actual bells at San Carlos '/>
 11            <meta name='referencecontent='TODO.html'/>
 12            <meta name=' TODO content=' invert geometry? '/>
 13            <meta name='referencecontent='http://www.sancarloscathedral.net'/>
 14            <meta name='referencecontent='RoyalPresidioChapelHistoricalReferences.pdf'/>
 15            <meta name='referencecontent='CulturalHeritageProjectSanCarlosCathedral.pdf'/>
 16            <meta name='referencecontent='originals/'/>
 17            <meta name='referencecontent='originals/ModelSanCarlosChurchFeb-3-2012.x3d'/>
 18            <meta name=' warning content=' under development '/>
 19            <meta name='referencecontent='http://www.audiomicro.com/church-bell-horns-bells-church-bell-free-sound-effects-45577'/>
 20            <meta name='generatorcontent='Audacity, http://audacity.sourceforge.net'/>
 21            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Bell.x3d'/>
 22            <meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
 23            <meta name='licensecontent='../license.html'/>
 24       </head>
<!--

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

<!-- to top Index for DEF nodes: Bell, BellClapper, BellClapper1, BellClapper2, BellColor, BellColor2, BellShape, BellSupport, BellSupportArc, BellSupportArc1, BellSupportArc2, BellSupportArc3, BellSupportArc4, BellSupportArc5, BellSupportOrizzontal, ChurchBellOneTime, Gray1, RotateBell, RotateClapper, TimeSensor, Toggler, TouchButton
-->
 25       <Scene>
 26            <WorldInfo title='Bell.x3d'/>
 27            <Background skyColor='1 1 1'/>
 28            <Transform DEF='Bellrotation='0 1 0 -1.57translation='0.75 -0.8 0'>
 29                 <!-- Bell shape -->
 30 
               <!-- ROUTE information for TouchButton node:  [from isActive to Toggler.set_boolean ] -->
               <TouchSensor DEF='TouchButtondescription='touch to activate'/>
 31 
               <!-- ROUTE information for BellShape node:  [from RotateBell.value_changed to rotation ] -->
               <Transform DEF='BellShapecenter='0 0.55 0scale='4.2 1.2 4.2translation='-0.14 0.55 0.75'>
 32                      <Shape>
 33                           <Extrusion beginCap='falseconvex='falsecreaseAngle='1.57crossSection='0.142 0 0.141822 0.0071 0.141288 0.0142 0.140393 0.0213 0.139131 0.0284 0.137491 0.0355 0.135459 0.0426 0.133018 0.0497 0.130145 0.0568 0.12681 0.0639 0.122976 0.071 0.118593 0.0781 0.1136 0.0852 0.107911 0.0923 0.101408 0.0994 0.093924 0.1065 0.0852 0.1136 0.074803 0.1207 0.061896 0.1278 0.044339 0.1349 0 0.142 -0 0.142 -0.044339 0.1349 -0.061896 0.1278 -0.074803 0.1207 -0.0852 0.1136 -0.093924 0.1065 -0.101408 0.0994 -0.107911 0.0923 -0.1136 0.0852 -0.118593 0.0781 -0.122976 0.071 -0.12681 0.0639 -0.130145 0.0568 -0.133018 0.0497 -0.135459 0.0426 -0.137491 0.0355 -0.139131 0.0284 -0.140393 0.0213 -0.141288 0.0142 -0.141822 0.0071 -0.142 0 -0.142 0 -0.1349 -0.044339 -0.1278 -0.061896 -0.1207 -0.074803 -0.1136 -0.0852 -0.1065 -0.093924 -0.0994 -0.101408 -0.0923 -0.107911 -0.0852 -0.1136 -0.0781 -0.118593 -0.071 -0.122976 -0.0639 -0.12681 -0.0568 -0.130145 -0.0497 -0.133018 -0.0426 -0.135459 -0.0355 -0.137491 -0.0284 -0.139131 -0.0213 -0.140393 -0.0142 -0.141288 -0.0071 -0.141822 0 -0.142 0.044339 -0.1349 0.061896 -0.1278 0.074803 -0.1207 0.0852 -0.1136 0.093924 -0.1065 0.101408 -0.0994 0.107911 -0.0923 0.1136 -0.0852 0.118593 -0.0781 0.122976 -0.071 0.12681 -0.0639 0.130145 -0.0568 0.133018 -0.0497 0.135459 -0.0426 0.137491 -0.0355 0.139131 -0.0284 0.140393 -0.0213 0.141288 -0.0142 0.141822 -0.0071 0.142 0scale='1 1 0.9 0.9 0.8 0.8 0.73 0.73 0.68 0.68 0.65 0.65 0.595 0.595 0.5 0.5solid='falsespine='0 0 0 0 0.08 0 0 0.1 0 0 0.183 0 0 0.266 0 0 0.35 0 0 0.6 0 0 0.65 0'/>
 34                           <Appearance>
 35                                <Material DEF='BellColordiffuseColor='0.6 0.6 0.6'/>
 36                           </Appearance>
 37                      </Shape>
 38                 </Transform>
 39                 <!-- Support -->
 40                 <Transform DEF='BellSupportrotation='0 1 0 1.57scale='1.12 0.85 0.85translation='-0.15 0.27 -0.286'>
 41                      <Transform DEF='BellSupportOrizzontalrotation='0 0 1 1.57translation='-0.92 0.975 0'>
 42                           <Shape>
 43                                <Cylinder height='1.5radius='0.05'/>
 44                                <Appearance>
 45 
                                   <!-- Material Gray1 is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 -->
                                   <Material DEF='Gray1diffuseColor='0.333 0.266 0.274'/>
 46                                </Appearance>
 47                           </Shape>
 48                      </Transform>
 49                      <Transform DEF='BellSupportArctranslation='0 -0.05 0'>
 50                           <Transform DEF='BellSupportArc1translation='-0.93 1.37 0'>
 51                                <Shape>
 52                                     <Box size='0.553 0.07 0.07'/>
 53                                     <Appearance>
 54                                          <Material USE='Gray1'/>
 55                                     </Appearance>
 56                                </Shape>
 57                           </Transform>
 58                           <Transform DEF='BellSupportArc2rotation='0 0 1 0.785translation='-1.25 1.31 0'>
 59                                <Shape>
 60                                     <Box size='0.2 0.07 0.07'/>
 61                                     <Appearance>
 62                                          <Material USE='Gray1'/>
 63                                     </Appearance>
 64                                </Shape>
 65                           </Transform>
 66                           <Transform DEF='BellSupportArc3rotation='0 0 1 1.57translation='-1.31 1.163 0'>
 67                                <Shape>
 68                                     <Box size='0.2 0.07 0.07'/>
 69                                     <Appearance>
 70                                          <Material USE='Gray1'/>
 71                                     </Appearance>
 72                                </Shape>
 73                           </Transform>
 74                           <Transform DEF='BellSupportArc4rotation='0 0 1 -0.785translation='-0.61 1.31 0'>
 75                                <Shape>
 76                                     <Box size='0.2 0.07 0.07'/>
 77                                     <Appearance>
 78                                          <Material USE='Gray1'/>
 79                                     </Appearance>
 80                                </Shape>
 81                           </Transform>
 82                           <Transform DEF='BellSupportArc5rotation='0 0 1 1.57translation='-0.55 1.163 0'>
 83                                <Shape>
 84                                     <Box size='0.2 0.07 0.07'/>
 85                                     <Appearance>
 86                                          <Material USE='Gray1'/>
 87                                     </Appearance>
 88                                </Shape>
 89                           </Transform>
 90                      </Transform>
 91                 </Transform>
 92                 <!-- Clapper -->
 93 
               <!-- ROUTE information for BellClapper node:  [from RotateClapper.value_changed to rotation ] -->
               <Transform DEF='BellClappercenter='0 0.2 0translation='-0.15 0.87 0.75'>
 94                      <Transform DEF='BellClapper1'>
 95                           <Shape>
 96                                <Cylinder height='0.4radius='0.03'/>
 97                                <Appearance>
 98 
                                   <!-- Material BellColor2 is a DEF node that has 1 USE node: USE_1 -->
                                   <Material DEF='BellColor2diffuseColor='0.558 0.500 0.500'/>
 99                                </Appearance>
100                           </Shape>
101                      </Transform>
102                      <Transform DEF='BellClapper2translation='0 -0.2 0'>
103                           <Shape>
104                                <Sphere radius='0.05'/>
105                                <Appearance>
106                                     <Material USE='BellColor2'/>
107                                </Appearance>
108                           </Shape>
109                      </Transform>
110                 </Transform>
111                 <Sound location='0 0.5 0'>
112                      <!-- TODO update sound source using actual San Carlos recording -->
113                      <!-- This bell recording is 3 seconds and matches our TimeSensor cycleInterval -->
114 
                    <!-- ROUTE information for ChurchBellOneTime node:  [from TimeSensor.cycleTime to startTime ] -->
                    <AudioClip DEF='ChurchBellOneTimedescription='Church bell tolling'   url=' "ChurchBellOneTime.wav" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchBellOneTime.wav" '/>
115                 </Sound>
116                 <!-- Animation -->
117 
               <!-- ROUTE information for Toggler node:  [from TouchButton.isActive to set_boolean ] [from toggle_changed to TimeSensor.loop ] -->
               <BooleanToggle DEF='TogglercontainerField='children'/>
118                 < ROUTE  fromNode='TouchButton' fromField='isActive' toNode='Toggler' toField='set_boolean'/>
119 
               <!-- ROUTE information for TimeSensor node:  [from Toggler.toggle_changed to loop ] [from cycleTime to ChurchBellOneTime.startTime ] [from fraction_changed to RotateClapper.set_fraction ] [from fraction_changed to RotateBell.set_fraction ] -->
               <TimeSensor DEF='TimeSensorcycleInterval='3'/>
120                 < ROUTE  fromNode='Toggler' fromField='toggle_changed' toNode='TimeSensor' toField='loop'/>
121                 < ROUTE  fromNode='TimeSensor' fromField='cycleTime' toNode='ChurchBellOneTime' toField='startTime'/>
122 
               <!-- ROUTE information for RotateBell node:  [from TimeSensor.fraction_changed to set_fraction ] [from value_changed to BellShape.rotation ] -->
               <OrientationInterpolator DEF='RotateBellkey='0 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1keyValue='0 0 1 0 0 0 1 -0.5 0 0 1 -0.7 0 0 1 -0.9 0 0 1 -1 0 0 1 0 0 0 1 1 0 0 1 0.9 0 0 1 0.7 0 0 1 0.2 0 0 1 0'/>
123 
               <!-- ROUTE information for RotateClapper node:  [from TimeSensor.fraction_changed to set_fraction ] [from value_changed to BellClapper.rotation ] -->
               <OrientationInterpolator DEF='RotateClapperkey='0 0.05 0.1 0.15 0.25 0.35 0.48 0.52 0.55 0.64 0.70 0.75 0.80 0.90 1keyValue='0 0 1 0 0 0 1 -0.5 0 0 1 -0.8 0 0 1 -0.8 0 0 1 -1 0 0 1 -0.5 0 0 1 0.3 0 0 1 0.8 0 0 1 1.6 0 0 1 2.1 0 0 1 1.5 0 0 1 1 0 0 1 0.4 0 0 1 0.2 0 0 1 0'/>
124                 < ROUTE  fromNode='TimeSensor' fromField='fraction_changed' toNode='RotateClapper' toField='set_fraction'/>
125                 < ROUTE  fromNode='TimeSensor' fromField='fraction_changed' toNode='RotateBell' toField='set_fraction'/>
126                 < ROUTE  fromNode='RotateBell' fromField='value_changed' toNode='BellShape' toField='rotation'/>
127                 < ROUTE  fromNode='RotateClapper' fromField='value_changed' toNode='BellClapper' toField='rotation'/>
128            </Transform>
129       </Scene>
130  </X3D>
<!--

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

<!-- to top Index for DEF nodes: Bell, BellClapper, BellClapper1, BellClapper2, BellColor, BellColor2, BellShape, BellSupport, BellSupportArc, BellSupportArc1, BellSupportArc2, BellSupportArc3, BellSupportArc4, BellSupportArc5, BellSupportOrizzontal, ChurchBellOneTime, Gray1, RotateBell, RotateClapper, TimeSensor, Toggler, TouchButton
-->
X3D Tooltips element index: Appearance, AudioClip, Background, BooleanToggle, Box, Cylinder, Extrusion, head, Material, meta, OrientationInterpolator, ROUTE, Scene, Shape, Sound, Sphere, TimeSensor, TouchSensor, Transform, WorldInfo, X3D, accessType and type, XML data types, 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.

TouchButton
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
Toggler
BooleanToggle
set_boolean
SFBool
then
 
 
 
Toggler
BooleanToggle
toggle_changed
SFBool

ROUTE
event to
(2)
TimeSensor
TimeSensor
loop
SFBool
then
 
 
 
TimeSensor
TimeSensor
cycleTime
SFTime

ROUTE
event to
(3)
ChurchBellOneTime
AudioClip
startTime
SFTime
  then
 
 
 
TimeSensor
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(3)
RotateClapper
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RotateClapper
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(4)
BellClapper
Transform
rotation
SFRotation
  then
 
 
 
TimeSensor
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(3)
RotateBell
OrientationInterpolator
set_fraction
SFFloat
then
 
 
 
RotateBell
OrientationInterpolator
value_changed
SFRotation

ROUTE
event to
(4)
BellShape
Transform
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/X3dForAdvancedModeling/SanCarlosCathedral/BellIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/Bell.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)
-->

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