diff options
author | Valerio Virgillito | 2012-03-06 11:05:00 -0800 |
---|---|---|
committer | Valerio Virgillito | 2012-03-06 11:05:00 -0800 |
commit | 4540b5b4ea2065c3e0d67b46bba8b6764801fbea (patch) | |
tree | 4e1561530b1b90ea497bac8e41d193fa605e98b4 /js/helper-classes/backup-delete/glUtils.js | |
parent | 4e35725e6c9044c37bef28b8c8d36f4b5c89bfd9 (diff) | |
parent | 84332ab81c1b445195f1d9be8bbeae0725c8e758 (diff) | |
download | ninja-4540b5b4ea2065c3e0d67b46bba8b6764801fbea.tar.gz |
Merge branch 'refs/heads/master' into panels
Diffstat (limited to 'js/helper-classes/backup-delete/glUtils.js')
-rwxr-xr-x | js/helper-classes/backup-delete/glUtils.js | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/js/helper-classes/backup-delete/glUtils.js b/js/helper-classes/backup-delete/glUtils.js new file mode 100755 index 00000000..f6d075f8 --- /dev/null +++ b/js/helper-classes/backup-delete/glUtils.js | |||
@@ -0,0 +1,319 @@ | |||
1 | /* <copyright> | ||
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | ||
3 | No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/> | ||
4 | (c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved. | ||
5 | </copyright> */ | ||
6 | |||
7 | // Constructor function | ||
8 | function Vector() {} | ||
9 | Vector.create = function(elements) | ||
10 | { | ||
11 | var rtn; | ||
12 | if (elements) | ||
13 | rtn = elements.slice( 0 ); | ||
14 | else | ||
15 | rtn = []; | ||
16 | |||
17 | return rtn; | ||
18 | }; | ||
19 | |||
20 | Vector.dup = function(srcPt) | ||
21 | { | ||
22 | return srcPt.slice(0); | ||
23 | } | ||
24 | |||
25 | |||
26 | |||
27 | function Matrix() {} | ||
28 | |||
29 | Matrix.create = function( rowArray ) | ||
30 | { | ||
31 | var mat = Matrix.I(4); | ||
32 | var index = 0; | ||
33 | for(var j=0; j<4; j++) | ||
34 | { | ||
35 | for (var i=0; i<4; i++) | ||
36 | { | ||
37 | mat[index] = rowArray[i][j]; | ||
38 | index++; | ||
39 | } | ||
40 | } | ||
41 | |||
42 | return mat; | ||
43 | } | ||
44 | Matrix.I = function(dimen) | ||
45 | { | ||
46 | var mat = []; | ||
47 | for (var i=0; i<dimen*dimen; i++) mat.push(0); | ||
48 | |||
49 | var index = 0; | ||
50 | for (var i=0; i<dimen; i++) | ||
51 | { | ||
52 | mat[index] = 1.0; | ||
53 | index += dimen + 1; | ||
54 | } | ||
55 | |||
56 | return mat; | ||
57 | } | ||
58 | |||
59 | Matrix.Translation = function (vec) | ||
60 | { | ||
61 | var mat = Matrix.I(4); | ||
62 | glmat4.translate(mat, vec); | ||
63 | return mat; | ||
64 | } | ||
65 | |||
66 | Matrix.RotationX = function( angle ) | ||
67 | { | ||
68 | var mat = Matrix.I(4); | ||
69 | glmat4.rotateX(mat, angle); | ||
70 | return mat; | ||
71 | } | ||
72 | |||
73 | Matrix.RotationY = function( angle ) | ||
74 | { | ||
75 | var mat = Matrix.I(4); | ||
76 | glmat4.rotateY(mat, angle); | ||
77 | return mat; | ||
78 | } | ||
79 | |||
80 | Matrix.RotationZ = function( angle ) | ||
81 | { | ||
82 | var mat = Matrix.I(4); | ||
83 | glmat4.rotateZ(mat, angle); | ||
84 | return mat; | ||
85 | } | ||
86 | |||
87 | Matrix.Rotation = function(angle, axis) | ||
88 | { | ||
89 | var mat = Matrix.I(4); | ||
90 | glmat4.rotate(mat, angle, axis); | ||
91 | return mat; | ||
92 | } | ||
93 | Matrix.flatten = function (mat) | ||
94 | { | ||
95 | var result = []; | ||
96 | if (this.elements.length == 0) | ||
97 | return []; | ||
98 | |||
99 | for (var i=0; i<16; i++) result.push(mat[i]); | ||
100 | // for (var j = 0; j < this.elements[0].length; j++) | ||
101 | // for (var i = 0; i < this.elements.length; i++) | ||
102 | // result.push(this.elements[i][j]); | ||
103 | |||
104 | return result; | ||
105 | } | ||
106 | |||
107 | /* | ||
108 | Matrix.ensure4x4 = function() | ||
109 | { | ||
110 | if (this.elements.length == 4 && | ||
111 | this.elements[0].length == 4) | ||
112 | return this; | ||
113 | |||
114 | if (this.elements.length > 4 || | ||
115 | this.elements[0].length > 4) | ||
116 | return null; | ||
117 | |||
118 | for (var i = 0; i < this.elements.length; i++) { | ||
119 | for (var j = this.elements[i].length; j < 4; j++) { | ||
120 | if (i == j) | ||
121 | this.elements[i].push(1); | ||
122 | else | ||
123 | this.elements[i].push(0); | ||
124 | } | ||
125 | } | ||
126 | |||
127 | for (var i = this.elements.length; i < 4; i++) { | ||
128 | if (i == 0) | ||
129 | this.elements.push([1, 0, 0, 0]); | ||
130 | else if (i == 1) | ||
131 | this.elements.push([0, 1, 0, 0]); | ||
132 | else if (i == 2) | ||
133 | this.elements.push([0, 0, 1, 0]); | ||
134 | else if (i == 3) | ||
135 | this.elements.push([0, 0, 0, 1]); | ||
136 | } | ||
137 | |||
138 | return this; | ||
139 | }; | ||
140 | |||
141 | Matrix.prototype.make3x3 = function() | ||
142 | { | ||
143 | if (this.elements.length != 4 || | ||
144 | this.elements[0].length != 4) | ||
145 | return null; | ||
146 | |||
147 | return Matrix.create([[this.elements[0][0], this.elements[0][1], this.elements[0][2]], | ||
148 | [this.elements[1][0], this.elements[1][1], this.elements[1][2]], | ||
149 | [this.elements[2][0], this.elements[2][1], this.elements[2][2]]]); | ||
150 | }; | ||
151 | */ | ||
152 | |||
153 | /* | ||
154 | ///////////////////////////////////////////////////////////////////////////////////////////// | ||
155 | // SMatrix | ||
156 | |||
157 | SMatrix.Translation = function (vec) | ||
158 | { | ||
159 | var mat = SMatrix.I(4); | ||
160 | mat.elements[0][3] = vec[0]; | ||
161 | mat.elements[1][3] = vec[1]; | ||
162 | mat.elements[2][3] = vec[2]; | ||
163 | return mat; | ||
164 | } | ||
165 | |||
166 | SMatrix.RotationX = function( angle ) | ||
167 | { | ||
168 | var mat = SMatrix.I(4); | ||
169 | mat.rotateX(angle); | ||
170 | return mat; | ||
171 | } | ||
172 | |||
173 | SMatrix.RotationY = function( angle ) | ||
174 | { | ||
175 | var mat = SMatrix.I(4); | ||
176 | mat.rotateX(angle); | ||
177 | return mat; | ||
178 | } | ||
179 | |||
180 | SMatrix.RotationZ = function( angle ) | ||
181 | { | ||
182 | var mat = SMatrix.I(4); | ||
183 | mat.rotateZ(angle); | ||
184 | return mat; | ||
185 | } | ||
186 | |||
187 | SMatrix.MatrixtoSMatrix = function( mat ) | ||
188 | { | ||
189 | var smat = SMatrix.I(4); | ||
190 | var index = 0; | ||
191 | for (var j=0; j<4; j++) | ||
192 | { | ||
193 | for (var i=0; i<4; i++) | ||
194 | { | ||
195 | smat.elements[i][j] = mat[index]; | ||
196 | index++; | ||
197 | } | ||
198 | } | ||
199 | |||
200 | return smat; | ||
201 | } | ||
202 | |||
203 | SMatrix.MatEqSMat = function( mat, sMat ) | ||
204 | { | ||
205 | var index = 0; | ||
206 | for (var j=0; j<4; j++) | ||
207 | { | ||
208 | for (var i=0; i<4; i++) | ||
209 | { | ||
210 | var m = mat[index]; | ||
211 | var s = smat.elements[i][j]; | ||
212 | if ( MathUtils.fpCmp(m,s) != 0) | ||
213 | throw new Error( "mat != smat" ); | ||
214 | index++; | ||
215 | } | ||
216 | } | ||
217 | } | ||
218 | |||
219 | // Matrix | ||
220 | ///////////////////////////////////////////////////////////////////////////////////////////// | ||
221 | */ | ||
222 | |||
223 | Vector.prototype.flatten = function () | ||
224 | { | ||
225 | return this.elements; | ||
226 | }; | ||
227 | |||
228 | function mht(m) { | ||
229 | var s = ""; | ||
230 | if (m.length == 16) { | ||
231 | for (var i = 0; i < 4; i++) { | ||