1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
|
3 | <X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'> |
4 | <head> |
5 | <!-- The bow thrusters are taken from a fan and grate example from Chapter 18 of the VRML2.0 Sourcebook by Ames, Nadeau and MoreLand. --> |
6 | <!-- All other textures are the creation of the Author or are in the public domain. --> |
7 | <meta name='title' content='EhimeMaru.x3d'/> |
8 | <meta name='description' content='Model of Japanese trawler sunk by the USS Greeneville.'/> |
9 | <meta name='creator' content='Andrew Wiest'/> |
10 | <meta name='translator' content='X3d-Edit'/> |
11 | <meta name='created' content='9 May 2001'/> |
12 | <meta name='modified' content='20 October 2019'/> |
13 | <meta name='identifier' content='https://savage.nps.edu/Savage/ShipsCivilian/Trawlers/EhimeMaru.x3d'/> |
14 | <meta name='generator' content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/> |
15 | <meta name='reference' content='http://lib1.nippon-foundation.or.jp/1997/0834/contents/137.htm'/> |
16 | <meta name='photo' content='EhimeMaru137-1.jpg'/> |
17 | <meta name='photo' content='EhimeMaru137-2.gif'/> |
18 | <meta name='reference' content='http://www.nytimes.com/images/2001/03/08/national/010308_nat_subHAWAIIch.gif'/> |
19 | <meta name='reference' content='http://www.cpf.navy.mil/pages/legal/foia/Exhibit_52.pdf'/> |
20 | <meta name='reference' content='http://www.cpf.navy.mil/pages/legal/foia/Exhibit_54_pages_1_7.pdf'/> |
21 | <meta name='reference' content='http://www.cpf.navy.mil/pages/legal/foia/Exhibit_54_pages_8_14.pdf'/> |
22 | <meta name='reference' content='http://www.uscg.mil/d14/news_release/2001/Feb2001.htm#32-01'/> |
23 | <meta name='reference' content='http://www.cnn.com/video/us/2001/02/18/vo.sunk.ship.navy.html'/> |
24 | <meta name='reference' content='http://www.usanavy.com/misc/news/ehime_maru.htm'/> |
25 | <meta name='reference' content='http://www.ntsb.gov/Pressrel/2001/010302.htm'/> |
26 | <meta name='reference' content='http://www.uscg.mil/d14/news_release/2001/Mar2001.htm#43-01'/> |
27 | <meta name='reference' content='http://www.uscg.mil/d14/news_release/2001/Mar2001.htm#42-01'/> |
28 | <meta name='reference' content='http://www.uscg.mil/d14/news_release/2001/Feb2001.htm#41-01'/> |
29 | <meta name='reference' content='http://www.uscg.mil/d14/news_release/2001/Feb2001.htm#20-01'/> |
30 | <meta name='reference' content='http://www.cpf.navy.mil'/> |
31 | <meta name='reference' content='http://www.cpf.navy.mil/greeneville.html'/> |
32 | <meta name='reference' content='http://www.csp.navy.mil/css1/772/home.html'/> |
33 | <meta name='reference' content='http://www.cpf.navy.mil/greenevilleimages.html'/> |
34 | <meta name='reference' content='http://www.chinfo.navy.mil/navpalib/factfile/ShipsCivilian/ship-ssn.html'/> |
35 | <meta name='reference' content='http://www.pbs.org/wgbh/nova/subsecrets/inside.html'/> |
36 | <meta name='reference' content='http://www.nytimes.com/2001/03/09/national/09HAWA.html'/> |
37 | <meta name='reference' content='http://www.cnn.com/2001/US/03/08/japan.sub.03/index.html'/> |
38 | <meta name='reference' content='http://www.cnn.com/SPECIALS/2001/sub.collision/session1.html'/> |
39 | <meta name='reference' content='https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter18-TextureMapping/Figure18.27RotatingFanAnimatedTextureTransform.wrl'/> |
40 | <meta name='license' content='../../license.html'/> |
41 | </head> |
42 | <Scene> |
43 | <NavigationInfo speed='10'/> |
44 | <Background skyAngle='1.57' skyColor='0.6 0.8 0.6 0.6 0.6 0.6'/> |
45 | <Viewpoint description='Ehime Maru starboard quarter' orientation='-0.140128 0.988431 0.058043 0.79366' position='40 12 40'/> |
46 | <Viewpoint description='Ehime Maru from behind' orientation='0 1 0 -1.57' position='-50 6 0'/> |
47 | <Transform translation='0 5 0'> |
48 | <Shape DEF='TransparentBoxForExaminationStability'> |
49 | <Box size='60 20 12'/> |
50 | <Appearance> |
51 | <Material transparency='1'/> |
52 | </Appearance> |
53 | </Shape> |
54 | </Transform> |
55 | <Transform DEF='EhimeMaruTopTransform'> |
56 | <Transform DEF='RollTransform'> |
57 | <Transform DEF='PitchTransform'> |
58 | <Transform DEF='YawTransform'> |
59 | <Transform DEF='ScaleTransform' scale='1.41213592233 1.41213592233 1.41213592233'> |
60 | <Transform DEF='EhimeMaruParentTransform'> |
61 | <Transform DEF='LowerHull'> |
62 | <Shape> |
63 | <IndexedFaceSet creaseAngle='2' coordIndex='1 2 3 54 4 5 -1 1 6 2 -1 7 2 6 -1 7 8 3 2 -1 8 9 3 -1 1 5 6 -1 12 6 5 -1 5 4 11 12 -1 4 10 11 -1 6 14 15 7 -1 6 13 14 -1 6 12 20 21 -1 6 21 13 -1 15 16 8 7 -1 16 17 9 8 -1 11 10 18 19 -1 19 20 12 11 -1 54 3 56 -1 56 4 54 -1 56 3 55 -1 57 4 56 -1 10 4 57 -1 3 9 55 -1 18 58 17 -1 58 56 55 -1 58 57 56 -1 57 58 18 -1 10 57 18 -1 17 58 55 -1 17 55 9 -1'> |
64 |
<!-- Coordinate
HullCoordinates is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 --> <Coordinate DEF='HullCoordinates' point='0 0 0 -15 -3 0 -5 -2.8 -1 17.5 -2.4 -1 17.5 -2.4 1 -5 -2.8 1 -15 -1 0 -5 -1 -3 12.8 -1 -3 17.5 -1 -1 17.5 -1 1 12.8 -1 3 -5 -1 3 -19.3 0 0 -18 0 -2 -15 0 -3.2 12.8 0 -3.2 17.5 0 -1 17.5 0 1 12.8 0 3.2 -15 0 3.2 -18 0 2 -20 1 0 -20 1 -3.3 12.8 1 -3.3 15 1 -2.5 17 1 -1.5 18.5 1 0 17 1 1.5 15 1 2.5 12.8 1 3.3 -20 1 3.3 -20.6 2 0 -20.6 2 -3 -20 2 -3.5 12.8 2 -3.5 16 2 -2.8 19.5 2 0 16 2 2.8 12.8 2 3.5 -20 2 3.5 -20.6 2 3 -20.6 3.2 0 -20.6 3.2 -3 -20 3.2 -3.5 12.8 2.7 -3.5 16 2.9 -2.8 19 3 -1.6 20.6 3.1 0 19 3 1.6 16 2.9 2.8 12.8 2.7 3.5 -20 3.2 3.5 -20.6 3.2 3 18 -2.2 0 18.2 -1 -0.5 18.5 -1.2 0 18.2 -1 0.5 18.2 -0.7 0 5.3 3 3.5 6 2 3.5 6.7 1 3.3 5.5 3 -3.5 7 1 -3.3 6 2 -3.5'/> |
65 | </IndexedFaceSet> |
66 | <Appearance> |
67 | |
68 | </Appearance> |
69 | </Shape> |
70 | </Transform> |
71 | <Transform DEF='UpperHull'> |
72 | <Shape> |
73 | <IndexedFaceSet creaseAngle='2' solid='false' coordIndex='31 21 20 -1 13 21 31 -1 13 31 22 -1 13 22 23 -1 23 14 13 -1 23 15 14 -1 23 24 16 15 -1 16 24 25 -1 16 25 26 -1 26 17 16 -1 17 26 27 -1 19 29 30 -1 19 28 29 -1 19 18 28 -1 18 27 28 -1 18 17 27 -1 30 31 20 19 -1 32 33 23 22 -1 22 31 41 32 -1 33 34 23 -1 40 41 31 -1 34 35 24 23 -1 35 36 25 24 -1 36 26 25 -1 36 37 27 26 -1 37 38 28 27 -1 29 28 38 -1 30 29 38 39 -1 60 40 31 61 -1 42 43 33 32 -1 32 41 53 42 -1 43 44 34 33 -1 41 40 52 53 -1 44 45 35 34 -1 45 46 36 35 -1 46 47 36 -1 47 48 37 36 -1 48 49 38 37 -1 49 50 38 -1 50 51 39 38 -1 59 52 40 60 -1'> |
74 | <Coordinate USE='HullCoordinates'/> |
75 | </IndexedFaceSet> |
76 | <Appearance> |
77 |
<!-- Material
EhimeMaruWhite 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 --> <Material DEF='EhimeMaruWhite' diffuseColor='1 1 1'/> |
78 | </Appearance> |
79 | </Shape> |
80 | </Transform> |
81 | <Transform DEF='MainDeck' scale='.99 .99 .99' translation='0 -.05 0'> |
82 | <Shape> |
83 | <IndexedFaceSet solid='false' coordIndex='22 23 24 25 26 27 28 29 30 31 22 -1'> |
84 | <Coordinate USE='HullCoordinates'/> |
85 | </IndexedFaceSet> |
86 | <Appearance> |
87 |
<!-- Material
EhimeMaruDeckColor is a DEF node that has 1 USE node: USE_1 --> <Material DEF='EhimeMaruDeckColor' diffuseColor='.6 .5 .4'/> |
88 |
<!-- ImageTexture
EhimeMaruDeckSkin is a DEF node that has 5 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5 --> <ImageTexture DEF='EhimeMaruDeckSkin' url=' "EhimeMaruLargeDeckSkin.gif ![]() ![]() |
89 | </Appearance> |
90 | </Shape> |
91 | </Transform> |
92 | <Transform DEF='ForwardDeck' center='16 0 0' scale='.99 .99 .99'> |
93 | <Shape> |
94 | <IndexedFaceSet solid='false' coordIndex='35 36 37 38 39 35 -1 24 30 39 35 24 -1'> |
95 | <Coordinate USE='HullCoordinates'/> |
96 | </IndexedFaceSet> |
97 | <Appearance> |
98 | <Material diffuseColor='.4 .3 .2'/> |
99 | <ImageTexture USE='EhimeMaruDeckSkin'/> |
100 | </Appearance> |
101 | </Shape> |
102 | </Transform> |
103 | <Transform DEF='AftDeck' scale='.99 .99 .99'> |
104 | <Shape> |
105 | <IndexedFaceSet creaseAngle='1' solid='false' coordIndex='60 64 63 61 60 -1 60 64 34 33 32 41 40 60 -1'> |
106 | <Coordinate USE='HullCoordinates'/> |
107 | </IndexedFaceSet> |
108 | <Appearance> |
109 | <Material USE='EhimeMaruDeckColor'/> |
110 | <ImageTexture USE='EhimeMaruDeckSkin'/> |
111 | </Appearance> |
112 | </Shape> |
113 | </Transform> |
114 | <Transform DEF='SuperStructure1' translation='-7.9 3 0'> |
115 | <Shape> |
116 | <Appearance> |
117 | <Material USE='EhimeMaruWhite'/> |
118 | </Appearance> |
119 | <Box size='24 2 5.4'/> |
120 | </Shape> |
121 | </Transform> |
122 | <Transform DEF='MainRoof' translation='-8.2 4.0 0'> |
123 | <Shape> |
124 | <Appearance> |
125 |
<!-- Material
EhimeMaruRoofColor is a DEF node that has 1 USE node: USE_1 --> <Material DEF='EhimeMaruRoofColor' diffuseColor='.7 .6 .5'/> |
126 | <ImageTexture USE='EhimeMaruDeckSkin'/> |
127 | </Appearance> |
128 | <Box size='24.7 .1 7'/> |
129 | </Shape> |
130 | </Transform> |
131 | <Transform DEF='Bridge1' translation='0.5 4.5 0'> |
132 | <Shape> |
133 | <Box size='5.99 1.99 3'/> |
134 | <Appearance> |
135 | <Material diffuseColor='.9 .9 .9'/> |
136 | </Appearance> |
137 | </Shape> |
138 | <Transform DEF='AftBridgeWindows' translation='-1 0 0'> |
139 | <Transform rotation='0 1 0 -1.570796' translation='0.3 0.35 -1.5'> |
140 | |
141 | <Appearance> |
142 | <Material diffuseColor='0.1 0.1 0.4' transparency='.4'/> |
143 | </Appearance> |
144 | <Box size='0.1 0.3 0.5'/> |
145 | </Shape> |
146 | </Transform> |
147 | <Transform rotation='0 1 0 -1.570796' translation='0.3 0.35 1.5'> |
148 | <Shape USE='BridgeWindowShape'/> |
149 | </Transform> |
150 | <Transform rotation='0 1 0 -1.570796' translation='-0.5 0.35 -1.5'> |
151 | <Shape USE='BridgeWindowShape'/> |
152 | </Transform> |
153 | <Transform rotation='0 1 0 -1.570796' translation='-0.5 0.35 1.5'> |
154 | <Shape USE='BridgeWindowShape'/> |
155 | </Transform> |
156 | </Transform> |
157 | </Transform> |
158 | <Transform DEF='Bridge2' translation='2.25 4.5 0'> |
159 | <Shape> |
160 | <Box size='2.5 1.99 4'/> |
161 | <Appearance> |
162 | <Material USE='EhimeMaruWhite'/> |
163 | </Appearance> |
164 | </Shape> |
165 | <Transform DEF='BridgeWindows'> |
166 | <Transform DEF='FrontBridgeWindows' rotation='0 0 1 -0.07' translation='1.22 0.35 0'> |
167 | <Transform> |
168 | <Shape USE='BridgeWindowShape'/> |
169 | </Transform> |
170 | <Transform translation='0 0 -0.57'> |
171 | <Shape USE='BridgeWindowShape'/> |
172 | </Transform> |
173 | <Transform translation='0 0 -1.14'> |
174 | <Shape USE='BridgeWindowShape'/> |
175 | </Transform> |
176 | <Transform translation='0 0 -1.71'> |
177 | <Shape USE='BridgeWindowShape'/> |
178 | </Transform> |
179 | <Transform translation='0 0 0.57'> |
180 | <Shape USE='BridgeWindowShape'/> |
181 | </Transform> |
182 | <Transform translation='0 0 1.14'> |
183 | <Shape USE='BridgeWindowShape'/> |
184 | </Transform> |
185 | <Transform translation='0 0 1.71'> |
186 | <Shape USE='BridgeWindowShape'/> |
187 | </Transform> |
188 | </Transform> |
189 |
<!-- Transform
PortBridgeWindows is a DEF node that has 1 USE node: USE_1 -->
<Transform DEF='PortBridgeWindows' rotation='0 1 0 -1.570796' translation='0 0.35 2'> |
190 | <Transform translation='0 0 -0.57'> |
191 | <Shape USE='BridgeWindowShape'/> |
192 | </Transform> |
193 | <Transform> |
194 | <Shape USE='BridgeWindowShape'/> |
195 | </Transform> |
196 | <Transform translation='0 0 0.57'> |
197 | <Shape USE='BridgeWindowShape'/> |
198 | </Transform> |
199 | </Transform> |
200 | <Transform DEF='StbdBridgeWindows' translation='0 0 -4'> |
201 | <Transform USE='PortBridgeWindows'/> |
202 | </Transform> |
203 | </Transform> |
204 | </Transform> |
205 | <Transform DEF='BridgeRoof' translation='0 -0.5 0'> |
206 | <Shape> |
207 | <Appearance> |
208 | <Material USE='EhimeMaruRoofColor'/> |
209 | <ImageTexture USE='EhimeMaruDeckSkin'/> |
210 | </Appearance> |
211 | <IndexedFaceSet solid='false' coordIndex='0 1 2 3 4 5 6 7'> |
212 | <Coordinate point='-2.6 6 -1.6 0.9 6 -1.6 0.9 6 -2.1 3.6 6 -2.1 3.6 6 2.1 0.9 6 2.1 0.9 6 1.6 -2.6 6 1.6'/> |
213 | </IndexedFaceSet> |
214 | </Shape> |
215 | </Transform> |
216 | <Transform DEF='SmokeStack' translation='0 -1.0 0'> |
217 | <Transform DEF='SmokeStackBottom'> |
218 | <Shape DEF='SSLeftSide'> |
219 | <Appearance> |
220 | <Material USE='EhimeMaruWhite'/> |
221 |
<!-- ImageTexture
EhimeMaruSmokeStackStar is a DEF node that has 1 USE node: USE_1 --> <ImageTexture DEF='EhimeMaruSmokeStackStar' url=' "EhimeMaruSmokeStackStar.jpg ![]() ![]() |
222 | </Appearance> |
223 | <IndexedFaceSet coordIndex='5 6 7 8 -1'> |
224 |
<!-- Coordinate
SmokeStackBottomPoints is a DEF node that has 2 USE nodes: USE_1, USE_2 --> <Coordinate DEF='SmokeStackBottomPoints' point='0 0 0 -12.5 4 1 -11.5 7 1 -9 7 1 -9 4 1 -12.5 4 -1 -11.5 7 -1 -9 7 -1 -9 4 -1'/> |
225 | </IndexedFaceSet> |
226 | </Shape> |
227 | <Shape DEF='SSRightSide'> |
228 | <Appearance> |
229 | <Material USE='EhimeMaruWhite'/> |
230 | <ImageTexture USE='EhimeMaruSmokeStackStar'/> |
231 | </Appearance> |
232 | <IndexedFaceSet coordIndex='1 4 3 2 -1'> |
233 | <Coordinate USE='SmokeStackBottomPoints'/> |
234 | </IndexedFaceSet> |
235 | </Shape> |
236 | <Shape DEF='SSRestofSides'> |
237 | <Appearance> |
238 | <Material USE='EhimeMaruWhite'/> |
239 | </Appearance> |
240 | <IndexedFaceSet coordIndex='8 7 3 4 -1 1 2 6 5 -1 2 3 7 6 -1'> |
241 | <Coordinate USE='SmokeStackBottomPoints'/> |
242 | </IndexedFaceSet> |
243 | </Shape> |
244 | </Transform> |
245 | <Transform DEF='SmokeStackTopPart1' rotation='0 0 1 0.4' translation='-10.3 6.79 0'> |
246 | <Shape> |
247 | <Box size='2.52 .62 1.99'/> |
248 | <Appearance> |
249 | <Material diffuseColor='0 0 0'/> |
250 | </Appearance> |
251 | </Shape> |
252 | </Transform> |
253 | <Transform DEF='SmokeStackTopPart2' rotation='0 0 1 0.13' translation='-10.45 7.1 0'> |
254 | <Shape> |
255 | <Box size='2.45 0.6 1.99'/> |
256 | <Appearance> |
257 | <Material diffuseColor='0 0 0'/> |
258 | </Appearance> |
259 | </Shape> |
260 | </Transform> |
261 | </Transform> |
262 | <Transform DEF='SideSwirlHolders'> |
263 | <Transform DEF='RightSideSwirl'> |
264 | <Shape> |
265 | <IndexedFaceSet solid='false' coordIndex='4 3 2 1 -1'> |
266 | <Coordinate point='0 0 0 2.5 1 3.4 2.5 2.5 3.55 4 2.5 3.55 4 1 3.4'/> |
267 | </IndexedFaceSet> |
268 | <Appearance> |
269 | <Material USE='EhimeMaruWhite'/> |
270 |
<!-- ImageTexture
EhimeMaruSideSwirlSymbol is a DEF node that has 1 USE node: USE_1 --> <ImageTexture DEF='EhimeMaruSideSwirlSymbol' url=' "EhimeMaruSideSwirlSymbol.jpg ![]() ![]() |
271 | </Appearance> |
272 | </Shape> |
273 | </Transform> |
274 | <Transform DEF='LeftSideSwirl'> |
275 | <Shape> |
276 | <IndexedFaceSet solid='false' coordIndex='1 2 3 4 -1'> |
277 | <Coordinate point='0 0 0 2.5 1 -3.4 2.5 2.5 -3.55 4 2.5 -3.55 4 1 -3.4'/> |
278 | </IndexedFaceSet> |
279 | <Appearance> |
280 | <Material USE='EhimeMaruWhite'/> |
281 | <ImageTexture USE='EhimeMaruSideSwirlSymbol'/> |
282 | </Appearance> |
283 | </Shape> |
284 | </Transform> |
285 | </Transform> |
286 | <Transform DEF='RunningPosts'> |
287 | <Transform DEF='StbdSidePosts' translation='0 -0.53 0'> |
288 | <Transform translation='-19.78 3.9 3.4'> |
289 | |
290 | <Transform rotation='0 0 1 -0.3' translation='0 .05 0'> |
291 | <Shape> |
292 | <Box size='0.2 1.2 0.1'/> |
293 | <Appearance> |
294 | <Material USE='EhimeMaruWhite'/> |
295 | </Appearance> |
296 | </Shape> |
297 | </Transform> |
298 | </Transform> |
299 | </Transform> |
300 | <Transform translation='-17.5 3.9 3.4'> |
301 | <Transform USE='CookieCutterPost'/> |
302 | </Transform> |
303 | <Transform translation='-15.5 3.9 3.4'> |
304 | <Transform USE='CookieCutterPost'/> |
305 | </Transform> |
306 | <Transform translation='-13 3.9 3.4'> |
307 | <Transform USE='CookieCutterPost'/> |
308 | </Transform> |
309 | <Transform scale='1 1.2 1' translation='-10.5 3.78 3.4'> |
310 | <Transform USE='CookieCutterPost'/> |
311 | </Transform> |
312 | <Transform scale='1 1.2 1' translation='-8.3 3.78 3.4'> |
313 | <Transform USE='CookieCutterPost'/> |
314 | </Transform> |
315 | <Transform scale='1 1.2 1' translation='-6 3.78 3.4'> |
316 | <Transform USE='CookieCutterPost'/> |
317 | </Transform> |
318 | <Transform scale='1 1.2 1' translation='-3.9 3.78 3.4'> |
319 | <Transform USE='CookieCutterPost'/> |
320 | </Transform> |
321 | <Transform scale='1 1.2 1' translation='-1.5 3.78 3.4'> |
322 | <Transform USE='CookieCutterPost'/> |
323 | </Transform> |
324 | <Transform scale='1 1.3 1' translation='0.9 3.72 3.4'> |
325 | <Transform USE='CookieCutterPost'/> |
326 | </Transform> |
327 | <Transform scale='1 1.3 1' translation='3.2 3.72 3.4'> |
328 | <Transform USE='CookieCutterPost'/> |
329 | </Transform> |
330 | </Transform> |
331 | <Transform DEF='PortSidePosts' translation='0 -0.53 0'> |
332 | <Transform translation='-19.78 3.9 -3.4'> |
333 | <Transform USE='CookieCutterPost'/> |
334 | </Transform> |
335 | <Transform translation='-17.5 3.9 -3.4'> |
336 | <Transform USE='CookieCutterPost'/> |
337 | </Transform> |
338 | <Transform scale='1 1.1 1' translation='-15.5 3.8 -3.4'> |
339 | <Transform USE='CookieCutterPost'/> |
340 | </Transform> |
341 | <Transform scale='1 1.1 1' translation='-13 3.85 -3.4'> |
342 | <Transform USE='CookieCutterPost'/> |
343 | </Transform> |
344 | <Transform scale='1 1.2 1' translation='-10.5 3.78 -3.4'> |
345 | <Transform USE='CookieCutterPost'/> |
346 | </Transform> |
347 | <Transform scale='1 1.2 1' translation='-8.3 3.78 -3.4'> |
348 | <Transform USE='CookieCutterPost'/> |
349 | </Transform> |
350 | <Transform scale='1 1.2 1' translation='-6 3.78 -3.4'> |
351 | <Transform USE='CookieCutterPost'/> |
352 | </Transform> |
353 | <Transform scale='1 1.3 1' translation='-3.9 3.7 -3.4'> |
354 | <Transform USE='CookieCutterPost'/> |
355 | </Transform> |
356 | <Transform scale='1 1.4 1' translation='-1.5 3.65 -3.4'> |
357 | <Transform USE='CookieCutterPost'/> |
358 | </Transform> |
359 | <Transform scale='1 1.4 1' translation='0.9 3.65 -3.4'> |
360 | <Transform USE='CookieCutterPost'/> |
361 | </Transform> |
362 | <Transform scale='1 1.4 1' translation='3.2 3.65 -3.4'> |
363 | <Transform USE='CookieCutterPost'/> |
364 | </Transform> |
365 | </Transform> |
366 | </Transform> |
367 | <Transform DEF='Masts'> |
368 | <Transform DEF='ForwardMast' rotation='0 0 1 0.174' translation='12.5 5.8 0'> |
369 | <Transform DEF='VerticalForwardMast1'> |
370 | <Shape> |
371 | <Cone bottom='false' bottomRadius='.25' height='7.8'/> |
372 | <Appearance> |
373 | <Material USE='EhimeMaruWhite'/> |
374 | </Appearance> |
375 | </Shape> |
376 | </Transform> |
377 |
<!-- Transform
CrossbarForwardMast is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<Transform DEF='CrossbarForwardMast' rotation='1 0 0 1.57079' translation='0 3.5 0'> |
378 | <Shape> |
379 | <Cylinder radius='.02'/> |
380 | <Appearance> |
381 | <Material USE='EhimeMaruWhite'/> |
382 | </Appearance> |
383 | </Shape> |
384 | </Transform> |
385 | <Transform DEF='VerticalForwardMast2'> |
386 | <Shape> |
387 | <Cylinder bottom='false' height='7.8' radius='.05'/> |
388 | <Appearance> |
389 | <Material USE='EhimeMaruWhite'/> |
390 | </Appearance> |
391 | </Shape> |
392 | </Transform> |
393 | </Transform> |
394 | <Transform DEF='Wires'> |
395 | <Shape> |
396 | <IndexedLineSet coordIndex='0 1 -1 0 2 -1 0 3 -1 0 4 -1 0 5 -1 6 7 -1 9 11 -1 8 10 -1 10 12 -1 11 13 -1'> |
397 | <Coordinate point='12.6 5.8 0 16 2 -2.8 19.5 2 0 16 2 2.8 3.5 5.5 2 3.5 5.5 -2 12.2 7.3 0 0 7.3 0 11.9 9.25 0.95 11.9 9.25 -0.95 -0.76 9.67 0.95 -0.76 9.67 -0.95 -18 9.33 0.99 -18 9.33 -0.99'/> |
398 | </IndexedLineSet> |
399 | <Appearance> |
400 | <Material emissiveColor='.5 .5 .5'/> |
401 | </Appearance> |
402 | </Shape> |
403 | </Transform> |
404 | <Transform DEF='Midmast' rotation='0 0 1 0.15' translation='-0.5 8 0'> |
405 | <Transform DEF='VerticalMidMast1'> |
406 | <Shape> |
407 | <Cone bottom='false' bottomRadius='0.23' height='5.5'/> |
408 | <Appearance> |
409 | <Material USE='EhimeMaruWhite'/> |
410 | </Appearance> |
411 | </Shape> |
412 | </Transform> |
413 | <Transform DEF='VerticalMidMast2'> |
414 | <Shape> |
415 | <Cylinder bottom='false' height='5.5' radius='.05'/> |
416 | <Appearance> |
417 | <Material USE='EhimeMaruWhite'/> |
418 | </Appearance> |
419 | </Shape> |
420 | </Transform> |
421 | <Transform DEF='VerticalMidMast3' rotation='0 0 1 -0.174' translation='0 -2 0'> |
422 | <Shape> |
423 | <Appearance> |
424 | <Material USE='EhimeMaruWhite'/> |
425 | </Appearance> |
426 | <Cone bottom='false' bottomRadius='.3' height='1.2'/> |
427 | </Shape> |
428 | </Transform> |
429 |
<!-- Transform
HorizontalMidMast1 is a DEF node that has 1 USE node: USE_1 -->
<Transform DEF='HorizontalMidMast1' translation='0 -1.8 0'> |
430 | <Transform USE='CrossbarForwardMast'/> |
431 | </Transform> |
432 | <Transform DEF='HorizontalMidMast2' translation='0 -1.3 0'> |
433 | <Transform USE='HorizontalMidMast1'/> |
434 | </Transform> |
435 | <Transform DEF='RadarMast1' rotation='0 0 1 -0.15'> |
436 |
<!-- Transform
RadarMastSupport is a DEF node that has 1 USE node: USE_1 -->
<Transform DEF='RadarMastSupport' translation='0.5 -0.7 0'> |
437 | <Shape> |
438 | <Box size='1 0.02 0.2'/> |
439 | <Appearance> |
440 | <Material USE='EhimeMaruWhite'/> |
441 | </Appearance> |
442 | </Shape> |
443 | </Transform> |
444 | </Transform> |
445 | <Transform DEF='RadarMast2' rotation='0 0 1 -0.15' translation='0 1 0'> |
446 | <Transform USE='RadarMastSupport'/> |
447 | </Transform> |
448 | <Transform DEF='RadarsupportTop' rotation='0 0 1 -0.15' translation='0.75 0.24 0'> |
449 | <Shape> |
450 | <Appearance> |
451 | <Material USE='EhimeMaruWhite'/> |
452 | </Appearance> |
453 | <Cylinder bottom='false' height='.1' radius='.03' top='false'/> |
454 | </Shape> |
455 | </Transform> |
456 | <Transform DEF='RadarsupportLower' rotation='0 0 1 -0.15' translation='0.75 -0.76 0'> |
457 | <Shape> |
458 | <Appearance> |
459 | <Material USE='EhimeMaruWhite'/> |
460 | </Appearance> |
461 | <Cylinder bottom='false' height='.1' radius='.03' top='false'/> |
462 | </Shape> |
463 | </Transform> |
464 | </Transform> |
465 | <Transform DEF='AftMast' translation='0 -1.2 0'> |
466 | <Transform DEF='PortSupport' rotation='1 0 0 0.11' translation='-18.1 6.5 -.5'> |
467 |
<!-- Shape
AftMastColumn is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<Shape DEF='AftMastColumn'> |
468 | <Appearance> |
469 | <Material USE='EhimeMaruWhite'/> |
470 | </Appearance> |
471 | <Cylinder bottom='false' height='9' radius='.05'/> |
472 | </Shape> |
473 | </Transform> |
474 | <Transform DEF='StbdSupport' rotation='1 0 0 -0.11' translation='-18.1 6.5 .5'> |
475 | <Shape USE='AftMastColumn'/> |
476 | </Transform> |
477 | <Transform DEF='FwdSupport' rotation='0 0 1 0.19' scale='1.5 1 1.5' translation='-17.35 7.1 0'> |
478 | <Shape USE='AftMastColumn'/> |
479 | </Transform> |
480 | <Transform DEF='AftMastCrossbar' scale='1.3 1.3 1.0' translation='-18 6 0'> |
481 | <Transform USE='CrossbarForwardMast'/> |
482 | </Transform> |
483 | <Transform DEF='AftMassHorizontalBars' translation='-18 7 0'> |
484 | <Transform DEF='Bar1' rotation='0 1 0 0.5' translation='0.11 2 0.11'> |
485 | <Transform rotation='0 0 1 -1.570796'> |
486 | <Shape> |
487 | <Appearance> |
488 | <Material USE='EhimeMaruWhite'/> |
489 | </Appearance> |
490 | <Cylinder bottom='false' height='.5' radius='.04' top='false'/> |
491 | </Shape> |
492 | </Transform> |
493 | </Transform> |
494 | <Transform DEF='Bar2' rotation='0 1 0 -0.5' translation='0.11 2 -0.11'> |
495 | <Transform rotation='0 0 1 -1.570796'> |
496 | <Shape> |
497 | <Appearance> |
498 | <Material USE='EhimeMaruWhite'/> |
499 | </Appearance> |
500 | <Cylinder bottom='false' height='.5' radius='.04' top='false'/> |
501 | </Shape> |
502 | </Transform> |
503 | </Transform> |
504 | <Transform DEF='Bar3' rotation='0 1 0 0.5' translation='0.20 0.8 0.2'> |
505 | <Transform rotation='0 0 1 -1.570796'> |
506 | <Shape> |
507 | <Appearance> |
508 | <Material USE='EhimeMaruWhite'/> |
509 | </Appearance> |
510 | <Cylinder bottom='false' height='.7' radius='.04' top='false'/> |
511 | </Shape> |
512 | </Transform> |
513 | </Transform> |
514 | <Transform DEF='Bar4' rotation='0 1 0 -0.5' translation='0.2 0.8 -0.2'> |
515 | <Transform rotation='0 0 1 -1.570796'> |
516 | <Shape> |
517 | <Appearance> |
518 | <Material USE='EhimeMaruWhite'/> |
519 | </Appearance> |
520 | <Cylinder bottom='false' height='.7' radius='.04' top='false'/> |
521 | </Shape> |
522 | </Transform> |
523 | </Transform> |
524 | <Transform DEF='Bar5' rotation='0 1 0 0.5' translation='0.36 -0.4 0.24'> |
525 | <Transform rotation='0 0 1 -1.570796'> |
526 | <Shape> |
527 | <Appearance> |
528 | <Material USE='EhimeMaruWhite'/> |
529 | </Appearance> |
530 | <Cylinder bottom='false' height='0.95' radius='.04' top='false'/> |
531 | </Shape> |
532 | </Transform> |
533 | </Transform> |
534 | <Transform DEF='Bar6' rotation='0 1 0 -0.5' translation='0.36 -0.4 -0.24'> |
535 | <Transform rotation='0 0 1 -1.570796'> |
536 | <Shape> |
537 | <Appearance> |
538 | <Material USE='EhimeMaruWhite'/> |
539 | </Appearance> |
540 | <Cylinder bottom='false' height='0.95' radius='.04' top='false'/> |
541 | </Shape> |
542 | </Transform> |
543 | </Transform> |
544 | <Transform DEF='Bar7' rotation='0 1 0 0.5' translation='0.42 -1.5 0.31'> |
545 | <Transform rotation='0 0 1 -1.570796'> |
546 | <Shape> |
547 | <Appearance> |
548 | <Material USE='EhimeMaruWhite'/> |
549 | </Appearance> |
550 | <Cylinder bottom='false' height='1.2' radius='.04' top='false'/> |
551 | </Shape> |
552 | </Transform> |
553 | </Transform> |
554 | <Transform DEF='Bar8' rotation='0 1 0 -0.5' translation='0.42 -1.5 -0.31'> |
555 | <Transform rotation='0 0 1 -1.570796'> |
556 | <Shape> |
557 | <Appearance> |
558 | <Material USE='EhimeMaruWhite'/> |
559 | </Appearance> |
560 | <Cylinder bottom='false' height='1.2' radius='.04' top='false'/> |
561 | </Shape> |
562 | </Transform> |
563 | </Transform> |
564 | </Transform> |
565 | <Transform DEF='AftMastAngledBars' translation='-18 7 0'> |
566 | <Transform DEF='ABar1' rotation='0 1 0 0.75' translation='0.10 1.4 0.2'> |
567 | <Transform rotation='0 0 1 -0.35'> |
568 | <Shape> |
569 | <Appearance> |
570 | <Material USE='EhimeMaruWhite'/> |
571 | </Appearance> |
572 | <Cylinder bottom='false' height='1.3' radius='.02' top='false'/> |
573 | </Shape> |
574 | </Transform> |
575 | </Transform> |
576 | <Transform DEF='ABar2' rotation='0 1 0 -0.75' translation='0.1 1.4 -0.2'> |
577 | <Transform rotation='0 0 1 -0.35'> |
578 | <Shape> |
579 | <Appearance> |
580 | <Material USE='EhimeMaruWhite'/> |
581 | </Appearance> |
582 | <Cylinder bottom='false' height='1.3' radius='.02' top='false'/> |
583 | </Shape> |
584 | </Transform> |
585 | </Transform> |
586 | <Transform DEF='ABar3' rotation='0 1 0 0.4' translation='0.32 0.2 0.2'> |
587 | <Transform rotation='0 0 1 0.6'> |
588 | <Shape> |
589 | <Appearance> |
590 | <Material USE='EhimeMaruWhite'/> |
591 | </Appearance> |
592 | <Cylinder bottom='false' height='1.4' radius='.02' top='false'/> |
593 | </Shape> |
594 | </Transform> |
595 | </Transform> |
596 | <Transform DEF='ABar4' rotation='0 1 0 -0.4' translation='0.32 0.2 -0.2'> |
597 | <Transform rotation='0 0 1 0.6'> |
598 | <Shape> |
599 | <Appearance> |
600 | <Material USE='EhimeMaruWhite'/> |
601 | </Appearance> |
602 | <Cylinder bottom='false' height='1.4' radius='.02' top='false'/> |
603 | </Shape> |
604 | </Transform> |
605 | </Transform> |
606 | <Transform DEF='ABar5' rotation='0 1 0 0.6' translation='0.35 -0.9 0.3'> |
607 | <Transform rotation='0 0 1 -0.75'> |
608 | <Shape> |
609 | <Appearance> |
610 | <Material USE='EhimeMaruWhite'/> |
611 | </Appearance> |
612 | <Cylinder bottom='false' height='1.5' radius='.02' top='false'/> |
613 | </Shape> |
614 | </Transform> |
615 | </Transform> |
616 | <Transform DEF='ABar6' rotation='0 1 0 -0.6' translation='0.35 -0.9 -0.3'> |
617 | <Transform rotation='0 0 1 -0.75'> |
618 | <Shape> |
619 | <Appearance> |
620 | <Material USE='EhimeMaruWhite'/> |
621 | </Appearance> |
622 | <Cylinder bottom='false' height='1.5' radius='.02' top='false'/> |
623 | </Shape> |
624 | </Transform> |
625 | </Transform> |
626 | </Transform> |
627 | </Transform> |
628 | <Transform DEF='DomeRadar' scale='.35 .4 .35' translation='2.1 5 -1.5'> |
629 | <Transform DEF='radarPost'> |
630 | <Shape> |
631 | <Cylinder bottom='false' height='5' radius='.2' top='false'/> |
632 | <Appearance> |
633 | <Material USE='EhimeMaruWhite'/> |
634 | </Appearance> |
635 | </Shape> |
636 | </Transform> |
637 | <Transform DEF='RadarHousing' translation='0 3 0'> |
638 | <Transform translation='0 .5 0'> |
639 | <Shape> |
640 | <Sphere/> |
641 | <Appearance> |
642 | <Material USE='EhimeMaruWhite'/> |
643 | </Appearance> |
644 | </Shape> |
645 | </Transform> |
646 | <Transform> |
647 | <Shape> |
648 | <Cylinder height='1.2' top='false'/> |
649 | <Appearance> |
650 | <Material USE='EhimeMaruWhite'/> |
651 | </Appearance> |
652 | </Shape> |
653 | </Transform> |
654 | </Transform> |
655 | </Transform> |
656 |
<!-- ROUTE information for TopRadarInterpolator node:
[from TopRadarTImeSource.fraction_changed to set_fraction
]
[from value_changed to RadarAntennaTop.set_rotation
]
-->
<OrientationInterpolator DEF='TopRadarInterpolator' key='0 .25 .5 .75 1' keyValue='0 1 0 0 0 1 0 1.570796 0 1 0 3.14159 0 1 0 4.7124 0 1 0 6.283185'/> |
657 |
<!-- ROUTE information for TopRadarTImeSource node:
[from fraction_changed to TopRadarInterpolator.set_fraction
]
-->
<TimeSensor DEF='TopRadarTImeSource' cycleInterval='7' loop='true'/> |
658 |
<!-- ROUTE information for LowerRadarTimeSource node:
[from fraction_changed to LowerRadarInterpolator.set_fraction
]
-->
<TimeSensor DEF='LowerRadarTimeSource' cycleInterval='5' loop='true'/> |
659 |
<!-- ROUTE information for LowerRadarInterpolator node:
[from LowerRadarTimeSource.fraction_changed to set_fraction
]
[from value_changed to RadarAntennaLower.set_rotation
]
-->
<OrientationInterpolator DEF='LowerRadarInterpolator' key='0 .25 .5 .75 1' keyValue='0 1 0 0 0 1 0 1.570796 0 1 0 3.14159 0 1 0 4.7124 0 1 0 6.283185'/> |
660 | <Transform DEF='RotatingTopRadar' translation='0.22 8.43 0'> |
661 |
<!-- ROUTE information for RadarAntennaTop node:
[from TopRadarInterpolator.value_changed to set_rotation
]
-->
<Transform DEF='RadarAntennaTop'> |
662 | <Transform rotation='0 0 1 -1.570796'> |
663 | <Shape> |
664 | <Appearance> |
665 | <Material USE='EhimeMaruWhite'/> |
666 | </Appearance> |
667 | <Cylinder height='1' radius='0.05'/> |
668 | </Shape> |
669 | </Transform> |
670 | <Transform translation='0 0 .05'> |
671 | <Shape> |
672 | <Box size='1 0.1 0.1'/> |
673 | <Appearance> |
674 | <Material USE='EhimeMaruWhite'/> |
675 | </Appearance> |
676 | </Shape> |
677 | <Transform translation='0 0 .02'> |
678 | <Shape> |
679 | <Appearance> |
680 |
<!-- Material
RadarXmitterBlue is a DEF node that has 1 USE node: USE_1 --> <Material DEF='RadarXmitterBlue' diffuseColor='.1 .1 .5' transparency='0.3'/> |
681 | </Appearance> |
682 | <Box size='.99 .09 .09'/> |
683 | </Shape> |
684 | </Transform> |
685 | </Transform> |
686 | </Transform> |
687 | </Transform> |
688 | <Transform DEF='RotatingLowerRadar' translation='.35 7.45 0'> |
689 |
<!-- ROUTE information for RadarAntennaLower node:
[from LowerRadarInterpolator.value_changed to set_rotation
]
-->
<Transform DEF='RadarAntennaLower'> |
690 | <Transform rotation='0 0 1 -1.570796'> |
691 | <Shape> |
692 | <Appearance> |
693 | <Material USE='EhimeMaruWhite'/> |
694 | </Appearance> |
695 | <Cylinder height='1' radius='0.05'/> |
696 | </Shape> |
697 | </Transform> |
698 | <Transform translation='0 0 .05'> |
699 | <Shape> |
700 | <Box size='1 0.1 0.1'/> |
701 | <Appearance> |
702 | <Material USE='EhimeMaruWhite'/> |
703 | </Appearance> |
704 | </Shape> |
705 | <Transform translation='0 0 .02'> |
706 | <Shape> |
707 | <Appearance> |
708 | <Material USE='RadarXmitterBlue'/> |
709 | </Appearance> |
710 | <Box size='.99 .09 .09'/> |
711 | </Shape> |
712 | </Transform> |
713 | </Transform> |
714 | </Transform> |
715 | </Transform> |
716 | </Transform> |
717 | <Transform DEF='RescueBoatParentNode'> |
718 | <Transform DEF='RescueBoat' scale='.4 .4 .4' translation='-4.2 5 -2.5'> |
719 | <Inline url=' "../../ShipsMilitary/DestroyerSovremennyRussia/CaptainsBarge.x3d" "https://savage.nps.edu/Savage/ShipsMilitary/DestroyerSovremennyRussia/CaptainsBarge.x3d" "../../ShipsMilitary/DestroyerSovremennyRussia/CaptainsBarge.wrl" "https://savage.nps.edu/Savage/ShipsMilitary/DestroyerSovremennyRussia/CaptainsBarge.wrl" '/> |
720 | </Transform> |
721 | <Transform DEF='ForwardBoatSupport' translation='-3.5 4 -2'> |
722 | <Shape> |
723 | <Appearance> |
724 | <Material USE='EhimeMaruWhite'/> |
725 | </Appearance> |
726 | <Cylinder bottom='false' height='4' radius='.02'/> |
727 | </Shape> |
728 | </Transform> |
729 | <Transform DEF='AftBoatSupport' translation='-6.2 4 -2'> |
730 | <Shape> |
731 | <Appearance> |
732 | <Material USE='EhimeMaruWhite'/> |
733 | </Appearance> |
734 | <Cylinder bottom='false' height='4' radius='.02'/> |
735 | </Shape> |
736 | </Transform> |
737 | </Transform> |
738 | <Transform DEF='StructuresOnDeck'> |
739 | <Transform DEF='Box1' translation='-7.5 4.5 0'> |
740 | <Shape> |
741 | <Appearance> |
742 | <Material USE='EhimeMaruWhite'/> |
743 | </Appearance> |
744 | <Box size='1.2 1 1.4'/> |
745 | </Shape> |
746 | </Transform> |
747 | <Transform DEF='Box2' translation='-11.3 4.6 2.6'> |
748 | <Shape> |
749 | <Appearance> |
750 | <Material USE='EhimeMaruWhite'/> |
751 | </Appearance> |
752 | <Box size='1. 1.25 .9'/> |
753 | </Shape> |
754 | </Transform> |
755 | <Transform DEF='Box3' translation='-15 4.5 2.3'> |
756 | <Shape> |
757 | <Appearance> |
758 | <Material USE='EhimeMaruWhite'/> |
759 | </Appearance> |
760 | <Box size='2 1 2'/> |
761 | </Shape> |
762 | </Transform> |
763 | <Transform DEF='Cylinder1' rotation='0 0 1 -1.570796' translation='-6.5 4.3 3'> |
764 | <Shape> |
765 | <Appearance> |
766 | <Material USE='EhimeMaruWhite'/> |
767 | </Appearance> |
768 |
<!-- Cylinder
TopsideCylinder is a DEF node that has 1 USE node: USE_1 --> <Cylinder DEF='TopsideCylinder' height='4.3' radius='.3'/> |
769 | </Shape> |
770 | </Transform> |
771 | <Transform DEF='Cylinder2' rotation='0 0 1 -1.570796' translation='-12 4.3 -3'> |
772 | <Shape> |
773 | <Appearance> |
774 | <Material USE='EhimeMaruWhite'/> |
775 | </Appearance> |
776 | <Cylinder USE='TopsideCylinder'/> |
777 | </Shape> |
778 | </Transform> |
779 | <Transform DEF='FwdBox1' translation='9 1.3 -0.9'> |
780 | <Shape> |
781 | <Appearance> |
782 | <Material diffuseColor='.5 .4 .4'/> |
783 | <ImageTexture USE='EhimeMaruDeckSkin'/> |
784 | </Appearance> |
785 | <Box size='2 1 2'/> |
786 | </Shape> |
787 | </Transform> |
788 | <Transform DEF='FwdCylinder1' translation='15 2 -1'> |
789 | <Shape> |
790 | <Appearance> |
791 | <Material diffuseColor='.4 .4 .4'/> |
792 | </Appearance> |
793 | <Cylinder height='.7' radius='.3'/> |
794 | </Shape> |
795 | </Transform> |
796 | <Transform DEF='FwdCylinder2' translation='15 2 1'> |
797 | <Shape> |
798 | <Appearance> |
799 | <Material diffuseColor='.4 .4 .4'/> |
800 | </Appearance> |
801 | <Cylinder height='.7' radius='.3'/> |
802 | </Shape> |
803 | </Transform> |
804 | <Transform DEF='FwdCylinder3' scale='1.2 1.2 1.2' translation='17.5 2 0'> |
805 | <Shape> |
806 | <Appearance> |
807 | <Material diffuseColor='.4 .4 .4'/> |
808 | </Appearance> |
809 | <Cylinder height='.7' radius='.3'/> |
810 | </Shape> |
811 | </Transform> |
812 | </Transform> |
813 | <Transform DEF='RudderAssembly' translation='-17 -2 0'> |
814 | <Transform DEF='HorizontalRudderSupport' translation='2.8 -0.9 0'> |
815 | <Shape> |
816 | <Box size='6 .02 .4'/> |
817 | <Appearance> |
818 | <Material USE='HullRed'/> |
819 | </Appearance> |
820 | </Shape> |
821 | </Transform> |
822 | <Transform DEF='VerticalRudderSupport' translation='0 0.6 0'> |
823 | <Shape> |
824 | <Cylinder height='3' radius='.04' top='false'/> |
825 | <Appearance> |
826 | <Material USE='HullRed'/> |
827 | </Appearance> |
828 | </Shape> |
829 | </Transform> |
830 | <Transform DEF='Rudder' translation='0 0.2 0'> |
831 | <Shape> |
832 | <Box size='1.5 2 .04'/> |
833 | <Appearance> |
834 | <Material USE='HullRed'/> |
835 | </Appearance> |
836 | </Shape> |
837 | </Transform> |
838 | </Transform> |
839 |
<!-- ROUTE information for PropAssembly node:
[from PropRotationInterpolator.value_changed to set_rotation
]
-->
<Transform DEF='PropAssembly' center='-15 -2 0'> |
840 | <Transform DEF='Propeller' rotation='0 1 0 -3.142' scale='.8 .8 .8' translation='-15.3 -2 0'> |
841 | <Transform> |
842 | |
843 | <Extrusion creaseAngle='.785' crossSection='0 -.25 -.2 0 -.2 .25 0 .25 0 -.25' orientation='0 1 0 0 0 1 0 .1 0 1 0 .2 0 1 0 .3 0 1 0 .4 0 1 0 .5 0 1 0 .6 0 1 0 .7 0 1 0 .8 0 1 0 .9' scale='0.1 0.6 0.1 0.6 0.1 0.6 0.1 0.6 0.1 0.6 0.1 0.6 0.1 0.6 0.1 0.6 0.1 0.6 0.1 0.6' spine='0 0 0 0 .1 0 0 .2 0 0 .3 0 0 .4 0 0 .5 0 0 .6 0 0 .7 0 0 .8 0 0 .9 0'/> |
844 |
<!-- Appearance
screw_color is a DEF node that has 1 USE node: USE_1 -->
<Appearance DEF='screw_color'> |
845 | <Material ambientIntensity='.3' diffuseColor='.1 .1 .1' emissiveColor='.1 .1 .1' shininess='.5' specularColor='.1 .1 .1'/> |
846 |
<ImageTexture
url=' "screw_texture.jpg![]() ![]() |
847 | </Appearance> |
848 | </Shape> |
849 | </Transform> |
850 | <Transform rotation='1 0 0 1.5707'> |
851 | <Shape USE='blade'/> |
852 | </Transform> |
853 | <Transform rotation='1 0 0 3.14159'> |
854 | <Shape USE='blade'/> |
855 | </Transform> |
856 | <Transform rotation='1 0 0 4.7124'> |
857 | <Shape USE='blade'/> |
858 | </Transform> |
859 | <Transform DEF='endcap' rotation='0 0 1 -1.571' scale='.5 .3 .5' translation='0.2 0 0'> |
860 | <Shape> |
861 | <Cone bottomRadius='.26' height='1.3'/> |
862 | <Appearance USE='screw_color'/> |
863 | </Shape> |
864 | </Transform> |
865 | </Transform> |
866 | <Transform DEF='DriveShaft' rotation='0 0 1 -1.571' translation='-13.85 -2 0'> |
867 | <Shape> |
868 | <Cylinder bottom='false' height='3' radius='.07' top='false'/> |
869 | <Appearance> |
870 | <Material USE='HullRed'/> |
871 | </Appearance> |
872 | </Shape> |
873 | </Transform> |
874 | </Transform> |
875 |
<!-- ROUTE information for PropTimerSource node:
[from fraction_changed to PropRotationInterpolator.set_fraction
]
-->
<TimeSensor DEF='PropTimerSource' cycleInterval='5' loop='true'/> |
876 |
<!-- ROUTE information for PropRotationInterpolator node:
[from PropTimerSource.fraction_changed to set_fraction
]
[from value_changed to PropAssembly.set_rotation
]
-->
<OrientationInterpolator DEF='PropRotationInterpolator' key='0 0.25 0.5 0.75 1' keyValue='1 0 0 0 1 0 0 1.570796 1 0 0 3.14159 1 0 0 4.7124 1 0 0 6.283185'/> |
877 | <Transform DEF='BowThrusters'> |
878 | <Transform DEF='StbdThruster' rotation='0 1 0 0.4' translation='14 -0.95 2.53'> |
879 | <Transform rotation='1 0 0 0.1'> |
880 | <Transform rotation='1 0 0 1.570796'> |
881 | <Shape> |
882 | <Appearance> |
883 | <Material ambientIntensity='.3' diffuseColor='.1 .1 .1' emissiveColor='.1 .1 .1' shininess='.5' specularColor='.1 .1 .1'/> |
884 | </Appearance> |
885 | <Cylinder height='.05' radius='.4'/> |
886 | </Shape> |
887 | </Transform> |
888 | <Transform scale='.26 .26 .26' translation='0 0 0.07'> |
889 |
<!-- LOD
BowThrusterImage is a DEF node that has 1 USE node: USE_1 -->
<LOD DEF='BowThrusterImage' range='400'> |
890 | <Inline url=' "../../../Vrml2Sourcebook/Chapter18-TextureMapping/Figure18.27RotatingFanAnimatedTextureTransform.x3d" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter18-TextureMapping/Figure18.27RotatingFanAnimatedTextureTransform.x3d" "../../../Vrml2Sourcebook/Chapter18-TextureMapping/Figure18.27RotatingFanAnimatedTextureTransform.wrl" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter18-TextureMapping/Figure18.27RotatingFanAnimatedTextureTransform.wrl" '/> |
891 | <WorldInfo info='"null node"'/> |
892 | </LOD> |
893 | </Transform> |
894 | </Transform> |
895 | </Transform> |
896 | <Transform DEF='PortThruster' rotation='0 1 0 -0.4' translation='14 -0.95 -2.53'> |
897 | <Transform rotation='1 0 0 -0.1'> |
898 | <Transform rotation='1 0 0 1.570796'> |
899 | <Shape> |
900 | <Appearance> |
901 | <Material ambientIntensity='.3' diffuseColor='.1 .1 .1' emissiveColor='.1 .1 .1' shininess='.5' specularColor='.1 .1 .1'/> |
902 | </Appearance> |
903 | <Cylinder height='.05' radius='.4'/> |
904 | </Shape> |
905 | </Transform> |
906 | <Transform rotation='0 1 0 -3.14159' scale='.26 .26 .26' translation='0 0 -0.07'> |
907 | <LOD USE='BowThrusterImage'/> |
908 | </Transform> |
909 | </Transform> |
910 | </Transform> |
911 | </Transform> |
912 | <Transform DEF='ShipName' translation='15 2 0'> |
913 | <Transform DEF='PortShipName' rotation='0 1 0 0.4' translation='-0.6 -0.8 3'> |
914 |
<!-- Shape
ShipNameText is a DEF node that has 2 USE nodes: USE_1, USE_2 -->
<Shape DEF='ShipNameText'> |
915 | <Text string='"-- EHIME MARU --"'> |
916 | <FontStyle justify='"BEGIN" "MIDDLE"' size='0.5' style='BOLD'/> |
917 | </Text> |
918 | <Appearance> |
919 | <Material diffuseColor='.1 .1 .4'/> |
920 | </Appearance> |
921 | </Shape> |
922 | </Transform> |
923 | <Transform DEF='StbdShipName' rotation='0 1 0 -3.54159' translation='0.8 -0.8 -2.5'> |
924 | <Shape USE='ShipNameText'/> |
925 | </Transform> |
926 | <Transform DEF='AftShipName' rotation='0 1 0 -1.570796' translation='-35.8 0.7 -1.8'> |
927 | <Shape USE='ShipNameText'/> |
928 | </Transform> |
929 | </Transform> |
930 | </Transform> |
931 | </Transform> |
932 | </Transform> |
933 | </Transform> |
934 | </Transform> |
935 | </Transform> |
936 | < ROUTE fromNode='TopRadarTImeSource' fromField='fraction_changed' toNode='TopRadarInterpolator' toField='set_fraction'/> |
937 | < ROUTE fromNode='TopRadarInterpolator' fromField='value_changed' toNode='RadarAntennaTop' toField='set_rotation'/> |
938 | < ROUTE fromNode='LowerRadarTimeSource' fromField='fraction_changed' toNode='LowerRadarInterpolator' toField='set_fraction'/> |
939 | < ROUTE fromNode='LowerRadarInterpolator' fromField='value_changed' toNode='RadarAntennaLower' toField='set_rotation'/> |
940 | < ROUTE fromNode='PropTimerSource' fromField='fraction_changed' toNode='PropRotationInterpolator' toField='set_fraction'/> |
941 | < ROUTE fromNode='PropRotationInterpolator' fromField='value_changed' toNode='PropAssembly' toField='set_rotation'/> |
942 | </Scene> |
943 | </X3D> |
Event Graph ROUTE Table entries with 6 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.
LowerRadarTimeSource
TimeSensor fraction_changed SFFloat |
LowerRadarInterpolator
OrientationInterpolator set_fraction SFFloat |
then
|
LowerRadarInterpolator
OrientationInterpolator value_changed SFRotation |
RadarAntennaLower
Transform set_rotation SFRotation |
PropTimerSource
TimeSensor fraction_changed SFFloat |
PropRotationInterpolator
OrientationInterpolator set_fraction SFFloat |
then
|
PropRotationInterpolator
OrientationInterpolator value_changed SFRotation |
PropAssembly
Transform set_rotation SFRotation |
TopRadarTImeSource
TimeSensor fraction_changed SFFloat |
TopRadarInterpolator
OrientationInterpolator set_fraction SFFloat |
then
|
TopRadarInterpolator
OrientationInterpolator value_changed SFRotation |
RadarAntennaTop
Transform set_rotation SFRotation |
<!--
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.
-->