@math.gl/core 3.6.0-alpha.1 → 3.6.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/classes/base/math-array.d.ts +61 -31
  2. package/dist/classes/base/math-array.d.ts.map +1 -1
  3. package/dist/classes/base/math-array.js +67 -65
  4. package/dist/classes/base/matrix.d.ts +12 -10
  5. package/dist/classes/base/matrix.d.ts.map +1 -1
  6. package/dist/classes/base/matrix.js +2 -10
  7. package/dist/classes/base/vector.d.ts +37 -25
  8. package/dist/classes/base/vector.d.ts.map +1 -1
  9. package/dist/classes/base/vector.js +17 -24
  10. package/dist/classes/euler.d.ts +59 -55
  11. package/dist/classes/euler.d.ts.map +1 -1
  12. package/dist/classes/euler.js +57 -77
  13. package/dist/classes/matrix3.d.ts +58 -41
  14. package/dist/classes/matrix3.d.ts.map +1 -1
  15. package/dist/classes/matrix3.js +68 -59
  16. package/dist/classes/matrix4.d.ts +214 -90
  17. package/dist/classes/matrix4.d.ts.map +1 -1
  18. package/dist/classes/matrix4.js +252 -171
  19. package/dist/classes/pose.d.ts +29 -26
  20. package/dist/classes/pose.d.ts.map +1 -1
  21. package/dist/classes/pose.js +6 -23
  22. package/dist/classes/quaternion.d.ts +61 -40
  23. package/dist/classes/quaternion.d.ts.map +1 -1
  24. package/dist/classes/quaternion.js +49 -53
  25. package/dist/classes/spherical-coordinates.d.ts +45 -25
  26. package/dist/classes/spherical-coordinates.d.ts.map +1 -1
  27. package/dist/classes/spherical-coordinates.js +30 -24
  28. package/dist/classes/vector2.d.ts +51 -15
  29. package/dist/classes/vector2.d.ts.map +1 -1
  30. package/dist/classes/vector2.js +29 -23
  31. package/dist/classes/vector3.d.ts +47 -32
  32. package/dist/classes/vector3.d.ts.map +1 -1
  33. package/dist/classes/vector3.js +16 -30
  34. package/dist/classes/vector4.d.ts +37 -19
  35. package/dist/classes/vector4.d.ts.map +1 -1
  36. package/dist/classes/vector4.js +12 -24
  37. package/dist/es5/classes/base/math-array.js +248 -179
  38. package/dist/es5/classes/base/math-array.js.map +1 -1
  39. package/dist/es5/classes/base/matrix.js +74 -54
  40. package/dist/es5/classes/base/matrix.js.map +1 -1
  41. package/dist/es5/classes/base/vector.js +167 -121
  42. package/dist/es5/classes/base/vector.js.map +1 -1
  43. package/dist/es5/classes/euler.js +575 -480
  44. package/dist/es5/classes/euler.js.map +1 -1
  45. package/dist/es5/classes/matrix3.js +234 -158
  46. package/dist/es5/classes/matrix3.js.map +1 -1
  47. package/dist/es5/classes/matrix4.js +510 -417
  48. package/dist/es5/classes/matrix4.js.map +1 -1
  49. package/dist/es5/classes/pose.js +126 -101
  50. package/dist/es5/classes/pose.js.map +1 -1
  51. package/dist/es5/classes/quaternion.js +285 -213
  52. package/dist/es5/classes/quaternion.js.map +1 -1
  53. package/dist/es5/classes/spherical-coordinates.js +170 -125
  54. package/dist/es5/classes/spherical-coordinates.js.map +1 -1
  55. package/dist/es5/classes/vector2.js +118 -76
  56. package/dist/es5/classes/vector2.js.map +1 -1
  57. package/dist/es5/classes/vector3.js +171 -119
  58. package/dist/es5/classes/vector3.js.map +1 -1
  59. package/dist/es5/classes/vector4.js +141 -94
  60. package/dist/es5/classes/vector4.js.map +1 -1
  61. package/dist/es5/index.js +34 -34
  62. package/dist/es5/lib/common.js +56 -30
  63. package/dist/es5/lib/common.js.map +1 -1
  64. package/dist/es5/lib/gl-matrix-extras.js +14 -14
  65. package/dist/es5/lib/gl-matrix-extras.js.map +1 -1
  66. package/dist/es5/lib/gl-matrix.d.js +2 -0
  67. package/dist/es5/lib/gl-matrix.d.js.map +1 -0
  68. package/dist/es5/lib/validators.js +5 -3
  69. package/dist/es5/lib/validators.js.map +1 -1
  70. package/dist/esm/classes/base/math-array.js +45 -47
  71. package/dist/esm/classes/base/math-array.js.map +1 -1
  72. package/dist/esm/classes/base/matrix.js +0 -11
  73. package/dist/esm/classes/base/matrix.js.map +1 -1
  74. package/dist/esm/classes/base/vector.js +0 -10
  75. package/dist/esm/classes/base/vector.js.map +1 -1
  76. package/dist/esm/classes/euler.js +61 -48
  77. package/dist/esm/classes/euler.js.map +1 -1
  78. package/dist/esm/classes/matrix3.js +55 -33
  79. package/dist/esm/classes/matrix3.js.map +1 -1
  80. package/dist/esm/classes/matrix4.js +156 -136
  81. package/dist/esm/classes/matrix4.js.map +1 -1
  82. package/dist/esm/classes/pose.js +8 -4
  83. package/dist/esm/classes/pose.js.map +1 -1
  84. package/dist/esm/classes/quaternion.js +37 -27
  85. package/dist/esm/classes/quaternion.js.map +1 -1
  86. package/dist/esm/classes/spherical-coordinates.js +15 -5
  87. package/dist/esm/classes/spherical-coordinates.js.map +1 -1
  88. package/dist/esm/classes/vector2.js.map +1 -1
  89. package/dist/esm/classes/vector3.js +7 -2
  90. package/dist/esm/classes/vector3.js.map +1 -1
  91. package/dist/esm/classes/vector4.js +7 -2
  92. package/dist/esm/classes/vector4.js.map +1 -1
  93. package/dist/esm/lib/common.js +8 -8
  94. package/dist/esm/lib/common.js.map +1 -1
  95. package/dist/esm/lib/gl-matrix-extras.js.map +1 -1
  96. package/dist/esm/lib/gl-matrix.d.js +2 -0
  97. package/dist/esm/lib/gl-matrix.d.js.map +1 -0
  98. package/dist/esm/lib/validators.js.map +1 -1
  99. package/dist/lib/common.d.ts +14 -11
  100. package/dist/lib/common.d.ts.map +1 -1
  101. package/dist/lib/common.js +10 -23
  102. package/dist/lib/gl-matrix-extras.d.ts +6 -5
  103. package/dist/lib/gl-matrix-extras.d.ts.map +1 -1
  104. package/dist/lib/gl-matrix-extras.js +0 -1
  105. package/dist/lib/validators.d.ts +5 -4
  106. package/dist/lib/validators.d.ts.map +1 -1
  107. package/dist/lib/validators.js +0 -19
  108. package/package.json +4 -4
  109. package/src/classes/base/math-array.ts +265 -0
  110. package/src/classes/base/{matrix.js → matrix.ts} +15 -19
  111. package/src/classes/base/{vector.js → vector.ts} +47 -54
  112. package/src/classes/{euler.js → euler.ts} +121 -221
  113. package/src/classes/matrix3.ts +253 -0
  114. package/src/classes/matrix4.ts +668 -0
  115. package/src/classes/{pose.js → pose.ts} +52 -49
  116. package/src/classes/{quaternion.js → quaternion.ts} +107 -95
  117. package/src/classes/{spherical-coordinates.js → spherical-coordinates.ts} +84 -54
  118. package/src/classes/vector2.ts +127 -0
  119. package/src/classes/{vector3.js → vector3.ts} +43 -55
  120. package/src/classes/{vector4.js → vector4.ts} +44 -48
  121. package/src/lib/common.ts +58 -37
  122. package/src/lib/gl-matrix-extras.ts +26 -5
  123. package/src/lib/gl-matrix.d.ts +266 -0
  124. package/src/lib/validators.ts +10 -6
  125. package/dist/es5/classes/base/math-array.d.js +0 -46
  126. package/dist/es5/classes/base/math-array.d.js.map +0 -1
  127. package/dist/es5/classes/base/matrix.d.js +0 -15
  128. package/dist/es5/classes/base/matrix.d.js.map +0 -1
  129. package/dist/es5/classes/base/vector.d.js +0 -24
  130. package/dist/es5/classes/base/vector.d.js.map +0 -1
  131. package/dist/es5/classes/euler.d.js +0 -45
  132. package/dist/es5/classes/euler.d.js.map +0 -1
  133. package/dist/es5/classes/matrix3.d.js +0 -25
  134. package/dist/es5/classes/matrix3.d.js.map +0 -1
  135. package/dist/es5/classes/matrix4.d.js +0 -25
  136. package/dist/es5/classes/matrix4.d.js.map +0 -1
  137. package/dist/es5/classes/pose.d.js +0 -25
  138. package/dist/es5/classes/pose.d.js.map +0 -1
  139. package/dist/es5/classes/quaternion.d.js +0 -27
  140. package/dist/es5/classes/quaternion.d.js.map +0 -1
  141. package/dist/es5/classes/spherical-coordinates.d.js +0 -27
  142. package/dist/es5/classes/spherical-coordinates.d.js.map +0 -1
  143. package/dist/es5/classes/vector2.d.js +0 -18
  144. package/dist/es5/classes/vector2.d.js.map +0 -1
  145. package/dist/es5/classes/vector3.d.js +0 -24
  146. package/dist/es5/classes/vector3.d.js.map +0 -1
  147. package/dist/es5/classes/vector4.d.js +0 -25
  148. package/dist/es5/classes/vector4.d.js.map +0 -1
  149. package/dist/esm/classes/base/math-array.d.js +0 -36
  150. package/dist/esm/classes/base/math-array.d.js.map +0 -1
  151. package/dist/esm/classes/base/matrix.d.js +0 -3
  152. package/dist/esm/classes/base/matrix.d.js.map +0 -1
  153. package/dist/esm/classes/base/vector.d.js +0 -13
  154. package/dist/esm/classes/base/vector.d.js.map +0 -1
  155. package/dist/esm/classes/euler.d.js +0 -55
  156. package/dist/esm/classes/euler.d.js.map +0 -1
  157. package/dist/esm/classes/matrix3.d.js +0 -15
  158. package/dist/esm/classes/matrix3.d.js.map +0 -1
  159. package/dist/esm/classes/matrix4.d.js +0 -15
  160. package/dist/esm/classes/matrix4.d.js.map +0 -1
  161. package/dist/esm/classes/pose.d.js +0 -18
  162. package/dist/esm/classes/pose.d.js.map +0 -1
  163. package/dist/esm/classes/quaternion.d.js +0 -19
  164. package/dist/esm/classes/quaternion.d.js.map +0 -1
  165. package/dist/esm/classes/spherical-coordinates.d.js +0 -22
  166. package/dist/esm/classes/spherical-coordinates.d.js.map +0 -1
  167. package/dist/esm/classes/vector2.d.js +0 -6
  168. package/dist/esm/classes/vector2.d.js.map +0 -1
  169. package/dist/esm/classes/vector3.d.js +0 -13
  170. package/dist/esm/classes/vector3.d.js.map +0 -1
  171. package/dist/esm/classes/vector4.d.js +0 -15
  172. package/dist/esm/classes/vector4.d.js.map +0 -1
  173. package/src/classes/base/math-array.d.ts +0 -55
  174. package/src/classes/base/math-array.js +0 -250
  175. package/src/classes/base/matrix.d.ts +0 -15
  176. package/src/classes/base/vector.d.ts +0 -45
  177. package/src/classes/euler.d.ts +0 -92
  178. package/src/classes/matrix3.d.ts +0 -91
  179. package/src/classes/matrix3.js +0 -225
  180. package/src/classes/matrix4.d.ts +0 -161
  181. package/src/classes/matrix4.js +0 -530
  182. package/src/classes/pose.d.ts +0 -92
  183. package/src/classes/quaternion.d.ts +0 -107
  184. package/src/classes/spherical-coordinates.d.ts +0 -87
  185. package/src/classes/vector2.d.ts +0 -65
  186. package/src/classes/vector2.js +0 -122
  187. package/src/classes/vector3.d.ts +0 -65
  188. package/src/classes/vector4.d.ts +0 -34
