JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / JU / M4.js
1 Clazz.declarePackage ("JU");\r
2 Clazz.load (["JU.M34"], "JU.M4", ["JU.T3"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.m03 = 0;\r
5 this.m13 = 0;\r
6 this.m23 = 0;\r
7 this.m30 = 0;\r
8 this.m31 = 0;\r
9 this.m32 = 0;\r
10 this.m33 = 0;\r
11 Clazz.instantialize (this, arguments);\r
12 }, JU, "M4", JU.M34);\r
13 c$.newA16 = Clazz.defineMethod (c$, "newA16", \r
14 function (v) {\r
15 var m =  new JU.M4 ();\r
16 m.m00 = v[0];\r
17 m.m01 = v[1];\r
18 m.m02 = v[2];\r
19 m.m03 = v[3];\r
20 m.m10 = v[4];\r
21 m.m11 = v[5];\r
22 m.m12 = v[6];\r
23 m.m13 = v[7];\r
24 m.m20 = v[8];\r
25 m.m21 = v[9];\r
26 m.m22 = v[10];\r
27 m.m23 = v[11];\r
28 m.m30 = v[12];\r
29 m.m31 = v[13];\r
30 m.m32 = v[14];\r
31 m.m33 = v[15];\r
32 return m;\r
33 }, "~A");\r
34 c$.newM4 = Clazz.defineMethod (c$, "newM4", \r
35 function (m1) {\r
36 var m =  new JU.M4 ();\r
37 if (m1 == null) {\r
38 m.setIdentity ();\r
39 return m;\r
40 }m.setToM3 (m1);\r
41 m.m03 = m1.m03;\r
42 m.m13 = m1.m13;\r
43 m.m23 = m1.m23;\r
44 m.m30 = m1.m30;\r
45 m.m31 = m1.m31;\r
46 m.m32 = m1.m32;\r
47 m.m33 = m1.m33;\r
48 return m;\r
49 }, "JU.M4");\r
50 c$.newMV = Clazz.defineMethod (c$, "newMV", \r
51 function (m1, t) {\r
52 var m =  new JU.M4 ();\r
53 m.setMV (m1, t);\r
54 return m;\r
55 }, "JU.M3,JU.T3");\r
56 Clazz.defineMethod (c$, "setZero", \r
57 function () {\r
58 this.clear33 ();\r
59 this.m03 = this.m13 = this.m23 = this.m30 = this.m31 = this.m32 = this.m33 = 0.0;\r
60 });\r
61 Clazz.defineMethod (c$, "setIdentity", \r
62 function () {\r
63 this.setZero ();\r
64 this.m00 = this.m11 = this.m22 = this.m33 = 1.0;\r
65 });\r
66 Clazz.defineMethod (c$, "setM4", \r
67 function (m1) {\r
68 this.setM33 (m1);\r
69 this.m03 = m1.m03;\r
70 this.m13 = m1.m13;\r
71 this.m23 = m1.m23;\r
72 this.m30 = m1.m30;\r
73 this.m31 = m1.m31;\r
74 this.m32 = m1.m32;\r
75 this.m33 = m1.m33;\r
76 return this;\r
77 }, "JU.M4");\r
78 Clazz.defineMethod (c$, "setMV", \r
79 function (m1, t) {\r
80 this.setM33 (m1);\r
81 this.setTranslation (t);\r
82 this.m33 = 1;\r
83 }, "JU.M3,JU.T3");\r
84 Clazz.defineMethod (c$, "setToM3", \r
85 function (m1) {\r
86 this.setM33 (m1);\r
87 this.m03 = this.m13 = this.m23 = this.m30 = this.m31 = this.m32 = 0.0;\r
88 this.m33 = 1.0;\r
89 }, "JU.M34");\r
90 Clazz.defineMethod (c$, "setToAA", \r
91 function (a) {\r
92 this.setIdentity ();\r
93 this.setAA33 (a);\r
94 }, "JU.A4");\r
95 Clazz.defineMethod (c$, "setA", \r
96 function (m) {\r
97 this.m00 = m[0];\r
98 this.m01 = m[1];\r
99 this.m02 = m[2];\r
100 this.m03 = m[3];\r
101 this.m10 = m[4];\r
102 this.m11 = m[5];\r
103 this.m12 = m[6];\r
104 this.m13 = m[7];\r
105 this.m20 = m[8];\r
106 this.m21 = m[9];\r
107 this.m22 = m[10];\r
108 this.m23 = m[11];\r
109 this.m30 = m[12];\r
110 this.m31 = m[13];\r
111 this.m32 = m[14];\r
112 this.m33 = m[15];\r
113 }, "~A");\r
114 Clazz.defineMethod (c$, "setTranslation", \r
115 function (trans) {\r
116 this.m03 = trans.x;\r
117 this.m13 = trans.y;\r
118 this.m23 = trans.z;\r
119 }, "JU.T3");\r
120 Clazz.defineMethod (c$, "setElement", \r
121 function (row, col, v) {\r
122 if (row < 3 && col < 3) {\r
123 this.set33 (row, col, v);\r
124 return;\r
125 }if (row > 3 || col > 3) this.err ();\r
126 switch (row) {\r
127 case 0:\r
128 this.m03 = v;\r
129 return;\r
130 case 1:\r
131 this.m13 = v;\r
132 return;\r
133 case 2:\r
134 this.m23 = v;\r
135 return;\r
136 }\r
137 switch (col) {\r
138 case 0:\r
139 this.m30 = v;\r
140 return;\r
141 case 1:\r
142 this.m31 = v;\r
143 return;\r
144 case 2:\r
145 this.m32 = v;\r
146 return;\r
147 case 3:\r
148 this.m33 = v;\r
149 return;\r
150 }\r
151 }, "~N,~N,~N");\r
152 Clazz.defineMethod (c$, "getElement", \r
153 function (row, col) {\r
154 if (row < 3 && col < 3) return this.get33 (row, col);\r
155 if (row > 3 || col > 3) {\r
156 this.err ();\r
157 return 0;\r
158 }switch (row) {\r
159 case 0:\r
160 return this.m03;\r
161 case 1:\r
162 return this.m13;\r
163 case 2:\r
164 return this.m23;\r
165 default:\r
166 switch (col) {\r
167 case 0:\r
168 return this.m30;\r
169 case 1:\r
170 return this.m31;\r
171 case 2:\r
172 return this.m32;\r
173 default:\r
174 return this.m33;\r
175 }\r
176 }\r
177 }, "~N,~N");\r
178 Clazz.defineMethod (c$, "getTranslation", \r
179 function (trans) {\r
180 trans.x = this.m03;\r
181 trans.y = this.m13;\r
182 trans.z = this.m23;\r
183 }, "JU.T3");\r
184 Clazz.defineMethod (c$, "getRotationScale", \r
185 function (m1) {\r
186 m1.m00 = this.m00;\r
187 m1.m01 = this.m01;\r
188 m1.m02 = this.m02;\r
189 m1.m10 = this.m10;\r
190 m1.m11 = this.m11;\r
191 m1.m12 = this.m12;\r
192 m1.m20 = this.m20;\r
193 m1.m21 = this.m21;\r
194 m1.m22 = this.m22;\r
195 }, "JU.M3");\r
196 Clazz.defineMethod (c$, "setRotationScale", \r
197 function (m1) {\r
198 this.m00 = m1.m00;\r
199 this.m01 = m1.m01;\r
200 this.m02 = m1.m02;\r
201 this.m10 = m1.m10;\r
202 this.m11 = m1.m11;\r
203 this.m12 = m1.m12;\r
204 this.m20 = m1.m20;\r
205 this.m21 = m1.m21;\r
206 this.m22 = m1.m22;\r
207 }, "JU.M3");\r
208 Clazz.defineMethod (c$, "setRowA", \r
209 function (row, v) {\r
210 if (row < 3) this.setRow33 (row, v);\r
211 switch (row) {\r
212 case 0:\r
213 this.m03 = v[3];\r
214 return;\r
215 case 1:\r
216 this.m13 = v[3];\r
217 return;\r
218 case 2:\r
219 this.m23 = v[3];\r
220 return;\r
221 case 3:\r
222 this.m30 = v[0];\r
223 this.m31 = v[1];\r
224 this.m32 = v[2];\r
225 this.m33 = v[3];\r
226 return;\r
227 }\r
228 this.err ();\r
229 }, "~N,~A");\r
230 Clazz.overrideMethod (c$, "getRow", \r
231 function (row, v) {\r
232 if (row < 3) this.getRow33 (row, v);\r
233 switch (row) {\r
234 case 0:\r
235 v[3] = this.m03;\r
236 return;\r
237 case 1:\r
238 v[3] = this.m13;\r
239 return;\r
240 case 2:\r
241 v[3] = this.m23;\r
242 return;\r
243 case 3:\r
244 v[0] = this.m30;\r
245 v[1] = this.m31;\r
246 v[2] = this.m32;\r
247 v[3] = this.m33;\r
248 return;\r
249 }\r
250 this.err ();\r
251 }, "~N,~A");\r
252 Clazz.defineMethod (c$, "setColumn4", \r
253 function (column, x, y, z, w) {\r
254 if (column == 0) {\r
255 this.m00 = x;\r
256 this.m10 = y;\r
257 this.m20 = z;\r
258 this.m30 = w;\r
259 } else if (column == 1) {\r
260 this.m01 = x;\r
261 this.m11 = y;\r
262 this.m21 = z;\r
263 this.m31 = w;\r
264 } else if (column == 2) {\r
265 this.m02 = x;\r
266 this.m12 = y;\r
267 this.m22 = z;\r
268 this.m32 = w;\r
269 } else if (column == 3) {\r
270 this.m03 = x;\r
271 this.m13 = y;\r
272 this.m23 = z;\r
273 this.m33 = w;\r
274 } else {\r
275 this.err ();\r
276 }}, "~N,~N,~N,~N,~N");\r
277 Clazz.defineMethod (c$, "setColumnA", \r
278 function (column, v) {\r
279 if (column < 3) this.setColumn33 (column, v);\r
280 switch (column) {\r
281 case 0:\r
282 this.m30 = v[3];\r
283 return;\r
284 case 1:\r
285 this.m31 = v[3];\r
286 return;\r
287 case 2:\r
288 this.m32 = v[3];\r
289 return;\r
290 case 3:\r
291 this.m03 = v[0];\r
292 this.m13 = v[1];\r
293 this.m23 = v[2];\r
294 this.m33 = v[3];\r
295 return;\r
296 default:\r
297 this.err ();\r
298 }\r
299 }, "~N,~A");\r
300 Clazz.defineMethod (c$, "getColumn", \r
301 function (column, v) {\r
302 if (column < 3) this.getColumn33 (column, v);\r
303 switch (column) {\r
304 case 0:\r
305 v[3] = this.m30;\r
306 return;\r
307 case 1:\r
308 v[3] = this.m31;\r
309 return;\r
310 case 2:\r
311 v[3] = this.m32;\r
312 return;\r
313 case 3:\r
314 v[0] = this.m03;\r
315 v[1] = this.m13;\r
316 v[2] = this.m23;\r
317 v[3] = this.m33;\r
318 return;\r
319 default:\r
320 this.err ();\r
321 }\r
322 }, "~N,~A");\r
323 Clazz.defineMethod (c$, "sub", \r
324 function (m1) {\r
325 this.sub33 (m1);\r
326 this.m03 -= m1.m03;\r
327 this.m13 -= m1.m13;\r
328 this.m23 -= m1.m23;\r
329 this.m30 -= m1.m30;\r
330 this.m31 -= m1.m31;\r
331 this.m32 -= m1.m32;\r
332 this.m33 -= m1.m33;\r
333 }, "JU.M4");\r
334 Clazz.defineMethod (c$, "transpose", \r
335 function () {\r
336 this.transpose33 ();\r
337 var tmp = this.m03;\r
338 this.m03 = this.m30;\r
339 this.m30 = tmp;\r
340 tmp = this.m13;\r
341 this.m13 = this.m31;\r
342 this.m31 = tmp;\r
343 tmp = this.m23;\r
344 this.m23 = this.m32;\r
345 this.m32 = tmp;\r
346 });\r
347 Clazz.defineMethod (c$, "invert", \r
348 function () {\r
349 var s = this.determinant4 ();\r
350 if (s == 0.0) return this;\r
351 s = 1 / s;\r
352 this.set (this.m11 * (this.m22 * this.m33 - this.m23 * this.m32) + this.m12 * (this.m23 * this.m31 - this.m21 * this.m33) + this.m13 * (this.m21 * this.m32 - this.m22 * this.m31), this.m21 * (this.m02 * this.m33 - this.m03 * this.m32) + this.m22 * (this.m03 * this.m31 - this.m01 * this.m33) + this.m23 * (this.m01 * this.m32 - this.m02 * this.m31), this.m31 * (this.m02 * this.m13 - this.m03 * this.m12) + this.m32 * (this.m03 * this.m11 - this.m01 * this.m13) + this.m33 * (this.m01 * this.m12 - this.m02 * this.m11), this.m01 * (this.m13 * this.m22 - this.m12 * this.m23) + this.m02 * (this.m11 * this.m23 - this.m13 * this.m21) + this.m03 * (this.m12 * this.m21 - this.m11 * this.m22), this.m12 * (this.m20 * this.m33 - this.m23 * this.m30) + this.m13 * (this.m22 * this.m30 - this.m20 * this.m32) + this.m10 * (this.m23 * this.m32 - this.m22 * this.m33), this.m22 * (this.m00 * this.m33 - this.m03 * this.m30) + this.m23 * (this.m02 * this.m30 - this.m00 * this.m32) + this.m20 * (this.m03 * this.m32 - this.m02 * this.m33), this.m32 * (this.m00 * this.m13 - this.m03 * this.m10) + this.m33 * (this.m02 * this.m10 - this.m00 * this.m12) + this.m30 * (this.m03 * this.m12 - this.m02 * this.m13), this.m02 * (this.m13 * this.m20 - this.m10 * this.m23) + this.m03 * (this.m10 * this.m22 - this.m12 * this.m20) + this.m00 * (this.m12 * this.m23 - this.m13 * this.m22), this.m13 * (this.m20 * this.m31 - this.m21 * this.m30) + this.m10 * (this.m21 * this.m33 - this.m23 * this.m31) + this.m11 * (this.m23 * this.m30 - this.m20 * this.m33), this.m23 * (this.m00 * this.m31 - this.m01 * this.m30) + this.m20 * (this.m01 * this.m33 - this.m03 * this.m31) + this.m21 * (this.m03 * this.m30 - this.m00 * this.m33), this.m33 * (this.m00 * this.m11 - this.m01 * this.m10) + this.m30 * (this.m01 * this.m13 - this.m03 * this.m11) + this.m31 * (this.m03 * this.m10 - this.m00 * this.m13), this.m03 * (this.m11 * this.m20 - this.m10 * this.m21) + this.m00 * (this.m13 * this.m21 - this.m11 * this.m23) + this.m01 * (this.m10 * this.m23 - this.m13 * this.m20), this.m10 * (this.m22 * this.m31 - this.m21 * this.m32) + this.m11 * (this.m20 * this.m32 - this.m22 * this.m30) + this.m12 * (this.m21 * this.m30 - this.m20 * this.m31), this.m20 * (this.m02 * this.m31 - this.m01 * this.m32) + this.m21 * (this.m00 * this.m32 - this.m02 * this.m30) + this.m22 * (this.m01 * this.m30 - this.m00 * this.m31), this.m30 * (this.m02 * this.m11 - this.m01 * this.m12) + this.m31 * (this.m00 * this.m12 - this.m02 * this.m10) + this.m32 * (this.m01 * this.m10 - this.m00 * this.m11), this.m00 * (this.m11 * this.m22 - this.m12 * this.m21) + this.m01 * (this.m12 * this.m20 - this.m10 * this.m22) + this.m02 * (this.m10 * this.m21 - this.m11 * this.m20));\r
353 this.scale (s);\r
354 return this;\r
355 });\r
356 Clazz.defineMethod (c$, "set", \r
357  function (m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {\r
358 this.m00 = m00;\r
359 this.m01 = m01;\r
360 this.m02 = m02;\r
361 this.m03 = m03;\r
362 this.m10 = m10;\r
363 this.m11 = m11;\r
364 this.m12 = m12;\r
365 this.m13 = m13;\r
366 this.m20 = m20;\r
367 this.m21 = m21;\r
368 this.m22 = m22;\r
369 this.m23 = m23;\r
370 this.m30 = m30;\r
371 this.m31 = m31;\r
372 this.m32 = m32;\r
373 this.m33 = m33;\r
374 }, "~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N,~N");\r
375 Clazz.defineMethod (c$, "determinant4", \r
376 function () {\r
377 return (this.m00 * this.m11 - this.m01 * this.m10) * (this.m22 * this.m33 - this.m23 * this.m32) - (this.m00 * this.m12 - this.m02 * this.m10) * (this.m21 * this.m33 - this.m23 * this.m31) + (this.m00 * this.m13 - this.m03 * this.m10) * (this.m21 * this.m32 - this.m22 * this.m31) + (this.m01 * this.m12 - this.m02 * this.m11) * (this.m20 * this.m33 - this.m23 * this.m30) - (this.m01 * this.m13 - this.m03 * this.m11) * (this.m20 * this.m32 - this.m22 * this.m30) + (this.m02 * this.m13 - this.m03 * this.m12) * (this.m20 * this.m31 - this.m21 * this.m30);\r
378 });\r
379 Clazz.defineMethod (c$, "scale", \r
380  function (scalar) {\r
381 this.mul33 (scalar);\r
382 this.m03 *= scalar;\r
383 this.m13 *= scalar;\r
384 this.m23 *= scalar;\r
385 this.m30 *= scalar;\r
386 this.m31 *= scalar;\r
387 this.m32 *= scalar;\r
388 this.m33 *= scalar;\r
389 }, "~N");\r
390 Clazz.defineMethod (c$, "mul", \r
391 function (m1) {\r
392 this.mul2 (this, m1);\r
393 }, "JU.M4");\r
394 Clazz.defineMethod (c$, "mul2", \r
395 function (m1, m2) {\r
396 this.set (m1.m00 * m2.m00 + m1.m01 * m2.m10 + m1.m02 * m2.m20 + m1.m03 * m2.m30, m1.m00 * m2.m01 + m1.m01 * m2.m11 + m1.m02 * m2.m21 + m1.m03 * m2.m31, m1.m00 * m2.m02 + m1.m01 * m2.m12 + m1.m02 * m2.m22 + m1.m03 * m2.m32, m1.m00 * m2.m03 + m1.m01 * m2.m13 + m1.m02 * m2.m23 + m1.m03 * m2.m33, m1.m10 * m2.m00 + m1.m11 * m2.m10 + m1.m12 * m2.m20 + m1.m13 * m2.m30, m1.m10 * m2.m01 + m1.m11 * m2.m11 + m1.m12 * m2.m21 + m1.m13 * m2.m31, m1.m10 * m2.m02 + m1.m11 * m2.m12 + m1.m12 * m2.m22 + m1.m13 * m2.m32, m1.m10 * m2.m03 + m1.m11 * m2.m13 + m1.m12 * m2.m23 + m1.m13 * m2.m33, m1.m20 * m2.m00 + m1.m21 * m2.m10 + m1.m22 * m2.m20 + m1.m23 * m2.m30, m1.m20 * m2.m01 + m1.m21 * m2.m11 + m1.m22 * m2.m21 + m1.m23 * m2.m31, m1.m20 * m2.m02 + m1.m21 * m2.m12 + m1.m22 * m2.m22 + m1.m23 * m2.m32, m1.m20 * m2.m03 + m1.m21 * m2.m13 + m1.m22 * m2.m23 + m1.m23 * m2.m33, m1.m30 * m2.m00 + m1.m31 * m2.m10 + m1.m32 * m2.m20 + m1.m33 * m2.m30, m1.m30 * m2.m01 + m1.m31 * m2.m11 + m1.m32 * m2.m21 + m1.m33 * m2.m31, m1.m30 * m2.m02 + m1.m31 * m2.m12 + m1.m32 * m2.m22 + m1.m33 * m2.m32, m1.m30 * m2.m03 + m1.m31 * m2.m13 + m1.m32 * m2.m23 + m1.m33 * m2.m33);\r
397 }, "JU.M4,JU.M4");\r
398 Clazz.defineMethod (c$, "transform", \r
399 function (vec) {\r
400 this.transform2 (vec, vec);\r
401 }, "JU.T4");\r
402 Clazz.defineMethod (c$, "transform2", \r
403 function (vec, vecOut) {\r
404 vecOut.set4 (this.m00 * vec.x + this.m01 * vec.y + this.m02 * vec.z + this.m03 * vec.w, this.m10 * vec.x + this.m11 * vec.y + this.m12 * vec.z + this.m13 * vec.w, this.m20 * vec.x + this.m21 * vec.y + this.m22 * vec.z + this.m23 * vec.w, this.m30 * vec.x + this.m31 * vec.y + this.m32 * vec.z + this.m33 * vec.w);\r
405 }, "JU.T4,JU.T4");\r
406 Clazz.defineMethod (c$, "rotTrans", \r
407 function (point) {\r
408 this.rotTrans2 (point, point);\r
409 }, "JU.T3");\r
410 Clazz.defineMethod (c$, "rotTrans2", \r
411 function (point, pointOut) {\r
412 pointOut.set (this.m00 * point.x + this.m01 * point.y + this.m02 * point.z + this.m03, this.m10 * point.x + this.m11 * point.y + this.m12 * point.z + this.m13, this.m20 * point.x + this.m21 * point.y + this.m22 * point.z + this.m23);\r
413 return pointOut;\r
414 }, "JU.T3,JU.T3");\r
415 Clazz.defineMethod (c$, "setAsXYRotation", \r
416 function (angle) {\r
417 this.setIdentity ();\r
418 var c = Math.cos (angle);\r
419 var s = Math.sin (angle);\r
420 this.m22 = c;\r
421 this.m23 = -s;\r
422 this.m32 = s;\r
423 this.m33 = c;\r
424 return this;\r
425 }, "~N");\r
426 Clazz.defineMethod (c$, "setAsYZRotation", \r
427 function (angle) {\r
428 this.setIdentity ();\r
429 var c = Math.cos (angle);\r
430 var s = Math.sin (angle);\r
431 this.m00 = c;\r
432 this.m03 = -s;\r
433 this.m30 = s;\r
434 this.m33 = c;\r
435 return this;\r
436 }, "~N");\r
437 Clazz.defineMethod (c$, "setAsXZRotation", \r
438 function (angle) {\r
439 this.setIdentity ();\r
440 var c = Math.cos (angle);\r
441 var s = Math.sin (angle);\r
442 this.m11 = c;\r
443 this.m13 = -s;\r
444 this.m31 = s;\r
445 this.m33 = c;\r
446 return this;\r
447 }, "~N");\r
448 Clazz.overrideMethod (c$, "equals", \r
449 function (o) {\r
450 if (!(Clazz.instanceOf (o, JU.M4))) return false;\r
451 var m = o;\r
452 return (this.m00 == m.m00 && this.m01 == m.m01 && this.m02 == m.m02 && this.m03 == m.m03 && this.m10 == m.m10 && this.m11 == m.m11 && this.m12 == m.m12 && this.m13 == m.m13 && this.m20 == m.m20 && this.m21 == m.m21 && this.m22 == m.m22 && this.m23 == m.m23 && this.m30 == m.m30 && this.m31 == m.m31 && this.m32 == m.m32 && this.m33 == m.m33);\r
453 }, "~O");\r
454 Clazz.overrideMethod (c$, "hashCode", \r
455 function () {\r
456 return JU.T3.floatToIntBits0 (this.m00) ^ JU.T3.floatToIntBits0 (this.m01) ^ JU.T3.floatToIntBits0 (this.m02) ^ JU.T3.floatToIntBits0 (this.m03) ^ JU.T3.floatToIntBits0 (this.m10) ^ JU.T3.floatToIntBits0 (this.m11) ^ JU.T3.floatToIntBits0 (this.m12) ^ JU.T3.floatToIntBits0 (this.m13) ^ JU.T3.floatToIntBits0 (this.m20) ^ JU.T3.floatToIntBits0 (this.m21) ^ JU.T3.floatToIntBits0 (this.m22) ^ JU.T3.floatToIntBits0 (this.m23) ^ JU.T3.floatToIntBits0 (this.m30) ^ JU.T3.floatToIntBits0 (this.m31) ^ JU.T3.floatToIntBits0 (this.m32) ^ JU.T3.floatToIntBits0 (this.m33);\r
457 });\r
458 Clazz.overrideMethod (c$, "toString", \r
459 function () {\r
460 return "[\n  [" + this.m00 + "\t" + this.m01 + "\t" + this.m02 + "\t" + this.m03 + "]" + "\n  [" + this.m10 + "\t" + this.m11 + "\t" + this.m12 + "\t" + this.m13 + "]" + "\n  [" + this.m20 + "\t" + this.m21 + "\t" + this.m22 + "\t" + this.m23 + "]" + "\n  [" + this.m30 + "\t" + this.m31 + "\t" + this.m32 + "\t" + this.m33 + "] ]";\r
461 });\r
462 });\r