diff options
Diffstat (limited to 'js/lib/math/matrix.js')
-rwxr-xr-x | js/lib/math/matrix.js | 91 |
1 files changed, 46 insertions, 45 deletions
diff --git a/js/lib/math/matrix.js b/js/lib/math/matrix.js index 067f83e2..60a7ae41 100755 --- a/js/lib/math/matrix.js +++ b/js/lib/math/matrix.js | |||
@@ -1,24 +1,25 @@ | |||
1 | /* <copyright> | 1 | /* <copyright> |
2 | Copyright (c) 2012, Motorola Mobility, Inc | 2 | Copyright (c) 2012, Motorola Mobility LLC. |
3 | All Rights Reserved. | 3 | All Rights Reserved. |
4 | BSD License. | ||
5 | 4 | ||
6 | Redistribution and use in source and binary forms, with or without | 5 | Redistribution and use in source and binary forms, with or without |
7 | modification, are permitted provided that the following conditions are met: | 6 | modification, are permitted provided that the following conditions are met: |
8 | 7 | ||
9 | - Redistributions of source code must retain the above copyright notice, | 8 | * Redistributions of source code must retain the above copyright notice, |
10 | this list of conditions and the following disclaimer. | 9 | this list of conditions and the following disclaimer. |
11 | - Redistributions in binary form must reproduce the above copyright | 10 | |
12 | notice, this list of conditions and the following disclaimer in the | 11 | * Redistributions in binary form must reproduce the above copyright notice, |
13 | documentation and/or other materials provided with the distribution. | 12 | this list of conditions and the following disclaimer in the documentation |
14 | - Neither the name of Motorola Mobility nor the names of its contributors | 13 | and/or other materials provided with the distribution. |
15 | may be used to endorse or promote products derived from this software | 14 | |
16 | without specific prior written permission. | 15 | * Neither the name of Motorola Mobility LLC nor the names of its |
16 | contributors may be used to endorse or promote products derived from this | ||
17 | software without specific prior written permission. | ||
17 | 18 | ||
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
21 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE | 22 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
22 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 23 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
23 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 24 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
24 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 25 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
@@ -33,56 +34,56 @@ var Matrix = function Matrix() { | |||
33 | }; | 34 | }; |
34 | 35 | ||
35 | Matrix.create = function( rowArray ) { | 36 | Matrix.create = function( rowArray ) { |
36 | var mat = Matrix.I(4); | 37 | var mat = Matrix.I(4); |
37 | var index = 0; | 38 | var index = 0; |
38 | for(var j=0; j<4; j++) { | 39 | for(var j=0; j<4; j++) { |
39 | for (var i=0; i<4; i++) { | 40 | for (var i=0; i<4; i++) { |
40 | mat[index] = rowArray[i][j]; | 41 | mat[index] = rowArray[i][j]; |
41 | index++; | 42 | index++; |
42 | } | 43 | } |
43 | } | 44 | } |
44 | 45 | ||
45 | return mat; | 46 | return mat; |
46 | }; | 47 | }; |
47 | 48 | ||
48 | Matrix.I = function(dimen) { | 49 | Matrix.I = function(dimen) { |
49 | var mat = []; | 50 | var mat = []; |
50 | 51 | ||
51 | for (var i = 0; i<dimen*dimen; i++) { | 52 | for (var i = 0; i<dimen*dimen; i++) { |
52 | mat.push(0); | 53 | mat.push(0); |
53 | } | 54 | } |
54 | 55 | ||
55 | var index = 0; | 56 | var index = 0; |
56 | for (var j = 0; j<dimen; j++) { | 57 | for (var j = 0; j<dimen; j++) { |
57 | mat[index] = 1.0; | 58 | mat[index] = 1.0; |
58 | index += dimen + 1; | 59 | index += dimen + 1; |
59 | } | 60 | } |
60 | 61 | ||
61 | return mat; | 62 | return mat; |
62 | }; | 63 | }; |
63 | 64 | ||
64 | Matrix.Translation = function (vec) { | 65 | Matrix.Translation = function (vec) { |
65 | var mat = Matrix.I(4); | 66 | var mat = Matrix.I(4); |
66 | glmat4.translate(mat, vec); | 67 | glmat4.translate(mat, vec); |
67 | return mat; | 68 | return mat; |
68 | }; | 69 | }; |
69 | 70 | ||
70 | Matrix.RotationX = function( angle ) { | 71 | Matrix.RotationX = function( angle ) { |
71 | var mat = Matrix.I(4); | 72 | var mat = Matrix.I(4); |
72 | glmat4.rotateX(mat, angle); | 73 | glmat4.rotateX(mat, angle); |
73 | return mat; | 74 | return mat; |
74 | }; | 75 | }; |
75 | 76 | ||
76 | Matrix.RotationY = function( angle ) { | 77 | Matrix.RotationY = function( angle ) { |
77 | var mat = Matrix.I(4); | 78 | var mat = Matrix.I(4); |
78 | glmat4.rotateY(mat, angle); | 79 | glmat4.rotateY(mat, angle); |
79 | return mat; | 80 | return mat; |
80 | }; | 81 | }; |
81 | 82 | ||
82 | Matrix.RotationZ = function( angle ) { | 83 | Matrix.RotationZ = function( angle ) { |
83 | var mat = Matrix.I(4); | 84 | var mat = Matrix.I(4); |
84 | glmat4.rotateZ(mat, angle); | 85 | glmat4.rotateZ(mat, angle); |
85 | return mat; | 86 | return mat; |
86 | }; | 87 | }; |
87 | 88 | ||
88 | Matrix.Rotation = function(angle, axis) { | 89 | Matrix.Rotation = function(angle, axis) { |
@@ -94,8 +95,8 @@ Matrix.Rotation = function(angle, axis) { | |||
94 | Matrix.Scale = function( scaleVec ) { | 95 | Matrix.Scale = function( scaleVec ) { |
95 | var mat = Matrix.I(4); | 96 | var mat = Matrix.I(4); |
96 | mat[ 0] = scaleVec[0]; | 97 | mat[ 0] = scaleVec[0]; |
97 | mat[ 5] = scaleVec[1]; | 98 | mat[ 5] = scaleVec[1]; |
98 | mat[10] = scaleVec[2]; | 99 | mat[10] = scaleVec[2]; |
99 | 100 | ||
100 | return mat; | 101 | return mat; |
101 | }; | 102 | }; |
@@ -106,7 +107,7 @@ Matrix.flatten = function (mat) { | |||
106 | return []; | 107 | return []; |
107 | } | 108 | } |
108 | 109 | ||
109 | for (var i=0; i<16; i++) { | 110 | for (var i=0; i<16; i++) { |
110 | result.push(mat[i]); | 111 | result.push(mat[i]); |
111 | } | 112 | } |
112 | 113 | ||