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='title' content='SanCarlosCathedral.x3d'/> |
6 | <meta name='description' content='San Carlos Cathedral is the oldest continuously functioning church and the first stone building in the State of California.'/> |
7 | <meta name='creator' content='Michele Foti, Don Brutzman'/> |
8 | <meta name='created' content='15 December 2011'/> |
9 | <meta name='modified' content='18 December 2023'/> |
10 | <meta name='reference' content='documentation/'/> |
11 | <meta name='reference' content='tests/'/> |
12 | <meta name='reference' content='TODO.html'/> |
13 | <meta name='reference' content='http://www.sancarloscathedral.net'/> |
14 | <meta name='reference' content='RoyalPresidioChapelHistoricalReferences.pdf'/> |
15 | <meta name='reference' content='originals/'/> |
16 | <meta name='Image' content='SanCarlosCathedralFrontAbove.2012February.png'/> |
17 | <meta name='reference' content='originals/ModelSanCarlosChurchFeb-3-2012.x3d'/> |
18 | <meta name=' warning ' content=' under development '/> |
19 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/SanCarlosCathedral.x3d'/> |
20 | <meta name='generator' content='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/> |
21 | <meta name='license' content='../license.html'/> |
22 | </head> |
23 | <Scene> |
24 | <WorldInfo title='SanCarlosCathedral.x3d'/> |
25 | <Background groundAngle='1.57' groundColor='0.9804 0.8235 0 0.6 0.3254902 0' skyColor='0.7216 0.8 0.9922'/> |
26 | <Group DEF='NavigationNodes'> |
27 | <!-- Note that headlight='false' while inside cathedral in order to allow LightingAlternatives.x3d lights to work properly --> |
28 |
<!-- ROUTE information for NavigationFly node:
[from touchLighting.isSelected6 to headlight
]
[from touchFlyMode.isSelected to set_bind
]
[from touchExteriorNavigation.isSelected to headlight
]
[from touchLight1.isSelected6 to headlight
]
[from touchLight2.isSelected6 to headlight
]
[from touchLight3.isSelected6 to headlight
]
[from touchLight4.isSelected6 to headlight
]
[from touchLight5.isSelected6 to headlight
]
[from touchLight6.isSelected6 to headlight
]
[from touchLight7.isSelected6 to headlight
]
[from touchLight8.isSelected6 to headlight
]
[from touchLight9.isSelected6 to headlight
]
[from touchLight10.isSelected6 to headlight
]
[from touchMid19thCentury.isSelected to headlight
]
[from touchFlyModePast.isSelected to set_bind
]
-->
<NavigationInfo DEF='NavigationFly' avatarSize='0.01 1.6 0.75' speed='4' type='"FLY" "ANY"'/> |
29 |
<!-- ROUTE information for NavigationWalk node:
[from touchWalkMode.isSelected to set_bind
]
[from touchWalkModePast.isSelected to set_bind
]
-->
<NavigationInfo DEF='NavigationWalk' avatarSize='0.01 1.6 0.75' speed='4' type='"WALK" "ANY"'/> |
30 |
<!-- ROUTE information for NavigationExamine node:
[from touchExamineMode.isSelected to set_bind
]
[from touchExamineModePast.isSelected to set_bind
]
-->
<NavigationInfo DEF='NavigationExamine' avatarSize='0.01 1.6 0.75' speed='4'/> |
31 | </Group> |
32 | <Group DEF='ViewpointNodes'> |
33 |
<!-- ROUTE information for ViewpointFrontFromGround node:
[from touchBellsSound.isSelected to set_bind
]
[from touchCoordinateSystem.isSelected to set_bind
]
[from SelectBellsFromGround.isSelected to set_bind
]
[from SelectCoordinateSystemFromGround.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointFrontFromGround' centerOfRotation='5.8 0 -24.4' description='San Carlos Cathedral, front from ground' orientation='1 0 0 0.3' position='5.8 -0.5 15'/> |
34 |
<!-- ROUTE information for ViewpointFront node:
[from SelectOutsideNorth.isSelected to set_bind
]
[from SelectOutsideNorthPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointFront' centerOfRotation='5.8 0 -24.4' description='San Carlos Cathedral, front' position='4.3 5 25'/> |
35 | <!-- <ROUTE fromField='isBound' fromNode='ViewpointFrontAbove' toField='set_bind' toNode='NavigationExamine'/> <ROUTE fromField='isBound' fromNode='ViewpointFront' toField='set_bind' toNode='NavigationExamine'/> --> |
36 | <Viewpoint DEF='ViewpointFrontAbove' centerOfRotation='5.8 0 -24.4' description='San Carlos Cathedral, front above' orientation='1 0 0 -0.349' position='5.3 16 30'/> |
37 | <Viewpoint DEF='ViewpointObliqueOutside1' centerOfRotation='5.8 0 -24.4' description='Oblique outside view, left' orientation='1 1 0 -0.5' position='-12.8 15 20'/> |
38 | <Viewpoint DEF='ViewpointOverheadView' centerOfRotation='5.8 0 -24.4' description='Overhead view' orientation='1 0 0 -1.57' position='5.8 70 -23'/> |
39 | <Viewpoint DEF='ViewpointObliqueOutside2' centerOfRotation='5.8 0 -24.4' description='Oblique outside view right' orientation='0 1 0 0.5' position='20 4 20'/> |
40 | <Viewpoint DEF='ViewpointFacadeDetails' centerOfRotation='5.8 0 -24.4' description='Facade details' orientation='1 1 0 0.6' position='9.2 4 7'/> |
41 |
<!-- ROUTE information for ViewpointRightOutside node:
[from SelectOutsideWest.isSelected to set_bind
]
[from SelectOutsideWestPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointRightOutside' centerOfRotation='5.8 0 -24.4' description='Right outside' orientation='0 1 0 1.57' position='50 -2 -26.5'/> |
42 | <Viewpoint DEF='ViewpointSacristyOutside' centerOfRotation='5.8 0 -24.4' description='Sacristy outside' orientation='0 1 0 2.37' position='30 0 -55.5'/> |
43 |
<!-- ROUTE information for ViewpointBackOutside node:
[from SelectOutsideSouth.isSelected to set_bind
]
[from SelectOutsideSouthPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointBackOutside' centerOfRotation='5.8 0 -24.4' description='Back outside' orientation='0 1 0 3.4' position='-8 7 -75'/> |
44 |
<!-- ROUTE information for ViewpointTowerBack node:
[from SelectOutsideEast.isSelected to set_bind
]
[from SelectOutsideEastPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointTowerBack' centerOfRotation='5.8 0 -24.4' description='Tower, back' orientation='0 1 0 -2.5' position='-8 5 -25'/> |
45 | <Viewpoint DEF='ViewpointInteriorLeftRearBalcony' centerOfRotation='5.8 0 -24.4' description='Interior Left rear balcony' orientation='1 1 0 -0.3' position='3 4 -5'/> |
46 |
<!-- ROUTE information for ViewpointFrontDoors node:
[from SelectEntrance.isSelected to set_bind
]
[from SelectEntrancePast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointFrontDoors' centerOfRotation='5.8 0 -24.4' description='Front doors, looking in' position='5.8 -0.3 2'/> |
47 | <Viewpoint DEF='ViewpointEntranceConfessional' centerOfRotation='5.8 0 -24.4' description='Entrance, confessional' orientation='0 1 0 -1.3' position='4.3 -0.9 -0.8'/> |
48 | <Viewpoint DEF='ViewpointRightSideWall1' centerOfRotation='5.8 0 -24.4' description='Right side wall, looking north west' orientation='0 1 0 -2.4' position='5.1 -0.8 -8.2'/> |
49 | <Viewpoint DEF='ViewpointRightSideWall2' centerOfRotation='5.8 0 -24.4' description='Right side wall, window' orientation='0 1 0 -1.87' position='5.1 1.5 -9.5'/> |
50 | <Viewpoint DEF='ViewpointRightSideWall3' centerOfRotation='5.8 0 -24.4' description='Right side wall, picture' orientation='0 1 0 -1.57' position='7.7 1 -10.5'/> |
51 | <Viewpoint DEF='ViewpointRightSideWall4' centerOfRotation='5.8 0 -24.4' description='Right side wall, looking south west' orientation='0 1 0 -0.6' position='5.1 1.5 -10.5'/> |
52 |
<!-- ROUTE information for ViewpointFrontView node:
[from SelectNave.isSelected to set_bind
]
[from SelectNavePast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointFrontView' centerOfRotation='5.8 0 -24.4' description='Front view' position='5.8 0 -23'/> |
53 | <Viewpoint DEF='ViewpointBehindTheAltar' centerOfRotation='5.8 0 -24.4' description='Behind the altar' orientation='0 1 0 -0.3' position='4.8 0 -33'/> |
54 | <Viewpoint DEF='ViewpointRightTransept' centerOfRotation='5.8 0 -24.4' description='Right transept' orientation='0 1 0 -1.3' position='4.8 0 -33'/> |
55 | <Viewpoint DEF='ViewpointLateralEntrance' centerOfRotation='5.8 0 -24.4' description='Right transept, lateral entrance' orientation='0 1 0 2.8' position='13.8 -0.5 -36'/> |
56 | <Viewpoint DEF='ViewpointLeftTransept' centerOfRotation='5.8 0 -24.4' description='Left transept' orientation='0 1 0 1.3' position='9.8 0 -33'/> |
57 | <Viewpoint DEF='ViewpointAltarCrucifix' centerOfRotation='5.8 0 -24.4' description='Altar, crucifix' orientation='0 1 0 -0.1' position='4.8 0 -33'/> |
58 | <Viewpoint DEF='ViewpointSacristy' centerOfRotation='5.8 0 -24.4' description='Sacristy' orientation='0 1 0 -0.8' position='9.8 0 -40.5'/> |
59 |
<!-- ROUTE information for ViewpointSacristyAndBackRoom node:
[from SelectSacristy.isSelected to set_bind
]
[from SelectSacristyPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointSacristyAndBackRoom' centerOfRotation='5.8 0 -24.4' description='Sacristy interior and back room' orientation='0 1 0 1.5' position='17.8 0 -45.5'/> |
60 |
<!-- ROUTE information for ViewpointNaveView node:
[from SelectTranseptAxes.isSelected to set_bind
]
[from SelectTranseptAxesPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointNaveView' centerOfRotation='5.8 0 -24.4' description='Nave, view' orientation='0 1 0 3.14' position='5.8 0 -42.5'/> |
61 | <Viewpoint DEF='ViewpointNaveAndBalcony' centerOfRotation='5.8 0 -24.4' description='Nave and Balcony' orientation='0 1 0 3.14' position='5.8 0 -21'/> |
62 | <Viewpoint DEF='ViewpointPicture' centerOfRotation='5.8 0 -24.4' description='Left side wall, picture' orientation='0 1 0 1.57' position='3.8 1 -21.4'/> |
63 | <Viewpoint DEF='ViewpointPortrait' centerOfRotation='5.8 0 -24.4' description='Left side wall, picture, portrait of the man who commissioned the stations of the cross' orientation='0 1 0 1.57' position='3.2 0.85 -20.1'/> |
64 | <Viewpoint DEF='ViewpointLeftSideWall' centerOfRotation='5.8 0 -24.4' description='Left side wall, looking north est' orientation='0 1 0 2.6' position='5.8 1 -18'/> |
65 | <Viewpoint DEF='ViewpointEntranceAndStair' centerOfRotation='5.8 0 -24.4' description='Entrance, stairs to tower and balcony' orientation='0 1 0 1.9' position='6.8 -0.8 -2.5'/> |
66 | <Viewpoint DEF='ViewpointStairStairs' centerOfRotation='5.8 0 -24.4' description='Stairs to tower and balcony' orientation='0 1 0 1.57' position='6.4 0 -1.5'/> |
67 | <Viewpoint DEF='ViewpointLanding' centerOfRotation='5.8 0 -24.4' description='Landing' orientation='1 1 0 -1.1' position='-3.09 4.2 -0.7'/> |
68 | <Viewpoint DEF='ViewpointStairsToBalcony' centerOfRotation='5.8 0 -24.4' description='Stairs to balcony' orientation='0 1 0 -1.57' position='-3.09 3 -1.5'/> |
69 | <Viewpoint DEF='ViewpointBalcony' centerOfRotation='5.8 0 -24.4' description='Balcony' orientation='0 1 0 -0.7' position='2.1 4 -2.7'/> |
70 | <Viewpoint DEF='ViewpointBalconyWindow' centerOfRotation='5.8 0 -24.4' description='Balcony, window' orientation='0 1 0 -1.8' position='2.1 4 -2.7'/> |
71 |
<!-- ROUTE information for ViewpointLeftRearBalcony node:
[from SelectBalcony.isSelected to set_bind
]
[from SelectBalconyPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointLeftRearBalcony' centerOfRotation='5.8 0 -24.4' description='Left rear balcony' orientation='1 1 0 -0.3' position='3 4 -5'/> |
72 | <Viewpoint DEF='ViewpointOrgan' centerOfRotation='5.8 0 -24.4' description='Organ' orientation='0 1 0 -2.3' position='2.5 4 -7'/> |
73 | <Viewpoint DEF='ViewpointBalconyDoors' centerOfRotation='5.8 0 -24.4' description='Balcony, doors' orientation='0 1 0 2.2' position='5 4 -5'/> |
74 | <Viewpoint DEF='ViewpointTopStairs' centerOfRotation='5.8 0 -24.4' description='Top stairs to tower' orientation='0 1 0 1.57' position='4.3 4 -1.2'/> |
75 | <Viewpoint DEF='ViewpointTopStairsCloser' centerOfRotation='5.8 0 -24.4' description='Top stairs to tower, closer' orientation='0 1 0 1.8' position='2.7 4 -0.9'/> |
76 | <Viewpoint DEF='ViewpointTopStairsAndBells' centerOfRotation='5.8 0 -24.4' description='Top stairs to tower and bells' orientation='0 1 0 2.1' position='1.4 4.9 -1'/> |
77 | <Viewpoint DEF='ViewpointBells' centerOfRotation='5.8 0 -24.4' description='Bells' orientation='0 1 0 2.9' position='-0.2 5 -2'/> |
78 |
<!-- ROUTE information for ViewpointTowerBells node:
[from SelectTower.isSelected to set_bind
]
[from SelectBellsFromTower.isSelected to set_bind
]
[from SelectTowerPast.isSelected to set_bind
]
-->
<Viewpoint DEF='ViewpointTowerBells' centerOfRotation='5.8 0 -24.4' description='Tower, Bells' orientation='0 1 0 3.34' position='-1.4 6 -3'/> |
79 | <Viewpoint DEF='ViewpointTowerArcs' centerOfRotation='5.8 0 -24.4' description='Tower, arcs' orientation='0 1 0 1.57' position='-0.3 6.5 -2'/> |
80 | <Viewpoint DEF='ViewpointTowerEntrance' centerOfRotation='5.8 0 -24.4' description='Tower, entrance' orientation='0 1 0 -1.77' position='-2.2 5.2 -1.8'/> |
81 | <Viewpoint DEF='ViewpointViewFromTheTower' centerOfRotation='5.8 0 -24.4' description='View from the tower' orientation='0 1 0 0.1' position='-2 6 -0.3'/> |
82 | </Group> |
83 | <Group DEF='PrototypeDeclarations'> |
84 | <!-- ==================== <ExternProtoDeclare appinfo='Heads-up display (HUD) keeps child geometry aligned on screen in a consistent location' name='HeadsUpDisplay' url='"../../X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.x3d#HeadsUpDisplay" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.x3d#HeadsUpDisplay" "../../X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.wrl#HeadsUpDisplay" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/HeadsUpDisplayPrototype.wrl#HeadsUpDisplay'>" <field accessType='inputOutput' appinfo='X3D content positioned at HUD offset' name='children' type='MFNode'/> <field accessType='inputOutput' appinfo='offset position for HUD relative to current view location, default 0 0 -5' name='screenOffset' type='SFVec3f'/> <field accessType='outputOnly' appinfo='HUD position update (in world coordinates) relative to original location' name='position_changed' type='SFVec3f'/> <field accessType='outputOnly' appinfo='HUD orientation update relative to original location' name='orientation_changed' type='SFRotation'/> </ExternProtoDeclare> --> |
85 | <!-- ==================== --> |
86 | <ExternProtoDeclare name='ViewpointSequencer' appinfo='Sequentially binds each Viewpoint in a set of Viewpoint USE nodes, creating an automatic tour for a scene' url=' "../../Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "https://savage.nps.edu/Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "../../Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer" "https://savage.nps.edu/Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer" '> |
87 |
<field name='viewpoints' type='MFNode' accessType='initializeOnly'
appinfo='Viewpoint USE nodes that are sequentially bound'> |
88 | <!-- default value NULL node, overridden by ProtoInstance --> |
89 | </field> |
90 |
<field name='interval' type='SFTime' accessType='inputOutput'
appinfo='number of seconds between viewpoint shifts'/> |
91 |
<field name='enabled' type='SFBool' accessType='inputOutput'
appinfo='whether ViewpointSequencer is enabled or not'/> |
92 |
<field name='set_enabled' type='SFBool' accessType='inputOnly'
appinfo='whether ViewpointSequencer is enabled or not'/> |
93 |
<field name='previous' type='SFBool' accessType='inputOnly'
appinfo='bind previous Viewpoint in list'/> |
94 |
<field name='next' type='SFBool' accessType='inputOnly'
appinfo='bind next Viewpoint in list'/> |
95 |
<field name='toggleMessage' type='MFString' accessType='inputOutput'
appinfo='Select message to toggle ViewpointSequencer'/> |
96 |
<field name='toggleMessageFontSize' type='SFFloat' accessType='initializeOnly'
appinfo='Font size for toggleMessage text'/> |
97 |
<field name='toggleMessageColor' type='SFColor' accessType='inputOutput'
appinfo='Color for toggleMessage text'/> |
98 |
<field name='traceEnabled' type='SFBool' accessType='inputOutput'
appinfo='enable console output'/> |
99 | </ExternProtoDeclare> |
100 | <ProtoDeclare name='TouchSensorSelected' appinfo='TouchSensorSelected provides full TouchSensor functionality and adds output field isSelected, which only sends true events and filters out false events'> |
101 | <ProtoInterface> |
102 | <field name='description' type='SFString' accessType='inputOutput'/> |
103 |
<field name='enabled' type='SFBool' value='true' accessType='inputOutput'
appinfo='default value true'/> |
104 | <field name='metadata' type='SFNode' accessType='inputOutput'> |
105 | <!-- optional metadata about this node --> |
106 | </field> |
107 | <field name='hitNormal_changed' type='SFVec3f' accessType='outputOnly'/> |
108 | <field name='hitPoint_changed' type='SFVec3f' accessType='outputOnly'/> |
109 | <field name='hitTexCoord_changed' type='SFVec2f' accessType='outputOnly'/> |
110 | <field name='touchTime' type='SFTime' accessType='outputOnly'/> |
111 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
112 | <field name='isOver' type='SFBool' accessType='outputOnly'/> |
113 | <field name='isSelected' type='SFBool' accessType='outputOnly'/> |
114 | <field name='isSelected2' type='SFVec3f' accessType='outputOnly'/> |
115 | <field name='isSelected3' type='SFVec3f' accessType='outputOnly'/> |
116 | <field name='isSelected4' type='SFInt32' accessType='outputOnly'/> |
117 | <field name='isSelected5' type='SFInt32' accessType='outputOnly'/> |
118 | <field name='isSelected6' type='SFBool' accessType='outputOnly'/> |
119 | <field name='isSelected7' type='SFVec3f' accessType='outputOnly'/> |
120 | <field name='isSelected8' type='SFVec3f' accessType='outputOnly'/> |
121 | <field name='isSelected9' type='SFVec3f' accessType='outputOnly'/> |
122 | <field name='isSelected10' type='SFVec3f' accessType='outputOnly'/> |
123 | <field name='isSelected11' type='SFVec3f' accessType='outputOnly'/> |
124 | <field name='isSelected12' type='SFVec3f' accessType='outputOnly'/> |
125 | <field name='isSelected13' type='SFVec3f' accessType='outputOnly'/> |
126 | <field name='isSelected14' type='SFColor' accessType='outputOnly'/> |
127 | <field name='isSelected15' type='SFColor' accessType='outputOnly'/> |
128 | <field name='isSelected16' type='SFVec3f' accessType='outputOnly'/> |
129 | <field name='isSelected17' type='SFVec3f' accessType='outputOnly'/> |
130 | <field name='isSelected18' type='SFVec3f' accessType='outputOnly'/> |
131 | <field name='isSelected19' type='SFVec3f' accessType='outputOnly'/> |
132 | <field name='isSelected20' type='SFVec3f' accessType='outputOnly'/> |
133 | <field name='isSelected21' type='SFInt32' accessType='outputOnly'/> |
134 | <field name='isSelected22' type='SFInt32' accessType='outputOnly'/> |
135 | <field name='isSelected23' type='SFInt32' accessType='outputOnly'/> |
136 | <field name='isSelected24' type='SFInt32' accessType='outputOnly'/> |
137 | <field name='isSelected25' type='SFInt32' accessType='outputOnly'/> |
138 | <field name='isSelected26' type='SFInt32' accessType='outputOnly'/> |
139 | <field name='isSelected27' type='SFInt32' accessType='outputOnly'/> |
140 | <field name='isSelected28' type='SFInt32' accessType='outputOnly'/> |
141 | <field name='isSelected29' type='SFInt32' accessType='outputOnly'/> |
142 | </ProtoInterface> |
143 | <ProtoBody> |
144 |
<!-- ROUTE information for TouchSensorRootNode node:
[from isActive to BooleanFilterIsActive.set_boolean
]
[from isActive to BooleanFilterIsActive2.set_boolean
]
[from touchTime to Time.startTime
]
[from isActive to IntegerIsActive.set_boolean
]
[from isActive to IntegerIsActive2.set_boolean
]
[from isActive to IntegerIsActive3.set_boolean
]
[from isActive to IntegerIsActive4.set_boolean
]
[from isActive to IntegerIsActive5.set_boolean
]
[from isActive to IntegerIsActive6.set_boolean
]
[from isActive to IntegerIsActive7.set_boolean
]
[from isActive to IntegerIsActive8.set_boolean
]
[from isActive to IntegerIsActive9.set_boolean
]
[from isActive to IntegerIsActive10.set_boolean
]
[from isActive to IntegerIsActive11.set_boolean
]
-->
<TouchSensor DEF='TouchSensorRootNode'> |
145 | <IS> |
146 | <connect nodeField='description' protoField='description'/> |
147 | <connect nodeField='enabled' protoField='enabled'/> |
148 | <connect nodeField='metadata' protoField='metadata'/> |
149 | <connect nodeField='hitNormal_changed' protoField='hitNormal_changed'/> |
150 | <connect nodeField='hitPoint_changed' protoField='hitPoint_changed'/> |
151 | <connect nodeField='hitTexCoord_changed' protoField='hitTexCoord_changed'/> |
152 | <connect nodeField='touchTime' protoField='touchTime'/> |
153 | <connect nodeField='isActive' protoField='isActive'/> |
154 | <connect nodeField='isOver' protoField='isOver'/> |
155 | </IS> |
156 | </TouchSensor> |
157 |
<!-- ROUTE information for BooleanFilterIsActive node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<BooleanFilter DEF='BooleanFilterIsActive'> |
158 | <IS> |
159 | <connect nodeField='inputTrue' protoField='isSelected'/> |
160 | </IS> |
161 | </BooleanFilter> |
162 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='BooleanFilterIsActive' toField='set_boolean'/> |
163 |
<!-- ROUTE information for BooleanFilterIsActive2 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<BooleanFilter DEF='BooleanFilterIsActive2'> |
164 | <IS> |
165 | <connect nodeField='inputFalse' protoField='isSelected6'/> |
166 | </IS> |
167 | </BooleanFilter> |
168 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='BooleanFilterIsActive2' toField='set_boolean'/> |
169 |
<!-- ROUTE information for Time node:
[from TouchSensorRootNode.touchTime to startTime
]
[from fraction_changed to Interpolator.set_fraction
]
[from fraction_changed to Interpolator2.set_fraction
]
[from fraction_changed to Interpolator3.set_fraction
]
[from fraction_changed to Interpolator4.set_fraction
]
[from fraction_changed to Interpolator5.set_fraction
]
[from fraction_changed to Interpolator6.set_fraction
]
[from fraction_changed to Interpolator7.set_fraction
]
[from fraction_changed to Interpolator8.set_fraction
]
[from fraction_changed to Interpolator9.set_fraction
]
[from fraction_changed to Interpolator10.set_fraction
]
[from fraction_changed to Interpolator11.set_fraction
]
[from fraction_changed to Interpolator12.set_fraction
]
[from fraction_changed to Interpolator13.set_fraction
]
[from fraction_changed to Interpolator14.set_fraction
]
[from fraction_changed to ColorInterpolator.set_fraction
]
[from fraction_changed to ColorInterpolator2.set_fraction
]
-->
<TimeSensor DEF='Time'/> |
170 |
<!-- ROUTE information for Interpolator node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator' key='0 1' keyValue='0 0 0.2 0 0 0'> |
171 | <IS> |
172 | <connect nodeField='value_changed' protoField='isSelected2'/> |
173 | </IS> |
174 | </PositionInterpolator> |
175 |
<!-- ROUTE information for Interpolator2 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator2' key='0 1' keyValue='0 0 0 0 0 0.2'> |
176 | <IS> |
177 | <connect nodeField='value_changed' protoField='isSelected3'/> |
178 | </IS> |
179 | </PositionInterpolator> |
180 |
<!-- ROUTE information for Interpolator3 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator3' key='0 1' keyValue='0 0 0 0 0 1'> |
181 | <IS> |
182 | <connect nodeField='value_changed' protoField='isSelected7'/> |
183 | </IS> |
184 | </PositionInterpolator> |
185 |
<!-- ROUTE information for Interpolator4 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator4' key='0 1' keyValue='0 0 -1 0 0 -1'> |
186 | <IS> |
187 | <connect nodeField='value_changed' protoField='isSelected8'/> |
188 | </IS> |
189 | </PositionInterpolator> |
190 |
<!-- ROUTE information for Interpolator5 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator5' key='0 1' keyValue='1.3 -1.13 -1 1.3 -1.13 -0.7'> |
191 | <IS> |
192 | <connect nodeField='value_changed' protoField='isSelected9'/> |
193 | </IS> |
194 | </PositionInterpolator> |
195 |
<!-- ROUTE information for Interpolator6 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator6' key='0 1' keyValue='1.3 -1.13 -0.7 1.3 -1.13 -1'> |
196 | <IS> |
197 | <connect nodeField='value_changed' protoField='isSelected10'/> |
198 | </IS> |
199 | </PositionInterpolator> |
200 |
<!-- ROUTE information for Interpolator7 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator7' key='0 1' keyValue='0 0 -0.6 0 0 0'> |
201 | <IS> |
202 | <connect nodeField='value_changed' protoField='isSelected11'/> |
203 | </IS> |
204 | </PositionInterpolator> |
205 |
<!-- ROUTE information for Interpolator8 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator8' key='0 1' keyValue='0 0 0 0 0 -0.6'> |
206 | <IS> |
207 | <connect nodeField='value_changed' protoField='isSelected12'/> |
208 | </IS> |
209 | </PositionInterpolator> |
210 |
<!-- ROUTE information for Interpolator9 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator9' key='0 1' keyValue='0 -3 0 0 0 0'> |
211 | <IS> |
212 | <connect nodeField='value_changed' protoField='isSelected13'/> |
213 | </IS> |
214 | </PositionInterpolator> |
215 |
<!-- ROUTE information for Interpolator10 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator10' key='0 1' keyValue='0 0 -1 0 0 0'> |
216 | <IS> |
217 | <connect nodeField='value_changed' protoField='isSelected16'/> |
218 | </IS> |
219 | </PositionInterpolator> |
220 |
<!-- ROUTE information for Interpolator11 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator11' key='0 1' keyValue='0 0 0 0 0 0'> |
221 | <IS> |
222 | <connect nodeField='value_changed' protoField='isSelected17'/> |
223 | </IS> |
224 | </PositionInterpolator> |
225 |
<!-- ROUTE information for Interpolator12 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator12' key='0 1' keyValue='0 0 0 0 0 -1'> |
226 | <IS> |
227 | <connect nodeField='value_changed' protoField='isSelected18'/> |
228 | </IS> |
229 | </PositionInterpolator> |
230 |
<!-- ROUTE information for Interpolator13 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator13' key='0 1' keyValue='0 0 0 0 -3 0'> |
231 | <IS> |
232 | <connect nodeField='value_changed' protoField='isSelected19'/> |
233 | </IS> |
234 | </PositionInterpolator> |
235 |
<!-- ROUTE information for Interpolator14 node:
[from Time.fraction_changed to set_fraction
]
-->
<PositionInterpolator DEF='Interpolator14' key='0 1' keyValue='0 0 -0.2 0 0 0'> |
236 | <IS> |
237 | <connect nodeField='value_changed' protoField='isSelected20'/> |
238 | </IS> |
239 | </PositionInterpolator> |
240 | < ROUTE fromNode='TouchSensorRootNode' fromField='touchTime' toNode='Time' toField='startTime'/> |
241 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator' toField='set_fraction'/> |
242 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator2' toField='set_fraction'/> |
243 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator3' toField='set_fraction'/> |
244 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator4' toField='set_fraction'/> |
245 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator5' toField='set_fraction'/> |
246 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator6' toField='set_fraction'/> |
247 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator7' toField='set_fraction'/> |
248 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator8' toField='set_fraction'/> |
249 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator9' toField='set_fraction'/> |
250 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator10' toField='set_fraction'/> |
251 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator11' toField='set_fraction'/> |
252 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator12' toField='set_fraction'/> |
253 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator13' toField='set_fraction'/> |
254 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='Interpolator14' toField='set_fraction'/> |
255 |
<!-- ROUTE information for ColorInterpolator node:
[from Time.fraction_changed to set_fraction
]
-->
<ColorInterpolator DEF='ColorInterpolator' key='0 1' keyValue='0 0 0 1 1 1'> |
256 | <IS> |
257 | <connect nodeField='value_changed' protoField='isSelected14'/> |
258 | </IS> |
259 | </ColorInterpolator> |
260 |
<!-- ROUTE information for ColorInterpolator2 node:
[from Time.fraction_changed to set_fraction
]
-->
<ColorInterpolator DEF='ColorInterpolator2' key='0 1' keyValue='0 0 0 0 0 0'> |
261 | <IS> |
262 | <connect nodeField='value_changed' protoField='isSelected15'/> |
263 | </IS> |
264 | </ColorInterpolator> |
265 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='ColorInterpolator' toField='set_fraction'/> |
266 | < ROUTE fromNode='Time' fromField='fraction_changed' toNode='ColorInterpolator2' toField='set_fraction'/> |
267 |
<!-- ROUTE information for IntegerIsActive node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive' integerKey='1'> |
268 | <IS> |
269 | <connect nodeField='triggerValue' protoField='isSelected4'/> |
270 | </IS> |
271 | </IntegerTrigger> |
272 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive' toField='set_boolean'/> |
273 |
<!-- ROUTE information for IntegerIsActive2 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive2' integerKey='0'> |
274 | <IS> |
275 | <connect nodeField='triggerValue' protoField='isSelected5'/> |
276 | </IS> |
277 | </IntegerTrigger> |
278 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive2' toField='set_boolean'/> |
279 |
<!-- ROUTE information for IntegerIsActive3 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive3' integerKey='1'> |
280 | <IS> |
281 | <connect nodeField='triggerValue' protoField='isSelected21'/> |
282 | </IS> |
283 | </IntegerTrigger> |
284 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive3' toField='set_boolean'/> |
285 |
<!-- ROUTE information for IntegerIsActive4 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive4' integerKey='2'> |
286 | <IS> |
287 | <connect nodeField='triggerValue' protoField='isSelected22'/> |
288 | </IS> |
289 | </IntegerTrigger> |
290 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive4' toField='set_boolean'/> |
291 |
<!-- ROUTE information for IntegerIsActive5 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive5' integerKey='3'> |
292 | <IS> |
293 | <connect nodeField='triggerValue' protoField='isSelected23'/> |
294 | </IS> |
295 | </IntegerTrigger> |
296 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive5' toField='set_boolean'/> |
297 |
<!-- ROUTE information for IntegerIsActive6 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive6' integerKey='4'> |
298 | <IS> |
299 | <connect nodeField='triggerValue' protoField='isSelected24'/> |
300 | </IS> |
301 | </IntegerTrigger> |
302 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive6' toField='set_boolean'/> |
303 |
<!-- ROUTE information for IntegerIsActive7 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive7' integerKey='5'> |
304 | <IS> |
305 | <connect nodeField='triggerValue' protoField='isSelected25'/> |
306 | </IS> |
307 | </IntegerTrigger> |
308 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive7' toField='set_boolean'/> |
309 |
<!-- ROUTE information for IntegerIsActive8 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive8' integerKey='6'> |
310 | <IS> |
311 | <connect nodeField='triggerValue' protoField='isSelected26'/> |
312 | </IS> |
313 | </IntegerTrigger> |
314 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive8' toField='set_boolean'/> |
315 |
<!-- ROUTE information for IntegerIsActive9 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive9' integerKey='7'> |
316 | <IS> |
317 | <connect nodeField='triggerValue' protoField='isSelected27'/> |
318 | </IS> |
319 | </IntegerTrigger> |
320 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive9' toField='set_boolean'/> |
321 |
<!-- ROUTE information for IntegerIsActive10 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive10' integerKey='8'> |
322 | <IS> |
323 | <connect nodeField='triggerValue' protoField='isSelected28'/> |
324 | </IS> |
325 | </IntegerTrigger> |
326 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive10' toField='set_boolean'/> |
327 |
<!-- ROUTE information for IntegerIsActive11 node:
[from TouchSensorRootNode.isActive to set_boolean
]
-->
<IntegerTrigger DEF='IntegerIsActive11' integerKey='9'> |
328 | <IS> |
329 | <connect nodeField='triggerValue' protoField='isSelected29'/> |
330 | </IS> |
331 | </IntegerTrigger> |
332 | < ROUTE fromNode='TouchSensorRootNode' fromField='isActive' toNode='IntegerIsActive11' toField='set_boolean'/> |
333 | </ProtoBody> |
334 | </ProtoDeclare> |
335 | </Group> |
336 | <!-- Here strts a big switch (it finishes at line -, useful to change from the present church to the historic church. It is made up of two groups: The first one () regards everything related to the present church, the second regards everything related to the historic churc. --> |
337 |
<!-- ROUTE information for PresentToHistorichChurch node:
[from touchMid19thCentury.isSelected4 to whichChoice
]
[from touchToday.isSelected5 to whichChoice
]
-->
<Switch DEF='PresentToHistorichChurch' whichChoice='0'> |
338 | <!-- PRESENT CHURCH --> |
339 | <!-- Yellow Panel of the present church --> |
340 | <Group> |
341 | <!-- Here strts another big switch. (it finishes at line -, useful to hide or show the yellow panel. It is made up of two HUDs: The first one () is the writing 'Main menu' in the top right of the screen (when the panel is hidden), the second is the yellow panel and everything on it. --> |
342 |
<!-- ROUTE information for MainmenuToMainpanel node:
[from touchHidePanel1.isSelected5 to whichChoice
]
[from touchHidePanel2.isSelected5 to whichChoice
]
[from touchHidePanel3.isSelected5 to whichChoice
]
[from touchHidePanel4.isSelected5 to whichChoice
]
[from touchHidePanel6.isSelected5 to whichChoice
]
[from touchHidePanel7.isSelected5 to whichChoice
]
[from touchHidePanel8.isSelected5 to whichChoice
]
[from touchHidePanel9.isSelected5 to whichChoice
]
[from touchHidePanel10.isSelected5 to whichChoice
]
[from touchHidePanel11.isSelected5 to whichChoice
]
[from touchHidePanel5.isSelected5 to whichChoice
]
[from touchHidePanel12.isSelected5 to whichChoice
]
[from touchHidePanel13.isSelected5 to whichChoice
]
[from SequencUP.value_changed to whichChoice
]
[from IntStop.triggerValue to whichChoice
]
[from IntStop2.triggerValue to whichChoice
]
-->
<Switch DEF='MainmenuToMainpanel' whichChoice='0'> |
343 | <Group> |
344 |
<!-- ROUTE information for HudContainer1 node:
[from HereIAm1.orientation_changed to rotation
]
[from HereIAm1.position_changed to translation
]
-->
<Transform DEF='HudContainer1'> |
345 | <Transform translation='3 1.7 -5'> |
346 | <Group> |
347 |
<!-- ROUTE information for touchUP node:
[from touchTime to timeUP.startTime
]
-->
<TouchSensor DEF='touchUP' description='Main Menù'/> |
348 | <Shape> |
349 | <Text string='"Main Menu"'> |
350 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
351 | </Text> |
352 | <Appearance> |
353 | <Material emissiveColor='1 1 1'/> |
354 | </Appearance> |
355 | </Shape> |
356 | <Transform DEF='MainMenuSphereLeft' scale='1.05 1 2.3' translation='-0.708 0.048 0.1'> |
357 | <Shape> |
358 | <Sphere radius='0.04'/> |
359 | <Appearance> |
360 | <Material emissiveColor='1 1 1'/> |
361 | </Appearance> |
362 | </Shape> |
363 | </Transform> |
364 | <Transform DEF='MainMenuSphereRight' rotation='1 0 0 -0.23' scale='0.88 1 1.5' translation='0.589 0.039 0.1'> |
365 | <Shape> |
366 | <Sphere radius='0.04'/> |
367 | <Appearance> |
368 | <Material emissiveColor='1 1 1'/> |
369 | </Appearance> |
370 | </Shape> |
371 | </Transform> |
372 | </Group> |
373 | </Transform> |
374 | </Transform> |
375 |
<!-- ROUTE information for HereIAm1 node:
[from orientation_changed to HudContainer1.rotation
]
[from position_changed to HudContainer1.translation
]
-->
<ProximitySensor DEF='HereIAm1' size='10000000 10000000 10000000'/> |
376 | < ROUTE fromNode='HereIAm1' fromField='orientation_changed' toNode='HudContainer1' toField='rotation'/> |
377 | < ROUTE fromNode='HereIAm1' fromField='position_changed' toNode='HudContainer1' toField='translation'/> |
378 | </Group> |
379 | <Group> |
380 |
<!-- ROUTE information for HudContainer2 node:
[from HereIAm2.orientation_changed to rotation
]
[from HereIAm2.position_changed to translation
]
-->
<Transform DEF='HudContainer2'> |
381 | <Transform translation='0 0.2 -5.5'> |
382 | <Group> |
383 | <Transform scale='0.25 0.25 0.25' translation='0 0 3'> |
384 | <!-- Red pyramids are links to differents viewpoints. They are positioned in the small model of the church, on the yellow panel --> |
385 |
<!-- ROUTE information for RedPyramidTransform node:
[from touchNavigating.isSelected16 to translation
]
[from touchLighting.isSelected16 to translation
]
[from touchPictures.isSelected16 to translation
]
[from touchSources.isSelected16 to translation
]
[from touchHistoricCurch.isSelected16 to translation
]
[from touchBellsSound.isSelected16 to translation
]
[from touchCoordinateSystem.isSelected16 to translation
]
[from touchBackButton1.isSelected18 to translation
]
[from touchBackButton2.isSelected18 to translation
]
[from touchBackButton3.isSelected18 to translation
]
[from touchBackButton4.isSelected18 to translation
]
[from touchBackButton5.isSelected18 to translation
]
[from touchBackButton6.isSelected18 to translation
]
[from touchBackButton7.isSelected18 to translation
]
[from touchBackButton8.isSelected18 to translation
]
[from touchBackButton9.isSelected18 to translation
]
[from touchBackButton10.isSelected18 to translation
]
[from touchBackButton11.isSelected18 to translation
]
[from touchNavigatingPast.isSelected16 to translation
]
-->
<Transform DEF='RedPyramidTransform' translation='0 0 -1'> |
386 | <Transform scale='0.3 0.3 0.3' translation='1.6 0.1 0.5'> |
387 | <!-- Replacement --> |
388 |
<!-- ROUTE information for SelectNave node:
[from isSelected to ViewpointFrontView.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectNave'> |
389 | <fieldValue name='description' value='Nave'/> |
390 | </ProtoInstance> |
391 | < ROUTE fromNode='SelectNave' fromField='isSelected' toNode='ViewpointFrontView' toField='set_bind'/> |
392 | <!-- Prior block start... <TouchSensor DEF='touchviewpointNave' description='Nave' enabled='false'/> <TimeSensor DEF='timeviewpointNave' cycleInterval='1' enabled='true' loop='false'/> <ROUTE fromField='touchTime' fromNode='touchviewpointNave' toField='startTime' toNode='timeviewpointNave'/> <BooleanSequencer DEF='SequencviewpointNave' key='0 1' keyValue='true true'/> <ROUTE fromField='fraction_changed' fromNode='timeviewpointNave' toField='set_fraction' toNode='SequencviewpointNave'/> <ROUTE fromField='value_changed' fromNode='SequencviewpointNave' toField='set_bind' toNode='ViewpointFrontView'/> ...prior block finish --> |
393 | |
394 | <IndexedFaceSet convex='false' solid='false' coordIndex='0 1 4 -1 3 4 0 -1 3 4 2 -1 2 4 1 -1 0 1 2 3 -1'> |
395 | <Coordinate point='0 0 0 0 0 0.25 0.25 0 0.25 0.25 0 0 0.125 0.42 0.125'/> |
396 | </IndexedFaceSet> |
397 | <Appearance> |
398 | <Material diffuseColor='1 0.25 0.25'/> |
399 | </Appearance> |
400 | </Shape> |
401 | </Transform> |
402 | <Transform scale='0.3 0.3 0.3' translation='2.5 0.1 0.5'> |
403 |
<!-- ROUTE information for SelectTranseptAxes node:
[from isSelected to ViewpointNaveView.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectTranseptAxes'> |
404 | <fieldValue name='description' value='Transept/Axes'/> |
405 | </ProtoInstance> |
406 | < ROUTE fromNode='SelectTranseptAxes' fromField='isSelected' toNode='ViewpointNaveView' toField='set_bind'/> |
407 | <Shape USE='RedPyramidButton'/> |
408 | </Transform> |
409 | <Transform scale='0.3 0.3 0.3' translation='2.9 -0.5 0.5'> |
410 |
<!-- ROUTE information for SelectSacristy node:
[from isSelected to ViewpointSacristyAndBackRoom.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectSacristy'> |
411 | <fieldValue name='description' value='Sacristy'/> |
412 | </ProtoInstance> |
413 | < ROUTE fromNode='SelectSacristy' fromField='isSelected' toNode='ViewpointSacristyAndBackRoom' toField='set_bind'/> |
414 | <Shape USE='RedPyramidButton'/> |
415 | </Transform> |
416 | <Transform scale='0.3 0.3 0.3' translation='3.3 0.7 0.5'> |
417 |
<!-- ROUTE information for SelectOutsideSouth node:
[from isSelected to ViewpointBackOutside.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectOutsideSouth'> |
418 | <fieldValue name='description' value='Outside South'/> |
419 | </ProtoInstance> |
420 | < ROUTE fromNode='SelectOutsideSouth' fromField='isSelected' toNode='ViewpointBackOutside' toField='set_bind'/> |
421 | <Shape USE='RedPyramidButton'/> |
422 | </Transform> |
423 | <Transform scale='0.3 0.3 0.3' translation='1.4 0.6 0.5'> |
424 |
<!-- ROUTE information for SelectOutsideEast node:
[from isSelected to ViewpointTowerBack.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectOutsideEast'> |
425 | <fieldValue name='description' value='Outside East'/> |
426 | </ProtoInstance> |
427 | < ROUTE fromNode='SelectOutsideEast' fromField='isSelected' toNode='ViewpointTowerBack' toField='set_bind'/> |
428 | <Shape USE='RedPyramidButton'/> |
429 | </Transform> |
430 | <Transform scale='0.3 0.3 0.3' translation='1.4 -1 0.5'> |
431 |
<!-- ROUTE information for SelectOutsideWest node:
[from isSelected to ViewpointRightOutside.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectOutsideWest'> |
432 | <fieldValue name='description' value='Outside West'/> |
433 | </ProtoInstance> |
434 | < ROUTE fromNode='SelectOutsideWest' fromField='isSelected' toNode='ViewpointRightOutside' toField='set_bind'/> |
435 | <Shape USE='RedPyramidButton'/> |
436 | </Transform> |
437 | <Transform scale='0.3 0.3 0.3' translation='-0.22 0 0.5'> |
438 |
<!-- ROUTE information for SelectOutsideNorth node:
[from isSelected to ViewpointFront.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectOutsideNorth'> |
439 | <fieldValue name='description' value='Outside North'/> |
440 | </ProtoInstance> |
441 | < ROUTE fromNode='SelectOutsideNorth' fromField='isSelected' toNode='ViewpointFront' toField='set_bind'/> |
442 | <Shape USE='RedPyramidButton'/> |
443 | </Transform> |
444 | <Transform scale='0.3 0.3 0.3' translation='0.1 0 0.5'> |
445 |
<!-- ROUTE information for SelectEntrance node:
[from isSelected to ViewpointFrontDoors.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectEntrance'> |
446 | <fieldValue name='description' value='Entrance'/> |
447 | </ProtoInstance> |
448 | < ROUTE fromNode='SelectEntrance' fromField='isSelected' toNode='ViewpointFrontDoors' toField='set_bind'/> |
449 | <Shape USE='RedPyramidButton'/> |
450 | </Transform> |
451 | <Transform scale='0.3 0.3 0.3' translation='0.5 0.26 0.6'> |
452 |
<!-- ROUTE information for SelectBalcony node:
[from isSelected to ViewpointLeftRearBalcony.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectBalcony'> |
453 | <fieldValue name='description' value='Balcony'/> |
454 | </ProtoInstance> |
455 | < ROUTE fromNode='SelectBalcony' fromField='isSelected' toNode='ViewpointLeftRearBalcony' toField='set_bind'/> |
456 | <Shape USE='RedPyramidButton'/> |
457 | </Transform> |
458 | <Transform scale='0.3 0.3 0.3' translation='0.26 0.6 0.7'> |
459 |
<!-- ROUTE information for SelectTower node:
[from isSelected to ViewpointTowerBells.set_bind
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='SelectTower'> |
460 | <fieldValue name='description' value='Tower'/> |
461 | </ProtoInstance> |
462 | < ROUTE fromNode='SelectTower' fromField='isSelected' toNode='ViewpointTowerBells' toField='set_bind'/> |
463 | <Shape USE='RedPyramidButton'/> |
464 | </Transform> |
465 | </Transform> |
466 | <!-- Small models of the church on the yellow panel. One with the roof, the other without roof (249-260) --> |
467 | <Transform DEF='ChurchModelTransform' rotation='0 1 0 -1.57' scale='0.6 0.6 0.6' translation='0.2 0.4 0.3'> |
468 | <Transform rotation='0 0 1 -1.2'> |
469 | <Transform rotation='1 0 0 0'> |
470 | <!-- Switch that permits to change from the small church with roof to the one without roof --> |
471 |
<!-- ROUTE information for ChurcRoofToChurcModel node:
[from touchNavigating.isSelected4 to whichChoice
]
[from touchLighting.isSelected4 to whichChoice
]
[from touchPictures.isSelected4 to whichChoice
]
[from touchSources.isSelected4 to whichChoice
]
[from touchHistoricCurch.isSelected4 to whichChoice
]
[from touchBellsSound.isSelected4 to whichChoice
]
[from touchCoordinateSystem.isSelected4 to whichChoice
]
[from touchBackButton1.isSelected5 to whichChoice
]
[from touchBackButton2.isSelected5 to whichChoice
]
[from touchBackButton3.isSelected5 to whichChoice
]
[from touchBackButton4.isSelected5 to whichChoice
]
[from touchBackButton5.isSelected5 to whichChoice
]
[from touchBackButton6.isSelected5 to whichChoice
]
[from touchBackButton7.isSelected5 to whichChoice
]
[from touchBackButton8.isSelected5 to whichChoice
]
[from touchBackButton9.isSelected5 to whichChoice
]
[from touchBackButton10.isSelected5 to whichChoice
]
[from touchBackButton11.isSelected5 to whichChoice
]
-->
<Switch DEF='ChurcRoofToChurcModel' whichChoice='0'> |
472 | <Inline DEF='ChurchRoof' url=' "ChurchRoof.x3d" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchRoof.x3d" "ChurchRoof.wrl" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchRoof.wrl" '/> |
473 | <Inline DEF='ChurchModel' url=' "ChurchModel.x3d" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchModel.x3d" "ChurchModel.wrl" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/ChurchModel.wrl" '/> |
474 | </Switch> |
475 | </Transform> |
476 | </Transform> |
477 | </Transform> |
478 | <Transform DEF='MainPanel' translation='0.75 0 0'> |
479 | <Shape> |
480 | <Box size='6.5 3 0.2'/> |
481 | <Appearance> |
482 | <Material diffuseColor='1 0.75 0.25'/> |
483 | </Appearance> |
484 | </Shape> |
485 | </Transform> |
486 | <!-- This light is necessary when, clicking on the Lighting Button, HeadLight is turned off --> |
487 |
<!-- ROUTE information for PanelPointLight node:
[from touchLighting.isSelected to on
]
[from touchExteriorNavigation.isSelected6 to on
]
[from touchLight1.isSelected to on
]
[from touchLight2.isSelected to on
]
[from touchLight3.isSelected to on
]
[from touchLight4.isSelected to on
]
[from touchLight5.isSelected to on
]
[from touchLight6.isSelected to on
]
[from touchLight7.isSelected to on
]
[from touchLight8.isSelected to on
]
[from touchLight9.isSelected to on
]
[from touchLight10.isSelected to on
]
[from touchMid19thCentury.isSelected6 to on
]
-->
<PointLight DEF='PanelPointLight' ambientIntensity='1' location='0.75 0 1' on='false' radius='1.1'/> |
488 | <!-- First panel, or the first screen of the panel (-) --> |
489 |
<!-- ROUTE information for FirstPanel node:
[from touchNavigating.isSelected2 to translation
]
[from touchLighting.isSelected2 to translation
]
[from touchPictures.isSelected2 to translation
]
[from touchSources.isSelected2 to translation
]
[from touchHistoricCurch.isSelected2 to translation
]
[from touchNextPanel1.isSelected2 to translation
]
[from touchPreviousPanel1.isSelected3 to translation
]
[from touchBackButton1.isSelected3 to translation
]
[from touchBackButton2.isSelected3 to translation
]
[from touchBackButton3.isSelected3 to translation
]
[from touchBackButton4.isSelected3 to translation
]
[from touchBackButton5.isSelected3 to translation
]
[from touchBackButton6.isSelected3 to translation
]
[from touchBackButton7.isSelected3 to translation
]
[from touchBackButton8.isSelected3 to translation
]
[from touchBackButton9.isSelected3 to translation
]
-->
<Transform DEF='FirstPanel' translation='0 0 0.2'> |
490 | <Transform translation='-1.2 0 0'> |
491 | <Transform DEF='HidePanelText1' translation='2.2 1.2 0'> |
492 | <Shape> |
493 | <Text string='"Hide Panel"'> |
494 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
495 | </Text> |
496 | <Appearance> |
497 | <Material diffuseColor='0 0 0'/> |
498 | </Appearance> |
499 | </Shape> |
500 | </Transform> |
501 | <Transform DEF='HidePanelButton1' translation='1.5 1.28 0'> |
502 |
<!-- ROUTE information for touchHidePanel1 node:
[from isSelected5 to MainmenuToMainpanel.whichChoice
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchHidePanel1'> |
503 | <fieldValue name='description' value='Hide panel'/> |
504 | </ProtoInstance> |
505 | < ROUTE fromNode='touchHidePanel1' fromField='isSelected5' toNode='MainmenuToMainpanel' toField='whichChoice'/> |
506 | <Shape> |
507 | <Sphere radius='0.1'/> |
508 | <Appearance> |
509 | <Material diffuseColor='0 0 0'/> |
510 | </Appearance> |
511 | </Shape> |
512 | </Transform> |
513 | <Transform DEF='NavigatingText' translation='0 1 0'> |
514 | <Shape> |
515 | <Text string='"Navigating"'> |
516 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
517 | </Text> |
518 | <Appearance> |
519 | <Material diffuseColor='0 0 0'/> |
520 | </Appearance> |
521 | </Shape> |
522 | </Transform> |
523 | <Transform DEF='NavigatingButton' translation='-0.8 1.08 0'> |
524 |
<!-- ROUTE information for touchNavigating node:
[from isSelected2 to FirstPanel.translation
]
[from isSelected4 to ChurcRoofToChurcModel.whichChoice
]
[from isSelected16 to RedPyramidTransform.translation
]
[from isSelected3 to NavigatingPanel.translation
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchNavigating'> |
525 | <fieldValue name='description' value='Navigating'/> |
526 | </ProtoInstance> |
527 | < ROUTE fromNode='touchNavigating' fromField='isSelected2' toNode='FirstPanel' toField='translation'/> |
528 | < ROUTE fromNode='touchNavigating' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/> |
529 | < ROUTE fromNode='touchNavigating' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/> |
530 | <Shape> |
531 | <Sphere radius='0.1'/> |
532 | <Appearance> |
533 | <Material diffuseColor='0 0 0'/> |
534 | </Appearance> |
535 | </Shape> |
536 | </Transform> |
537 | <Transform DEF='LightingText' translation='0.25 0.6 0'> |
538 | <Shape> |
539 | <Text string='"Lighting"'> |
540 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.25'/> |
541 | </Text> |
542 | <Appearance> |
543 | <Material diffuseColor='0 0 0'/> |
544 | </Appearance> |
545 | </Shape> |
546 | </Transform> |
547 | <Transform DEF='LightingButton' translation='-0.8 0.68 0'> |
548 |
<!-- ROUTE information for touchLighting node:
[from isSelected2 to FirstPanel.translation
]
[from isSelected6 to NavigationFly.headlight
]
[from isSelected to PanelPointLight.on
]
[from isSelected4 to ChurcRoofToChurcModel.whichChoice
]
[from isSelected16 to RedPyramidTransform.translation
]
[from isSelected3 to LightingPanel.translation
]
[from isSelected17 to SourcesOfLightSpheres.translation
]
[from isSelected9 to LightDescriptions.translation
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchLighting'> |
549 | <fieldValue name='description' value='Lighting'/> |
550 | </ProtoInstance> |
551 | < ROUTE fromNode='touchLighting' fromField='isSelected2' toNode='FirstPanel' toField='translation'/> |
552 | < ROUTE fromNode='touchLighting' fromField='isSelected6' toNode='NavigationFly' toField='headlight'/> |
553 | < ROUTE fromNode='touchLighting' fromField='isSelected' toNode='PanelPointLight' toField='on'/> |
554 | < ROUTE fromNode='touchLighting' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/> |
555 | < ROUTE fromNode='touchLighting' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/> |
556 | <Shape> |
557 | <Sphere radius='0.1'/> |
558 | <Appearance> |
559 | <Material diffuseColor='0 0 0'/> |
560 | </Appearance> |
561 | </Shape> |
562 | </Transform> |
563 | <Transform DEF='PicturesText' translation='0 0.2 0'> |
564 | <Shape> |
565 | <Text string='"Pictures"'> |
566 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
567 | </Text> |
568 | <Appearance> |
569 | <Material diffuseColor='0 0 0'/> |
570 | </Appearance> |
571 | </Shape> |
572 | </Transform> |
573 | <Transform DEF='PicturesButton' translation='-0.8 0.28 0'> |
574 |
<!-- ROUTE information for touchPictures node:
[from isSelected2 to FirstPanel.translation
]
[from isSelected4 to ChurcRoofToChurcModel.whichChoice
]
[from isSelected16 to RedPyramidTransform.translation
]
[from isSelected3 to PicturesPanel.translation
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchPictures'> |
575 | <fieldValue name='description' value='Pictures'/> |
576 | </ProtoInstance> |
577 | < ROUTE fromNode='touchPictures' fromField='isSelected2' toNode='FirstPanel' toField='translation'/> |
578 | < ROUTE fromNode='touchPictures' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/> |
579 | < ROUTE fromNode='touchPictures' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/> |
580 | <Shape> |
581 | <Sphere radius='0.1'/> |
582 | <Appearance> |
583 | <Material diffuseColor='0 0 0'/> |
584 | </Appearance> |
585 | </Shape> |
586 | </Transform> |
587 | <Transform DEF='SourcesText' translation='0 -0.2 0'> |
588 | <Shape> |
589 | <Text string='"Sources"'> |
590 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
591 | </Text> |
592 | <Appearance> |
593 | <Material diffuseColor='0 0 0'/> |
594 | </Appearance> |
595 | </Shape> |
596 | </Transform> |
597 | <Transform DEF='SourcesButton' translation='-0.8 -0.12 0'> |
598 |
<!-- ROUTE information for touchSources node:
[from isSelected2 to FirstPanel.translation
]
[from isSelected4 to ChurcRoofToChurcModel.whichChoice
]
[from isSelected16 to RedPyramidTransform.translation
]
[from isSelected3 to SourcesPanel.translation
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchSources'> |
599 | <fieldValue name='description' value='Sources'/> |
600 | </ProtoInstance> |
601 | < ROUTE fromNode='touchSources' fromField='isSelected2' toNode='FirstPanel' toField='translation'/> |
602 | < ROUTE fromNode='touchSources' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/> |
603 | < ROUTE fromNode='touchSources' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/> |
604 | <Shape> |
605 | <Sphere radius='0.1'/> |
606 | <Appearance> |
607 | <Material diffuseColor='0 0 0'/> |
608 | </Appearance> |
609 | </Shape> |
610 | </Transform> |
611 | <Transform DEF='ModelingText' translation='0 -0.6 0'> |
612 | <Shape> |
613 | <Text string='"Modeling"'> |
614 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
615 | </Text> |
616 | <Appearance> |
617 | <Material diffuseColor='0 0 0'/> |
618 | </Appearance> |
619 | </Shape> |
620 | </Transform> |
621 | <Anchor description='Modeling' parameter='"target=blank"' url=' "documentation/Modeling.html" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/Modeling.html" '> |
622 | <Transform DEF='ModelingButton' translation='-0.8 -0.52 0'> |
623 | <Shape> |
624 | <Sphere radius='0.1'/> |
625 | <Appearance> |
626 | <Material diffuseColor='0 0 0'/> |
627 | </Appearance> |
628 | </Shape> |
629 | </Transform> |
630 | </Anchor> |
631 | <Transform DEF='HistoricCurchText' translation='0.25 -1 0'> |
632 | <Shape> |
633 | <Text string='"Historic church"'> |
634 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.27'/> |
635 | </Text> |
636 | <Appearance> |
637 | <Material diffuseColor='0 0 0'/> |
638 | </Appearance> |
639 | </Shape> |
640 | </Transform> |
641 | <Transform DEF='HistoricCurchButton' translation='-0.8 -0.92 0'> |
642 |
<!-- ROUTE information for touchHistoricCurch node:
[from isSelected2 to FirstPanel.translation
]
[from isSelected4 to ChurcRoofToChurcModel.whichChoice
]
[from isSelected16 to RedPyramidTransform.translation
]
[from isSelected3 to HistoricChurchPanel.translation
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchHistoricCurch'> |
643 | <fieldValue name='description' value='Historic church'/> |
644 | </ProtoInstance> |
645 | < ROUTE fromNode='touchHistoricCurch' fromField='isSelected2' toNode='FirstPanel' toField='translation'/> |
646 | < ROUTE fromNode='touchHistoricCurch' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/> |
647 | < ROUTE fromNode='touchHistoricCurch' fromField='isSelected16' toNode='RedPyramidTransform' toField='translation'/> |
648 | <Shape> |
649 | <Sphere radius='0.1'/> |
650 | <Appearance> |
651 | <Material diffuseColor='0 0 0'/> |
652 | </Appearance> |
653 | </Shape> |
654 | </Transform> |
655 | <Transform DEF='NextPanelText1' translation='-0.4 -1.3 0'> |
656 | <Shape> |
657 | <Text string='"Next Panel"'> |
658 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.2'/> |
659 | </Text> |
660 | <Appearance> |
661 | <Material diffuseColor='0 0 0'/> |
662 | </Appearance> |
663 | </Shape> |
664 | </Transform> |
665 | <Transform DEF='NextPanelButton1' translation='-0.8 -1.25 0'> |
666 |
<!-- ROUTE information for touchNextPanel1 node:
[from isSelected2 to FirstPanel.translation
]
[from isSelected3 to FirstPanelBis.translation
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchNextPanel1'> |
667 | <fieldValue name='description' value='Next Panel'/> |
668 | </ProtoInstance> |
669 | < ROUTE fromNode='touchNextPanel1' fromField='isSelected2' toNode='FirstPanel' toField='translation'/> |
670 | <Shape> |
671 | <Sphere radius='0.05'/> |
672 | <Appearance> |
673 | <Material diffuseColor='0 0 0'/> |
674 | </Appearance> |
675 | </Shape> |
676 | </Transform> |
677 | </Transform> |
678 | </Transform> |
679 | <!-- Second part of the First Panel, it appears clicking on Next Panel at the bottom () --> |
680 |
<!-- ROUTE information for FirstPanelBis node:
[from touchNextPanel1.isSelected3 to translation
]
[from touchBellsSound.isSelected2 to translation
]
[from touchCoordinateSystem.isSelected2 to translation
]
[from touchPreviousPanel1.isSelected2 to translation
]
[from touchBackButton10.isSelected3 to translation
]
[from touchBackButton11.isSelected3 to translation
]
-->
<Transform DEF='FirstPanelBis'> |
681 | < ROUTE fromNode='touchNextPanel1' fromField='isSelected3' toNode='FirstPanelBis' toField='translation'/> |
682 | <Transform translation='-1.2 0 0'> |
683 | <Transform DEF='HidePanelText2' translation='2 1.2 0'> |
684 | <Shape> |
685 | <Text string='"Hide Panel"'> |
686 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
687 | </Text> |
688 | <Appearance> |
689 | <Material diffuseColor='0 0 0'/> |
690 | </Appearance> |
691 | </Shape> |
692 | </Transform> |
693 | <Transform DEF='HidePanelButton2' translation='1.5 1.28 0'> |
694 |
<!-- ROUTE information for touchHidePanel2 node:
[from isSelected5 to MainmenuToMainpanel.whichChoice
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchHidePanel2'> |
695 | <fieldValue name='description' value='Hide panel'/> |
696 | </ProtoInstance> |
697 | < ROUTE fromNode='touchHidePanel2' fromField='isSelected5' toNode='MainmenuToMainpanel' toField='whichChoice'/> |
698 | <Shape> |
699 | <Sphere radius='0.1'/> |
700 | <Appearance> |
701 | <Material diffuseColor='0 0 0'/> |
702 | </Appearance> |
703 | </Shape> |
704 | </Transform> |
705 | <Transform DEF='ChurchHistoryText' translation='0.2 1 0'> |
706 | <Shape> |
707 | <Text string='"Church History"'> |
708 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
709 | </Text> |
710 | <Appearance> |
711 | <Material diffuseColor='0 0 0'/> |
712 | </Appearance> |
713 | </Shape> |
714 | </Transform> |
715 | <Anchor description='Church History' parameter='"target=blank"' url=' "documentation/ChurchHistory.html" "https://www.web3d.org/x3d/content/examples/X3dForAdvancedModeling/SanCarlosCathedral/documentation/ChurchHistory.html" '> |
716 | <Transform DEF='ChurchHistoryButton' translation='-0.8 1.08 0'> |
717 | <Shape> |
718 | <Sphere radius='0.1'/> |
719 | <Appearance> |
720 | <Material diffuseColor='0 0 0'/> |
721 | </Appearance> |
722 | </Shape> |
723 | </Transform> |
724 | </Anchor> |
725 | <Transform DEF='BellsSoundText' translation='0.2 0.6 0'> |
726 | <Shape> |
727 | <Text string='"Bells sound"'> |
728 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.3'/> |
729 | </Text> |
730 | <Appearance> |
731 | <Material diffuseColor='0 0 0'/> |
732 | </Appearance> |
733 | </Shape> |
734 | </Transform> |
735 | <Transform DEF='BellsSoundButton' translation='-0.8 0.68 0'> |
736 |
<!-- ROUTE information for touchBellsSound node:
[from isSelected2 to FirstPanelBis.translation
]
[from isSelected4 to ChurcRoofToChurcModel.whichChoice
]
[from isSelected16 to RedPyramidTransform.translation
]
[from isSelected to ViewpointFrontFromGround.set_bind
]
[from isSelected3 to BellsSoundPanel.translation
]
[from isSelected16 to GreenPyramidTransform.translation
]
-->
<ProtoInstance name='TouchSensorSelected' DEF='touchBellsSound'> |
737 | <fieldValue name='description' value='Bells Sound'/> |
738 | </ProtoInstance> |
739 | < ROUTE fromNode='touchBellsSound' fromField='isSelected2' toNode='FirstPanelBis' toField='translation'/> |
740 | < ROUTE fromNode='touchBellsSound' fromField='isSelected4' toNode='ChurcRoofToChurcModel' toField='whichChoice'/> |
741 | < |