@@ -2,15 +2,27 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.default = void 0;
9
11
 
10
- var _validators = require("../lib/validators");
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
11
21
 
12
22
  var _matrix = _interopRequireDefault(require("./base/matrix"));
13
23
 
24
+ var _validators = require("../lib/validators");
25
+
14
26
  var _glMatrixExtras = require("../lib/gl-matrix-extras");
15
27
 
16
28
  var mat4 = _interopRequireWildcard(require("gl-matrix/mat4"));
@@ -21,458 +33,539 @@ var vec3 = _interopRequireWildcard(require("gl-matrix/vec3"));
21
33
 
22
34
  var vec4 = _interopRequireWildcard(require("gl-matrix/vec4"));
23
35
 
24
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
-
26
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
-
28
- const IDENTITY = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
29
- const ZERO = Object.freeze([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
30
- const INDICES = Object.freeze({
31
- COL0ROW0: 0,
32
- COL0ROW1: 1,
33
- COL0ROW2: 2,
34
- COL0ROW3: 3,
35
- COL1ROW0: 4,
36
- COL1ROW1: 5,
37
- COL1ROW2: 6,
38
- COL1ROW3: 7,
39
- COL2ROW0: 8,
40
- COL2ROW1: 9,
41
- COL2ROW2: 10,
42
- COL2ROW3: 11,
43
- COL3ROW0: 12,
44
- COL3ROW1: 13,
45
- COL3ROW2: 14,
46
- COL3ROW3: 15
47
- });
48
- const constants = {};
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
37
 
50
- class Matrix4 extends _matrix.default {
51
- static get IDENTITY() {
52
- constants.IDENTITY = constants.IDENTITY || Object.freeze(new Matrix4(IDENTITY));
53
- return constants.IDENTITY;
54
- }
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
55
39
 
56
- static get ZERO() {
57
- constants.ZERO = constants.ZERO || Object.freeze(new Matrix4(ZERO));
58
- return constants.ZERO;
59
- }
40
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
60
41
 
61
- get INDICES() {
62
- return INDICES;
63
- }
42
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
64
43
 
65
- get ELEMENTS() {
66
- return 16;
67
- }
44
+ var INDICES;
68
45
 
69
- get RANK() {
70
- return 4;
71
- }
46
+ (function (INDICES) {
47
+ INDICES[INDICES["COL0ROW0"] = 0] = "COL0ROW0";
48
+ INDICES[INDICES["COL0ROW1"] = 1] = "COL0ROW1";
49
+ INDICES[INDICES["COL0ROW2"] = 2] = "COL0ROW2";
50
+ INDICES[INDICES["COL0ROW3"] = 3] = "COL0ROW3";
51
+ INDICES[INDICES["COL1ROW0"] = 4] = "COL1ROW0";
52
+ INDICES[INDICES["COL1ROW1"] = 5] = "COL1ROW1";
53
+ INDICES[INDICES["COL1ROW2"] = 6] = "COL1ROW2";
54
+ INDICES[INDICES["COL1ROW3"] = 7] = "COL1ROW3";
55
+ INDICES[INDICES["COL2ROW0"] = 8] = "COL2ROW0";
56
+ INDICES[INDICES["COL2ROW1"] = 9] = "COL2ROW1";
57
+ INDICES[INDICES["COL2ROW2"] = 10] = "COL2ROW2";
58
+ INDICES[INDICES["COL2ROW3"] = 11] = "COL2ROW3";
59
+ INDICES[INDICES["COL3ROW0"] = 12] = "COL3ROW0";
60
+ INDICES[INDICES["COL3ROW1"] = 13] = "COL3ROW1";
61
+ INDICES[INDICES["COL3ROW2"] = 14] = "COL3ROW2";
62
+ INDICES[INDICES["COL3ROW3"] = 15] = "COL3ROW3";
63
+ })(INDICES || (INDICES = {}));
72
64
 
73
- constructor(array) {
74
- super(-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0);
65
+ var DEFAULT_FOVY = 45 * Math.PI / 180;
66
+ var DEFAULT_ASPECT = 1;
67
+ var DEFAULT_NEAR = 0.1;
68
+ var DEFAULT_FAR = 500;
69
+ var IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
75
70
 
76
- if (arguments.length === 1 && Array.isArray(array)) {
77
- this.copy(array);
78
- } else {
79
- this.identity();
80
- }
81
- }
82
-
83
- copy(array) {
84
- this[0] = array[0];
85
- this[1] = array[1];
86
- this[2] = array[2];
87
- this[3] = array[3];
88
- this[4] = array[4];
89
- this[5] = array[5];
90
- this[6] = array[6];
91
- this[7] = array[7];
92
- this[8] = array[8];
93
- this[9] = array[9];
94
- this[10] = array[10];
95
- this[11] = array[11];
96
- this[12] = array[12];
97
- this[13] = array[13];
98
- this[14] = array[14];
99
- this[15] = array[15];
100
- return this.check();
101
- }
102
-
103
- set(m00, m10, m20, m30, m01, m11, m21, m31, m02, m12, m22, m32, m03, m13, m23, m33) {
104
- this[0] = m00;
105
- this[1] = m10;
106
- this[2] = m20;
107
- this[3] = m30;
108
- this[4] = m01;
109
- this[5] = m11;
110
- this[6] = m21;
111
- this[7] = m31;
112
- this[8] = m02;
113
- this[9] = m12;
114
- this[10] = m22;
115
- this[11] = m32;
116
- this[12] = m03;
117
- this[13] = m13;
118
- this[14] = m23;
119
- this[15] = m33;
120
- return this.check();
121
- }
122
-
123
- setRowMajor(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {
124
- this[0] = m00;
125
- this[1] = m10;
126
- this[2] = m20;
127
- this[3] = m30;
128
- this[4] = m01;
129
- this[5] = m11;
130
- this[6] = m21;
131
- this[7] = m31;
132
- this[8] = m02;
133
- this[9] = m12;
134
- this[10] = m22;
135
- this[11] = m32;
136
- this[12] = m03;
137
- this[13] = m13;
138
- this[14] = m23;
139
- this[15] = m33;
140
- return this.check();
141
- }
71
+ var Matrix4 = function (_Matrix) {
72
+ (0, _inherits2.default)(Matrix4, _Matrix);
142
73
 
143
- toRowMajor(result) {
144
- result[0] = this[0];
145
- result[1] = this[4];
146
- result[2] = this[8];
147
- result[3] = this[12];
148
- result[4] = this[1];
149
- result[5] = this[5];
150
- result[6] = this[9];
151
- result[7] = this[13];
152
- result[8] = this[2];
153
- result[9] = this[6];
154
- result[10] = this[10];
155
- result[11] = this[14];
156
- result[12] = this[3];
157
- result[13] = this[7];
158
- result[14] = this[11];
159
- result[15] = this[15];
160
- return result;
161
- }
74
+ var _super = _createSuper(Matrix4);
162
75
 
163
- identity() {
164
- return this.copy(IDENTITY);
165
- }
76
+ function Matrix4(array) {
77
+ var _this;
166
78
 
167
- fromQuaternion(q) {
168
- mat4.fromQuat(this, q);
169
- return this.check();
170
- }
79
+ (0, _classCallCheck2.default)(this, Matrix4);
80
+ _this = _super.call(this, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0);
171
81
 
172
- frustum({
173
- left,
174
- right,
175
- bottom,
176
- top,
177
- near,
178
- far
179
- }) {
180
- if (far === Infinity) {
181
- Matrix4._computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);
82
+ if (arguments.length === 1 && Array.isArray(array)) {
83
+ _this.copy(array);
182
84
  } else {
183
- mat4.frustum(this, left, right, bottom, top, near, far);
85
+ _this.identity();
184
86
  }
185
87
 
186
- return this.check();
187
- }
188
-
189
- static _computeInfinitePerspectiveOffCenter(result, left, right, bottom, top, near) {
190
- const column0Row0 = 2.0 * near / (right - left);
191
- const column1Row1 = 2.0 * near / (top - bottom);
192
- const column2Row0 = (right + left) / (right - left);
193
- const column2Row1 = (top + bottom) / (top - bottom);
194
- const column2Row2 = -1.0;
195
- const column2Row3 = -1.0;
196
- const column3Row2 = -2.0 * near;
197
- result[0] = column0Row0;
198
- result[1] = 0.0;
199
- result[2] = 0.0;
200
- result[3] = 0.0;
201
- result[4] = 0.0;
202
- result[5] = column1Row1;
203
- result[6] = 0.0;
204
- result[7] = 0.0;
205
- result[8] = column2Row0;
206
- result[9] = column2Row1;
207
- result[10] = column2Row2;
208
- result[11] = column2Row3;
209
- result[12] = 0.0;
210
- result[13] = 0.0;
211
- result[14] = column3Row2;
212
- result[15] = 0.0;
213
- return result;
88
+ return _this;
214
89
  }
215
90
 
216
- lookAt(eye, center, up) {
217
- if (arguments.length === 1) {
218
- ({
219
- eye,
220
- center,
221
- up
222
- } = eye);
91
+ (0, _createClass2.default)(Matrix4, [{
92
+ key: "ELEMENTS",
93
+ get: function get() {
94
+ return 16;
223
95
  }
224
-
225
- center = center || [0, 0, 0];
226
- up = up || [0, 1, 0];
227
- mat4.lookAt(this, eye, center, up);
228
- return this.check();
229
- }
230
-
231
- ortho({
232
- left,
233
- right,
234
- bottom,
235
- top,
236
- near = 0.1,
237
- far = 500
238
- }) {
239
- mat4.ortho(this, left, right, bottom, top, near, far);
240
- return this.check();
241
- }
242
-
243
- orthographic({
244
- fovy = 45 * Math.PI / 180,
245
- aspect = 1,
246
- focalDistance = 1,
247
- near = 0.1,
248
- far = 500
249
- }) {
250
- if (fovy > Math.PI * 2) {
251
- throw Error('radians');
252
- }
253
-
254
- const halfY = fovy / 2;
255
- const top = focalDistance * Math.tan(halfY);
256
- const right = top * aspect;
257
- return new Matrix4().ortho({
258
- left: -right,
259
- right,
260
- bottom: -top,
261
- top,
262
- near,
263
- far
264
- });
265
- }
266
-
267
- perspective({
268
- fovy = undefined,
269
- fov = 45 * Math.PI / 180,
270
- aspect = 1,
271
- near = 0.1,
272
- far = 500
273
- } = {}) {
274
- fovy = fovy || fov;
275
-
276
- if (fovy > Math.PI * 2) {
277
- throw Error('radians');
96
+ }, {
97
+ key: "RANK",
98
+ get: function get() {
99
+ return 4;
278
100
  }
279
-
280
- mat4.perspective(this, fovy, aspect, near, far);
281
- return this.check();
282
- }
283
-
284
- determinant() {
285
- return mat4.determinant(this);
286
- }
287
-
288
- getScale(result = [-0, -0, -0]) {
289
- result[0] = Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);
290
- result[1] = Math.sqrt(this[4] * this[4] + this[5] * this[5] + this[6] * this[6]);
291
- result[2] = Math.sqrt(this[8] * this[8] + this[9] * this[9] + this[10] * this[10]);
292
- return result;
293
- }
294
-
295
- getTranslation(result = [-0, -0, -0]) {
296
- result[0] = this[12];
297
- result[1] = this[13];
298
- result[2] = this[14];
299
- return result;
300
- }
301
-
302
- getRotation(result = [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0], scaleResult = null) {
303
- const scale = this.getScale(scaleResult || [-0, -0, -0]);
304
- const inverseScale0 = 1 / scale[0];
305
- const inverseScale1 = 1 / scale[1];
306
- const inverseScale2 = 1 / scale[2];
307
- result[0] = this[0] * inverseScale0;
308
- result[1] = this[1] * inverseScale1;
309
- result[2] = this[2] * inverseScale2;
310
- result[3] = 0;
311
- result[4] = this[4] * inverseScale0;
312
- result[5] = this[5] * inverseScale1;
313
- result[6] = this[6] * inverseScale2;
314
- result[7] = 0;
315
- result[8] = this[8] * inverseScale0;
316
- result[9] = this[9] * inverseScale1;
317
- result[10] = this[10] * inverseScale2;
318
- result[11] = 0;
319
- result[12] = 0;
320
- result[13] = 0;
321
- result[14] = 0;
322
- result[15] = 1;
323
- return result;
324
- }
325
-
326
- getRotationMatrix3(result = [-0, -0, -0, -0, -0, -0, -0, -0, -0], scaleResult = null) {
327
- const scale = this.getScale(scaleResult || [-0, -0, -0]);
328
- const inverseScale0 = 1 / scale[0];
329
- const inverseScale1 = 1 / scale[1];
330
- const inverseScale2 = 1 / scale[2];
331
- result[0] = this[0] * inverseScale0;
332
- result[1] = this[1] * inverseScale1;
333
- result[2] = this[2] * inverseScale2;
334
- result[3] = this[4] * inverseScale0;
335
- result[4] = this[5] * inverseScale1;
336
- result[5] = this[6] * inverseScale2;
337
- result[6] = this[8] * inverseScale0;
338
- result[7] = this[9] * inverseScale1;
339
- result[8] = this[10] * inverseScale2;
340
- return result;
341
- }
342
-
343
- transpose() {
344
- mat4.transpose(this, this);
345
- return this.check();
346
- }
347
-
348
- invert() {
349
- mat4.invert(this, this);
350
- return this.check();
351
- }
352
-
353
- multiplyLeft(a) {
354
- mat4.multiply(this, a, this);
355
- return this.check();
356
- }
357
-
358
- multiplyRight(a) {
359
- mat4.multiply(this, this, a);
360
- return this.check();
361
- }
362
-
363
- rotateX(radians) {
364
- mat4.rotateX(this, this, radians);
365
- return this.check();
366
- }
367
-
368
- rotateY(radians) {
369
- mat4.rotateY(this, this, radians);
370
- return this.check();
371
- }
372
-
373
- rotateZ(radians) {
374
- mat4.rotateZ(this, this, radians);
375
- return this.check();
376
- }
377
-
378
- rotateXYZ([rx, ry, rz]) {
379
- return this.rotateX(rx).rotateY(ry).rotateZ(rz);
380
- }
381
-
382
- rotateAxis(radians, axis) {
383
- mat4.rotate(this, this, radians, axis);
384
- return this.check();
385
- }
386
-
387
- scale(factor) {
388
- if (Array.isArray(factor)) {
389
- mat4.scale(this, this, factor);
390
- } else {
391
- mat4.scale(this, this, [factor, factor, factor]);
101
+ }, {
102
+ key: "INDICES",
103
+ get: function get() {
104
+ return INDICES;
392
105
  }
393
-
394
- return this.check();
395
- }
396
-
397
- translate(vec) {
398
- mat4.translate(this, this, vec);
399
- return this.check();
400
- }
401
-
402
- transform(vector, result) {
403
- if (vector.length === 4) {
404
- result = vec4.transformMat4(result || [-0, -0, -0, -0], vector, this);
405
- (0, _validators.checkVector)(result, 4);
106
+ }, {
107
+ key: "copy",
108
+ value: function copy(array) {
109
+ this[0] = array[0];
110
+ this[1] = array[1];
111
+ this[2] = array[2];
112
+ this[3] = array[3];
113
+ this[4] = array[4];
114
+ this[5] = array[5];
115
+ this[6] = array[6];
116
+ this[7] = array[7];
117
+ this[8] = array[8];
118
+ this[9] = array[9];
119
+ this[10] = array[10];
120
+ this[11] = array[11];
121
+ this[12] = array[12];
122
+ this[13] = array[13];
123
+ this[14] = array[14];
124
+ this[15] = array[15];
125
+ return this.check();
126
+ }
127
+ }, {
128
+ key: "set",
129
+ value: function set(m00, m10, m20, m30, m01, m11, m21, m31, m02, m12, m22, m32, m03, m13, m23, m33) {
130
+ this[0] = m00;
131
+ this[1] = m10;
132
+ this[2] = m20;
133
+ this[3] = m30;
134
+ this[4] = m01;
135
+ this[5] = m11;
136
+ this[6] = m21;
137
+ this[7] = m31;
138
+ this[8] = m02;
139
+ this[9] = m12;
140
+ this[10] = m22;
141
+ this[11] = m32;
142
+ this[12] = m03;
143
+ this[13] = m13;
144
+ this[14] = m23;
145
+ this[15] = m33;
146
+ return this.check();
147
+ }
148
+ }, {
149
+ key: "setRowMajor",
150
+ value: function setRowMajor(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33) {
151
+ this[0] = m00;
152
+ this[1] = m10;
153
+ this[2] = m20;
154
+ this[3] = m30;
155
+ this[4] = m01;
156
+ this[5] = m11;
157
+ this[6] = m21;
158
+ this[7] = m31;
159
+ this[8] = m02;
160
+ this[9] = m12;
161
+ this[10] = m22;
162
+ this[11] = m32;
163
+ this[12] = m03;
164
+ this[13] = m13;
165
+ this[14] = m23;
166
+ this[15] = m33;
167
+ return this.check();
168
+ }
169
+ }, {
170
+ key: "toRowMajor",
171
+ value: function toRowMajor(result) {
172
+ result[0] = this[0];
173
+ result[1] = this[4];
174
+ result[2] = this[8];
175
+ result[3] = this[12];
176
+ result[4] = this[1];
177
+ result[5] = this[5];
178
+ result[6] = this[9];
179
+ result[7] = this[13];
180
+ result[8] = this[2];
181
+ result[9] = this[6];
182
+ result[10] = this[10];
183
+ result[11] = this[14];
184
+ result[12] = this[3];
185
+ result[13] = this[7];
186
+ result[14] = this[11];
187
+ result[15] = this[15];
406
188
  return result;
407
189
  }
408
-
409
- return this.transformAsPoint(vector, result);
410
- }
411
-
412
- transformAsPoint(vector, result) {
413
- const {
414
- length
415
- } = vector;
416
-
417
- switch (length) {
418
- case 2:
419
- result = vec2.transformMat4(result || [-0, -0], vector, this);
420
- break;
421
-
422
- case 3:
423
- result = vec3.transformMat4(result || [-0, -0, -0], vector, this);
424
- break;
425
-
426
- default:
427
- throw new Error('Illegal vector');
190
+ }, {
191
+ key: "identity",
192
+ value: function identity() {
193
+ return this.copy(IDENTITY_MATRIX);
194
+ }
195
+ }, {
196
+ key: "fromObject",
197
+ value: function fromObject(object) {
198
+ return this.check();
199
+ }
200
+ }, {
201
+ key: "fromQuaternion",
202
+ value: function fromQuaternion(quaternion) {
203
+ mat4.fromQuat(this, quaternion);
204
+ return this.check();
205
+ }
206
+ }, {
207
+ key: "frustum",
208
+ value: function frustum(view) {
209
+ var left = view.left,
210
+ right = view.right,
211
+ bottom = view.bottom,
212
+ top = view.top,
213
+ _view$near = view.near,
214
+ near = _view$near === void 0 ? DEFAULT_NEAR : _view$near,
215
+ _view$far = view.far,
216
+ far = _view$far === void 0 ? DEFAULT_FAR : _view$far;
217
+
218
+ if (far === Infinity) {
219
+ computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);
220
+ } else {
221
+ mat4.frustum(this, left, right, bottom, top, near, far);
222
+ }
223
+
224
+ return this.check();
225
+ }
226
+ }, {
227
+ key: "lookAt",
228
+ value: function lookAt(view) {
229
+ var eye = view.eye,
230
+ _view$center = view.center,
231
+ center = _view$center === void 0 ? [0, 0, 0] : _view$center,
232
+ _view$up = view.up,
233
+ up = _view$up === void 0 ? [0, 1, 0] : _view$up;
234
+ mat4.lookAt(this, eye, center, up);
235
+ return this.check();
236
+ }
237
+ }, {
238
+ key: "ortho",
239
+ value: function ortho(view) {
240
+ var left = view.left,
241
+ right = view.right,
242
+ bottom = view.bottom,
243
+ top = view.top,
244
+ _view$near2 = view.near,
245
+ near = _view$near2 === void 0 ? DEFAULT_NEAR : _view$near2,
246
+ _view$far2 = view.far,
247
+ far = _view$far2 === void 0 ? DEFAULT_FAR : _view$far2;
248
+ mat4.ortho(this, left, right, bottom, top, near, far);
249
+ return this.check();
250
+ }
251
+ }, {
252
+ key: "orthographic",
253
+ value: function orthographic(view) {
254
+ var _view$fovy = view.fovy,
255
+ fovy = _view$fovy === void 0 ? DEFAULT_FOVY : _view$fovy,
256
+ _view$aspect = view.aspect,
257
+ aspect = _view$aspect === void 0 ? DEFAULT_ASPECT : _view$aspect,
258
+ _view$focalDistance = view.focalDistance,
259
+ focalDistance = _view$focalDistance === void 0 ? 1 : _view$focalDistance,
260
+ _view$near3 = view.near,
261
+ near = _view$near3 === void 0 ? DEFAULT_NEAR : _view$near3,
262
+ _view$far3 = view.far,
263
+ far = _view$far3 === void 0 ? DEFAULT_FAR : _view$far3;
264
+ checkRadians(fovy);
265
+ var halfY = fovy / 2;
266
+ var top = focalDistance * Math.tan(halfY);
267
+ var right = top * aspect;
268
+ return this.ortho({
269
+ left: -right,
270
+ right: right,
271
+ bottom: -top,
272
+ top: top,
273
+ near: near,
274
+ far: far
275
+ });
276
+ }
277
+ }, {
278
+ key: "perspective",
279
+ value: function perspective(view) {
280
+ var _view$fovy2 = view.fovy,
281
+ fovy = _view$fovy2 === void 0 ? 45 * Math.PI / 180 : _view$fovy2,
282
+ _view$aspect2 = view.aspect,
283
+ aspect = _view$aspect2 === void 0 ? 1 : _view$aspect2,
284
+ _view$near4 = view.near,
285
+ near = _view$near4 === void 0 ? 0.1 : _view$near4,
286
+ _view$far4 = view.far,
287
+ far = _view$far4 === void 0 ? 500 : _view$far4;
288
+ checkRadians(fovy);
289
+ mat4.perspective(this, fovy, aspect, near, far);
290
+ return this.check();
291
+ }
292
+ }, {
293
+ key: "determinant",
294
+ value: function determinant() {
295
+ return mat4.determinant(this);
296
+ }
297
+ }, {
298
+ key: "getScale",
299
+ value: function getScale() {
300
+ var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [-0, -0, -0];
301
+ result[0] = Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);
302
+ result[1] = Math.sqrt(this[4] * this[4] + this[5] * this[5] + this[6] * this[6]);
303
+ result[2] = Math.sqrt(this[8] * this[8] + this[9] * this[9] + this[10] * this[10]);
304
+ return result;
305
+ }
306
+ }, {
307
+ key: "getTranslation",
308
+ value: function getTranslation() {
309
+ var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [-0, -0, -0];
310
+ result[0] = this[12];
311
+ result[1] = this[13];
312
+ result[2] = this[14];
313
+ return result;
314
+ }
315
+ }, {
316
+ key: "getRotation",
317
+ value: function getRotation(result, scaleResult) {
318
+ result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];
319
+ scaleResult = scaleResult || [-0, -0, -0];
320
+ var scale = this.getScale(scaleResult);
321
+ var inverseScale0 = 1 / scale[0];
322
+ var inverseScale1 = 1 / scale[1];
323
+ var inverseScale2 = 1 / scale[2];
324
+ result[0] = this[0] * inverseScale0;
325
+ result[1] = this[1] * inverseScale1;
326
+ result[2] = this[2] * inverseScale2;
327
+ result[3] = 0;
328
+ result[4] = this[4] * inverseScale0;
329
+ result[5] = this[5] * inverseScale1;
330
+ result[6] = this[6] * inverseScale2;
331
+ result[7] = 0;
332
+ result[8] = this[8] * inverseScale0;
333
+ result[9] = this[9] * inverseScale1;
334
+ result[10] = this[10] * inverseScale2;
335
+ result[11] = 0;
336
+ result[12] = 0;
337
+ result[13] = 0;
338
+ result[14] = 0;
339
+ result[15] = 1;
340
+ return result;
341
+ }
342
+ }, {
343
+ key: "getRotationMatrix3",
344
+ value: function getRotationMatrix3(result, scaleResult) {
345
+ result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0];
346
+ scaleResult = scaleResult || [-0, -0, -0];
347
+ var scale = this.getScale(scaleResult);
348
+ var inverseScale0 = 1 / scale[0];
349
+ var inverseScale1 = 1 / scale[1];
350
+ var inverseScale2 = 1 / scale[2];
351
+ result[0] = this[0] * inverseScale0;
352
+ result[1] = this[1] * inverseScale1;
353
+ result[2] = this[2] * inverseScale2;
354
+ result[3] = this[4] * inverseScale0;
355
+ result[4] = this[5] * inverseScale1;
356
+ result[5] = this[6] * inverseScale2;
357
+ result[6] = this[8] * inverseScale0;
358
+ result[7] = this[9] * inverseScale1;
359
+ result[8] = this[10] * inverseScale2;
360
+ return result;
361
+ }
362
+ }, {
363
+ key: "transpose",
364
+ value: function transpose() {
365
+ mat4.transpose(this, this);
366
+ return this.check();
367
+ }
368
+ }, {
369
+ key: "invert",
370
+ value: function invert() {
371
+ mat4.invert(this, this);
372
+ return this.check();
373
+ }
374
+ }, {
375
+ key: "multiplyLeft",
376
+ value: function multiplyLeft(a) {
377
+ mat4.multiply(this, a, this);
378
+ return this.check();
379
+ }
380
+ }, {
381
+ key: "multiplyRight",
382
+ value: function multiplyRight(a) {
383
+ mat4.multiply(this, this, a);
384
+ return this.check();
385
+ }
386
+ }, {
387
+ key: "rotateX",
388
+ value: function rotateX(radians) {
389
+ mat4.rotateX(this, this, radians);
390
+ return this.check();
391
+ }
392
+ }, {
393
+ key: "rotateY",
394
+ value: function rotateY(radians) {
395
+ mat4.rotateY(this, this, radians);
396
+ return this.check();
397
+ }
398
+ }, {
399
+ key: "rotateZ",
400
+ value: function rotateZ(radians) {
401
+ mat4.rotateZ(this, this, radians);
402
+ return this.check();
403
+ }
404
+ }, {
405
+ key: "rotateXYZ",
406
+ value: function rotateXYZ(angleXYZ) {
407
+ return this.rotateX(angleXYZ[0]).rotateY(angleXYZ[1]).rotateZ(angleXYZ[2]);
428
408
  }
409
+ }, {
410
+ key: "rotateAxis",
411
+ value: function rotateAxis(radians, axis) {
412
+ mat4.rotate(this, this, radians, axis);
413
+ return this.check();
414
+ }
415
+ }, {
416
+ key: "scale",
417
+ value: function scale(factor) {
418
+ mat4.scale(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);
419
+ return this.check();
420
+ }
421
+ }, {
422
+ key: "translate",
423
+ value: function translate(vector) {
424
+ mat4.translate(this, this, vector);
425
+ return this.check();
426
+ }
427
+ }, {
428
+ key: "transform",
429
+ value: function transform(vector, result) {
430
+ if (vector.length === 4) {
431
+ result = vec4.transformMat4(result || [-0, -0, -0, -0], vector, this);
432
+ (0, _validators.checkVector)(result, 4);
433
+ return result;
434
+ }
435
+
436
+ return this.transformAsPoint(vector, result);
437
+ }
438
+ }, {
439
+ key: "transformAsPoint",
440
+ value: function transformAsPoint(vector, result) {
441
+ var length = vector.length;
429
442
 
430
- (0, _validators.checkVector)(result, vector.length);
431
- return result;
432
- }
443
+ switch (length) {
444
+ case 2:
445
+ result = vec2.transformMat4(result || [-0, -0], vector, this);
446
+ break;
433
447
 
434
- transformAsVector(vector, result) {
435
- switch (vector.length) {
436
- case 2:
437
- result = (0, _glMatrixExtras.vec2_transformMat4AsVector)(result || [-0, -0], vector, this);
438
- break;
448
+ case 3:
449
+ result = vec3.transformMat4(result || [-0, -0, -0], vector, this);
450
+ break;
439
451
 
440
- case 3:
441
- result = (0, _glMatrixExtras.vec3_transformMat4AsVector)(result || [-0, -0, -0], vector, this);
442
- break;
452
+ default:
453
+ throw new Error('Illegal vector');
454
+ }
443
455
 
444
- default:
445
- throw new Error('Illegal vector');
456
+ (0, _validators.checkVector)(result, vector.length);
457
+ return result;
458
+ }
459
+ }, {
460
+ key: "transformAsVector",
461
+ value: function transformAsVector(vector, result) {
462
+ switch (vector.length) {
463
+ case 2:
464
+ result = (0, _glMatrixExtras.vec2_transformMat4AsVector)(result || [-0, -0], vector, this);
465
+ break;
466
+
467
+ case 3:
468
+ result = (0, _glMatrixExtras.vec3_transformMat4AsVector)(result || [-0, -0, -0], vector, this);
469
+ break;
470
+
471
+ default:
472
+ throw new Error('Illegal vector');
473
+ }
474
+
475
+ (0, _validators.checkVector)(result, vector.length);
476
+ return result;
446
477
  }
478
+ }, {
479
+ key: "transformPoint",
480
+ value: function transformPoint(vector, result) {
481
+ return this.transformAsPoint(vector, result);
482
+ }
483
+ }, {
484
+ key: "transformVector",
485
+ value: function transformVector(vector, result) {
486
+ return this.transformAsPoint(vector, result);
487
+ }
488
+ }, {
489
+ key: "transformDirection",
490
+ value: function transformDirection(vector, result) {
491
+ return this.transformAsVector(vector, result);
492
+ }
493
+ }, {
494
+ key: "makeRotationX",
495
+ value: function makeRotationX(radians) {
496
+ return this.identity().rotateX(radians);
497
+ }
498
+ }, {
499
+ key: "makeTranslation",
500
+ value: function makeTranslation(x, y, z) {
501
+ return this.identity().translate([x, y, z]);
502
+ }
503
+ }], [{
504
+ key: "IDENTITY",
505
+ get: function get() {
506
+ return getIdentityMatrix();
507
+ }
508
+ }, {
509
+ key: "ZERO",
510
+ get: function get() {
511
+ return getZeroMatrix();
512
+ }
513
+ }]);
514
+ return Matrix4;
515
+ }(_matrix.default);
447
516
 
448
- (0, _validators.checkVector)(result, vector.length);
449
- return result;
450
- }
517
+ exports.default = Matrix4;
518
+ var ZERO;
519
+ var IDENTITY;
451
520
 
452
- makeRotationX(radians) {
453
- return this.identity().rotateX(radians);
521
+ function getZeroMatrix() {
522
+ if (!ZERO) {
523
+ ZERO = new Matrix4([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
524
+ Object.freeze(ZERO);
454
525
  }
455
526
 
456
- makeTranslation(x, y, z) {
457
- return this.identity().translate([x, y, z]);
458
- }
527
+ return ZERO;
528
+ }
459
529
 
460
- transformPoint(vector, result) {
461
- (0, _validators.deprecated)('Matrix4.transformPoint', '3.0');
462
- return this.transformAsPoint(vector, result);
530
+ function getIdentityMatrix() {
531
+ if (!IDENTITY) {
532
+ IDENTITY = new Matrix4();
533
+ Object.freeze(IDENTITY);
463
534
  }
464
535
 
465
- transformVector(vector, result) {
466
- (0, _validators.deprecated)('Matrix4.transformVector', '3.0');
467
- return this.transformAsPoint(vector, result);
468
- }
536
+ return IDENTITY;
537
+ }
469
538
 
470
- transformDirection(vector, result) {
471
- (0, _validators.deprecated)('Matrix4.transformDirection', '3.0');
472
- return this.transformAsVector(vector, result);
539
+ function checkRadians(possiblyDegrees) {
540
+ if (possiblyDegrees > Math.PI * 2) {
541
+ throw Error('expected radians');
473
542
  }
474
-
475
543
  }
476
544
 
477
- exports.default = Matrix4;
545
+ function computeInfinitePerspectiveOffCenter(result, left, right, bottom, top, near) {
546
+ var column0Row0 = 2 * near / (right - left);
547
+ var column1Row1 = 2 * near / (top - bottom);
548
+ var column2Row0 = (right + left) / (right - left);
549
+ var column2Row1 = (top + bottom) / (top - bottom);
550
+ var column2Row2 = -1;
551
+ var column2Row3 = -1;
552
+ var column3Row2 = -2 * near;
553
+ result[0] = column0Row0;
554
+ result[1] = 0;
555
+ result[2] = 0;
556
+ result[3] = 0;
557
+ result[4] = 0;
558
+ result[5] = column1Row1;
559
+ result[6] = 0;
560
+ result[7] = 0;
561
+ result[8] = column2Row0;
562
+ result[9] = column2Row1;
563
+ result[10] = column2Row2;
564
+ result[11] = column2Row3;
565
+ result[12] = 0;
566
+ result[13] = 0;
567
+ result[14] = column3Row2;
568
+ result[15] = 0;
569
+ return result;
570
+ }
478
571
  //# sourceMappingURL=matrix4.js.map