@math.gl/core 3.5.7 → 3.6.0-alpha.3

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 (193) hide show
  1. package/dist/classes/base/math-array.d.ts +66 -0
  2. package/dist/classes/base/math-array.d.ts.map +1 -0
  3. package/dist/classes/base/math-array.js +216 -0
  4. package/dist/classes/base/matrix.d.ts +14 -0
  5. package/dist/classes/base/matrix.d.ts.map +1 -0
  6. package/dist/classes/base/matrix.js +61 -0
  7. package/dist/classes/base/vector.d.ts +44 -0
  8. package/dist/classes/base/vector.d.ts.map +1 -0
  9. package/dist/classes/base/vector.js +126 -0
  10. package/dist/classes/euler.d.ts +77 -0
  11. package/dist/classes/euler.d.ts.map +1 -0
  12. package/dist/classes/euler.js +485 -0
  13. package/dist/classes/matrix3.d.ts +60 -0
  14. package/dist/classes/matrix3.d.ts.map +1 -0
  15. package/dist/classes/matrix3.js +201 -0
  16. package/dist/classes/matrix4.d.ts +226 -0
  17. package/dist/classes/matrix4.d.ts.map +1 -0
  18. package/dist/classes/matrix4.js +538 -0
  19. package/dist/classes/pose.d.ts +40 -0
  20. package/dist/classes/pose.d.ts.map +1 -0
  21. package/dist/classes/pose.js +109 -0
  22. package/dist/classes/quaternion.d.ts +63 -0
  23. package/dist/classes/quaternion.d.ts.map +1 -0
  24. package/dist/classes/quaternion.js +262 -0
  25. package/dist/classes/spherical-coordinates.d.ts +60 -0
  26. package/dist/classes/spherical-coordinates.d.ts.map +1 -0
  27. package/dist/classes/spherical-coordinates.js +148 -0
  28. package/dist/classes/vector2.d.ts +55 -0
  29. package/dist/classes/vector2.d.ts.map +1 -0
  30. package/dist/classes/vector2.js +111 -0
  31. package/dist/classes/vector3.d.ts +56 -0
  32. package/dist/classes/vector3.d.ts.map +1 -0
  33. package/dist/classes/vector3.js +133 -0
  34. package/dist/classes/vector4.d.ts +41 -0
  35. package/dist/classes/vector4.d.ts.map +1 -0
  36. package/dist/classes/vector4.js +114 -0
  37. package/dist/es5/classes/base/math-array.js +57 -61
  38. package/dist/es5/classes/base/math-array.js.map +1 -1
  39. package/dist/es5/classes/base/matrix.js +0 -14
  40. package/dist/es5/classes/base/matrix.js.map +1 -1
  41. package/dist/es5/classes/base/vector.js +0 -12
  42. package/dist/es5/classes/base/vector.js.map +1 -1
  43. package/dist/es5/classes/euler.js +63 -49
  44. package/dist/es5/classes/euler.js.map +1 -1
  45. package/dist/es5/classes/matrix3.js +60 -33
  46. package/dist/es5/classes/matrix3.js.map +1 -1
  47. package/dist/es5/classes/matrix4.js +167 -164
  48. package/dist/es5/classes/matrix4.js.map +1 -1
  49. package/dist/es5/classes/pose.js +7 -6
  50. package/dist/es5/classes/pose.js.map +1 -1
  51. package/dist/es5/classes/quaternion.js +44 -36
  52. package/dist/es5/classes/quaternion.js.map +1 -1
  53. package/dist/es5/classes/spherical-coordinates.js +12 -8
  54. package/dist/es5/classes/spherical-coordinates.js.map +1 -1
  55. package/dist/es5/classes/vector2.js.map +1 -1
  56. package/dist/es5/classes/vector3.js +7 -2
  57. package/dist/es5/classes/vector3.js.map +1 -1
  58. package/dist/es5/classes/vector4.js +7 -2
  59. package/dist/es5/classes/vector4.js.map +1 -1
  60. package/dist/es5/docs/README.md +0 -0
  61. package/dist/es5/index.js +71 -89
  62. package/dist/es5/index.js.map +1 -1
  63. package/dist/es5/lib/assert.js.map +1 -1
  64. package/dist/es5/lib/common.js +40 -43
  65. package/dist/es5/lib/common.js.map +1 -1
  66. package/dist/es5/lib/gl-matrix-extras.js.map +1 -1
  67. package/dist/es5/lib/gl-matrix.d.js +2 -0
  68. package/dist/es5/lib/gl-matrix.d.js.map +1 -0
  69. package/dist/es5/lib/math-utils.js.map +1 -1
  70. package/dist/es5/lib/validators.js.map +1 -1
  71. package/dist/esm/classes/base/math-array.js +45 -47
  72. package/dist/esm/classes/base/math-array.js.map +1 -1
  73. package/dist/esm/classes/base/matrix.js +0 -11
  74. package/dist/esm/classes/base/matrix.js.map +1 -1
  75. package/dist/esm/classes/base/vector.js +0 -10
  76. package/dist/esm/classes/base/vector.js.map +1 -1
  77. package/dist/esm/classes/euler.js +61 -48
  78. package/dist/esm/classes/euler.js.map +1 -1
  79. package/dist/esm/classes/matrix3.js +55 -33
  80. package/dist/esm/classes/matrix3.js.map +1 -1
  81. package/dist/esm/classes/matrix4.js +156 -136
  82. package/dist/esm/classes/matrix4.js.map +1 -1
  83. package/dist/esm/classes/pose.js +8 -4
  84. package/dist/esm/classes/pose.js.map +1 -1
  85. package/dist/esm/classes/quaternion.js +37 -27
  86. package/dist/esm/classes/quaternion.js.map +1 -1
  87. package/dist/esm/classes/spherical-coordinates.js +15 -5
  88. package/dist/esm/classes/spherical-coordinates.js.map +1 -1
  89. package/dist/esm/classes/vector2.js.map +1 -1
  90. package/dist/esm/classes/vector3.js +7 -2
  91. package/dist/esm/classes/vector3.js.map +1 -1
  92. package/dist/esm/classes/vector4.js +7 -2
  93. package/dist/esm/classes/vector4.js.map +1 -1
  94. package/dist/esm/docs/README.md +0 -0
  95. package/dist/esm/index.js +2 -13
  96. package/dist/esm/index.js.map +1 -1
  97. package/dist/esm/lib/assert.js.map +1 -1
  98. package/dist/esm/lib/common.js +41 -44
  99. package/dist/esm/lib/common.js.map +1 -1
  100. package/dist/esm/lib/gl-matrix-extras.js.map +1 -1
  101. package/dist/esm/lib/gl-matrix.d.js +2 -0
  102. package/dist/esm/lib/gl-matrix.d.js.map +1 -0
  103. package/dist/esm/lib/math-utils.js.map +1 -1
  104. package/dist/esm/lib/validators.js.map +1 -1
  105. package/dist/index.d.ts +17 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +24 -0
  108. package/dist/lib/assert.d.ts +2 -0
  109. package/dist/lib/assert.d.ts.map +1 -0
  110. package/dist/lib/assert.js +5 -0
  111. package/dist/lib/common.d.ts +93 -0
  112. package/dist/lib/common.d.ts.map +1 -0
  113. package/dist/lib/common.js +210 -0
  114. package/dist/lib/gl-matrix-extras.d.ts +7 -0
  115. package/dist/lib/gl-matrix-extras.d.ts.map +1 -0
  116. package/dist/lib/gl-matrix-extras.js +49 -0
  117. package/dist/lib/math-utils.d.ts +28 -0
  118. package/dist/lib/math-utils.d.ts.map +1 -0
  119. package/dist/lib/math-utils.js +28 -0
  120. package/dist/lib/validators.d.ts +6 -0
  121. package/dist/lib/validators.d.ts.map +1 -0
  122. package/dist/lib/validators.js +33 -0
  123. package/package.json +5 -4
  124. package/src/classes/base/math-array.ts +265 -0
  125. package/src/classes/base/{matrix.js → matrix.ts} +15 -19
  126. package/src/classes/base/{vector.js → vector.ts} +47 -54
  127. package/src/classes/{euler.js → euler.ts} +121 -221
  128. package/src/classes/matrix3.ts +253 -0
  129. package/src/classes/matrix4.ts +668 -0
  130. package/src/classes/{pose.js → pose.ts} +52 -49
  131. package/src/classes/{quaternion.js → quaternion.ts} +107 -95
  132. package/src/classes/{spherical-coordinates.js → spherical-coordinates.ts} +84 -54
  133. package/src/classes/vector2.ts +127 -0
  134. package/src/classes/{vector3.js → vector3.ts} +43 -55
  135. package/src/classes/{vector4.js → vector4.ts} +44 -48
  136. package/src/docs/README.md +0 -0
  137. package/{dist/esm/index.d.ts → src/index.ts} +32 -34
  138. package/src/lib/{assert.js → assert.ts} +1 -1
  139. package/src/lib/common.ts +304 -0
  140. package/src/lib/{gl-matrix-extras.js → gl-matrix-extras.ts} +26 -5
  141. package/src/lib/gl-matrix.d.ts +266 -0
  142. package/src/lib/{math-utils.js → math-utils.ts} +0 -0
  143. package/src/lib/{validators.js → validators.ts} +10 -6
  144. package/dist/es5/addons/polygon.d.ts +0 -17
  145. package/dist/es5/classes/base/math-array.d.ts +0 -56
  146. package/dist/es5/classes/base/matrix.d.ts +0 -15
  147. package/dist/es5/classes/base/vector.d.ts +0 -45
  148. package/dist/es5/classes/euler.d.ts +0 -92
  149. package/dist/es5/classes/matrix3.d.ts +0 -91
  150. package/dist/es5/classes/matrix4.d.ts +0 -161
  151. package/dist/es5/classes/pose.d.ts +0 -92
  152. package/dist/es5/classes/quaternion.d.ts +0 -107
  153. package/dist/es5/classes/spherical-coordinates.d.ts +0 -87
  154. package/dist/es5/classes/vector2.d.ts +0 -65
  155. package/dist/es5/classes/vector3.d.ts +0 -65
  156. package/dist/es5/classes/vector4.d.ts +0 -34
  157. package/dist/es5/index.d.ts +0 -54
  158. package/dist/es5/lib/common.d.ts +0 -80
  159. package/dist/esm/addons/polygon.d.ts +0 -17
  160. package/dist/esm/classes/base/math-array.d.ts +0 -56
  161. package/dist/esm/classes/base/matrix.d.ts +0 -15
  162. package/dist/esm/classes/base/vector.d.ts +0 -45
  163. package/dist/esm/classes/euler.d.ts +0 -92
  164. package/dist/esm/classes/matrix3.d.ts +0 -91
  165. package/dist/esm/classes/matrix4.d.ts +0 -161
  166. package/dist/esm/classes/pose.d.ts +0 -92
  167. package/dist/esm/classes/quaternion.d.ts +0 -107
  168. package/dist/esm/classes/spherical-coordinates.d.ts +0 -87
  169. package/dist/esm/classes/vector2.d.ts +0 -65
  170. package/dist/esm/classes/vector3.d.ts +0 -65
  171. package/dist/esm/classes/vector4.d.ts +0 -34
  172. package/dist/esm/lib/common.d.ts +0 -80
  173. package/src/addons/polygon.d.ts +0 -17
  174. package/src/classes/base/math-array.d.ts +0 -56
  175. package/src/classes/base/math-array.js +0 -250
  176. package/src/classes/base/matrix.d.ts +0 -15
  177. package/src/classes/base/vector.d.ts +0 -45
  178. package/src/classes/euler.d.ts +0 -92
  179. package/src/classes/matrix3.d.ts +0 -91
  180. package/src/classes/matrix3.js +0 -225
  181. package/src/classes/matrix4.d.ts +0 -161
  182. package/src/classes/matrix4.js +0 -530
  183. package/src/classes/pose.d.ts +0 -92
  184. package/src/classes/quaternion.d.ts +0 -107
  185. package/src/classes/spherical-coordinates.d.ts +0 -87
  186. package/src/classes/vector2.d.ts +0 -65
  187. package/src/classes/vector2.js +0 -122
  188. package/src/classes/vector3.d.ts +0 -65
  189. package/src/classes/vector4.d.ts +0 -34
  190. package/src/index.d.ts +0 -54
  191. package/src/index.js +0 -86
  192. package/src/lib/common.d.ts +0 -80
  193. package/src/lib/common.js +0 -222
