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 | <component level='2' name='Geometry2D'/> |
6 | <meta name='title' content='TrainingArea.x3d'/> |
7 | <meta name='description' content='Complete Soccer Park with stadium, four full-size fields, and 120m x 130m training area with four futsal fields.'/> |
8 | <meta name='creator' content='Capt Beth Welliver'/> |
9 | <meta name='created' content='13 March 2008'/> |
10 | <meta name='modified' content='20 October 2019'/> |
11 | <meta name='reference' content='Side Board artwork from www.ussoccer.com'/> |
12 | <meta name='reference' content='Stadium Structure and Goal from Savage Archive, https://savage.nps.edu/Savage/Buildings/SoccerStadium/index.html'/> |
13 | <meta name='identifier' content='https://savage.nps.edu/Savage/Buildings/SoccerComplex/TrainingArea.x3d'/> |
14 | <meta name='generator' content='X3D-Edit, https://savage.nps.edu/X3D-Edit'/> |
15 | <meta name='license' content='../../license.html'/> |
16 | </head> |
17 | <Scene> |
18 | <WorldInfo title='TrainingArea.x3d'/> |
19 | <Background groundAngle='0' groundColor='0.160784 0.039216 0' skyAngle='0.1 0.15 1.309 1.571' skyColor='0.4 0.4 0.1 0.4 0.4 0.1 0 0.1 0.3 0 0.2 0.6 0.8 0.8 0.8'/> |
20 |
<!-- ROUTE information for StartingView node:
[from CameraRotation.value_changed to orientation
]
[from CameraPosition.value_changed to position
]
-->
<Viewpoint DEF='StartingView' description='At Entry Gate' orientation='0 1 0 1.57' position='385 2 -82.5'/> |
21 | <Viewpoint DEF='ComplexOverview' description='Training Area and Stadium' orientation='0.1 1 0.1 -1.98' position='-150 65 -75'/> |
22 | <Viewpoint description='Match Fields' orientation='.1 1 .1 -1.05' position='-150 65 -50'/> |
23 | <Viewpoint description='Inside Training Area View One' orientation='0 1 0 -.78' position='-60 2.5 63'/> |
24 | <Viewpoint description='Inside Training Area View Two' orientation='0 1 0 2.44' position='55 3 -65'/> |
25 | <Viewpoint description='Corner of Stadium' orientation='0 1 0 3.95' position='154 1.65 -38'/> |
26 | <!-- <Viewpoint DEF='SpinningStadium' description='Standing at Center Circle of Stadium' orientation='0 1 0 0' position='223 1.5 5'/> --> |
27 | <Viewpoint description='Looking down into Stadium' orientation='0 1 .2 2.35' position='334 77 -78'/> |
28 | <!-- <Viewpoint description='Above Stadium Across Complex' orientation='0.05 .8 .05 1.37' position='650 130 5'/> --> |
29 | <Viewpoint description='Far Away Overview' orientation='0 1 0 1.57' position='750 130 -82.5'/> |
30 |
<!-- ROUTE information for MasterTime node:
[from TriggerSign.triggerTime to startTime
]
[from fraction_changed to CameraRotation.set_fraction
]
[from fraction_changed to CameraPosition.set_fraction
]
-->
<TimeSensor DEF='MasterTime' cycleInterval='50'/> |
31 |
<!-- ROUTE information for CameraRotation node:
[from MasterTime.fraction_changed to set_fraction
]
[from value_changed to StartingView.orientation
]
-->
<OrientationInterpolator DEF='CameraRotation' key='0.0000 0.0667 0.0889 0.1111 0.1333 0.1556 0.2444 0.251864444444444 0.259284444444444 0.266704444444444 0.274124444444444 0.2815 0.288964444444444 0.296384444444444 0.303804444444444 0.311224444444444 0.3186 0.34 0.4300 0.4600 0.5175 0.5750 0.6325 0.6667 0.6937 0.7207 0.7556 0.8222 0.822422222222222 0.822622222222222 0.8889 1.0000' keyValue='0.00 1.00 0.00 1.57 0.00 1.00 0.00 0.8275 0.00 1.00 0.00 0.085 0.00 1.00 0.00 -0.6575 0.00 1.00 0.00 -1.98 0.10 1.00 0.00 -1.40 0.00 1.00 0.00 -0.78 0.00 1.00 0.00 -0.57066 0.00 1.00 0.00 -0.36132 0.00 1.00 0.00 -0.15198 0.00 1.00 0.00 0.0573599999999999 0.00 1.00 0.00 0.2667 0.00 1.00 0.00 0.47604 0.00 1.00 0.00 0.68538 0.00 1.00 0.00 0.89472 0.00 1.00 0.00 1.10406 0.00 1.00 0.00 1.3134 0.00 1.00 0.00 2.36 0.00 1.00 0.00 3.95 0.00 1.00 0.00 0.00 0.00 1.00 0.00 1.57 0.00 1.00 0.00 3.14 0.00 1.00 0.00 4.71 0.00 1.00 0.00 6.28 0 1 0.067 4.97 0 1 0.134 3.66 0 1 0.2 2.35 0.05 0.8 0.05 1.37 0.0333 0.867 0.0333 1.4367 0.0166 0.934 0.0166 1.5034 0.00 1.00 0.00 1.57 0.00 0.00 0.00 1.57'/> |
32 | < ROUTE fromNode='MasterTime' fromField='fraction_changed' toNode='CameraRotation' toField='set_fraction'/> |
33 | < ROUTE fromNode='CameraRotation' fromField='value_changed' toNode='StartingView' toField='orientation'/> |
34 |
<!-- ROUTE information for CameraPosition node:
[from MasterTime.fraction_changed to set_fraction
]
[from value_changed to StartingView.position
]
-->
<PositionInterpolator DEF='CameraPosition' key='0.0000 0.0222 0.1333 0.1422 0.1511 0.1600 0.1689 0.1778 0.2000 0.2444 0.2815 0.3186 0.3556 0.4300 0.4600 0.6667 0.8222 0.8500 0.8889 1.0000' keyValue='385.00 1.00 -82.50 385.00 2.5 -82.50 -112.00 8.00 -75.00 -116.60 14.40 -74.40 -121.20 20.80 -73.80 -125.80 27.20 -73.20 -130.40 33.60 -72.60 -135.00 40.00 -72.00 -150.00 65.00 -70.00 -60.00 2.00 63.00 -30.00 2.30 25.00 25.00 2.60 -25.00 55.00 3.00 -65.00 154.00 1.65 -38.00 223.00 1.50 5.00 223.00 1.50 5.00 334.00 77.00 -78.00 750.00 150.00 -82.50 750.00 150.00 -82.50 385.00 1.00 -82.50'/> |
35 | < ROUTE fromNode='MasterTime' fromField='fraction_changed' toNode='CameraPosition' toField='set_fraction'/> |
36 | < ROUTE fromNode='CameraPosition' fromField='value_changed' toNode='StartingView' toField='position'/> |
37 | <Transform rotation='0 1 0 1.57' translation='365 2 -80'> |
38 | <Group DEF='Sign'> |
39 |
<!-- ROUTE information for TouchSign node:
[from isActive to FilterSign.set_boolean
]
-->
<TouchSensor DEF='TouchSign' description='Touch sign to start tour'/> |
40 |
<!-- ROUTE information for FilterSign node:
[from TouchSign.isActive to set_boolean
]
[from inputTrue to TriggerSign.set_boolean
]
-->
<BooleanFilter DEF='FilterSign'/> |
41 |
<!-- ROUTE information for TriggerSign node:
[from FilterSign.inputTrue to set_boolean
]
[from triggerTime to MasterTime.startTime
]
-->
<TimeTrigger DEF='TriggerSign'/> |
42 | < ROUTE fromNode='TouchSign' fromField='isActive' toNode='FilterSign' toField='set_boolean'/> |
43 | < ROUTE fromNode='FilterSign' fromField='inputTrue' toNode='TriggerSign' toField='set_boolean'/> |
44 | < ROUTE fromNode='TriggerSign' fromField='triggerTime' toNode='MasterTime' toField='startTime'/> |
45 | |
46 | <Shape DEF='Pole'> |
47 | <Cylinder bottom='false' height='4' radius='0.3' solid='false'/> |
48 | <Appearance> |
49 | <Material ambientIntensity='0.249999' diffuseColor='0.12549 0.12549 0.12549' emissiveColor='0.541176 0.541176 0.541176' shininess='0.1' specularColor='0.52549 0.52549 0.52549'/> |
50 | </Appearance> |
51 | </Shape> |
52 | <Transform scale='.55 .55 .55' translation='0 2.1 0'> |
53 | <Inline url=' "../SoccerStadium/SoccerBall.x3d" "https://savage.nps.edu/Savage/Buildings/SoccerStadium/SoccerBall.x3d" '/> |
54 | </Transform> |
55 | </Group> |
56 | <Transform translation='5 0 0'> |
57 | <Group USE='WholePole'/> |
58 | </Transform> |
59 | <Transform translation='2.5 1.4 0'> |
60 | <Shape> |
61 | <Appearance> |
62 | <Material diffuseColor='0.058824 0.098039 1' emissiveColor='0.078431 0.090196 1'/> |
63 | </Appearance> |
64 | <Box size='4.4 1.2 .2'/> |
65 | </Shape> |
66 | <Transform translation='0 0 .1'> |
67 | <Shape> |
68 | <Appearance> |
69 | <ImageTexture url=' "WelcomeSign.jpg " "https://savage.nps.edu/Savage/Buildings/SoccerComplex/WelcomeSign.jpg " '/> |
70 | </Appearance> |
71 | <Box size='4.38 1.18 .05'/> |
72 | </Shape> |
73 | </Transform> |
74 | </Transform> |
75 | </Group> |
76 | </Transform> |
77 | <Transform translation='175 -.2 -80'> |
78 | <Group DEF='GroundBox'> |
79 | <Shape> |
80 | <Box size='550 .01 450'/> |
81 | <Appearance> |
82 | <Material diffuseColor='0 0.901961 0.007843'/> |
83 | </Appearance> |
84 | </Shape> |
85 | </Group> |
86 | </Transform> |
87 | <Group DEF='TrainingArea'> |
88 | <Shape> |
89 | <Box DEF='TrainingSurface' size='120 0.1 130'/> |
90 | <Appearance> |
91 | <ImageTexture DEF='SportTurf' url=' "blueTurf.jpg " "https://savage.nps.edu/Savage/Buildings/SoccerComplex/blueTurf.jpg " '/> |
92 | </Appearance> |
93 | </Shape> |
94 |
<!-- Group
OneTwentyBoundary is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
<Group DEF='OneTwentyBoundary'> |
95 | <Transform translation='-40 1 65'> |
96 | |
97 | </Transform> |
98 | <Transform translation='-20 1 65'> |
99 | <Inline USE='Sideboard'/> |
100 | </Transform> |
101 | <Transform translation='0 1 65'> |
102 | <Inline USE='Sideboard'/> |
103 | </Transform> |
104 | <Transform translation='20 1 65'> |
105 | <Inline USE='Sideboard'/> |
106 | </Transform> |
107 | <Transform translation='40 1 65'> |
108 | <Inline USE='Sideboard'/> |
109 | </Transform> |
110 | <Transform translation='60 1 65'> |
111 | <Inline USE='Sideboard'/> |
112 | </Transform> |
113 | </Group> |
114 | <Transform rotation='0 1 0 3.14'> |
115 | <Group USE='OneTwentyBoundary'/> |
116 | </Transform> |
117 |
<!-- Group
OneThirtyBoundary is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='OneThirtyBoundary'> |
118 | <Transform rotation='0 1 0 1.57' translation='-60 1 40'> |
119 | <Inline USE='Sideboard'/> |
120 | </Transform> |
121 | <Transform rotation='0 1 0 1.57' translation='-60 1 20'> |
122 | <Inline USE='Sideboard'/> |
123 | </Transform> |
124 | <Transform rotation='0 1 0 1.57' translation='-60 1 0'> |
125 | <Inline USE='Sideboard'/> |
126 | </Transform> |
127 | <Transform rotation='0 1 0 1.57' translation='-60 1 -20'> |
128 | <Inline USE='Sideboard'/> |
129 | </Transform> |
130 | <Transform rotation='0 1 0 1.57' translation='-60 1 -40'> |
131 | <Inline USE='Sideboard'/> |
132 | </Transform> |
133 | <Transform rotation='0 1 0 1.57' translation='-60 1 -60'> |
134 | <Inline USE='Sideboard'/> |
135 | </Transform> |
136 | </Group> |
137 | <Transform rotation='0 1 0 3.14'> |
138 | <Group USE='OneThirtyBoundary'/> |
139 | </Transform> |
140 | |
141 | <Transform DEF='FiveByFiveGrid'> |
142 | <Shape DEF='FiveBoxEdge'> |
143 | |
144 | <Material diffuseColor='1 1 1' emissiveColor='.5 .5 .5'/> |
145 | </Appearance> |
146 | <Extrusion crossSection='-.05 .05 .05 .05 .05 -.05 -.05 -.05' spine='-50 .01 55 -40 .01 55 -40 .01 35 -50 .01 35 -50 .01 55'/> |
147 | </Shape> |
148 | <Shape DEF='InsideLongLine'> |
149 | <Appearance USE='Line'/> |
150 | <Extrusion crossSection='-.05 .05 .05 .05 .05 -.05 -.05 -.05' spine='-45 .01 35 -45 .01 55'/> |
151 | </Shape> |
152 |
<!-- Shape
InsideShortLine is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<Shape DEF='InsideShortLine'> |
153 | <Appearance USE='Line'/> |
154 | <Extrusion crossSection='-.05 .05 .05 .05 .05 -.05 -.05 -.05' spine='-50 .01 40 -40 .01 40'/> |
155 | </Shape> |
156 | <Transform translation='0 0 5'> |
157 | <Shape USE='InsideShortLine'/> |
158 | </Transform> |
159 | <Transform translation='0 0 10'> |
160 | <Shape USE='InsideShortLine'/> |
161 | </Transform> |
162 | </Transform> |
163 | <Transform DEF='TenByTenGrid'> |
164 | <Shape DEF='TenBoxEdge'> |
165 | <Appearance USE='Line'/> |
166 | <Extrusion crossSection='-.05 .05 .05 .05 .05 -.05 -.05 -.05' spine='-30 .01 55 -10 .01 55 -10 .01 35 -30 .01 35 -30 .01 55'/> |
167 | </Shape> |
168 |
<!-- Shape
InsideTenGrid is a DEF node that has 1 USE node: USE_1 -->
<Shape DEF='InsideTenGrid'> |
169 | <Appearance USE='Line'/> |
170 | <Extrusion crossSection='-.05 .05 .05 .05 .05 -.05 -.05 -.05' spine='-30 .01 45 -10 .01 45'/> |
171 | </Shape> |
172 | <Transform rotation='0 1 0 1.57' translation='-65 0.1 25'> |
173 | <Shape USE='InsideTenGrid'/> |
174 | </Transform> |
175 | </Transform> |
176 | <Transform DEF='FutsalField'> |
177 | <Shape DEF='FutsalBoundary'> |
178 | <Appearance USE='Line'/> |
179 | <Extrusion crossSection='-.05 .05 .05 .05 .05 -.05 -.05 -.05' spine='10 .01 55 50 .01 55 50 .01 35 10 .01 35 10 .01 55'/> |
180 | </Shape> |
181 | <Shape DEF='FutsalMidField'> |
182 | <Appearance USE='Line'/> |
183 | <Extrusion crossSection='-.05 .05 .05 .05 .05 -.05 -.05 -.05' spine='30 .01 55 30 .01 35'/> |
184 | </Shape> |
185 | <Transform rotation='1 0 0 1.57' translation='30 .01 45'> |
186 | <Shape DEF='FutsalCenterCircle'> |
187 | <Appearance USE='Line'/> |
188 | <Circle2D radius='3'/> |
189 | </Shape> |
190 | </Transform> |
191 | <Transform rotation='0 1 0 -1.57' scale='.3 .6 .4' translation='50 0 45'> |
192 |
<!-- Inline
FutsalGoal is a DEF node that has 1 USE node: USE_1 --> <Inline DEF='FutsalGoal' url=' "../SoccerStadium/GoalPost.x3d" "https://savage.nps.edu/Savage/Buildings/SoccerStadium/GoalPost.x3d" '/> |
193 | </Transform> |
194 | <Transform rotation='0 1 0 1.57' translation='10 0 45'> |
195 | <Inline USE='FutsalGoal'/> |
196 | </Transform> |
197 | </Transform> |
198 | </Group> |
199 | <Transform translation='0 0 -30'> |
200 | <Group USE='GridLines'/> |
201 | </Transform> |
202 | <Transform translation='0 0 -60'> |
203 | <Group USE='GridLines'/> |
204 | </Transform> |
205 | <Transform translation='0 0 -90'> |
206 | <Group USE='GridLines'/> |
207 | </Transform> |
208 | </Group> |
209 | <Group DEF='Fields'> |
210 | <Transform translation='-55 0 -215'> |
211 | |
212 | <Group DEF='PitchOutline'> |
213 | <Transform translation='37.5 0 55'> |
214 | <Shape> |
215 | <Box DEF='Pitch' size='85 0.01 120' solid='false'/> |
216 | <Appearance DEF='Grass'> |
217 | <Material diffuseColor='0 0.419608 0.015686' emissiveColor='0.2 0.321569 0'/> |
218 | </Appearance> |
219 | </Shape> |
220 | </Transform> |
221 | </Group> |
222 | |
223 | <Transform translation='37.5 0.01 0'> |
224 | <Shape> |
225 | <Box DEF='Endline' size='75 .02 .12' solid='false'/> |
226 | |
227 | <Material diffuseColor='1 1 1'/> |
228 | </Appearance> |
229 | </Shape> |
230 | </Transform> |
231 | <Transform translation='0 0.01 27.5'> |
232 | <Shape> |
233 | |
234 | <Appearance USE='LineStyle'/> |
235 | </Shape> |
236 | </Transform> |
237 | <Transform translation='75 0.01 27.5'> |
238 | <Shape> |
239 | <Box USE='Sideline'/> |
240 | <Appearance USE='LineStyle'/> |
241 | </Shape> |
242 | </Transform> |
243 | <Transform translation='17.34 0.01 8.25'> |
244 | <Shape> |
245 | |
246 | <Appearance USE='LineStyle'/> |
247 | </Shape> |
248 | </Transform> |
249 | <Transform translation='57.66 0.01 8.25'> |
250 | <Shape> |
251 | <Box USE='Side18'/> |
252 | <Appearance USE='LineStyle'/> |
253 | </Shape> |
254 | </Transform> |
255 | <Transform translation='37.5 0.01 16.5'> |
256 | <Shape> |
257 | <Box DEF='Top18' size='40.32 .02 .12' solid='false'/> |
258 | <Appearance USE='LineStyle'/> |
259 | </Shape> |
260 | </Transform> |
261 | <Transform DEF='PenaltyArc' rotation='0 -1 0 0.93' translation='37.5 .01 9.14'> |
262 | <Shape> |
263 | <Appearance USE='LineStyle'/> |
264 | <Extrusion crossSection='-0.05 0.05 0.05 0.05 0.05 -0.05 -0.05 -0.05' spine='9.1440 0 0 9.1433 0 0.1163 9.1410 0 0.2326 9.1373 0 0.3489 9.1322 0 0.4651 9.1255 0 0.5812 9.1174 0 0.6972 9.1078 0 0.8131 9.0967 0 0.9289 9.0841 0 1.0446 9.0701 0 1.1600 9.0546 0 1.2753 9.0377 0 1.3904 9.0193 0 1.5052 8.9994 0 1.6198 8.9780 0 1.7342 8.9553 0 1.8482 8.9310 0 1.9620 8.9053 0 2.0755 8.8782 0 2.1886 8.8497 0 2.3013 8.8197 0 2.4137 8.7883 0 2.5257 8.7554 0 2.6373 8.7212 0 2.7484 8.6855 0 2.8591 8.6484 0 2.9694 8.6100 0 3.0792 8.5701 0 3.1884 8.5288 0 3.2972 8.4862 0 3.4054 8.4422 0 3.5131 8.3968 0 3.6202 8.3501 0 3.7267 8.3020 0 3.8326 8.2526 0 3.9379 8.2019 0 4.0426 8.1498 0 4.1466 8.0964 0 4.2499 8.0416 0 4.3525 7.9856 0 4.4545 7.9283 0 4.5557 7.8697 0 4.6562 7.8099 0 4.7559 7.7487 0 4.8549 7.6864 0 4.9530 7.6227 0 5.0504 7.5579 0 5.1470 7.4918 0 5.2427 7.4245 0 5.3376 7.3560 0 5.4316 7.2863 0 5.5247 7.2155 0 5.6169 7.1434 0 5.7083 7.0702 0 5.7987 6.9959 0 5.8881 6.9204 0 5.9766 6.8439 0 6.0642 6.7662 0 6.1508 6.6874 0 6.2363 6.6075 0 6.3209 6.5266 0 6.4044 6.4446 0 6.4869 6.3615 0 6.5684 6.2775 0 6.6488 6.1924 0 6.7281 6.1063 0 6.8063 6.0192 0 6.8834 5.9312 0 6.9594 5.8422 0 7.0343 5.7522 0 7.1081 5.6614 0 7.1807 5.5696 0 7.2521 5.4769 0 7.3223 5.3833 0 7.3914 5.2888 0 7.4593 5.1935 0 7.5260 5.0974 0 7.5914 5.0004 0 7.6556 4.9026 0 7.7186 4.8040 0 7.7804 4.7047 0 7.8409 4.6045 0 7.9001 4.5037 0 7.9580 4.4021 0 8.0146 4.2998 0 8.0700 4.1968 0 8.1240 4.0931 0 8.1768 3.9888 0 8.2282 3.8838 0 8.2782 3.7782 0 8.3270 3.6719 0 8.3743 3.5651 0 8.4204 3.4577 0 8.4650 3.3498 0 8.5083 3.2413 0 8.5503 3.1322 0 8.5908 3.0227 0 8.6299 2.9127 0 8.6677 2.8022 0 8.7040 2.6913 0 8.7390'/> |
265 | </Shape> |
266 | </Transform> |
267 | <Transform translation='28.34 0.01 2.75'> |
268 | <Shape> |
269 | |
270 | <Appearance USE='LineStyle'/> |
271 | </Shape> |
272 | </Transform> |
273 | <Transform rotation='1 0 0 1.57' translation='37.5 0.01 11'> |
274 | <Shape> |
275 | <Appearance USE='LineStyle'/> |
276 | <Disk2D DEF='PenaltySpot' outerRadius='0.12'/> |
277 | </Shape> |
278 | </Transform> |
279 | <Transform translation='46.66 0.01 2.75'> |
280 | <Shape> |
281 | <Box USE='Side6'/> |
282 | <Appearance USE='LineStyle'/> |
283 | </Shape> |
284 | </Transform> |
285 | <Transform translation='37.5 0.01 5.5'> |
286 | <Shape> |
287 | <Box DEF='Top6' size='18.32 .02 .12'/> |
288 | <Appearance USE='LineStyle'/> |
289 | </Shape> |
290 | </Transform> |
291 | <Transform translation='37.5 0.01 55'> |
292 | <Shape> |
293 | <Box DEF='Midfield' size='75 .03 .12'/> |
294 | <Appearance USE='LineStyle'/> |
295 | </Shape> |
296 | </Transform> |
297 | <Transform rotation='1 0 0 1.57'> |
298 | <Transform rotation='0 1 0 3.14'> |
299 | <Shape> |
300 | |
301 | <Appearance USE='LineStyle'/> |
302 | </Shape> |
303 | </Transform> |
304 | </Transform> |
305 | <Transform rotation='1 0 0 1.57' translation='75 0.01 0'> |
306 | <Shape> |
307 | <Arc2D USE='CornerArc'/> |
308 | <Appearance USE='Line'/> |
309 | </Shape> |
310 | </Transform> |
311 | </Group> |
312 | <Transform rotation='0 1 0 3.14' translation='75 0.01 110'> |
313 | <Group USE='Lines'/> |
314 | </Transform> |
315 | <Transform rotation='1 0 0 1.57' translation='37.5 0.01 55'> |
316 | <Shape> |
317 | <Appearance USE='LineStyle'/> |
318 | <Circle2D radius='9.15'/> |
319 | </Shape> |
320 | </Transform> |
321 | <Transform rotation='1 0 0 1.57' translation='37.5 0.01 55'> |
322 | <Shape> |
323 | <Appearance USE='LineStyle'/> |
324 | <Disk2D DEF='CenterSpot' outerRadius='0.12'/> |
325 | </Shape> |
326 | </Transform> |
327 | <Group DEF='Goal'> |
328 | <!-- Inline the goal from Savage Archive --> |
329 | <Transform translation='37.5 0 0'> |
330 |
<!-- Inline
GoalPost is a DEF node that has 1 USE node: USE_1 --> <Inline DEF='GoalPost' url=' "../SoccerStadium/GoalPost.x3d" "https://savage.nps.edu/Savage/Buildings/SoccerStadium/GoalPost.x3d" '/> |
331 | </Transform> |
332 | <Transform rotation='0 1 0 3.14' translation='37.5 0 110'> |
333 | <Inline USE='GoalPost'/> |
334 | </Transform> |
335 | </Group> |
336 | </Group> |
337 | </Transform> |
338 | <Transform translation='45 0 -215'> |
339 | <Group USE='FullField'/> |
340 | </Transform> |
341 | <Transform translation='150 0 -215'> |
342 | <Group USE='FullField'/> |
343 | </Transform> |
344 | <Transform translation='255 0 -215'> |
345 | <Group USE='FullField'/> |
346 | </Transform> |
347 | </Group> |
348 | <Transform rotation='0 1 0 1.57' translation='200 0 307'> |
349 | <Group DEF='MainStadium'> |
350 | <Transform rotation='0 1 0 3.14' scale='1.2 1 1.1' translation='300 0 20'> |
351 | <Inline url=' "StadiumStructure.x3d" "https://savage.nps.edu/Savage/Buildings/SoccerComplex/StadiumStructure.x3d" '/> |
352 | </Transform> |
353 | <Transform translation='262 0 -35'> |
354 | <Group USE='FullField'/> |
355 | </Transform> |
356 | <Transform rotation='0 1 0 1.57' translation='277 0 20'> |
357 | <Group USE='OneTwentyBoundary'/> |
358 | </Transform> |
359 | <Transform rotation='0 1 0 1.57' translation='192 0 20'> |
360 | <Group USE='OneTwentyBoundary'/> |
361 | </Transform> |
362 |
<!-- Group
EndlineBoards is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='EndlineBoards'> |
363 | <Transform translation='342 1 80'> |
364 | <Inline USE='Sideboard'/> |
365 | </Transform> |
366 | <Transform translation='322 1 80'> |
367 | <Inline USE='Sideboard'/> |
368 | </Transform> |
369 | <Transform translation='302 1 80'> |
370 | <Inline USE='Sideboard'/> |
371 | </Transform> |
372 | <Transform translation='282 1 80'> |
373 | <Inline USE='Sideboard'/> |
374 | </Transform> |
375 | </Group> |
376 | <Transform rotation='0 1 0 3.14' translation='599 0 40.5'> |
377 | <Group USE='EndlineBoards'/> |
378 | </Transform> |
379 | </Group> |
380 | </Transform> |
381 | <Group DEF='Sidewalks'> |
382 | <Shape> |
383 | |
384 | <Material diffuseColor='0.058824 0.098039 0.101961' emissiveColor='0.121569 0.2 0.2'/> |
385 | </Appearance> |
386 | <Extrusion crossSection='2.5 .05 -2.5 .05 -2.5 -.05 2.5 -.05' spine='-70 .01 -82.5 350 .01 -82.5 350 .01 -250 -70 .01 -250 -70 .01 100 350 .01 100 350 .01 -82.5'/> |
387 | </Shape> |
388 | <Shape> |
389 | <Appearance USE='Asphault'/> |
390 | <Extrusion crossSection='2.5 .05 -2.5 .05 -2.5 -.05 2.5 -.05' spine='350 .01 -82.5 375 .01 -82.5'/> |
391 | </Shape> |
392 | <Shape> |
393 | <Appearance USE='Asphault'/> |
394 | <Extrusion crossSection='2.5 .05 -2.5 .05 -2.5 -.05 2.5 -.05' spine='350 .01 -82.5 350 .01 -250'/> |
395 | </Shape> |
396 | <Shape> |
397 | <Appearance USE='Asphault'/> |
398 | <Extrusion crossSection='2.5 .05 -2.5 .05 -2.5 -.05 2.5 -.05' spine='60 .01 63 85 .01 63'/> |
399 | </Shape> |
400 | <Shape> |
401 | <Appearance USE='Asphault'/> |
402 | <Extrusion crossSection='2.5 .05 -2.5 .05 -2.5 -.05 2.5 -.05' spine='60 .01 -62 85 .01 -62'/> |
403 | </Shape> |
404 | <Shape> |
405 | <Appearance USE='Asphault'/> |
406 | <Extrusion crossSection='2.5 .05 -2.5 .05 -2.5 -.05 2.5 -.05' spine='-70 .01 -62 -60 .01 -62'/> |
407 | </Shape> |
408 | <Shape> |
409 | <Appearance USE='Asphault'/> |
410 | <Extrusion crossSection='2.5 .05 -2.5 .05 -2.5 -.05 2.5 -.05' spine='-70 .01 62 -60 .01 62'/> |
411 | </Shape> |
412 | </Group> |
413 | <Group DEF='Courtyard'> |
414 | <Transform translation='110 0 5'> |
415 | <Shape> |
416 | <Appearance> |
417 |
<!-- ImageTexture
Concrete is a DEF node that has 2 USE nodes: USE_1, USE_2 --> <ImageTexture DEF='Concrete' url=' "concreteTwo.jpg " "https://savage.nps.edu/Savage/Buildings/SoccerComplex/concreteTwo.jpg " '/> |
418 | </Appearance> |
419 | <Box size='100 .1 100'/> |
420 | </Shape> |
421 | </Transform> |
422 | <Transform translation='100 -.1 75'> |
423 | <Shape> |
424 | <Appearance> |
425 | <ImageTexture USE='Concrete'/> |
426 | </Appearance> |
427 | <Box size='30 .1 45'/> |
428 | </Shape> |
429 | </Transform> |
430 | <Transform translation='100 -.1 -61'> |
431 | <Shape> |
432 | <Appearance> |
433 | <ImageTexture USE='Concrete'/> |
434 | </Appearance> |
435 | <Box size='30 .1 39'/> |
436 | </Shape> |
437 | </Transform> |
438 | </Group> |
439 | <Transform translation='-80 1.5 101'> |
440 |
<!-- Group
PineTrees is a DEF node that has 46 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11, USE_12, USE_13, USE_14, USE_15, USE_16, USE_17, USE_18, USE_19, USE_20, USE_21, USE_22, USE_23, USE_24, USE_25, USE_26, USE_27, USE_28, USE_29, USE_30, USE_31, USE_32, USE_33, USE_34, USE_35, USE_36, USE_37, USE_38, USE_39, USE_40, USE_41, USE_42, USE_43, USE_44, USE_45, USE_46 -->
<Group DEF='PineTrees'> |
441 | <Inline DEF='Pine' url=' "PineTrees.x3d" "https://savage.nps.edu/Savage/Buildings/SoccerComplex/PineTrees.x3d" '/> |
442 | </Group> |
443 | </Transform> |
444 |
<!-- Group
DoubleRowTrees is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<Group DEF='DoubleRowTrees'> |
445 |
<!-- Group
LongRowTrees is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='LongRowTrees'> |
446 | |
447 | <Transform translation='-80 1.5 91'> |
448 | <Group USE='PineTrees'/> |
449 | </Transform> |
450 | <Transform translation='-80 1.5 81'> |
451 | <Group USE='PineTrees'/> |
452 | </Transform> |
453 | <Transform translation='-80 1.5 71'> |
454 | <Group USE='PineTrees'/> |
455 | </Transform> |
456 | <Transform translation='-80 1.5 61'> |
457 | <Group USE='PineTrees'/> |
458 | </Transform> |
459 | <Transform translation='-80 1.5 51'> |
460 | <Group USE='PineTrees'/> |
461 | </Transform> |
462 | <Transform translation='-80 1.5 41'> |
463 | <Group USE='PineTrees'/> |
464 | </Transform> |
465 | <Transform translation='-80 1.5 31'> |
466 | <Group USE='PineTrees'/> |
467 | </Transform> |
468 | <Transform translation='-80 1.5 21'> |
469 | <Group USE='PineTrees'/> |
470 | </Transform> |
471 | <Transform translation='-80 1.5 11'> |
472 | <Group USE='PineTrees'/> |
473 | </Transform> |
474 | <Transform translation='-80 1.5 1'> |
475 | <Group USE='PineTrees'/> |
476 | </Transform> |
477 | <Transform translation='-80 1.5 -11'> |
478 | <Group USE='PineTrees'/> |
479 | </Transform> |
480 | <Transform translation='-80 1.5 -21'> |
481 | <Group USE='PineTrees'/> |
482 | </Transform> |
483 | <Transform translation='-80 1.5 -31'> |
484 | <Group USE='PineTrees'/> |
485 | </Transform> |
486 | <Transform translation='-80 1.5 -41'> |
487 | <Group USE='PineTrees'/> |
488 | </Transform> |
489 | <Transform translation='-80 1.5 -51'> |
490 | <Group USE='PineTrees'/> |
491 | </Transform> |
492 | <Transform translation='-80 1.5 -61'> |
493 | <Group USE='PineTrees'/> |
494 | </Transform> |
495 | <Transform translation='-80 1.5 -71'> |
496 | <Group USE='PineTrees'/> |
497 | </Transform> |
498 | <Transform translation='-80 1.5 -81'> |
499 | <Group USE='PineTrees'/> |
500 | </Transform> |
501 | </Group> |
502 | <Transform translation='0 0 -170'> |
503 | <Group USE='RowTrees'/> |
504 | </Transform> |
505 | </Group> |
506 | <Transform translation='-5 0 5'> |
507 | <Group USE='LongRowTrees'/> |
508 | </Transform> |
509 | </Group> |
510 | <Transform rotation='0 1 0 1.57' translation='165 0 30'> |
511 | <Group USE='DoubleRowTrees'/> |
512 | </Transform> |
513 | <Transform rotation='0 1 0 1.57' translation='165 0 -345'> |
514 | <Group USE='DoubleRowTrees'/> |
515 | </Transform> |
516 | |
517 |
<!-- Group
RemainingSideTrees is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='RemainingSideTrees'> |
518 | <Transform rotation='0 1 0 1.57' translation='255 0 30'> |
519 | <Transform translation='-80 1.5 111'> |
520 | <Group USE='PineTrees'/> |
521 | </Transform> |
522 | <Transform translation='-80 1.5 101'> |
523 | <Group USE='PineTrees'/> |
524 | </Transform> |
525 | <Transform translation='-80 1.5 91'> |
526 | <Group USE='PineTrees'/> |
527 | </Transform> |
528 | <Transform translation='-80 1.5 81'> |
529 | <Group USE='PineTrees'/> |
530 | </Transform> |
531 | <Transform translation='-80 1.5 71'> |
532 | <Group USE='PineTrees'/> |
533 | </Transform> |
534 | <Transform translation='-80 1.5 61'> |
535 | <Group USE='PineTrees'/> |
536 | </Transform> |
537 | <Transform translation='-80 1.5 51'> |
538 | <Group USE='PineTrees'/> |
539 | </Transform> |
540 | <Transform translation='-80 1.5 41'> |
541 | <Group USE='PineTrees'/> |
542 | </Transform> |
543 | <Transform translation='-80 1.5 31'> |
544 | <Group USE='PineTrees'/> |
545 | </Transform> |
546 | <Transform translation='-80 1.5 21'> |
547 | <Group USE='PineTrees'/> |
548 | </Transform> |
549 | <Transform translation='-80 1.5 11'> |
550 | <Group USE='PineTrees'/> |
551 | </Transform> |
552 | </Transform> |
553 | </Group> |
554 | <Transform translation='5 0 5'> |
555 | <Group USE='RemainingSideTrees'/> |
556 | </Transform> |
557 | </Group> |
558 | <Transform translation='0 0 -375'> |
559 | <Group USE='LastTrees'/> |
560 | </Transform> |
561 | <Group DEF='DoubleFrontRow'> |
562 |
<!-- Group
FullFrontTrees is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='FullFrontTrees'> |
563 |
<!-- Group
FrontTrees is a DEF node that has 1 USE node: USE_1 -->
<Group DEF='FrontTrees'> |
564 | <Transform translation='365 1.5 91'> |
565 | <Group USE='PineTrees'/> |
566 | </Transform> |
567 | <Transform translation='365 1.5 81'> |
568 | <Group USE='PineTrees'/> |
569 | </Transform> |
570 | <Transform translation='365 1.5 71'> |
571 | <Group USE='PineTrees'/> |
572 | </Transform> |
573 | <Transform translation='365 1.5 61'> |
574 | <Group USE='PineTrees'/> |
575 | </Transform> |
576 | <Transform translation='365 1.5 51'> |
577 | <Group USE='PineTrees'/> |
578 | </Transform> |
579 | <Transform translation='365 1.5 41'> |
580 | <Group USE='PineTrees'/> |
581 | </Transform> |
582 | <Transform translation='365 1.5 31'> |
583 | <Group USE='PineTrees'/> |
584 | </Transform> |
585 | <Transform translation='365 1.5 21'> |
586 | <Group USE='PineTrees'/> |
587 | </Transform> |
588 | <Transform translation='365 1.5 11'> |
589 | <Group USE='PineTrees'/> |
590 | </Transform> |
591 | <Transform translation='365 1.5 1'> |
592 | <Group USE='PineTrees'/> |
593 | </Transform> |
594 | <Transform translation='365 1.5 -11'> |
595 | <Group USE='PineTrees'/> |
596 | </Transform> |
597 | <Transform translation='365 1.5 -21'> |
598 | <Group USE='PineTrees'/> |
599 | </Transform> |
600 | <Transform translation='365 1.5 -31'> |
601 | <Group USE='PineTrees'/> |
602 | </Transform> |
603 | <Transform translation='365 1.5 -41'> |
604 | <Group USE='PineTrees'/> |
605 | </Transform> |
606 | <Transform translation='365 1.5 -51'> |
607 | <Group USE='PineTrees'/> |
608 | </Transform> |
609 | <Transform translation='365 1.5 -61'> |
610 | <Group USE='PineTrees'/> |
611 | </Transform> |
612 | <Transform translation='365 1.5 -71'> |
613 | <Group USE='PineTrees'/> |
614 | </Transform> |
615 | </Group> |
616 | <Transform translation='0 0 -190'> |
617 | <Group USE='FrontTrees'/> |
618 | </Transform> |
619 | </Group> |
620 | <Transform translation='5 0 5'> |
621 | <Group USE='FullFrontTrees'/> |
622 | </Transform> |
623 | </Group> |
624 | </Scene> |
625 | </X3D> |
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.
TouchSign
TouchSensor isActive SFBool |
FilterSign
BooleanFilter set_boolean SFBool |
then
|
FilterSign
BooleanFilter inputTrue SFBool |
TriggerSign
TimeTrigger set_boolean SFBool |
then
|
TriggerSign
TimeTrigger triggerTime SFTime |
MasterTime
TimeSensor startTime SFTime |
then
|
MasterTime
TimeSensor fraction_changed SFFloat |
CameraRotation
OrientationInterpolator set_fraction SFFloat |
then
|
CameraRotation
OrientationInterpolator value_changed SFRotation |
StartingView
Viewpoint orientation SFRotation |
|||||
then
|
MasterTime
TimeSensor fraction_changed SFFloat |
CameraPosition
PositionInterpolator set_fraction SFFloat |
then
|
CameraPosition
PositionInterpolator value_changed SFVec3f |
StartingView
Viewpoint position SFVec3f |
<!--
Color-coding legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->