aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/3D/glUtils.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/helper-classes/3D/glUtils.js')
-rwxr-xr-xjs/helper-classes/3D/glUtils.js319
1 files changed, 0 insertions, 319 deletions
diff --git a/js/helper-classes/3D/glUtils.js b/js/helper-classes/3D/glUtils.js
deleted file mode 100755
index f6d075f8..00000000
--- a/js/helper-classes/3D/glUtils.js
+++ /dev/null
@@ -1,319 +0,0 @@
1/* <copyright>
2This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3No 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
8function Vector() {}
9Vector.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
20Vector.dup = function(srcPt)
21{
22 return srcPt.slice(0);
23}
24
25
26
27function Matrix() {}
28
29Matrix.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}
44Matrix.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
59Matrix.Translation = function (vec)
60{
61 var mat = Matrix.I(4);
62 glmat4.translate(mat, vec);
63 return mat;
64}
65
66Matrix.RotationX = function( angle )
67{
68 var mat = Matrix.I(4);
69 glmat4.rotateX(mat, angle);
70 return mat;
71}
72
73Matrix.RotationY = function( angle )
74{
75 var mat = Matrix.I(4);
76 glmat4.rotateY(mat, angle);
77 return mat;
78}
79
80Matrix.RotationZ = function( angle )
81{
82 var mat = Matrix.I(4);
83 glmat4.rotateZ(mat, angle);
84 return mat;
85}
86
87Matrix.Rotation = function(angle, axis)
88{
89 var mat = Matrix.I(4);
90 glmat4.rotate(mat, angle, axis);
91 return mat;
92}
93Matrix.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/*
108Matrix.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
141Matrix.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
157SMatrix.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
166SMatrix.RotationX = function( angle )
167{
168 var mat = SMatrix.I(4);
169 mat.rotateX(angle);
170 return mat;
171}
172
173SMatrix.RotationY = function( angle )
174{
175 var mat = SMatrix.I(4);
176 mat.rotateX(angle);
177 return mat;
178}
179
180SMatrix.RotationZ = function( angle )
181{
182 var mat = SMatrix.I(4);
183 mat.rotateZ(angle);
184 return mat;
185}
186
187SMatrix.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
203SMatrix.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
223Vector.prototype.flatten = function ()
224{
225 return this.elements;
226};
227
228function mht(m) {
229 var s = "";
230 if (m.length == 16) {
231 for (var i = 0; i < 4; i++) {
232 s += "<span style='font-family: monospace'>[" + m[i*4+0].toFixed(4) + "," + m[i*4+1].toFixed(4) + "," + m[i*4+2].toFixed(4) + "," + m[i*4+3].toFixed(4) + "]</span><br>";
233 }
234 } else if (m.length == 9) {
235 for (var i = 0; i < 3; i++) {
236 s += "<span style='font-family: monospace'>[" + m[i*3+0].toFixed(4) + "," + m[i*3+1].toFixed(4) + "," + m[i*3+2].toFixed(4) + "]</font><br>";
237 }
238 } else {
239 return m.toString();
240 }
241 return s;
242}
243
244//
245// gluLookAt
246//
247function makeLookAt(ex, ey, ez,
248 cx, cy, cz,
249 ux, uy, uz)
250{
251 var eye = $V([ex, ey, ez]);
252 var center = $V([cx, cy, cz]