sea_0_00.x3d source
<?xml version="1.0" encoding="UTF-8"?>

<X3D>
<Scene>
<Viewpoint position='0 5 10' orientation='1 0 0 -0.5'/>
<NavigationInfo
type='"EXAMINE"'
/>

<!-- 海面 -->
<Shape>
<Appearance>
<Material diffuseColor='1 1 0.999'/>
<ImageTexture
url='"sea.jpg"'
/>
</Appearance>
<IndexedFaceSet creaseAngle='3.141'
coordIndex='1 0 11 12 -1
2 1 12 13 -1
3 2 13 14 -1
4 3 14 15 -1
5 4 15 16 -1
6 5 16 17 -1
7 6 17 18 -1
8 7 18 19 -1
9 8 19 20 -1
10 9 20 21 -1
12 11 22 23 -1
13 12 23 24 -1
14 13 24 25 -1
15 14 25 26 -1
16 15 26 27 -1
17 16 27 28 -1
18 17 28 29 -1
19 18 29 30 -1
20 19 30 31 -1
21 20 31 32 -1
23 22 33 34 -1
24 23 34 35 -1
25 24 35 36 -1
26 25 36 37 -1
27 26 37 38 -1
28 27 38 39 -1
29 28 39 40 -1
30 29 40 41 -1
31 30 41 42 -1
32 31 42 43 -1
34 33 44 45 -1
35 34 45 46 -1
36 35 46 47 -1
37 36 47 48 -1
38 37 48 49 -1
39 38 49 50 -1
40 39 50 51 -1
41 40 51 52 -1
42 41 52 53 -1
43 42 53 54 -1
45 44 55 56 -1
46 45 56 57 -1
47 46 57 58 -1
48 47 58 59 -1
49 48 59 60 -1
50 49 60 61 -1
51 50 61 62 -1
52 51 62 63 -1
53 52 63 64 -1
54 53 64 65 -1
56 55 66 67 -1
57 56 67 68 -1
58 57 68 69 -1
59 58 69 70 -1
60 59 70 71 -1
61 60 71 72 -1
62 61 72 73 -1
63 62 73 74 -1
64 63 74 75 -1
65 64 75 76 -1
67 66 77 78 -1
68 67 78 79 -1
69 68 79 80 -1
70 69 80 81 -1
71 70 81 82 -1
72 71 82 83 -1
73 72 83 84 -1
74 73 84 85 -1
75 74 85 86 -1
76 75 86 87 -1
78 77 88 89 -1
79 78 89 90 -1
80 79 90 91 -1
81 80 91 92 -1
82 81 92 93 -1
83 82 93 94 -1
84 83 94 95 -1
85 84 95 96 -1
86 85 96 97 -1
87 86 97 98 -1
89 88 99 100 -1
90 89 100 101 -1
91 90 101 102 -1
92 91 102 103 -1
93 92 103 104 -1
94 93 104 105 -1
95 94 105 106 -1
96 95 106 107 -1
97 96 107 108 -1
98 97 108 109 -1
100 99 110 111 -1
101 100 111 112 -1
102 101 112 113 -1
103 102 113 114 -1
104 103 114 115 -1
105 104 115 116 -1
106 105 116 117 -1
107 106 117 118 -1
108 107 118 119 -1
109 108 119 120 -1'
>
<Coordinate DEF='Cd'
point='-5 0 -5
-4 0 -5
-3 0 -5
-2 0 -5
-1 0 -5
0 0 -5
1 0 -5
2 0 -5
3 0 -5
4 0 -5
5 0 -5
-5 0 -4
-4 0 -4
-3 0 -4
-2 0 -4
-1 0 -4
0 0 -4
1 0 -4
2 0 -4
3 0 -4
4 0 -4
5 0 -4
-5 0 -3
-4 0 -3
-3 0 -3
-2 0 -3
-1 0 -3
0 0 -3
1 0 -3
2 0 -3
3 0 -3
4 0 -3
5 0 -3
-5 0 -2
-4 0 -2
-3 0 -2
-2 0 -2
-1 0 -2
0 0 -2
1 0 -2
2 0 -2
3 0 -2
4 0 -2
5 0 -2
-5 0 -1
-4 0 -1
-3 0 -1
-2 0 -1
-1 0 -1
0 0 -1
1 0 -1
2 0 -1
3 0 -1
4 0 -1
5 0 -1
-5 0 0
-4 0 0
-3 0 0
-2 0 0
-1 0 0
0 0 0
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
-5 0 1
-4 0 1
-3 0 1
-2 0 1
-1 0 1
0 0 1
1 0 1
2 0 1
3 0 1
4 0 1
5 0 1
-5 0 2
-4 0 2
-3 0 2
-2 0 2
-1 0 2
0 0 2
1 0 2
2 0 2
3 0 2
4 0 2
5 0 2
-5 0 3
-4 0 3
-3 0 3
-2 0 3
-1 0 3
0 0 3
1 0 3
2 0 3
3 0 3
4 0 3
5 0 3
-5 0 4
-4 0 4
-3 0 4
-2 0 4
-1 0 4
0 0 4
1 0 4
2 0 4
3 0 4
4 0 4
5 0 4
-5 0 5
-4 0 5
-3 0 5
-2 0 5
-1 0 5
0 0 5
1 0 5
2 0 5
3 0 5
4 0 5
5 0 5
'
/>
</IndexedFaceSet>
</Shape>

<!-- タイムセンサー -->
<TimeSensor DEF='TiS' loop='TRUE' cycleInterval='5'/>

<!-- 波動アニメーション -->
<CoordinateInterpolator DEF='CI'/>
<ROUTE fromNode='TiS' fromField='fraction_changed' toNode='CI' toField='set_fraction'/>
<ROUTE fromNode='CI' fromField='value_changed' toNode='Cd' toField='point'/>

<!-- 波動アニメ作成スクリプト -->
<Script DEF='Sc'>
<field accessType='outputOnly' type='MFFloat' name='key'/>
<field accessType='outputOnly' type='MFVec3f' name='keyValue'/>
<field accessType='initializeOnly' type='SFInt32' name='kl' value='10'/>
<field accessType='initializeOnly' type='SFFloat' name='height' value='0.5'/>
<![CDATA[ecmascript:
function initialize () {

var s = 10;
var phase = Math.PI / 4;
var k = new MFFloat();
var kv = new MFVec3f();
var pi2 = 2 * Math.PI;
var q = 0;

for ( var i = 0; i <=kl; i++ ) {

k[i] = i / kl;
var angle = pi2 * i / kl;

for ( var z = -s/2 ; z <= s/2; z++ ) {
for ( var x = -s/2; x <= s/2; x++ ) {

var y = height * Math.sin ( angle + phase * ( x + z ) );
kv[q++] = new SFVec3f ( x, y, z );

}
}
}

key = k;
keyValue = kv;

}
]]>
</Script>

<ROUTE fromNode='Sc' fromField='key' toNode='CI' toField='key'/>
<ROUTE fromNode='Sc' fromField='keyValue' toNode='CI' toField='keyValue'/>
</Scene>
</X3D>