@@ -0,0 +1,201 @@
1
+ // Copyright (c) 2017 Uber Technologies, Inc.
2
+ // MIT License
3
+ import Matrix from './base/matrix';
4
+ import { checkVector } from '../lib/validators';
5
+ /* eslint-disable camelcase */
6
+ import { vec4_transformMat3 } from '../lib/gl-matrix-extras';
7
+ import * as mat3 from 'gl-matrix/mat3';
8
+ import * as vec2 from 'gl-matrix/vec2';
9
+ import * as vec3 from 'gl-matrix/vec3';
10
+ var INDICES;
11
+ (function (INDICES) {
12
+ INDICES[INDICES["COL0ROW0"] = 0] = "COL0ROW0";
13
+ INDICES[INDICES["COL0ROW1"] = 1] = "COL0ROW1";
14
+ INDICES[INDICES["COL0ROW2"] = 2] = "COL0ROW2";
15
+ INDICES[INDICES["COL1ROW0"] = 3] = "COL1ROW0";
16
+ INDICES[INDICES["COL1ROW1"] = 4] = "COL1ROW1";
17
+ INDICES[INDICES["COL1ROW2"] = 5] = "COL1ROW2";
18
+ INDICES[INDICES["COL2ROW0"] = 6] = "COL2ROW0";
19
+ INDICES[INDICES["COL2ROW1"] = 7] = "COL2ROW1";
20
+ INDICES[INDICES["COL2ROW2"] = 8] = "COL2ROW2";
21
+ })(INDICES || (INDICES = {}));
22
+ const IDENTITY_MATRIX = Object.freeze([1, 0, 0, 0, 1, 0, 0, 0, 1]);
23
+ export default class Matrix3 extends Matrix {
24
+ static get IDENTITY() {
25
+ return getIdentityMatrix();
26
+ }
27
+ static get ZERO() {
28
+ return getZeroMatrix();
29
+ }
30
+ get ELEMENTS() {
31
+ return 9;
32
+ }
33
+ get RANK() {
34
+ return 3;
35
+ }
36
+ get INDICES() {
37
+ return INDICES;
38
+ }
39
+ constructor(array, ...args) {
40
+ // PERF NOTE: initialize elements as double precision numbers
41
+ super(-0, -0, -0, -0, -0, -0, -0, -0, -0);
42
+ if (arguments.length === 1 && Array.isArray(array)) {
43
+ this.copy(array);
44
+ }
45
+ else if (args.length > 0) {
46
+ this.copy([array, ...args]);
47
+ }
48
+ else {
49
+ this.identity();
50
+ }
51
+ }
52
+ copy(array) {
53
+ // Element wise copy for performance
54
+ this[0] = array[0];
55
+ this[1] = array[1];
56
+ this[2] = array[2];
57
+ this[3] = array[3];
58
+ this[4] = array[4];
59
+ this[5] = array[5];
60
+ this[6] = array[6];
61
+ this[7] = array[7];
62
+ this[8] = array[8];
63
+ return this.check();
64
+ }
65
+ // Constructors
66
+ identity() {
67
+ return this.copy(IDENTITY_MATRIX);
68
+ }
69
+ /**
70
+ *
71
+ * @param object
72
+ * @returns self
73
+ */
74
+ fromObject(object) {
75
+ return this.check();
76
+ }
77
+ // Calculates a 3x3 matrix from the given quaternion
78
+ // q quat Quaternion to create matrix from
79
+ fromQuaternion(q) {
80
+ mat3.fromQuat(this, q);
81
+ return this.check();
82
+ }
83
+ /**
84
+ * accepts column major order, stores in column major order
85
+ */
86
+ // eslint-disable-next-line max-params
87
+ set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {
88
+ this[0] = m00;
89
+ this[1] = m10;
90
+ this[2] = m20;
91
+ this[3] = m01;
92
+ this[4] = m11;
93
+ this[5] = m21;
94
+ this[6] = m02;
95
+ this[7] = m12;
96
+ this[8] = m22;
97
+ return this.check();
98
+ }
99
+ /**
100
+ * accepts row major order, stores as column major
101
+ */
102
+ // eslint-disable-next-line max-params
103
+ setRowMajor(m00, m01, m02, m10, m11, m12, m20, m21, m22) {
104
+ this[0] = m00;
105
+ this[1] = m10;
106
+ this[2] = m20;
107
+ this[3] = m01;
108
+ this[4] = m11;
109
+ this[5] = m21;
110
+ this[6] = m02;
111
+ this[7] = m12;
112
+ this[8] = m22;
113
+ return this.check();
114
+ }
115
+ // Accessors
116
+ determinant() {
117
+ return mat3.determinant(this);
118
+ }
119
+ // Modifiers
120
+ transpose() {
121
+ mat3.transpose(this, this);
122
+ return this.check();
123
+ }
124
+ /** Invert a matrix. Note that this can fail if the matrix is not invertible */
125
+ invert() {
126
+ mat3.invert(this, this);
127
+ return this.check();
128
+ }
129
+ // Operations
130
+ multiplyLeft(a) {
131
+ mat3.multiply(this, a, this);
132
+ return this.check();
133
+ }
134
+ multiplyRight(a) {
135
+ mat3.multiply(this, this, a);
136
+ return this.check();
137
+ }
138
+ rotate(radians) {
139
+ mat3.rotate(this, this, radians);
140
+ return this.check();
141
+ }
142
+ scale(factor) {
143
+ if (Array.isArray(factor)) {
144
+ mat3.scale(this, this, factor);
145
+ }
146
+ else {
147
+ mat3.scale(this, this, [factor, factor]);
148
+ }
149
+ return this.check();
150
+ }
151
+ translate(vec) {
152
+ mat3.translate(this, this, vec);
153
+ return this.check();
154
+ }
155
+ // Transforms
156
+ transform(vector, result) {
157
+ switch (vector.length) {
158
+ case 2:
159
+ result = vec2.transformMat3(result || [-0, -0], vector, this);
160
+ break;
161
+ case 3:
162
+ result = vec3.transformMat3(result || [-0, -0, -0], vector, this);
163
+ break;
164
+ case 4:
165
+ result = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
166
+ break;
167
+ default:
168
+ throw new Error('Illegal vector');
169
+ }
170
+ checkVector(result, vector.length);
171
+ return result;
172
+ }
173
+ /** @deprecated */
174
+ transformVector(vector, result) {
175
+ return this.transform(vector, result);
176
+ }
177
+ /** @deprecated */
178
+ transformVector2(vector, result) {
179
+ return this.transform(vector, result);
180
+ }
181
+ /** @deprecated */
182
+ transformVector3(vector, result) {
183
+ return this.transform(vector, result);
184
+ }
185
+ }
186
+ let ZERO_MATRIX3;
187
+ let IDENTITY_MATRIX3;
188
+ function getZeroMatrix() {
189
+ if (!ZERO_MATRIX3) {
190
+ ZERO_MATRIX3 = new Matrix3([0, 0, 0, 0, 0, 0, 0, 0, 0]);
191
+ Object.freeze(ZERO_MATRIX3);
192
+ }
193
+ return ZERO_MATRIX3;
194
+ }
195
+ function getIdentityMatrix() {
196
+ if (!IDENTITY_MATRIX3) {
197
+ IDENTITY_MATRIX3 = new Matrix3();
198
+ Object.freeze(IDENTITY_MATRIX3);
199
+ }
200
+ return IDENTITY_MATRIX3;
201
+ }
@@ -0,0 +1,226 @@
1
+ import Matrix from './base/matrix';
2
+ import { NumericArray } from '@math.gl/types';
3
+ declare enum INDICES {
4
+ COL0ROW0 = 0,
5
+ COL0ROW1 = 1,
6
+ COL0ROW2 = 2,
7
+ COL0ROW3 = 3,
8
+ COL1ROW0 = 4,
9
+ COL1ROW1 = 5,
10
+ COL1ROW2 = 6,
11
+ COL1ROW3 = 7,
12
+ COL2ROW0 = 8,
13
+ COL2ROW1 = 9,
14
+ COL2ROW2 = 10,
15
+ COL2ROW3 = 11,
16
+ COL3ROW0 = 12,
17
+ COL3ROW1 = 13,
18
+ COL3ROW2 = 14,
19
+ COL3ROW3 = 15
20
+ }
21
+ /** 4x4 matrix */
22
+ export default class Matrix4 extends Matrix {
23
+ static get IDENTITY(): Readonly<Matrix4>;
24
+ static get ZERO(): Readonly<Matrix4>;
25
+ get ELEMENTS(): number;
26
+ get RANK(): number;
27
+ get INDICES(): typeof INDICES;
28
+ constructor(array?: Readonly<NumericArray>);
29
+ copy(array: Readonly<NumericArray>): this;
30
+ set(m00: number, m10: number, m20: number, m30: number, m01: number, m11: number, m21: number, m31: number, m02: number, m12: number, m22: number, m32: number, m03: number, m13: number, m23: number, m33: number): this;
31
+ setRowMajor(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): this;
32
+ toRowMajor(result: NumericArray): NumericArray;
33
+ /** Set to identity matrix */
34
+ identity(): this;
35
+ /**
36
+ *
37
+ * @param object
38
+ * @returns self
39
+ */
40
+ fromObject(object: {
41
+ [key: string]: any;
42
+ }): this;
43
+ /**
44
+ * Calculates a 4x4 matrix from the given quaternion
45
+ * @param quaternion Quaternion to create matrix from
46
+ * @returns self
47
+ */
48
+ fromQuaternion(quaternion: Readonly<NumericArray>): this;
49
+ /**
50
+ * Generates a frustum matrix with the given bounds
51
+ * @param view.left - Left bound of the frustum
52
+ * @param view.right - Right bound of the frustum
53
+ * @param view.bottom - Bottom bound of the frustum
54
+ * @param view.top - Top bound of the frustum
55
+ * @param view.near - Near bound of the frustum
56
+ * @param view.far - Far bound of the frustum. Can be set to Infinity.
57
+ * @returns self
58
+ */
59
+ frustum(view: {
60
+ left: number;
61
+ right: number;
62
+ bottom: number;
63
+ top: number;
64
+ near: number;
65
+ far?: number;
66
+ }): this;
67
+ /**
68
+ * Generates a look-at matrix with the given eye position, focal point,
69
+ * and up axis
70
+ * @param view.eye - (vector) Position of the viewer
71
+ * @param view.center - (vector) Point the viewer is looking at
72
+ * @param view.up - (vector) Up axis
73
+ * @returns self
74
+ */
75
+ lookAt(view: {
76
+ eye: Readonly<NumericArray>;
77
+ center?: Readonly<NumericArray>;
78
+ up?: Readonly<NumericArray>;
79
+ }): this;
80
+ /**
81
+ * Generates a orthogonal projection matrix with the given bounds
82
+ * from "traditional" view space parameters
83
+ * @param view.left - Left bound of the frustum
84
+ * @param view.right number Right bound of the frustum
85
+ * @param view.bottom - Bottom bound of the frustum
86
+ * @param view.top number Top bound of the frustum
87
+ * @param view.near - Near bound of the frustum
88
+ * @param view.far number Far bound of the frustum
89
+ * @returns self
90
+ */
91
+ ortho(view: {
92
+ left: number;
93
+ right: number;
94
+ bottom: number;
95
+ top: number;
96
+ near?: number;
97
+ far?: number;
98
+ }): this;
99
+ /**
100
+ * Generates an orthogonal projection matrix with the same parameters
101
+ * as a perspective matrix (plus focalDistance)
102
+ * @param view.fovy Vertical field of view in radians
103
+ * @param view.aspect Aspect ratio. Typically viewport width / viewport height
104
+ * @param view.focalDistance Distance in the view frustum used for extent calculations
105
+ * @param view.near Near bound of the frustum
106
+ * @param view.far Far bound of the frustum
107
+ * @returns self
108
+ */
109
+ orthographic(view: {
110
+ fovy?: number;
111
+ aspect?: number;
112
+ focalDistance?: number;
113
+ near?: number;
114
+ far?: number;
115
+ }): this;
116
+ /**
117
+ * Generates a perspective projection matrix with the given bounds
118
+ * @param view.fovy Vertical field of view in radians
119
+ * @param view.aspect Aspect ratio. typically viewport width/height
120
+ * @param view.near Near bound of the frustum
121
+ * @param view.far Far bound of the frustum
122
+ * @returns self
123
+ */
124
+ perspective(view: {
125
+ fovy: number;
126
+ aspect?: number;
127
+ near?: number;
128
+ far?: number;
129
+ }): this;
130
+ determinant(): number;
131
+ /**
132
+ * Extracts the non-uniform scale assuming the matrix is an affine transformation.
133
+ * The scales are the "lengths" of the column vectors in the upper-left 3x3 matrix.
134
+ * @param result
135
+ * @returns self
136
+ */
137
+ getScale(result?: NumericArray): NumericArray;
138
+ /**
139
+ * Gets the translation portion, assuming the matrix is a affine transformation matrix.
140
+ * @param result
141
+ * @returns self
142
+ */
143
+ getTranslation(result?: NumericArray): NumericArray;
144
+ /**
145
+ * Gets upper left 3x3 pure rotation matrix (non-scaling), assume affine transformation matrix
146
+ * @param result
147
+ * @param scaleResult
148
+ * @returns self
149
+ */
150
+ getRotation(result?: NumericArray, scaleResult?: NumericArray): NumericArray;
151
+ /**
152
+ *
153
+ * @param result
154
+ * @param scaleResult
155
+ * @returns self
156
+ */
157
+ getRotationMatrix3(result?: NumericArray, scaleResult?: NumericArray): NumericArray;
158
+ transpose(): this;
159
+ invert(): this;
160
+ multiplyLeft(a: Readonly<NumericArray>): this;
161
+ multiplyRight(a: Readonly<NumericArray>): this;
162
+ rotateX(radians: number): this;
163
+ rotateY(radians: number): this;
164
+ /**
165
+ * Rotates a matrix by the given angle around the Z axis.
166
+ * @param radians
167
+ * @returns self
168
+ */
169
+ rotateZ(radians: number): this;
170
+ /**
171
+ *
172
+ * @param param0
173
+ * @returns self
174
+ */
175
+ rotateXYZ(angleXYZ: Readonly<NumericArray>): this;
176
+ /**
177
+ *
178
+ * @param radians
179
+ * @param axis
180
+ * @returns self
181
+ */
182
+ rotateAxis(radians: number, axis: Readonly<NumericArray>): this;
183
+ /**
184
+ *
185
+ * @param factor
186
+ * @returns self
187
+ */
188
+ scale(factor: number | Readonly<NumericArray>): this;
189
+ /**
190
+ *
191
+ * @param vec
192
+ * @returns self
193
+ */
194
+ translate(vector: Readonly<NumericArray>): this;
195
+ /**
196
+ * Transforms any 2, 3 or 4 element vector. 2 and 3 elements are treated as points
197
+ * @param vector
198
+ * @param result
199
+ * @returns self
200
+ */
201
+ transform(vector: Readonly<NumericArray>, result: NumericArray): NumericArray;
202
+ /**
203
+ * Transforms any 2 or 3 element array as point (w implicitly 1)
204
+ * @param vector
205
+ * @param result
206
+ * @returns self
207
+ */
208
+ transformAsPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
209
+ /**
210
+ * Transforms any 2 or 3 element array as vector (w implicitly 0)
211
+ * @param vector
212
+ * @param result
213
+ * @returns self
214
+ */
215
+ transformAsVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
216
+ /** @deprecated */
217
+ transformPoint(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
218
+ /** @deprecated */
219
+ transformVector(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
220
+ /** @deprecated */
221
+ transformDirection(vector: Readonly<NumericArray>, result?: NumericArray): NumericArray;
222
+ makeRotationX(radians: number): this;
223
+ makeTranslation(x: number, y: number, z: number): this;
224
+ }
225
+ export {};
226
+ //# sourceMappingURL=matrix4.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix4.d.ts","sourceRoot":"","sources":["../../src/classes/matrix4.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAU5C,aAAK,OAAO;IACV,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,QAAQ,KAAK;IACb,QAAQ,KAAK;CACd;AASD,iBAAiB;AACjB,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IACzC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEvC;IAED,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,CAEnC;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,OAAO,OAAO,CAE5B;gBAEW,KAAK,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC;IAU1C,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAqBzC,GAAG,CACD,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAsBP,WAAW,CACT,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,IAAI;IAoBP,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY;IAsB9C,6BAA6B;IAC7B,QAAQ,IAAI,IAAI;IAIhB;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAC,GAAG,IAAI;IAI9C;;;;OAIG;IACH,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKxD;;;;;;;;;OASG;IACH,OAAO,CAAC,IAAI,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,IAAI;IAUR;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC5B,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAChC,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B,GAAG,IAAI;IAMR;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,IAAI;IAMR;;;;;;;;;OASG;IACH,YAAY,CAAC,IAAI,EAAE;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,IAAI;IAyBR;;;;;;;OAOG;IACH,WAAW,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI;IASrF,WAAW,IAAI,MAAM;IAIrB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,GAAE,YAA2B,GAAG,YAAY;IAW3D;;;;OAIG;IACH,cAAc,CAAC,MAAM,GAAE,YAA2B,GAAG,YAAY;IAOjE;;;;;OAKG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,YAAY;IA0B5E;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,YAAY,GAAG,YAAY;IAqBnF,SAAS,IAAI,IAAI;IAKjB,MAAM,IAAI,IAAI;IAOd,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK7C,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAM9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAIjD;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAK/D;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAKpD;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI;IAO/C;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,YAAY;IAS7E;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY;IAgBtE;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAetF,kBAAkB;IAClB,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAInF,kBAAkB;IAClB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAIpF,kBAAkB;IAClB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY;IAMvF,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAGvD"}