@math.gl/core 4.0.0-alpha.1 → 4.0.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.
- package/dist/classes/base/math-array.d.ts +2 -1
- package/dist/classes/base/math-array.d.ts.map +1 -1
- package/dist/classes/base/math-array.js +5 -1
- package/dist/classes/base/math-array.js.map +1 -1
- package/dist/classes/base/matrix.d.ts +2 -2
- package/dist/classes/base/matrix.d.ts.map +1 -1
- package/dist/classes/base/matrix.js +2 -2
- package/dist/classes/base/matrix.js.map +1 -1
- package/dist/classes/base/vector.d.ts +2 -2
- package/dist/classes/base/vector.d.ts.map +1 -1
- package/dist/classes/base/vector.js +3 -3
- package/dist/classes/base/vector.js.map +1 -1
- package/dist/classes/euler.d.ts +3 -3
- package/dist/classes/euler.d.ts.map +1 -1
- package/dist/classes/euler.js +4 -4
- package/dist/classes/euler.js.map +1 -1
- package/dist/classes/matrix3.d.ts +5 -2
- package/dist/classes/matrix3.d.ts.map +1 -1
- package/dist/classes/matrix3.js +17 -17
- package/dist/classes/matrix3.js.map +1 -1
- package/dist/classes/matrix4.d.ts +2 -2
- package/dist/classes/matrix4.d.ts.map +1 -1
- package/dist/classes/matrix4.js +25 -25
- package/dist/classes/matrix4.js.map +1 -1
- package/dist/classes/pose.d.ts +5 -5
- package/dist/classes/pose.d.ts.map +1 -1
- package/dist/classes/pose.js +4 -4
- package/dist/classes/pose.js.map +1 -1
- package/dist/classes/quaternion.d.ts +2 -2
- package/dist/classes/quaternion.d.ts.map +1 -1
- package/dist/classes/quaternion.js +25 -25
- package/dist/classes/quaternion.js.map +1 -1
- package/dist/classes/spherical-coordinates.d.ts +4 -4
- package/dist/classes/spherical-coordinates.d.ts.map +1 -1
- package/dist/classes/spherical-coordinates.js +3 -3
- package/dist/classes/spherical-coordinates.js.map +1 -1
- package/dist/classes/vector2.d.ts +2 -2
- package/dist/classes/vector2.d.ts.map +1 -1
- package/dist/classes/vector2.js +7 -7
- package/dist/classes/vector2.js.map +1 -1
- package/dist/classes/vector3.d.ts +2 -2
- package/dist/classes/vector3.d.ts.map +1 -1
- package/dist/classes/vector3.js +11 -11
- package/dist/classes/vector3.js.map +1 -1
- package/dist/classes/vector4.d.ts +3 -3
- package/dist/classes/vector4.d.ts.map +1 -1
- package/dist/classes/vector4.js +5 -5
- package/dist/classes/vector4.js.map +1 -1
- package/dist/gl-matrix/common.d.ts +38 -0
- package/dist/gl-matrix/common.d.ts.map +1 -0
- package/dist/gl-matrix/common.js +19 -0
- package/dist/gl-matrix/common.js.map +1 -0
- package/dist/gl-matrix/mat3.d.ts +295 -0
- package/dist/gl-matrix/mat3.d.ts.map +1 -0
- package/dist/gl-matrix/mat3.js +489 -0
- package/dist/gl-matrix/mat3.js.map +1 -0
- package/dist/gl-matrix/mat4.d.ts +577 -0
- package/dist/gl-matrix/mat4.d.ts.map +1 -0
- package/dist/gl-matrix/mat4.js +1455 -0
- package/dist/gl-matrix/mat4.js.map +1 -0
- package/dist/gl-matrix/quat.d.ts +357 -0
- package/dist/gl-matrix/quat.d.ts.map +1 -0
- package/dist/gl-matrix/quat.js +315 -0
- package/dist/gl-matrix/quat.js.map +1 -0
- package/dist/gl-matrix/vec2.d.ts +373 -0
- package/dist/gl-matrix/vec2.d.ts.map +1 -0
- package/dist/gl-matrix/vec2.js +257 -0
- package/dist/gl-matrix/vec2.js.map +1 -0
- package/dist/gl-matrix/vec3.d.ts +416 -0
- package/dist/gl-matrix/vec3.d.ts.map +1 -0
- package/dist/gl-matrix/vec3.js +384 -0
- package/dist/gl-matrix/vec3.js.map +1 -0
- package/dist/gl-matrix/vec4.d.ts +340 -0
- package/dist/gl-matrix/vec4.d.ts.map +1 -0
- package/dist/gl-matrix/vec4.js +334 -0
- package/dist/gl-matrix/vec4.js.map +1 -0
- package/dist/gl-matrix/wip/index.d.ts +5 -0
- package/dist/gl-matrix/wip/index.d.ts.map +1 -0
- package/dist/gl-matrix/wip/index.js +12 -0
- package/dist/gl-matrix/wip/index.js.map +1 -0
- package/dist/gl-matrix/wip/mat2.d.ts +229 -0
- package/dist/gl-matrix/wip/mat2.d.ts.map +1 -0
- package/dist/gl-matrix/wip/mat2.js +208 -0
- package/dist/gl-matrix/wip/mat2.js.map +1 -0
- package/dist/gl-matrix/wip/mat2d.d.ts +244 -0
- package/dist/gl-matrix/wip/mat2d.d.ts.map +1 -0
- package/dist/gl-matrix/wip/mat2d.js +251 -0
- package/dist/gl-matrix/wip/mat2d.js.map +1 -0
- package/dist/gl-matrix/wip/quat2.d.ts +352 -0
- package/dist/gl-matrix/wip/quat2.d.ts.map +1 -0
- package/dist/gl-matrix/wip/quat2.js +482 -0
- package/dist/gl-matrix/wip/quat2.js.map +1 -0
- package/dist/gl-matrix/wip/types.d.js +2 -0
- package/dist/gl-matrix/wip/types.d.js.map +1 -0
- package/dist/index.cjs +1614 -150
- package/dist/index.d.ts +15 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/assert.d.ts +1 -1
- package/dist/lib/assert.d.ts.map +1 -1
- package/dist/lib/assert.js +1 -1
- package/dist/lib/assert.js.map +1 -1
- package/dist/lib/common.d.ts +11 -6
- package/dist/lib/common.d.ts.map +1 -1
- package/dist/lib/common.js +8 -2
- package/dist/lib/common.js.map +1 -1
- package/dist/lib/math-utils.d.ts +24 -27
- package/dist/lib/math-utils.d.ts.map +1 -1
- package/dist/lib/math-utils.js +24 -26
- package/dist/lib/math-utils.js.map +1 -1
- package/dist/lib/validators.js +1 -1
- package/dist/lib/validators.js.map +1 -1
- package/package.json +3 -4
- package/src/classes/base/math-array.ts +6 -2
- package/src/classes/base/matrix.ts +6 -3
- package/src/classes/base/vector.ts +3 -3
- package/src/classes/euler.ts +5 -4
- package/src/classes/matrix3.ts +32 -23
- package/src/classes/matrix4.ts +45 -31
- package/src/classes/pose.ts +4 -4
- package/src/classes/quaternion.ts +48 -28
- package/src/classes/spherical-coordinates.ts +3 -3
- package/src/classes/vector2.ts +13 -10
- package/src/classes/vector3.ts +25 -12
- package/src/classes/vector4.ts +10 -8
- package/src/gl-matrix/common.js +58 -0
- package/src/gl-matrix/mat3.js +842 -0
- package/src/gl-matrix/mat4.js +2169 -0
- package/src/gl-matrix/quat.ts +789 -0
- package/src/gl-matrix/vec2.js +629 -0
- package/src/gl-matrix/vec3.js +827 -0
- package/src/gl-matrix/vec4.js +675 -0
- package/src/gl-matrix/wip/index.js +15 -0
- package/src/gl-matrix/wip/mat2.js +442 -0
- package/src/gl-matrix/wip/mat2d.js +505 -0
- package/src/gl-matrix/wip/quat2.ts +886 -0
- package/src/gl-matrix/wip/types.d.ts +93 -0
- package/src/index.ts +16 -14
- package/src/lib/assert.ts +1 -1
- package/src/lib/common.ts +29 -13
- package/src/lib/math-utils.ts +24 -26
- package/src/lib/validators.ts +1 -1
- package/dist/docs/README.md +0 -0
- package/src/docs/README.md +0 -0
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
7
19
|
var __export = (target, all) => {
|
|
8
20
|
for (var name in all)
|
|
9
21
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,10 +28,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
28
|
}
|
|
17
29
|
return to;
|
|
18
30
|
};
|
|
19
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
21
|
-
mod
|
|
22
|
-
));
|
|
23
31
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
32
|
|
|
25
33
|
// src/index.ts
|
|
@@ -35,7 +43,7 @@ __export(src_exports, {
|
|
|
35
43
|
Vector3: () => Vector3,
|
|
36
44
|
Vector4: () => Vector4,
|
|
37
45
|
_Euler: () => Euler,
|
|
38
|
-
_MathUtils: () =>
|
|
46
|
+
_MathUtils: () => math_utils_exports,
|
|
39
47
|
_Pose: () => Pose,
|
|
40
48
|
_SphericalCoordinates: () => SphericalCoordinates,
|
|
41
49
|
acos: () => acos,
|
|
@@ -65,14 +73,17 @@ module.exports = __toCommonJS(src_exports);
|
|
|
65
73
|
// src/lib/common.ts
|
|
66
74
|
var RADIANS_TO_DEGREES = 1 / Math.PI * 180;
|
|
67
75
|
var DEGREES_TO_RADIANS = 1 / 180 * Math.PI;
|
|
68
|
-
var
|
|
76
|
+
var DEFAULT_CONFIG = {
|
|
69
77
|
EPSILON: 1e-12,
|
|
70
78
|
debug: false,
|
|
71
79
|
precision: 4,
|
|
72
80
|
printTypes: false,
|
|
73
81
|
printDegrees: false,
|
|
74
|
-
printRowMajor: true
|
|
82
|
+
printRowMajor: true,
|
|
83
|
+
_cartographicRadians: false
|
|
75
84
|
};
|
|
85
|
+
globalThis.mathgl = globalThis.mathgl || { config: __spreadValues({}, DEFAULT_CONFIG) };
|
|
86
|
+
var config = globalThis.mathgl.config;
|
|
76
87
|
function configure(options) {
|
|
77
88
|
Object.assign(config, options);
|
|
78
89
|
return config;
|
|
@@ -232,6 +243,9 @@ var MathArray = class extends Array {
|
|
|
232
243
|
}
|
|
233
244
|
return targetArray;
|
|
234
245
|
}
|
|
246
|
+
toObject(targetObject) {
|
|
247
|
+
return targetObject;
|
|
248
|
+
}
|
|
235
249
|
from(arrayOrObject) {
|
|
236
250
|
return Array.isArray(arrayOrObject) ? this.copy(arrayOrObject) : this.fromObject(arrayOrObject);
|
|
237
251
|
}
|
|
@@ -330,14 +344,14 @@ var MathArray = class extends Array {
|
|
|
330
344
|
}
|
|
331
345
|
return this.check();
|
|
332
346
|
}
|
|
333
|
-
scale(
|
|
334
|
-
if (typeof
|
|
347
|
+
scale(scale5) {
|
|
348
|
+
if (typeof scale5 === "number") {
|
|
335
349
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
336
|
-
this[i] *=
|
|
350
|
+
this[i] *= scale5;
|
|
337
351
|
}
|
|
338
352
|
} else {
|
|
339
|
-
for (let i = 0; i < this.ELEMENTS && i <
|
|
340
|
-
this[i] *=
|
|
353
|
+
for (let i = 0; i < this.ELEMENTS && i < scale5.length; ++i) {
|
|
354
|
+
this[i] *= scale5[i];
|
|
341
355
|
}
|
|
342
356
|
}
|
|
343
357
|
return this.check();
|
|
@@ -400,8 +414,8 @@ var MathArray = class extends Array {
|
|
|
400
414
|
};
|
|
401
415
|
|
|
402
416
|
// src/lib/validators.ts
|
|
403
|
-
function validateVector(v,
|
|
404
|
-
if (v.length !==
|
|
417
|
+
function validateVector(v, length4) {
|
|
418
|
+
if (v.length !== length4) {
|
|
405
419
|
return false;
|
|
406
420
|
}
|
|
407
421
|
for (let i = 0; i < v.length; ++i) {
|
|
@@ -413,12 +427,12 @@ function validateVector(v, length3) {
|
|
|
413
427
|
}
|
|
414
428
|
function checkNumber(value) {
|
|
415
429
|
if (!Number.isFinite(value)) {
|
|
416
|
-
throw new Error(`Invalid number ${value}`);
|
|
430
|
+
throw new Error(`Invalid number ${JSON.stringify(value)}`);
|
|
417
431
|
}
|
|
418
432
|
return value;
|
|
419
433
|
}
|
|
420
|
-
function checkVector(v,
|
|
421
|
-
if (config.debug && !validateVector(v,
|
|
434
|
+
function checkVector(v, length4, callerName = "") {
|
|
435
|
+
if (config.debug && !validateVector(v, length4)) {
|
|
422
436
|
throw new Error(`math.gl: ${callerName} some fields set to invalid numbers'`);
|
|
423
437
|
}
|
|
424
438
|
return v;
|
|
@@ -452,11 +466,11 @@ var Vector = class extends MathArray {
|
|
|
452
466
|
return this.len();
|
|
453
467
|
}
|
|
454
468
|
lengthSquared() {
|
|
455
|
-
let
|
|
469
|
+
let length4 = 0;
|
|
456
470
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
457
|
-
|
|
471
|
+
length4 += this[i] * this[i];
|
|
458
472
|
}
|
|
459
|
-
return
|
|
473
|
+
return length4;
|
|
460
474
|
}
|
|
461
475
|
magnitudeSquared() {
|
|
462
476
|
return this.lengthSquared();
|
|
@@ -465,12 +479,12 @@ var Vector = class extends MathArray {
|
|
|
465
479
|
return Math.sqrt(this.distanceSquared(mathArray));
|
|
466
480
|
}
|
|
467
481
|
distanceSquared(mathArray) {
|
|
468
|
-
let
|
|
482
|
+
let length4 = 0;
|
|
469
483
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
470
484
|
const dist = this[i] - mathArray[i];
|
|
471
|
-
|
|
485
|
+
length4 += dist * dist;
|
|
472
486
|
}
|
|
473
|
-
return checkNumber(
|
|
487
|
+
return checkNumber(length4);
|
|
474
488
|
}
|
|
475
489
|
dot(mathArray) {
|
|
476
490
|
let product = 0;
|
|
@@ -480,10 +494,10 @@ var Vector = class extends MathArray {
|
|
|
480
494
|
return checkNumber(product);
|
|
481
495
|
}
|
|
482
496
|
normalize() {
|
|
483
|
-
const
|
|
484
|
-
if (
|
|
497
|
+
const length4 = this.magnitude();
|
|
498
|
+
if (length4 !== 0) {
|
|
485
499
|
for (let i = 0; i < this.ELEMENTS; ++i) {
|
|
486
|
-
this[i] /=
|
|
500
|
+
this[i] /= length4;
|
|
487
501
|
}
|
|
488
502
|
}
|
|
489
503
|
return this.check();
|
|
@@ -536,8 +550,74 @@ var Vector = class extends MathArray {
|
|
|
536
550
|
}
|
|
537
551
|
};
|
|
538
552
|
|
|
539
|
-
// src/
|
|
540
|
-
var
|
|
553
|
+
// src/gl-matrix/common.js
|
|
554
|
+
var EPSILON = 1e-6;
|
|
555
|
+
var ARRAY_TYPE = typeof Float32Array !== "undefined" ? Float32Array : Array;
|
|
556
|
+
var degree = Math.PI / 180;
|
|
557
|
+
|
|
558
|
+
// src/gl-matrix/vec2.js
|
|
559
|
+
function create() {
|
|
560
|
+
const out = new ARRAY_TYPE(2);
|
|
561
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
562
|
+
out[0] = 0;
|
|
563
|
+
out[1] = 0;
|
|
564
|
+
}
|
|
565
|
+
return out;
|
|
566
|
+
}
|
|
567
|
+
function transformMat2(out, a, m) {
|
|
568
|
+
const x = a[0];
|
|
569
|
+
const y = a[1];
|
|
570
|
+
out[0] = m[0] * x + m[2] * y;
|
|
571
|
+
out[1] = m[1] * x + m[3] * y;
|
|
572
|
+
return out;
|
|
573
|
+
}
|
|
574
|
+
function transformMat2d(out, a, m) {
|
|
575
|
+
const x = a[0];
|
|
576
|
+
const y = a[1];
|
|
577
|
+
out[0] = m[0] * x + m[2] * y + m[4];
|
|
578
|
+
out[1] = m[1] * x + m[3] * y + m[5];
|
|
579
|
+
return out;
|
|
580
|
+
}
|
|
581
|
+
function transformMat3(out, a, m) {
|
|
582
|
+
const x = a[0];
|
|
583
|
+
const y = a[1];
|
|
584
|
+
out[0] = m[0] * x + m[3] * y + m[6];
|
|
585
|
+
out[1] = m[1] * x + m[4] * y + m[7];
|
|
586
|
+
return out;
|
|
587
|
+
}
|
|
588
|
+
function transformMat4(out, a, m) {
|
|
589
|
+
const x = a[0];
|
|
590
|
+
const y = a[1];
|
|
591
|
+
out[0] = m[0] * x + m[4] * y + m[12];
|
|
592
|
+
out[1] = m[1] * x + m[5] * y + m[13];
|
|
593
|
+
return out;
|
|
594
|
+
}
|
|
595
|
+
var forEach = function() {
|
|
596
|
+
const vec = create();
|
|
597
|
+
return function(a, stride, offset, count, fn, arg) {
|
|
598
|
+
let i;
|
|
599
|
+
let l;
|
|
600
|
+
if (!stride) {
|
|
601
|
+
stride = 2;
|
|
602
|
+
}
|
|
603
|
+
if (!offset) {
|
|
604
|
+
offset = 0;
|
|
605
|
+
}
|
|
606
|
+
if (count) {
|
|
607
|
+
l = Math.min(count * stride + offset, a.length);
|
|
608
|
+
} else {
|
|
609
|
+
l = a.length;
|
|
610
|
+
}
|
|
611
|
+
for (i = offset; i < l; i += stride) {
|
|
612
|
+
vec[0] = a[i];
|
|
613
|
+
vec[1] = a[i + 1];
|
|
614
|
+
fn(vec, vec, arg);
|
|
615
|
+
a[i] = vec[0];
|
|
616
|
+
a[i + 1] = vec[1];
|
|
617
|
+
}
|
|
618
|
+
return a;
|
|
619
|
+
};
|
|
620
|
+
}();
|
|
541
621
|
|
|
542
622
|
// src/lib/gl-matrix-extras.ts
|
|
543
623
|
function vec2_transformMat4AsVector(out, a, m) {
|
|
@@ -638,7 +718,7 @@ var Vector2 = class extends Vector {
|
|
|
638
718
|
return this.transformAsPoint(matrix4);
|
|
639
719
|
}
|
|
640
720
|
transformAsPoint(matrix4) {
|
|
641
|
-
|
|
721
|
+
transformMat4(this, this, matrix4);
|
|
642
722
|
return this.check();
|
|
643
723
|
}
|
|
644
724
|
transformAsVector(matrix4) {
|
|
@@ -646,21 +726,200 @@ var Vector2 = class extends Vector {
|
|
|
646
726
|
return this.check();
|
|
647
727
|
}
|
|
648
728
|
transformByMatrix3(matrix3) {
|
|
649
|
-
|
|
729
|
+
transformMat3(this, this, matrix3);
|
|
650
730
|
return this.check();
|
|
651
731
|
}
|
|
652
732
|
transformByMatrix2x3(matrix2x3) {
|
|
653
|
-
|
|
733
|
+
transformMat2d(this, this, matrix2x3);
|
|
654
734
|
return this.check();
|
|
655
735
|
}
|
|
656
736
|
transformByMatrix2(matrix2) {
|
|
657
|
-
|
|
737
|
+
transformMat2(this, this, matrix2);
|
|
658
738
|
return this.check();
|
|
659
739
|
}
|
|
660
740
|
};
|
|
661
741
|
|
|
742
|
+
// src/gl-matrix/vec3.js
|
|
743
|
+
function create2() {
|
|
744
|
+
const out = new ARRAY_TYPE(3);
|
|
745
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
746
|
+
out[0] = 0;
|
|
747
|
+
out[1] = 0;
|
|
748
|
+
out[2] = 0;
|
|
749
|
+
}
|
|
750
|
+
return out;
|
|
751
|
+
}
|
|
752
|
+
function length(a) {
|
|
753
|
+
const x = a[0];
|
|
754
|
+
const y = a[1];
|
|
755
|
+
const z = a[2];
|
|
756
|
+
return Math.sqrt(x * x + y * y + z * z);
|
|
757
|
+
}
|
|
758
|
+
function fromValues(x, y, z) {
|
|
759
|
+
const out = new ARRAY_TYPE(3);
|
|
760
|
+
out[0] = x;
|
|
761
|
+
out[1] = y;
|
|
762
|
+
out[2] = z;
|
|
763
|
+
return out;
|
|
764
|
+
}
|
|
765
|
+
function normalize(out, a) {
|
|
766
|
+
const x = a[0];
|
|
767
|
+
const y = a[1];
|
|
768
|
+
const z = a[2];
|
|
769
|
+
let len2 = x * x + y * y + z * z;
|
|
770
|
+
if (len2 > 0) {
|
|
771
|
+
len2 = 1 / Math.sqrt(len2);
|
|
772
|
+
}
|
|
773
|
+
out[0] = a[0] * len2;
|
|
774
|
+
out[1] = a[1] * len2;
|
|
775
|
+
out[2] = a[2] * len2;
|
|
776
|
+
return out;
|
|
777
|
+
}
|
|
778
|
+
function dot(a, b) {
|
|
779
|
+
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
|
|
780
|
+
}
|
|
781
|
+
function cross(out, a, b) {
|
|
782
|
+
const ax = a[0];
|
|
783
|
+
const ay = a[1];
|
|
784
|
+
const az = a[2];
|
|
785
|
+
const bx = b[0];
|
|
786
|
+
const by = b[1];
|
|
787
|
+
const bz = b[2];
|
|
788
|
+
out[0] = ay * bz - az * by;
|
|
789
|
+
out[1] = az * bx - ax * bz;
|
|
790
|
+
out[2] = ax * by - ay * bx;
|
|
791
|
+
return out;
|
|
792
|
+
}
|
|
793
|
+
function transformMat42(out, a, m) {
|
|
794
|
+
const x = a[0];
|
|
795
|
+
const y = a[1];
|
|
796
|
+
const z = a[2];
|
|
797
|
+
let w = m[3] * x + m[7] * y + m[11] * z + m[15];
|
|
798
|
+
w = w || 1;
|
|
799
|
+
out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;
|
|
800
|
+
out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;
|
|
801
|
+
out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;
|
|
802
|
+
return out;
|
|
803
|
+
}
|
|
804
|
+
function transformMat32(out, a, m) {
|
|
805
|
+
const x = a[0];
|
|
806
|
+
const y = a[1];
|
|
807
|
+
const z = a[2];
|
|
808
|
+
out[0] = x * m[0] + y * m[3] + z * m[6];
|
|
809
|
+
out[1] = x * m[1] + y * m[4] + z * m[7];
|
|
810
|
+
out[2] = x * m[2] + y * m[5] + z * m[8];
|
|
811
|
+
return out;
|
|
812
|
+
}
|
|
813
|
+
function transformQuat(out, a, q) {
|
|
814
|
+
const qx = q[0];
|
|
815
|
+
const qy = q[1];
|
|
816
|
+
const qz = q[2];
|
|
817
|
+
const qw = q[3];
|
|
818
|
+
const x = a[0];
|
|
819
|
+
const y = a[1];
|
|
820
|
+
const z = a[2];
|
|
821
|
+
let uvx = qy * z - qz * y;
|
|
822
|
+
let uvy = qz * x - qx * z;
|
|
823
|
+
let uvz = qx * y - qy * x;
|
|
824
|
+
let uuvx = qy * uvz - qz * uvy;
|
|
825
|
+
let uuvy = qz * uvx - qx * uvz;
|
|
826
|
+
let uuvz = qx * uvy - qy * uvx;
|
|
827
|
+
const w2 = qw * 2;
|
|
828
|
+
uvx *= w2;
|
|
829
|
+
uvy *= w2;
|
|
830
|
+
uvz *= w2;
|
|
831
|
+
uuvx *= 2;
|
|
832
|
+
uuvy *= 2;
|
|
833
|
+
uuvz *= 2;
|
|
834
|
+
out[0] = x + uvx + uuvx;
|
|
835
|
+
out[1] = y + uvy + uuvy;
|
|
836
|
+
out[2] = z + uvz + uuvz;
|
|
837
|
+
return out;
|
|
838
|
+
}
|
|
839
|
+
function rotateX(out, a, b, rad) {
|
|
840
|
+
const p = [];
|
|
841
|
+
const r = [];
|
|
842
|
+
p[0] = a[0] - b[0];
|
|
843
|
+
p[1] = a[1] - b[1];
|
|
844
|
+
p[2] = a[2] - b[2];
|
|
845
|
+
r[0] = p[0];
|
|
846
|
+
r[1] = p[1] * Math.cos(rad) - p[2] * Math.sin(rad);
|
|
847
|
+
r[2] = p[1] * Math.sin(rad) + p[2] * Math.cos(rad);
|
|
848
|
+
out[0] = r[0] + b[0];
|
|
849
|
+
out[1] = r[1] + b[1];
|
|
850
|
+
out[2] = r[2] + b[2];
|
|
851
|
+
return out;
|
|
852
|
+
}
|
|
853
|
+
function rotateY(out, a, b, rad) {
|
|
854
|
+
const p = [];
|
|
855
|
+
const r = [];
|
|
856
|
+
p[0] = a[0] - b[0];
|
|
857
|
+
p[1] = a[1] - b[1];
|
|
858
|
+
p[2] = a[2] - b[2];
|
|
859
|
+
r[0] = p[2] * Math.sin(rad) + p[0] * Math.cos(rad);
|
|
860
|
+
r[1] = p[1];
|
|
861
|
+
r[2] = p[2] * Math.cos(rad) - p[0] * Math.sin(rad);
|
|
862
|
+
out[0] = r[0] + b[0];
|
|
863
|
+
out[1] = r[1] + b[1];
|
|
864
|
+
out[2] = r[2] + b[2];
|
|
865
|
+
return out;
|
|
866
|
+
}
|
|
867
|
+
function rotateZ(out, a, b, rad) {
|
|
868
|
+
const p = [];
|
|
869
|
+
const r = [];
|
|
870
|
+
p[0] = a[0] - b[0];
|
|
871
|
+
p[1] = a[1] - b[1];
|
|
872
|
+
p[2] = a[2] - b[2];
|
|
873
|
+
r[0] = p[0] * Math.cos(rad) - p[1] * Math.sin(rad);
|
|
874
|
+
r[1] = p[0] * Math.sin(rad) + p[1] * Math.cos(rad);
|
|
875
|
+
r[2] = p[2];
|
|
876
|
+
out[0] = r[0] + b[0];
|
|
877
|
+
out[1] = r[1] + b[1];
|
|
878
|
+
out[2] = r[2] + b[2];
|
|
879
|
+
return out;
|
|
880
|
+
}
|
|
881
|
+
function angle(a, b) {
|
|
882
|
+
const ax = a[0];
|
|
883
|
+
const ay = a[1];
|
|
884
|
+
const az = a[2];
|
|
885
|
+
const bx = b[0];
|
|
886
|
+
const by = b[1];
|
|
887
|
+
const bz = b[2];
|
|
888
|
+
const mag = Math.sqrt((ax * ax + ay * ay + az * az) * (bx * bx + by * by + bz * bz));
|
|
889
|
+
const cosine = mag && dot(a, b) / mag;
|
|
890
|
+
return Math.acos(Math.min(Math.max(cosine, -1), 1));
|
|
891
|
+
}
|
|
892
|
+
var len = length;
|
|
893
|
+
var forEach2 = function() {
|
|
894
|
+
const vec = create2();
|
|
895
|
+
return function(a, stride, offset, count, fn, arg) {
|
|
896
|
+
let i;
|
|
897
|
+
let l;
|
|
898
|
+
if (!stride) {
|
|
899
|
+
stride = 3;
|
|
900
|
+
}
|
|
901
|
+
if (!offset) {
|
|
902
|
+
offset = 0;
|
|
903
|
+
}
|
|
904
|
+
if (count) {
|
|
905
|
+
l = Math.min(count * stride + offset, a.length);
|
|
906
|
+
} else {
|
|
907
|
+
l = a.length;
|
|
908
|
+
}
|
|
909
|
+
for (i = offset; i < l; i += stride) {
|
|
910
|
+
vec[0] = a[i];
|
|
911
|
+
vec[1] = a[i + 1];
|
|
912
|
+
vec[2] = a[i + 2];
|
|
913
|
+
fn(vec, vec, arg);
|
|
914
|
+
a[i] = vec[0];
|
|
915
|
+
a[i + 1] = vec[1];
|
|
916
|
+
a[i + 2] = vec[2];
|
|
917
|
+
}
|
|
918
|
+
return a;
|
|
919
|
+
};
|
|
920
|
+
}();
|
|
921
|
+
|
|
662
922
|
// src/classes/vector3.ts
|
|
663
|
-
var vec3 = __toESM(require("gl-matrix/vec3"), 1);
|
|
664
923
|
var ORIGIN = [0, 0, 0];
|
|
665
924
|
var ZERO;
|
|
666
925
|
var Vector3 = class extends Vector {
|
|
@@ -725,29 +984,29 @@ var Vector3 = class extends Vector {
|
|
|
725
984
|
this[2] = checkNumber(value);
|
|
726
985
|
}
|
|
727
986
|
angle(vector) {
|
|
728
|
-
return
|
|
987
|
+
return angle(this, vector);
|
|
729
988
|
}
|
|
730
989
|
cross(vector) {
|
|
731
|
-
|
|
990
|
+
cross(this, this, vector);
|
|
732
991
|
return this.check();
|
|
733
992
|
}
|
|
734
993
|
rotateX({ radians: radians2, origin = ORIGIN }) {
|
|
735
|
-
|
|
994
|
+
rotateX(this, this, origin, radians2);
|
|
736
995
|
return this.check();
|
|
737
996
|
}
|
|
738
997
|
rotateY({ radians: radians2, origin = ORIGIN }) {
|
|
739
|
-
|
|
998
|
+
rotateY(this, this, origin, radians2);
|
|
740
999
|
return this.check();
|
|
741
1000
|
}
|
|
742
1001
|
rotateZ({ radians: radians2, origin = ORIGIN }) {
|
|
743
|
-
|
|
1002
|
+
rotateZ(this, this, origin, radians2);
|
|
744
1003
|
return this.check();
|
|
745
1004
|
}
|
|
746
1005
|
transform(matrix4) {
|
|
747
1006
|
return this.transformAsPoint(matrix4);
|
|
748
1007
|
}
|
|
749
1008
|
transformAsPoint(matrix4) {
|
|
750
|
-
|
|
1009
|
+
transformMat42(this, this, matrix4);
|
|
751
1010
|
return this.check();
|
|
752
1011
|
}
|
|
753
1012
|
transformAsVector(matrix4) {
|
|
@@ -755,7 +1014,7 @@ var Vector3 = class extends Vector {
|
|
|
755
1014
|
return this.check();
|
|
756
1015
|
}
|
|
757
1016
|
transformByMatrix3(matrix3) {
|
|
758
|
-
|
|
1017
|
+
transformMat32(this, this, matrix3);
|
|
759
1018
|
return this.check();
|
|
760
1019
|
}
|
|
761
1020
|
transformByMatrix2(matrix2) {
|
|
@@ -763,13 +1022,12 @@ var Vector3 = class extends Vector {
|
|
|
763
1022
|
return this.check();
|
|
764
1023
|
}
|
|
765
1024
|
transformByQuaternion(quaternion) {
|
|
766
|
-
|
|
1025
|
+
transformQuat(this, this, quaternion);
|
|
767
1026
|
return this.check();
|
|
768
1027
|
}
|
|
769
1028
|
};
|
|
770
1029
|
|
|
771
1030
|
// src/classes/vector4.ts
|
|
772
|
-
var vec4 = __toESM(require("gl-matrix/vec3"), 1);
|
|
773
1031
|
var ZERO2;
|
|
774
1032
|
var Vector4 = class extends Vector {
|
|
775
1033
|
static get ZERO() {
|
|
@@ -846,7 +1104,7 @@ var Vector4 = class extends Vector {
|
|
|
846
1104
|
this[3] = checkNumber(value);
|
|
847
1105
|
}
|
|
848
1106
|
transform(matrix4) {
|
|
849
|
-
|
|
1107
|
+
transformMat42(this, this, matrix4);
|
|
850
1108
|
return this.check();
|
|
851
1109
|
}
|
|
852
1110
|
transformByMatrix3(matrix3) {
|
|
@@ -858,7 +1116,7 @@ var Vector4 = class extends Vector {
|
|
|
858
1116
|
return this.check();
|
|
859
1117
|
}
|
|
860
1118
|
transformByQuaternion(quaternion) {
|
|
861
|
-
|
|
1119
|
+
transformQuat(this, this, quaternion);
|
|
862
1120
|
return this.check();
|
|
863
1121
|
}
|
|
864
1122
|
applyMatrix4(m) {
|
|
@@ -913,10 +1171,207 @@ var Matrix = class extends MathArray {
|
|
|
913
1171
|
}
|
|
914
1172
|
};
|
|
915
1173
|
|
|
1174
|
+
// src/gl-matrix/mat3.js
|
|
1175
|
+
function create3() {
|
|
1176
|
+
const out = new ARRAY_TYPE(9);
|
|
1177
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
1178
|
+
out[1] = 0;
|
|
1179
|
+
out[2] = 0;
|
|
1180
|
+
out[3] = 0;
|
|
1181
|
+
out[5] = 0;
|
|
1182
|
+
out[6] = 0;
|
|
1183
|
+
out[7] = 0;
|
|
1184
|
+
}
|
|
1185
|
+
out[0] = 1;
|
|
1186
|
+
out[4] = 1;
|
|
1187
|
+
out[8] = 1;
|
|
1188
|
+
return out;
|
|
1189
|
+
}
|
|
1190
|
+
function transpose(out, a) {
|
|
1191
|
+
if (out === a) {
|
|
1192
|
+
const a01 = a[1];
|
|
1193
|
+
const a02 = a[2];
|
|
1194
|
+
const a12 = a[5];
|
|
1195
|
+
out[1] = a[3];
|
|
1196
|
+
out[2] = a[6];
|
|
1197
|
+
out[3] = a01;
|
|
1198
|
+
out[5] = a[7];
|
|
1199
|
+
out[6] = a02;
|
|
1200
|
+
out[7] = a12;
|
|
1201
|
+
} else {
|
|
1202
|
+
out[0] = a[0];
|
|
1203
|
+
out[1] = a[3];
|
|
1204
|
+
out[2] = a[6];
|
|
1205
|
+
out[3] = a[1];
|
|
1206
|
+
out[4] = a[4];
|
|
1207
|
+
out[5] = a[7];
|
|
1208
|
+
out[6] = a[2];
|
|
1209
|
+
out[7] = a[5];
|
|
1210
|
+
out[8] = a[8];
|
|
1211
|
+
}
|
|
1212
|
+
return out;
|
|
1213
|
+
}
|
|
1214
|
+
function invert(out, a) {
|
|
1215
|
+
const a00 = a[0];
|
|
1216
|
+
const a01 = a[1];
|
|
1217
|
+
const a02 = a[2];
|
|
1218
|
+
const a10 = a[3];
|
|
1219
|
+
const a11 = a[4];
|
|
1220
|
+
const a12 = a[5];
|
|
1221
|
+
const a20 = a[6];
|
|
1222
|
+
const a21 = a[7];
|
|
1223
|
+
const a22 = a[8];
|
|
1224
|
+
const b01 = a22 * a11 - a12 * a21;
|
|
1225
|
+
const b11 = -a22 * a10 + a12 * a20;
|
|
1226
|
+
const b21 = a21 * a10 - a11 * a20;
|
|
1227
|
+
let det = a00 * b01 + a01 * b11 + a02 * b21;
|
|
1228
|
+
if (!det) {
|
|
1229
|
+
return null;
|
|
1230
|
+
}
|
|
1231
|
+
det = 1 / det;
|
|
1232
|
+
out[0] = b01 * det;
|
|
1233
|
+
out[1] = (-a22 * a01 + a02 * a21) * det;
|
|
1234
|
+
out[2] = (a12 * a01 - a02 * a11) * det;
|
|
1235
|
+
out[3] = b11 * det;
|
|
1236
|
+
out[4] = (a22 * a00 - a02 * a20) * det;
|
|
1237
|
+
out[5] = (-a12 * a00 + a02 * a10) * det;
|
|
1238
|
+
out[6] = b21 * det;
|
|
1239
|
+
out[7] = (-a21 * a00 + a01 * a20) * det;
|
|
1240
|
+
out[8] = (a11 * a00 - a01 * a10) * det;
|
|
1241
|
+
return out;
|
|
1242
|
+
}
|
|
1243
|
+
function determinant(a) {
|
|
1244
|
+
const a00 = a[0];
|
|
1245
|
+
const a01 = a[1];
|
|
1246
|
+
const a02 = a[2];
|
|
1247
|
+
const a10 = a[3];
|
|
1248
|
+
const a11 = a[4];
|
|
1249
|
+
const a12 = a[5];
|
|
1250
|
+
const a20 = a[6];
|
|
1251
|
+
const a21 = a[7];
|
|
1252
|
+
const a22 = a[8];
|
|
1253
|
+
return a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20);
|
|
1254
|
+
}
|
|
1255
|
+
function multiply(out, a, b) {
|
|
1256
|
+
const a00 = a[0];
|
|
1257
|
+
const a01 = a[1];
|
|
1258
|
+
const a02 = a[2];
|
|
1259
|
+
const a10 = a[3];
|
|
1260
|
+
const a11 = a[4];
|
|
1261
|
+
const a12 = a[5];
|
|
1262
|
+
const a20 = a[6];
|
|
1263
|
+
const a21 = a[7];
|
|
1264
|
+
const a22 = a[8];
|
|
1265
|
+
const b00 = b[0];
|
|
1266
|
+
const b01 = b[1];
|
|
1267
|
+
const b02 = b[2];
|
|
1268
|
+
const b10 = b[3];
|
|
1269
|
+
const b11 = b[4];
|
|
1270
|
+
const b12 = b[5];
|
|
1271
|
+
const b20 = b[6];
|
|
1272
|
+
const b21 = b[7];
|
|
1273
|
+
const b22 = b[8];
|
|
1274
|
+
out[0] = b00 * a00 + b01 * a10 + b02 * a20;
|
|
1275
|
+
out[1] = b00 * a01 + b01 * a11 + b02 * a21;
|
|
1276
|
+
out[2] = b00 * a02 + b01 * a12 + b02 * a22;
|
|
1277
|
+
out[3] = b10 * a00 + b11 * a10 + b12 * a20;
|
|
1278
|
+
out[4] = b10 * a01 + b11 * a11 + b12 * a21;
|
|
1279
|
+
out[5] = b10 * a02 + b11 * a12 + b12 * a22;
|
|
1280
|
+
out[6] = b20 * a00 + b21 * a10 + b22 * a20;
|
|
1281
|
+
out[7] = b20 * a01 + b21 * a11 + b22 * a21;
|
|
1282
|
+
out[8] = b20 * a02 + b21 * a12 + b22 * a22;
|
|
1283
|
+
return out;
|
|
1284
|
+
}
|
|
1285
|
+
function translate(out, a, v) {
|
|
1286
|
+
const a00 = a[0];
|
|
1287
|
+
const a01 = a[1];
|
|
1288
|
+
const a02 = a[2];
|
|
1289
|
+
const a10 = a[3];
|
|
1290
|
+
const a11 = a[4];
|
|
1291
|
+
const a12 = a[5];
|
|
1292
|
+
const a20 = a[6];
|
|
1293
|
+
const a21 = a[7];
|
|
1294
|
+
const a22 = a[8];
|
|
1295
|
+
const x = v[0];
|
|
1296
|
+
const y = v[1];
|
|
1297
|
+
out[0] = a00;
|
|
1298
|
+
out[1] = a01;
|
|
1299
|
+
out[2] = a02;
|
|
1300
|
+
out[3] = a10;
|
|
1301
|
+
out[4] = a11;
|
|
1302
|
+
out[5] = a12;
|
|
1303
|
+
out[6] = x * a00 + y * a10 + a20;
|
|
1304
|
+
out[7] = x * a01 + y * a11 + a21;
|
|
1305
|
+
out[8] = x * a02 + y * a12 + a22;
|
|
1306
|
+
return out;
|
|
1307
|
+
}
|
|
1308
|
+
function rotate(out, a, rad) {
|
|
1309
|
+
const a00 = a[0];
|
|
1310
|
+
const a01 = a[1];
|
|
1311
|
+
const a02 = a[2];
|
|
1312
|
+
const a10 = a[3];
|
|
1313
|
+
const a11 = a[4];
|
|
1314
|
+
const a12 = a[5];
|
|
1315
|
+
const a20 = a[6];
|
|
1316
|
+
const a21 = a[7];
|
|
1317
|
+
const a22 = a[8];
|
|
1318
|
+
const s = Math.sin(rad);
|
|
1319
|
+
const c = Math.cos(rad);
|
|
1320
|
+
out[0] = c * a00 + s * a10;
|
|
1321
|
+
out[1] = c * a01 + s * a11;
|
|
1322
|
+
out[2] = c * a02 + s * a12;
|
|
1323
|
+
out[3] = c * a10 - s * a00;
|
|
1324
|
+
out[4] = c * a11 - s * a01;
|
|
1325
|
+
out[5] = c * a12 - s * a02;
|
|
1326
|
+
out[6] = a20;
|
|
1327
|
+
out[7] = a21;
|
|
1328
|
+
out[8] = a22;
|
|
1329
|
+
return out;
|
|
1330
|
+
}
|
|
1331
|
+
function scale(out, a, v) {
|
|
1332
|
+
const x = v[0];
|
|
1333
|
+
const y = v[1];
|
|
1334
|
+
out[0] = x * a[0];
|
|
1335
|
+
out[1] = x * a[1];
|
|
1336
|
+
out[2] = x * a[2];
|
|
1337
|
+
out[3] = y * a[3];
|
|
1338
|
+
out[4] = y * a[4];
|
|
1339
|
+
out[5] = y * a[5];
|
|
1340
|
+
out[6] = a[6];
|
|
1341
|
+
out[7] = a[7];
|
|
1342
|
+
out[8] = a[8];
|
|
1343
|
+
return out;
|
|
1344
|
+
}
|
|
1345
|
+
function fromQuat(out, q) {
|
|
1346
|
+
const x = q[0];
|
|
1347
|
+
const y = q[1];
|
|
1348
|
+
const z = q[2];
|
|
1349
|
+
const w = q[3];
|
|
1350
|
+
const x2 = x + x;
|
|
1351
|
+
const y2 = y + y;
|
|
1352
|
+
const z2 = z + z;
|
|
1353
|
+
const xx = x * x2;
|
|
1354
|
+
const yx = y * x2;
|
|
1355
|
+
const yy = y * y2;
|
|
1356
|
+
const zx = z * x2;
|
|
1357
|
+
const zy = z * y2;
|
|
1358
|
+
const zz = z * z2;
|
|
1359
|
+
const wx = w * x2;
|
|
1360
|
+
const wy = w * y2;
|
|
1361
|
+
const wz = w * z2;
|
|
1362
|
+
out[0] = 1 - yy - zz;
|
|
1363
|
+
out[3] = yx - wz;
|
|
1364
|
+
out[6] = zx + wy;
|
|
1365
|
+
out[1] = yx + wz;
|
|
1366
|
+
out[4] = 1 - xx - zz;
|
|
1367
|
+
out[7] = zy - wx;
|
|
1368
|
+
out[2] = zx - wy;
|
|
1369
|
+
out[5] = zy + wx;
|
|
1370
|
+
out[8] = 1 - xx - yy;
|
|
1371
|
+
return out;
|
|
1372
|
+
}
|
|
1373
|
+
|
|
916
1374
|
// src/classes/matrix3.ts
|
|
917
|
-
var mat3 = __toESM(require("gl-matrix/mat3"), 1);
|
|
918
|
-
var vec22 = __toESM(require("gl-matrix/vec2"), 1);
|
|
919
|
-
var vec32 = __toESM(require("gl-matrix/vec3"), 1);
|
|
920
1375
|
var INDICES = /* @__PURE__ */ ((INDICES3) => {
|
|
921
1376
|
INDICES3[INDICES3["COL0ROW0"] = 0] = "COL0ROW0";
|
|
922
1377
|
INDICES3[INDICES3["COL0ROW1"] = 1] = "COL0ROW1";
|
|
@@ -975,7 +1430,7 @@ var Matrix3 = class extends Matrix {
|
|
|
975
1430
|
return this.check();
|
|
976
1431
|
}
|
|
977
1432
|
fromQuaternion(q) {
|
|
978
|
-
|
|
1433
|
+
fromQuat(this, q);
|
|
979
1434
|
return this.check();
|
|
980
1435
|
}
|
|
981
1436
|
set(m00, m10, m20, m01, m11, m21, m02, m12, m22) {
|
|
@@ -1003,48 +1458,48 @@ var Matrix3 = class extends Matrix {
|
|
|
1003
1458
|
return this.check();
|
|
1004
1459
|
}
|
|
1005
1460
|
determinant() {
|
|
1006
|
-
return
|
|
1461
|
+
return determinant(this);
|
|
1007
1462
|
}
|
|
1008
1463
|
transpose() {
|
|
1009
|
-
|
|
1464
|
+
transpose(this, this);
|
|
1010
1465
|
return this.check();
|
|
1011
1466
|
}
|
|
1012
1467
|
invert() {
|
|
1013
|
-
|
|
1468
|
+
invert(this, this);
|
|
1014
1469
|
return this.check();
|
|
1015
1470
|
}
|
|
1016
1471
|
multiplyLeft(a) {
|
|
1017
|
-
|
|
1472
|
+
multiply(this, a, this);
|
|
1018
1473
|
return this.check();
|
|
1019
1474
|
}
|
|
1020
1475
|
multiplyRight(a) {
|
|
1021
|
-
|
|
1476
|
+
multiply(this, this, a);
|
|
1022
1477
|
return this.check();
|
|
1023
1478
|
}
|
|
1024
1479
|
rotate(radians2) {
|
|
1025
|
-
|
|
1480
|
+
rotate(this, this, radians2);
|
|
1026
1481
|
return this.check();
|
|
1027
1482
|
}
|
|
1028
1483
|
scale(factor) {
|
|
1029
1484
|
if (Array.isArray(factor)) {
|
|
1030
|
-
|
|
1485
|
+
scale(this, this, factor);
|
|
1031
1486
|
} else {
|
|
1032
|
-
|
|
1487
|
+
scale(this, this, [factor, factor]);
|
|
1033
1488
|
}
|
|
1034
1489
|
return this.check();
|
|
1035
1490
|
}
|
|
1036
1491
|
translate(vec) {
|
|
1037
|
-
|
|
1492
|
+
translate(this, this, vec);
|
|
1038
1493
|
return this.check();
|
|
1039
1494
|
}
|
|
1040
1495
|
transform(vector, result) {
|
|
1041
1496
|
let out;
|
|
1042
1497
|
switch (vector.length) {
|
|
1043
1498
|
case 2:
|
|
1044
|
-
out =
|
|
1499
|
+
out = transformMat3(result || [-0, -0], vector, this);
|
|
1045
1500
|
break;
|
|
1046
1501
|
case 3:
|
|
1047
|
-
out =
|
|
1502
|
+
out = transformMat32(result || [-0, -0, -0], vector, this);
|
|
1048
1503
|
break;
|
|
1049
1504
|
case 4:
|
|
1050
1505
|
out = vec4_transformMat3(result || [-0, -0, -0, -0], vector, this);
|
|
@@ -1082,11 +1537,759 @@ function getIdentityMatrix() {
|
|
|
1082
1537
|
return IDENTITY_MATRIX3;
|
|
1083
1538
|
}
|
|
1084
1539
|
|
|
1540
|
+
// src/gl-matrix/mat4.js
|
|
1541
|
+
function identity(out) {
|
|
1542
|
+
out[0] = 1;
|
|
1543
|
+
out[1] = 0;
|
|
1544
|
+
out[2] = 0;
|
|
1545
|
+
out[3] = 0;
|
|
1546
|
+
out[4] = 0;
|
|
1547
|
+
out[5] = 1;
|
|
1548
|
+
out[6] = 0;
|
|
1549
|
+
out[7] = 0;
|
|
1550
|
+
out[8] = 0;
|
|
1551
|
+
out[9] = 0;
|
|
1552
|
+
out[10] = 1;
|
|
1553
|
+
out[11] = 0;
|
|
1554
|
+
out[12] = 0;
|
|
1555
|
+
out[13] = 0;
|
|
1556
|
+
out[14] = 0;
|
|
1557
|
+
out[15] = 1;
|
|
1558
|
+
return out;
|
|
1559
|
+
}
|
|
1560
|
+
function transpose2(out, a) {
|
|
1561
|
+
if (out === a) {
|
|
1562
|
+
const a01 = a[1];
|
|
1563
|
+
const a02 = a[2];
|
|
1564
|
+
const a03 = a[3];
|
|
1565
|
+
const a12 = a[6];
|
|
1566
|
+
const a13 = a[7];
|
|
1567
|
+
const a23 = a[11];
|
|
1568
|
+
out[1] = a[4];
|
|
1569
|
+
out[2] = a[8];
|
|
1570
|
+
out[3] = a[12];
|
|
1571
|
+
out[4] = a01;
|
|
1572
|
+
out[6] = a[9];
|
|
1573
|
+
out[7] = a[13];
|
|
1574
|
+
out[8] = a02;
|
|
1575
|
+
out[9] = a12;
|
|
1576
|
+
out[11] = a[14];
|
|
1577
|
+
out[12] = a03;
|
|
1578
|
+
out[13] = a13;
|
|
1579
|
+
out[14] = a23;
|
|
1580
|
+
} else {
|
|
1581
|
+
out[0] = a[0];
|
|
1582
|
+
out[1] = a[4];
|
|
1583
|
+
out[2] = a[8];
|
|
1584
|
+
out[3] = a[12];
|
|
1585
|
+
out[4] = a[1];
|
|
1586
|
+
out[5] = a[5];
|
|
1587
|
+
out[6] = a[9];
|
|
1588
|
+
out[7] = a[13];
|
|
1589
|
+
out[8] = a[2];
|
|
1590
|
+
out[9] = a[6];
|
|
1591
|
+
out[10] = a[10];
|
|
1592
|
+
out[11] = a[14];
|
|
1593
|
+
out[12] = a[3];
|
|
1594
|
+
out[13] = a[7];
|
|
1595
|
+
out[14] = a[11];
|
|
1596
|
+
out[15] = a[15];
|
|
1597
|
+
}
|
|
1598
|
+
return out;
|
|
1599
|
+
}
|
|
1600
|
+
function invert2(out, a) {
|
|
1601
|
+
const a00 = a[0];
|
|
1602
|
+
const a01 = a[1];
|
|
1603
|
+
const a02 = a[2];
|
|
1604
|
+
const a03 = a[3];
|
|
1605
|
+
const a10 = a[4];
|
|
1606
|
+
const a11 = a[5];
|
|
1607
|
+
const a12 = a[6];
|
|
1608
|
+
const a13 = a[7];
|
|
1609
|
+
const a20 = a[8];
|
|
1610
|
+
const a21 = a[9];
|
|
1611
|
+
const a22 = a[10];
|
|
1612
|
+
const a23 = a[11];
|
|
1613
|
+
const a30 = a[12];
|
|
1614
|
+
const a31 = a[13];
|
|
1615
|
+
const a32 = a[14];
|
|
1616
|
+
const a33 = a[15];
|
|
1617
|
+
const b00 = a00 * a11 - a01 * a10;
|
|
1618
|
+
const b01 = a00 * a12 - a02 * a10;
|
|
1619
|
+
const b02 = a00 * a13 - a03 * a10;
|
|
1620
|
+
const b03 = a01 * a12 - a02 * a11;
|
|
1621
|
+
const b04 = a01 * a13 - a03 * a11;
|
|
1622
|
+
const b05 = a02 * a13 - a03 * a12;
|
|
1623
|
+
const b06 = a20 * a31 - a21 * a30;
|
|
1624
|
+
const b07 = a20 * a32 - a22 * a30;
|
|
1625
|
+
const b08 = a20 * a33 - a23 * a30;
|
|
1626
|
+
const b09 = a21 * a32 - a22 * a31;
|
|
1627
|
+
const b10 = a21 * a33 - a23 * a31;
|
|
1628
|
+
const b11 = a22 * a33 - a23 * a32;
|
|
1629
|
+
let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
|
|
1630
|
+
if (!det) {
|
|
1631
|
+
return null;
|
|
1632
|
+
}
|
|
1633
|
+
det = 1 / det;
|
|
1634
|
+
out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;
|
|
1635
|
+
out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;
|
|
1636
|
+
out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;
|
|
1637
|
+
out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;
|
|
1638
|
+
out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;
|
|
1639
|
+
out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;
|
|
1640
|
+
out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;
|
|
1641
|
+
out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;
|
|
1642
|
+
out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;
|
|
1643
|
+
out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;
|
|
1644
|
+
out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;
|
|
1645
|
+
out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;
|
|
1646
|
+
out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;
|
|
1647
|
+
out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;
|
|
1648
|
+
out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;
|
|
1649
|
+
out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;
|
|
1650
|
+
return out;
|
|
1651
|
+
}
|
|
1652
|
+
function determinant2(a) {
|
|
1653
|
+
const a00 = a[0];
|
|
1654
|
+
const a01 = a[1];
|
|
1655
|
+
const a02 = a[2];
|
|
1656
|
+
const a03 = a[3];
|
|
1657
|
+
const a10 = a[4];
|
|
1658
|
+
const a11 = a[5];
|
|
1659
|
+
const a12 = a[6];
|
|
1660
|
+
const a13 = a[7];
|
|
1661
|
+
const a20 = a[8];
|
|
1662
|
+
const a21 = a[9];
|
|
1663
|
+
const a22 = a[10];
|
|
1664
|
+
const a23 = a[11];
|
|
1665
|
+
const a30 = a[12];
|
|
1666
|
+
const a31 = a[13];
|
|
1667
|
+
const a32 = a[14];
|
|
1668
|
+
const a33 = a[15];
|
|
1669
|
+
const b0 = a00 * a11 - a01 * a10;
|
|
1670
|
+
const b1 = a00 * a12 - a02 * a10;
|
|
1671
|
+
const b2 = a01 * a12 - a02 * a11;
|
|
1672
|
+
const b3 = a20 * a31 - a21 * a30;
|
|
1673
|
+
const b4 = a20 * a32 - a22 * a30;
|
|
1674
|
+
const b5 = a21 * a32 - a22 * a31;
|
|
1675
|
+
const b6 = a00 * b5 - a01 * b4 + a02 * b3;
|
|
1676
|
+
const b7 = a10 * b5 - a11 * b4 + a12 * b3;
|
|
1677
|
+
const b8 = a20 * b2 - a21 * b1 + a22 * b0;
|
|
1678
|
+
const b9 = a30 * b2 - a31 * b1 + a32 * b0;
|
|
1679
|
+
return a13 * b6 - a03 * b7 + a33 * b8 - a23 * b9;
|
|
1680
|
+
}
|
|
1681
|
+
function multiply2(out, a, b) {
|
|
1682
|
+
const a00 = a[0];
|
|
1683
|
+
const a01 = a[1];
|
|
1684
|
+
const a02 = a[2];
|
|
1685
|
+
const a03 = a[3];
|
|
1686
|
+
const a10 = a[4];
|
|
1687
|
+
const a11 = a[5];
|
|
1688
|
+
const a12 = a[6];
|
|
1689
|
+
const a13 = a[7];
|
|
1690
|
+
const a20 = a[8];
|
|
1691
|
+
const a21 = a[9];
|
|
1692
|
+
const a22 = a[10];
|
|
1693
|
+
const a23 = a[11];
|
|
1694
|
+
const a30 = a[12];
|
|
1695
|
+
const a31 = a[13];
|
|
1696
|
+
const a32 = a[14];
|
|
1697
|
+
const a33 = a[15];
|
|
1698
|
+
let b0 = b[0];
|
|
1699
|
+
let b1 = b[1];
|
|
1700
|
+
let b2 = b[2];
|
|
1701
|
+
let b3 = b[3];
|
|
1702
|
+
out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
1703
|
+
out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
1704
|
+
out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
1705
|
+
out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
1706
|
+
b0 = b[4];
|
|
1707
|
+
b1 = b[5];
|
|
1708
|
+
b2 = b[6];
|
|
1709
|
+
b3 = b[7];
|
|
1710
|
+
out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
1711
|
+
out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
1712
|
+
out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
1713
|
+
out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
1714
|
+
b0 = b[8];
|
|
1715
|
+
b1 = b[9];
|
|
1716
|
+
b2 = b[10];
|
|
1717
|
+
b3 = b[11];
|
|
1718
|
+
out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
1719
|
+
out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
1720
|
+
out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
1721
|
+
out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
1722
|
+
b0 = b[12];
|
|
1723
|
+
b1 = b[13];
|
|
1724
|
+
b2 = b[14];
|
|
1725
|
+
b3 = b[15];
|
|
1726
|
+
out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
1727
|
+
out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
1728
|
+
out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
1729
|
+
out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
1730
|
+
return out;
|
|
1731
|
+
}
|
|
1732
|
+
function translate2(out, a, v) {
|
|
1733
|
+
const x = v[0];
|
|
1734
|
+
const y = v[1];
|
|
1735
|
+
const z = v[2];
|
|
1736
|
+
let a00;
|
|
1737
|
+
let a01;
|
|
1738
|
+
let a02;
|
|
1739
|
+
let a03;
|
|
1740
|
+
let a10;
|
|
1741
|
+
let a11;
|
|
1742
|
+
let a12;
|
|
1743
|
+
let a13;
|
|
1744
|
+
let a20;
|
|
1745
|
+
let a21;
|
|
1746
|
+
let a22;
|
|
1747
|
+
let a23;
|
|
1748
|
+
if (a === out) {
|
|
1749
|
+
out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];
|
|
1750
|
+
out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];
|
|
1751
|
+
out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];
|
|
1752
|
+
out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];
|
|
1753
|
+
} else {
|
|
1754
|
+
a00 = a[0];
|
|
1755
|
+
a01 = a[1];
|
|
1756
|
+
a02 = a[2];
|
|
1757
|
+
a03 = a[3];
|
|
1758
|
+
a10 = a[4];
|
|
1759
|
+
a11 = a[5];
|
|
1760
|
+
a12 = a[6];
|
|
1761
|
+
a13 = a[7];
|
|
1762
|
+
a20 = a[8];
|
|
1763
|
+
a21 = a[9];
|
|
1764
|
+
a22 = a[10];
|
|
1765
|
+
a23 = a[11];
|
|
1766
|
+
out[0] = a00;
|
|
1767
|
+
out[1] = a01;
|
|
1768
|
+
out[2] = a02;
|
|
1769
|
+
out[3] = a03;
|
|
1770
|
+
out[4] = a10;
|
|
1771
|
+
out[5] = a11;
|
|
1772
|
+
out[6] = a12;
|
|
1773
|
+
out[7] = a13;
|
|
1774
|
+
out[8] = a20;
|
|
1775
|
+
out[9] = a21;
|
|
1776
|
+
out[10] = a22;
|
|
1777
|
+
out[11] = a23;
|
|
1778
|
+
out[12] = a00 * x + a10 * y + a20 * z + a[12];
|
|
1779
|
+
out[13] = a01 * x + a11 * y + a21 * z + a[13];
|
|
1780
|
+
out[14] = a02 * x + a12 * y + a22 * z + a[14];
|
|
1781
|
+
out[15] = a03 * x + a13 * y + a23 * z + a[15];
|
|
1782
|
+
}
|
|
1783
|
+
return out;
|
|
1784
|
+
}
|
|
1785
|
+
function scale2(out, a, v) {
|
|
1786
|
+
const x = v[0];
|
|
1787
|
+
const y = v[1];
|
|
1788
|
+
const z = v[2];
|
|
1789
|
+
out[0] = a[0] * x;
|
|
1790
|
+
out[1] = a[1] * x;
|
|
1791
|
+
out[2] = a[2] * x;
|
|
1792
|
+
out[3] = a[3] * x;
|
|
1793
|
+
out[4] = a[4] * y;
|
|
1794
|
+
out[5] = a[5] * y;
|
|
1795
|
+
out[6] = a[6] * y;
|
|
1796
|
+
out[7] = a[7] * y;
|
|
1797
|
+
out[8] = a[8] * z;
|
|
1798
|
+
out[9] = a[9] * z;
|
|
1799
|
+
out[10] = a[10] * z;
|
|
1800
|
+
out[11] = a[11] * z;
|
|
1801
|
+
out[12] = a[12];
|
|
1802
|
+
out[13] = a[13];
|
|
1803
|
+
out[14] = a[14];
|
|
1804
|
+
out[15] = a[15];
|
|
1805
|
+
return out;
|
|
1806
|
+
}
|
|
1807
|
+
function rotate2(out, a, rad, axis) {
|
|
1808
|
+
let x = axis[0];
|
|
1809
|
+
let y = axis[1];
|
|
1810
|
+
let z = axis[2];
|
|
1811
|
+
let len2 = Math.sqrt(x * x + y * y + z * z);
|
|
1812
|
+
let c;
|
|
1813
|
+
let s;
|
|
1814
|
+
let t;
|
|
1815
|
+
let a00;
|
|
1816
|
+
let a01;
|
|
1817
|
+
let a02;
|
|
1818
|
+
let a03;
|
|
1819
|
+
let a10;
|
|
1820
|
+
let a11;
|
|
1821
|
+
let a12;
|
|
1822
|
+
let a13;
|
|
1823
|
+
let a20;
|
|
1824
|
+
let a21;
|
|
1825
|
+
let a22;
|
|
1826
|
+
let a23;
|
|
1827
|
+
let b00;
|
|
1828
|
+
let b01;
|
|
1829
|
+
let b02;
|
|
1830
|
+
let b10;
|
|
1831
|
+
let b11;
|
|
1832
|
+
let b12;
|
|
1833
|
+
let b20;
|
|
1834
|
+
let b21;
|
|
1835
|
+
let b22;
|
|
1836
|
+
if (len2 < EPSILON) {
|
|
1837
|
+
return null;
|
|
1838
|
+
}
|
|
1839
|
+
len2 = 1 / len2;
|
|
1840
|
+
x *= len2;
|
|
1841
|
+
y *= len2;
|
|
1842
|
+
z *= len2;
|
|
1843
|
+
s = Math.sin(rad);
|
|
1844
|
+
c = Math.cos(rad);
|
|
1845
|
+
t = 1 - c;
|
|
1846
|
+
a00 = a[0];
|
|
1847
|
+
a01 = a[1];
|
|
1848
|
+
a02 = a[2];
|
|
1849
|
+
a03 = a[3];
|
|
1850
|
+
a10 = a[4];
|
|
1851
|
+
a11 = a[5];
|
|
1852
|
+
a12 = a[6];
|
|
1853
|
+
a13 = a[7];
|
|
1854
|
+
a20 = a[8];
|
|
1855
|
+
a21 = a[9];
|
|
1856
|
+
a22 = a[10];
|
|
1857
|
+
a23 = a[11];
|
|
1858
|
+
b00 = x * x * t + c;
|
|
1859
|
+
b01 = y * x * t + z * s;
|
|
1860
|
+
b02 = z * x * t - y * s;
|
|
1861
|
+
b10 = x * y * t - z * s;
|
|
1862
|
+
b11 = y * y * t + c;
|
|
1863
|
+
b12 = z * y * t + x * s;
|
|
1864
|
+
b20 = x * z * t + y * s;
|
|
1865
|
+
b21 = y * z * t - x * s;
|
|
1866
|
+
b22 = z * z * t + c;
|
|
1867
|
+
out[0] = a00 * b00 + a10 * b01 + a20 * b02;
|
|
1868
|
+
out[1] = a01 * b00 + a11 * b01 + a21 * b02;
|
|
1869
|
+
out[2] = a02 * b00 + a12 * b01 + a22 * b02;
|
|
1870
|
+
out[3] = a03 * b00 + a13 * b01 + a23 * b02;
|
|
1871
|
+
out[4] = a00 * b10 + a10 * b11 + a20 * b12;
|
|
1872
|
+
out[5] = a01 * b10 + a11 * b11 + a21 * b12;
|
|
1873
|
+
out[6] = a02 * b10 + a12 * b11 + a22 * b12;
|
|
1874
|
+
out[7] = a03 * b10 + a13 * b11 + a23 * b12;
|
|
1875
|
+
out[8] = a00 * b20 + a10 * b21 + a20 * b22;
|
|
1876
|
+
out[9] = a01 * b20 + a11 * b21 + a21 * b22;
|
|
1877
|
+
out[10] = a02 * b20 + a12 * b21 + a22 * b22;
|
|
1878
|
+
out[11] = a03 * b20 + a13 * b21 + a23 * b22;
|
|
1879
|
+
if (a !== out) {
|
|
1880
|
+
out[12] = a[12];
|
|
1881
|
+
out[13] = a[13];
|
|
1882
|
+
out[14] = a[14];
|
|
1883
|
+
out[15] = a[15];
|
|
1884
|
+
}
|
|
1885
|
+
return out;
|
|
1886
|
+
}
|
|
1887
|
+
function rotateX2(out, a, rad) {
|
|
1888
|
+
const s = Math.sin(rad);
|
|
1889
|
+
const c = Math.cos(rad);
|
|
1890
|
+
const a10 = a[4];
|
|
1891
|
+
const a11 = a[5];
|
|
1892
|
+
const a12 = a[6];
|
|
1893
|
+
const a13 = a[7];
|
|
1894
|
+
const a20 = a[8];
|
|
1895
|
+
const a21 = a[9];
|
|
1896
|
+
const a22 = a[10];
|
|
1897
|
+
const a23 = a[11];
|
|
1898
|
+
if (a !== out) {
|
|
1899
|
+
out[0] = a[0];
|
|
1900
|
+
out[1] = a[1];
|
|
1901
|
+
out[2] = a[2];
|
|
1902
|
+
out[3] = a[3];
|
|
1903
|
+
out[12] = a[12];
|
|
1904
|
+
out[13] = a[13];
|
|
1905
|
+
out[14] = a[14];
|
|
1906
|
+
out[15] = a[15];
|
|
1907
|
+
}
|
|
1908
|
+
out[4] = a10 * c + a20 * s;
|
|
1909
|
+
out[5] = a11 * c + a21 * s;
|
|
1910
|
+
out[6] = a12 * c + a22 * s;
|
|
1911
|
+
out[7] = a13 * c + a23 * s;
|
|
1912
|
+
out[8] = a20 * c - a10 * s;
|
|
1913
|
+
out[9] = a21 * c - a11 * s;
|
|
1914
|
+
out[10] = a22 * c - a12 * s;
|
|
1915
|
+
out[11] = a23 * c - a13 * s;
|
|
1916
|
+
return out;
|
|
1917
|
+
}
|
|
1918
|
+
function rotateY2(out, a, rad) {
|
|
1919
|
+
const s = Math.sin(rad);
|
|
1920
|
+
const c = Math.cos(rad);
|
|
1921
|
+
const a00 = a[0];
|
|
1922
|
+
const a01 = a[1];
|
|
1923
|
+
const a02 = a[2];
|
|
1924
|
+
const a03 = a[3];
|
|
1925
|
+
const a20 = a[8];
|
|
1926
|
+
const a21 = a[9];
|
|
1927
|
+
const a22 = a[10];
|
|
1928
|
+
const a23 = a[11];
|
|
1929
|
+
if (a !== out) {
|
|
1930
|
+
out[4] = a[4];
|
|
1931
|
+
out[5] = a[5];
|
|
1932
|
+
out[6] = a[6];
|
|
1933
|
+
out[7] = a[7];
|
|
1934
|
+
out[12] = a[12];
|
|
1935
|
+
out[13] = a[13];
|
|
1936
|
+
out[14] = a[14];
|
|
1937
|
+
out[15] = a[15];
|
|
1938
|
+
}
|
|
1939
|
+
out[0] = a00 * c - a20 * s;
|
|
1940
|
+
out[1] = a01 * c - a21 * s;
|
|
1941
|
+
out[2] = a02 * c - a22 * s;
|
|
1942
|
+
out[3] = a03 * c - a23 * s;
|
|
1943
|
+
out[8] = a00 * s + a20 * c;
|
|
1944
|
+
out[9] = a01 * s + a21 * c;
|
|
1945
|
+
out[10] = a02 * s + a22 * c;
|
|
1946
|
+
out[11] = a03 * s + a23 * c;
|
|
1947
|
+
return out;
|
|
1948
|
+
}
|
|
1949
|
+
function rotateZ2(out, a, rad) {
|
|
1950
|
+
const s = Math.sin(rad);
|
|
1951
|
+
const c = Math.cos(rad);
|
|
1952
|
+
const a00 = a[0];
|
|
1953
|
+
const a01 = a[1];
|
|
1954
|
+
const a02 = a[2];
|
|
1955
|
+
const a03 = a[3];
|
|
1956
|
+
const a10 = a[4];
|
|
1957
|
+
const a11 = a[5];
|
|
1958
|
+
const a12 = a[6];
|
|
1959
|
+
const a13 = a[7];
|
|
1960
|
+
if (a !== out) {
|
|
1961
|
+
out[8] = a[8];
|
|
1962
|
+
out[9] = a[9];
|
|
1963
|
+
out[10] = a[10];
|
|
1964
|
+
out[11] = a[11];
|
|
1965
|
+
out[12] = a[12];
|
|
1966
|
+
out[13] = a[13];
|
|
1967
|
+
out[14] = a[14];
|
|
1968
|
+
out[15] = a[15];
|
|
1969
|
+
}
|
|
1970
|
+
out[0] = a00 * c + a10 * s;
|
|
1971
|
+
out[1] = a01 * c + a11 * s;
|
|
1972
|
+
out[2] = a02 * c + a12 * s;
|
|
1973
|
+
out[3] = a03 * c + a13 * s;
|
|
1974
|
+
out[4] = a10 * c - a00 * s;
|
|
1975
|
+
out[5] = a11 * c - a01 * s;
|
|
1976
|
+
out[6] = a12 * c - a02 * s;
|
|
1977
|
+
out[7] = a13 * c - a03 * s;
|
|
1978
|
+
return out;
|
|
1979
|
+
}
|
|
1980
|
+
function fromQuat2(out, q) {
|
|
1981
|
+
const x = q[0];
|
|
1982
|
+
const y = q[1];
|
|
1983
|
+
const z = q[2];
|
|
1984
|
+
const w = q[3];
|
|
1985
|
+
const x2 = x + x;
|
|
1986
|
+
const y2 = y + y;
|
|
1987
|
+
const z2 = z + z;
|
|
1988
|
+
const xx = x * x2;
|
|
1989
|
+
const yx = y * x2;
|
|
1990
|
+
const yy = y * y2;
|
|
1991
|
+
const zx = z * x2;
|
|
1992
|
+
const zy = z * y2;
|
|
1993
|
+
const zz = z * z2;
|
|
1994
|
+
const wx = w * x2;
|
|
1995
|
+
const wy = w * y2;
|
|
1996
|
+
const wz = w * z2;
|
|
1997
|
+
out[0] = 1 - yy - zz;
|
|
1998
|
+
out[1] = yx + wz;
|
|
1999
|
+
out[2] = zx - wy;
|
|
2000
|
+
out[3] = 0;
|
|
2001
|
+
out[4] = yx - wz;
|
|
2002
|
+
out[5] = 1 - xx - zz;
|
|
2003
|
+
out[6] = zy + wx;
|
|
2004
|
+
out[7] = 0;
|
|
2005
|
+
out[8] = zx + wy;
|
|
2006
|
+
out[9] = zy - wx;
|
|
2007
|
+
out[10] = 1 - xx - yy;
|
|
2008
|
+
out[11] = 0;
|
|
2009
|
+
out[12] = 0;
|
|
2010
|
+
out[13] = 0;
|
|
2011
|
+
out[14] = 0;
|
|
2012
|
+
out[15] = 1;
|
|
2013
|
+
return out;
|
|
2014
|
+
}
|
|
2015
|
+
function frustum(out, left, right, bottom, top, near, far) {
|
|
2016
|
+
const rl = 1 / (right - left);
|
|
2017
|
+
const tb = 1 / (top - bottom);
|
|
2018
|
+
const nf = 1 / (near - far);
|
|
2019
|
+
out[0] = near * 2 * rl;
|
|
2020
|
+
out[1] = 0;
|
|
2021
|
+
out[2] = 0;
|
|
2022
|
+
out[3] = 0;
|
|
2023
|
+
out[4] = 0;
|
|
2024
|
+
out[5] = near * 2 * tb;
|
|
2025
|
+
out[6] = 0;
|
|
2026
|
+
out[7] = 0;
|
|
2027
|
+
out[8] = (right + left) * rl;
|
|
2028
|
+
out[9] = (top + bottom) * tb;
|
|
2029
|
+
out[10] = (far + near) * nf;
|
|
2030
|
+
out[11] = -1;
|
|
2031
|
+
out[12] = 0;
|
|
2032
|
+
out[13] = 0;
|
|
2033
|
+
out[14] = far * near * 2 * nf;
|
|
2034
|
+
out[15] = 0;
|
|
2035
|
+
return out;
|
|
2036
|
+
}
|
|
2037
|
+
function perspectiveNO(out, fovy, aspect, near, far) {
|
|
2038
|
+
const f = 1 / Math.tan(fovy / 2);
|
|
2039
|
+
out[0] = f / aspect;
|
|
2040
|
+
out[1] = 0;
|
|
2041
|
+
out[2] = 0;
|
|
2042
|
+
out[3] = 0;
|
|
2043
|
+
out[4] = 0;
|
|
2044
|
+
out[5] = f;
|
|
2045
|
+
out[6] = 0;
|
|
2046
|
+
out[7] = 0;
|
|
2047
|
+
out[8] = 0;
|
|
2048
|
+
out[9] = 0;
|
|
2049
|
+
out[11] = -1;
|
|
2050
|
+
out[12] = 0;
|
|
2051
|
+
out[13] = 0;
|
|
2052
|
+
out[15] = 0;
|
|
2053
|
+
if (far != null && far !== Infinity) {
|
|
2054
|
+
const nf = 1 / (near - far);
|
|
2055
|
+
out[10] = (far + near) * nf;
|
|
2056
|
+
out[14] = 2 * far * near * nf;
|
|
2057
|
+
} else {
|
|
2058
|
+
out[10] = -1;
|
|
2059
|
+
out[14] = -2 * near;
|
|
2060
|
+
}
|
|
2061
|
+
return out;
|
|
2062
|
+
}
|
|
2063
|
+
var perspective = perspectiveNO;
|
|
2064
|
+
function orthoNO(out, left, right, bottom, top, near, far) {
|
|
2065
|
+
const lr = 1 / (left - right);
|
|
2066
|
+
const bt = 1 / (bottom - top);
|
|
2067
|
+
const nf = 1 / (near - far);
|
|
2068
|
+
out[0] = -2 * lr;
|
|
2069
|
+
out[1] = 0;
|
|
2070
|
+
out[2] = 0;
|
|
2071
|
+
out[3] = 0;
|
|
2072
|
+
out[4] = 0;
|
|
2073
|
+
out[5] = -2 * bt;
|
|
2074
|
+
out[6] = 0;
|
|
2075
|
+
out[7] = 0;
|
|
2076
|
+
out[8] = 0;
|
|
2077
|
+
out[9] = 0;
|
|
2078
|
+
out[10] = 2 * nf;
|
|
2079
|
+
out[11] = 0;
|
|
2080
|
+
out[12] = (left + right) * lr;
|
|
2081
|
+
out[13] = (top + bottom) * bt;
|
|
2082
|
+
out[14] = (far + near) * nf;
|
|
2083
|
+
out[15] = 1;
|
|
2084
|
+
return out;
|
|
2085
|
+
}
|
|
2086
|
+
var ortho = orthoNO;
|
|
2087
|
+
function lookAt(out, eye, center, up) {
|
|
2088
|
+
let len2;
|
|
2089
|
+
let x0;
|
|
2090
|
+
let x1;
|
|
2091
|
+
let x2;
|
|
2092
|
+
let y0;
|
|
2093
|
+
let y1;
|
|
2094
|
+
let y2;
|
|
2095
|
+
let z0;
|
|
2096
|
+
let z1;
|
|
2097
|
+
let z2;
|
|
2098
|
+
const eyex = eye[0];
|
|
2099
|
+
const eyey = eye[1];
|
|
2100
|
+
const eyez = eye[2];
|
|
2101
|
+
const upx = up[0];
|
|
2102
|
+
const upy = up[1];
|
|
2103
|
+
const upz = up[2];
|
|
2104
|
+
const centerx = center[0];
|
|
2105
|
+
const centery = center[1];
|
|
2106
|
+
const centerz = center[2];
|
|
2107
|
+
if (Math.abs(eyex - centerx) < EPSILON && Math.abs(eyey - centery) < EPSILON && Math.abs(eyez - centerz) < EPSILON) {
|
|
2108
|
+
return identity(out);
|
|
2109
|
+
}
|
|
2110
|
+
z0 = eyex - centerx;
|
|
2111
|
+
z1 = eyey - centery;
|
|
2112
|
+
z2 = eyez - centerz;
|
|
2113
|
+
len2 = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);
|
|
2114
|
+
z0 *= len2;
|
|
2115
|
+
z1 *= len2;
|
|
2116
|
+
z2 *= len2;
|
|
2117
|
+
x0 = upy * z2 - upz * z1;
|
|
2118
|
+
x1 = upz * z0 - upx * z2;
|
|
2119
|
+
x2 = upx * z1 - upy * z0;
|
|
2120
|
+
len2 = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);
|
|
2121
|
+
if (!len2) {
|
|
2122
|
+
x0 = 0;
|
|
2123
|
+
x1 = 0;
|
|
2124
|
+
x2 = 0;
|
|
2125
|
+
} else {
|
|
2126
|
+
len2 = 1 / len2;
|
|
2127
|
+
x0 *= len2;
|
|
2128
|
+
x1 *= len2;
|
|
2129
|
+
x2 *= len2;
|
|
2130
|
+
}
|
|
2131
|
+
y0 = z1 * x2 - z2 * x1;
|
|
2132
|
+
y1 = z2 * x0 - z0 * x2;
|
|
2133
|
+
y2 = z0 * x1 - z1 * x0;
|
|
2134
|
+
len2 = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);
|
|
2135
|
+
if (!len2) {
|
|
2136
|
+
y0 = 0;
|
|
2137
|
+
y1 = 0;
|
|
2138
|
+
y2 = 0;
|
|
2139
|
+
} else {
|
|
2140
|
+
len2 = 1 / len2;
|
|
2141
|
+
y0 *= len2;
|
|
2142
|
+
y1 *= len2;
|
|
2143
|
+
y2 *= len2;
|
|
2144
|
+
}
|
|
2145
|
+
out[0] = x0;
|
|
2146
|
+
out[1] = y0;
|
|
2147
|
+
out[2] = z0;
|
|
2148
|
+
out[3] = 0;
|
|
2149
|
+
out[4] = x1;
|
|
2150
|
+
out[5] = y1;
|
|
2151
|
+
out[6] = z1;
|
|
2152
|
+
out[7] = 0;
|
|
2153
|
+
out[8] = x2;
|
|
2154
|
+
out[9] = y2;
|
|
2155
|
+
out[10] = z2;
|
|
2156
|
+
out[11] = 0;
|
|
2157
|
+
out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);
|
|
2158
|
+
out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);
|
|
2159
|
+
out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);
|
|
2160
|
+
out[15] = 1;
|
|
2161
|
+
return out;
|
|
2162
|
+
}
|
|
2163
|
+
|
|
2164
|
+
// src/gl-matrix/vec4.js
|
|
2165
|
+
function create4() {
|
|
2166
|
+
const out = new ARRAY_TYPE(4);
|
|
2167
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
2168
|
+
out[0] = 0;
|
|
2169
|
+
out[1] = 0;
|
|
2170
|
+
out[2] = 0;
|
|
2171
|
+
out[3] = 0;
|
|
2172
|
+
}
|
|
2173
|
+
return out;
|
|
2174
|
+
}
|
|
2175
|
+
function add(out, a, b) {
|
|
2176
|
+
out[0] = a[0] + b[0];
|
|
2177
|
+
out[1] = a[1] + b[1];
|
|
2178
|
+
out[2] = a[2] + b[2];
|
|
2179
|
+
out[3] = a[3] + b[3];
|
|
2180
|
+
return out;
|
|
2181
|
+
}
|
|
2182
|
+
function scale3(out, a, b) {
|
|
2183
|
+
out[0] = a[0] * b;
|
|
2184
|
+
out[1] = a[1] * b;
|
|
2185
|
+
out[2] = a[2] * b;
|
|
2186
|
+
out[3] = a[3] * b;
|
|
2187
|
+
return out;
|
|
2188
|
+
}
|
|
2189
|
+
function length2(a) {
|
|
2190
|
+
const x = a[0];
|
|
2191
|
+
const y = a[1];
|
|
2192
|
+
const z = a[2];
|
|
2193
|
+
const w = a[3];
|
|
2194
|
+
return Math.sqrt(x * x + y * y + z * z + w * w);
|
|
2195
|
+
}
|
|
2196
|
+
function squaredLength(a) {
|
|
2197
|
+
const x = a[0];
|
|
2198
|
+
const y = a[1];
|
|
2199
|
+
const z = a[2];
|
|
2200
|
+
const w = a[3];
|
|
2201
|
+
return x * x + y * y + z * z + w * w;
|
|
2202
|
+
}
|
|
2203
|
+
function normalize2(out, a) {
|
|
2204
|
+
const x = a[0];
|
|
2205
|
+
const y = a[1];
|
|
2206
|
+
const z = a[2];
|
|
2207
|
+
const w = a[3];
|
|
2208
|
+
let len2 = x * x + y * y + z * z + w * w;
|
|
2209
|
+
if (len2 > 0) {
|
|
2210
|
+
len2 = 1 / Math.sqrt(len2);
|
|
2211
|
+
}
|
|
2212
|
+
out[0] = x * len2;
|
|
2213
|
+
out[1] = y * len2;
|
|
2214
|
+
out[2] = z * len2;
|
|
2215
|
+
out[3] = w * len2;
|
|
2216
|
+
return out;
|
|
2217
|
+
}
|
|
2218
|
+
function dot2(a, b) {
|
|
2219
|
+
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
|
|
2220
|
+
}
|
|
2221
|
+
function lerp2(out, a, b, t) {
|
|
2222
|
+
const ax = a[0];
|
|
2223
|
+
const ay = a[1];
|
|
2224
|
+
const az = a[2];
|
|
2225
|
+
const aw = a[3];
|
|
2226
|
+
out[0] = ax + t * (b[0] - ax);
|
|
2227
|
+
out[1] = ay + t * (b[1] - ay);
|
|
2228
|
+
out[2] = az + t * (b[2] - az);
|
|
2229
|
+
out[3] = aw + t * (b[3] - aw);
|
|
2230
|
+
return out;
|
|
2231
|
+
}
|
|
2232
|
+
function transformMat43(out, a, m) {
|
|
2233
|
+
const x = a[0];
|
|
2234
|
+
const y = a[1];
|
|
2235
|
+
const z = a[2];
|
|
2236
|
+
const w = a[3];
|
|
2237
|
+
out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;
|
|
2238
|
+
out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;
|
|
2239
|
+
out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;
|
|
2240
|
+
out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;
|
|
2241
|
+
return out;
|
|
2242
|
+
}
|
|
2243
|
+
function transformQuat2(out, a, q) {
|
|
2244
|
+
const x = a[0];
|
|
2245
|
+
const y = a[1];
|
|
2246
|
+
const z = a[2];
|
|
2247
|
+
const qx = q[0];
|
|
2248
|
+
const qy = q[1];
|
|
2249
|
+
const qz = q[2];
|
|
2250
|
+
const qw = q[3];
|
|
2251
|
+
const ix = qw * x + qy * z - qz * y;
|
|
2252
|
+
const iy = qw * y + qz * x - qx * z;
|
|
2253
|
+
const iz = qw * z + qx * y - qy * x;
|
|
2254
|
+
const iw = -qx * x - qy * y - qz * z;
|
|
2255
|
+
out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
|
|
2256
|
+
out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
|
|
2257
|
+
out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
|
|
2258
|
+
out[3] = a[3];
|
|
2259
|
+
return out;
|
|
2260
|
+
}
|
|
2261
|
+
var forEach3 = function() {
|
|
2262
|
+
const vec = create4();
|
|
2263
|
+
return function(a, stride, offset, count, fn, arg) {
|
|
2264
|
+
let i;
|
|
2265
|
+
let l;
|
|
2266
|
+
if (!stride) {
|
|
2267
|
+
stride = 4;
|
|
2268
|
+
}
|
|
2269
|
+
if (!offset) {
|
|
2270
|
+
offset = 0;
|
|
2271
|
+
}
|
|
2272
|
+
if (count) {
|
|
2273
|
+
l = Math.min(count * stride + offset, a.length);
|
|
2274
|
+
} else {
|
|
2275
|
+
l = a.length;
|
|
2276
|
+
}
|
|
2277
|
+
for (i = offset; i < l; i += stride) {
|
|
2278
|
+
vec[0] = a[i];
|
|
2279
|
+
vec[1] = a[i + 1];
|
|
2280
|
+
vec[2] = a[i + 2];
|
|
2281
|
+
vec[3] = a[i + 3];
|
|
2282
|
+
fn(vec, vec, arg);
|
|
2283
|
+
a[i] = vec[0];
|
|
2284
|
+
a[i + 1] = vec[1];
|
|
2285
|
+
a[i + 2] = vec[2];
|
|
2286
|
+
a[i + 3] = vec[3];
|
|
2287
|
+
}
|
|
2288
|
+
return a;
|
|
2289
|
+
};
|
|
2290
|
+
}();
|
|
2291
|
+
|
|
1085
2292
|
// src/classes/matrix4.ts
|
|
1086
|
-
var mat4 = __toESM(require("gl-matrix/mat4"), 1);
|
|
1087
|
-
var vec23 = __toESM(require("gl-matrix/vec2"), 1);
|
|
1088
|
-
var vec33 = __toESM(require("gl-matrix/vec3"), 1);
|
|
1089
|
-
var vec42 = __toESM(require("gl-matrix/vec4"), 1);
|
|
1090
2293
|
var INDICES2 = /* @__PURE__ */ ((INDICES3) => {
|
|
1091
2294
|
INDICES3[INDICES3["COL0ROW0"] = 0] = "COL0ROW0";
|
|
1092
2295
|
INDICES3[INDICES3["COL0ROW1"] = 1] = "COL0ROW1";
|
|
@@ -1218,7 +2421,7 @@ var Matrix4 = class extends Matrix {
|
|
|
1218
2421
|
return this.check();
|
|
1219
2422
|
}
|
|
1220
2423
|
fromQuaternion(quaternion) {
|
|
1221
|
-
|
|
2424
|
+
fromQuat2(this, quaternion);
|
|
1222
2425
|
return this.check();
|
|
1223
2426
|
}
|
|
1224
2427
|
frustum(view) {
|
|
@@ -1226,18 +2429,18 @@ var Matrix4 = class extends Matrix {
|
|
|
1226
2429
|
if (far === Infinity) {
|
|
1227
2430
|
computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);
|
|
1228
2431
|
} else {
|
|
1229
|
-
|
|
2432
|
+
frustum(this, left, right, bottom, top, near, far);
|
|
1230
2433
|
}
|
|
1231
2434
|
return this.check();
|
|
1232
2435
|
}
|
|
1233
2436
|
lookAt(view) {
|
|
1234
2437
|
const { eye, center = [0, 0, 0], up = [0, 1, 0] } = view;
|
|
1235
|
-
|
|
2438
|
+
lookAt(this, eye, center, up);
|
|
1236
2439
|
return this.check();
|
|
1237
2440
|
}
|
|
1238
2441
|
ortho(view) {
|
|
1239
2442
|
const { left, right, bottom, top, near = DEFAULT_NEAR, far = DEFAULT_FAR } = view;
|
|
1240
|
-
|
|
2443
|
+
ortho(this, left, right, bottom, top, near, far);
|
|
1241
2444
|
return this.check();
|
|
1242
2445
|
}
|
|
1243
2446
|
orthographic(view) {
|
|
@@ -1264,11 +2467,11 @@ var Matrix4 = class extends Matrix {
|
|
|
1264
2467
|
perspective(view) {
|
|
1265
2468
|
const { fovy = 45 * Math.PI / 180, aspect = 1, near = 0.1, far = 500 } = view;
|
|
1266
2469
|
checkRadians(fovy);
|
|
1267
|
-
|
|
2470
|
+
perspective(this, fovy, aspect, near, far);
|
|
1268
2471
|
return this.check();
|
|
1269
2472
|
}
|
|
1270
2473
|
determinant() {
|
|
1271
|
-
return
|
|
2474
|
+
return determinant2(this);
|
|
1272
2475
|
}
|
|
1273
2476
|
getScale(result = [-0, -0, -0]) {
|
|
1274
2477
|
result[0] = Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);
|
|
@@ -1285,10 +2488,10 @@ var Matrix4 = class extends Matrix {
|
|
|
1285
2488
|
getRotation(result, scaleResult) {
|
|
1286
2489
|
result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];
|
|
1287
2490
|
scaleResult = scaleResult || [-0, -0, -0];
|
|
1288
|
-
const
|
|
1289
|
-
const inverseScale0 = 1 /
|
|
1290
|
-
const inverseScale1 = 1 /
|
|
1291
|
-
const inverseScale2 = 1 /
|
|
2491
|
+
const scale5 = this.getScale(scaleResult);
|
|
2492
|
+
const inverseScale0 = 1 / scale5[0];
|
|
2493
|
+
const inverseScale1 = 1 / scale5[1];
|
|
2494
|
+
const inverseScale2 = 1 / scale5[2];
|
|
1292
2495
|
result[0] = this[0] * inverseScale0;
|
|
1293
2496
|
result[1] = this[1] * inverseScale1;
|
|
1294
2497
|
result[2] = this[2] * inverseScale2;
|
|
@@ -1310,10 +2513,10 @@ var Matrix4 = class extends Matrix {
|
|
|
1310
2513
|
getRotationMatrix3(result, scaleResult) {
|
|
1311
2514
|
result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0];
|
|
1312
2515
|
scaleResult = scaleResult || [-0, -0, -0];
|
|
1313
|
-
const
|
|
1314
|
-
const inverseScale0 = 1 /
|
|
1315
|
-
const inverseScale1 = 1 /
|
|
1316
|
-
const inverseScale2 = 1 /
|
|
2516
|
+
const scale5 = this.getScale(scaleResult);
|
|
2517
|
+
const inverseScale0 = 1 / scale5[0];
|
|
2518
|
+
const inverseScale1 = 1 / scale5[1];
|
|
2519
|
+
const inverseScale2 = 1 / scale5[2];
|
|
1317
2520
|
result[0] = this[0] * inverseScale0;
|
|
1318
2521
|
result[1] = this[1] * inverseScale1;
|
|
1319
2522
|
result[2] = this[2] * inverseScale2;
|
|
@@ -1326,65 +2529,65 @@ var Matrix4 = class extends Matrix {
|
|
|
1326
2529
|
return result;
|
|
1327
2530
|
}
|
|
1328
2531
|
transpose() {
|
|
1329
|
-
|
|
2532
|
+
transpose2(this, this);
|
|
1330
2533
|
return this.check();
|
|
1331
2534
|
}
|
|
1332
2535
|
invert() {
|
|
1333
|
-
|
|
2536
|
+
invert2(this, this);
|
|
1334
2537
|
return this.check();
|
|
1335
2538
|
}
|
|
1336
2539
|
multiplyLeft(a) {
|
|
1337
|
-
|
|
2540
|
+
multiply2(this, a, this);
|
|
1338
2541
|
return this.check();
|
|
1339
2542
|
}
|
|
1340
2543
|
multiplyRight(a) {
|
|
1341
|
-
|
|
2544
|
+
multiply2(this, this, a);
|
|
1342
2545
|
return this.check();
|
|
1343
2546
|
}
|
|
1344
2547
|
rotateX(radians2) {
|
|
1345
|
-
|
|
2548
|
+
rotateX2(this, this, radians2);
|
|
1346
2549
|
return this.check();
|
|
1347
2550
|
}
|
|
1348
2551
|
rotateY(radians2) {
|
|
1349
|
-
|
|
2552
|
+
rotateY2(this, this, radians2);
|
|
1350
2553
|
return this.check();
|
|
1351
2554
|
}
|
|
1352
2555
|
rotateZ(radians2) {
|
|
1353
|
-
|
|
2556
|
+
rotateZ2(this, this, radians2);
|
|
1354
2557
|
return this.check();
|
|
1355
2558
|
}
|
|
1356
2559
|
rotateXYZ(angleXYZ) {
|
|
1357
2560
|
return this.rotateX(angleXYZ[0]).rotateY(angleXYZ[1]).rotateZ(angleXYZ[2]);
|
|
1358
2561
|
}
|
|
1359
2562
|
rotateAxis(radians2, axis) {
|
|
1360
|
-
|
|
2563
|
+
rotate2(this, this, radians2, axis);
|
|
1361
2564
|
return this.check();
|
|
1362
2565
|
}
|
|
1363
2566
|
scale(factor) {
|
|
1364
|
-
|
|
2567
|
+
scale2(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);
|
|
1365
2568
|
return this.check();
|
|
1366
2569
|
}
|
|
1367
2570
|
translate(vector) {
|
|
1368
|
-
|
|
2571
|
+
translate2(this, this, vector);
|
|
1369
2572
|
return this.check();
|
|
1370
2573
|
}
|
|
1371
2574
|
transform(vector, result) {
|
|
1372
2575
|
if (vector.length === 4) {
|
|
1373
|
-
result =
|
|
2576
|
+
result = transformMat43(result || [-0, -0, -0, -0], vector, this);
|
|
1374
2577
|
checkVector(result, 4);
|
|
1375
2578
|
return result;
|
|
1376
2579
|
}
|
|
1377
2580
|
return this.transformAsPoint(vector, result);
|
|
1378
2581
|
}
|
|
1379
2582
|
transformAsPoint(vector, result) {
|
|
1380
|
-
const { length:
|
|
2583
|
+
const { length: length4 } = vector;
|
|
1381
2584
|
let out;
|
|
1382
|
-
switch (
|
|
2585
|
+
switch (length4) {
|
|
1383
2586
|
case 2:
|
|
1384
|
-
out =
|
|
2587
|
+
out = transformMat4(result || [-0, -0], vector, this);
|
|
1385
2588
|
break;
|
|
1386
2589
|
case 3:
|
|
1387
|
-
out =
|
|
2590
|
+
out = transformMat42(result || [-0, -0, -0], vector, this);
|
|
1388
2591
|
break;
|
|
1389
2592
|
default:
|
|
1390
2593
|
throw new Error("Illegal vector");
|
|
@@ -1471,9 +2674,246 @@ function computeInfinitePerspectiveOffCenter(result, left, right, bottom, top, n
|
|
|
1471
2674
|
return result;
|
|
1472
2675
|
}
|
|
1473
2676
|
|
|
2677
|
+
// src/gl-matrix/quat.ts
|
|
2678
|
+
function create5() {
|
|
2679
|
+
const out = new ARRAY_TYPE(4);
|
|
2680
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
2681
|
+
out[0] = 0;
|
|
2682
|
+
out[1] = 0;
|
|
2683
|
+
out[2] = 0;
|
|
2684
|
+
}
|
|
2685
|
+
out[3] = 1;
|
|
2686
|
+
return out;
|
|
2687
|
+
}
|
|
2688
|
+
function identity2(out) {
|
|
2689
|
+
out[0] = 0;
|
|
2690
|
+
out[1] = 0;
|
|
2691
|
+
out[2] = 0;
|
|
2692
|
+
out[3] = 1;
|
|
2693
|
+
return out;
|
|
2694
|
+
}
|
|
2695
|
+
function setAxisAngle(out, axis, rad) {
|
|
2696
|
+
rad = rad * 0.5;
|
|
2697
|
+
const s = Math.sin(rad);
|
|
2698
|
+
out[0] = s * axis[0];
|
|
2699
|
+
out[1] = s * axis[1];
|
|
2700
|
+
out[2] = s * axis[2];
|
|
2701
|
+
out[3] = Math.cos(rad);
|
|
2702
|
+
return out;
|
|
2703
|
+
}
|
|
2704
|
+
function multiply3(out, a, b) {
|
|
2705
|
+
const ax = a[0];
|
|
2706
|
+
const ay = a[1];
|
|
2707
|
+
const az = a[2];
|
|
2708
|
+
const aw = a[3];
|
|
2709
|
+
const bx = b[0];
|
|
2710
|
+
const by = b[1];
|
|
2711
|
+
const bz = b[2];
|
|
2712
|
+
const bw = b[3];
|
|
2713
|
+
out[0] = ax * bw + aw * bx + ay * bz - az * by;
|
|
2714
|
+
out[1] = ay * bw + aw * by + az * bx - ax * bz;
|
|
2715
|
+
out[2] = az * bw + aw * bz + ax * by - ay * bx;
|
|
2716
|
+
out[3] = aw * bw - ax * bx - ay * by - az * bz;
|
|
2717
|
+
return out;
|
|
2718
|
+
}
|
|
2719
|
+
function rotateX3(out, a, rad) {
|
|
2720
|
+
rad *= 0.5;
|
|
2721
|
+
const ax = a[0];
|
|
2722
|
+
const ay = a[1];
|
|
2723
|
+
const az = a[2];
|
|
2724
|
+
const aw = a[3];
|
|
2725
|
+
const bx = Math.sin(rad);
|
|
2726
|
+
const bw = Math.cos(rad);
|
|
2727
|
+
out[0] = ax * bw + aw * bx;
|
|
2728
|
+
out[1] = ay * bw + az * bx;
|
|
2729
|
+
out[2] = az * bw - ay * bx;
|
|
2730
|
+
out[3] = aw * bw - ax * bx;
|
|
2731
|
+
return out;
|
|
2732
|
+
}
|
|
2733
|
+
function rotateY3(out, a, rad) {
|
|
2734
|
+
rad *= 0.5;
|
|
2735
|
+
const ax = a[0];
|
|
2736
|
+
const ay = a[1];
|
|
2737
|
+
const az = a[2];
|
|
2738
|
+
const aw = a[3];
|
|
2739
|
+
const by = Math.sin(rad);
|
|
2740
|
+
const bw = Math.cos(rad);
|
|
2741
|
+
out[0] = ax * bw - az * by;
|
|
2742
|
+
out[1] = ay * bw + aw * by;
|
|
2743
|
+
out[2] = az * bw + ax * by;
|
|
2744
|
+
out[3] = aw * bw - ay * by;
|
|
2745
|
+
return out;
|
|
2746
|
+
}
|
|
2747
|
+
function rotateZ3(out, a, rad) {
|
|
2748
|
+
rad *= 0.5;
|
|
2749
|
+
const ax = a[0];
|
|
2750
|
+
const ay = a[1];
|
|
2751
|
+
const az = a[2];
|
|
2752
|
+
const aw = a[3];
|
|
2753
|
+
const bz = Math.sin(rad);
|
|
2754
|
+
const bw = Math.cos(rad);
|
|
2755
|
+
out[0] = ax * bw + ay * bz;
|
|
2756
|
+
out[1] = ay * bw - ax * bz;
|
|
2757
|
+
out[2] = az * bw + aw * bz;
|
|
2758
|
+
out[3] = aw * bw - az * bz;
|
|
2759
|
+
return out;
|
|
2760
|
+
}
|
|
2761
|
+
function calculateW(out, a) {
|
|
2762
|
+
const x = a[0];
|
|
2763
|
+
const y = a[1];
|
|
2764
|
+
const z = a[2];
|
|
2765
|
+
out[0] = x;
|
|
2766
|
+
out[1] = y;
|
|
2767
|
+
out[2] = z;
|
|
2768
|
+
out[3] = Math.sqrt(Math.abs(1 - x * x - y * y - z * z));
|
|
2769
|
+
return out;
|
|
2770
|
+
}
|
|
2771
|
+
function slerp(out, a, b, t) {
|
|
2772
|
+
const ax = a[0];
|
|
2773
|
+
const ay = a[1];
|
|
2774
|
+
const az = a[2];
|
|
2775
|
+
const aw = a[3];
|
|
2776
|
+
let bx = b[0];
|
|
2777
|
+
let by = b[1];
|
|
2778
|
+
let bz = b[2];
|
|
2779
|
+
let bw = b[3];
|
|
2780
|
+
let cosom;
|
|
2781
|
+
let omega;
|
|
2782
|
+
let scale0;
|
|
2783
|
+
let scale1;
|
|
2784
|
+
let sinom;
|
|
2785
|
+
cosom = ax * bx + ay * by + az * bz + aw * bw;
|
|
2786
|
+
if (cosom < 0) {
|
|
2787
|
+
cosom = -cosom;
|
|
2788
|
+
bx = -bx;
|
|
2789
|
+
by = -by;
|
|
2790
|
+
bz = -bz;
|
|
2791
|
+
bw = -bw;
|
|
2792
|
+
}
|
|
2793
|
+
if (1 - cosom > EPSILON) {
|
|
2794
|
+
omega = Math.acos(cosom);
|
|
2795
|
+
sinom = Math.sin(omega);
|
|
2796
|
+
scale0 = Math.sin((1 - t) * omega) / sinom;
|
|
2797
|
+
scale1 = Math.sin(t * omega) / sinom;
|
|
2798
|
+
} else {
|
|
2799
|
+
scale0 = 1 - t;
|
|
2800
|
+
scale1 = t;
|
|
2801
|
+
}
|
|
2802
|
+
out[0] = scale0 * ax + scale1 * bx;
|
|
2803
|
+
out[1] = scale0 * ay + scale1 * by;
|
|
2804
|
+
out[2] = scale0 * az + scale1 * bz;
|
|
2805
|
+
out[3] = scale0 * aw + scale1 * bw;
|
|
2806
|
+
return out;
|
|
2807
|
+
}
|
|
2808
|
+
function invert3(out, a) {
|
|
2809
|
+
const a0 = a[0];
|
|
2810
|
+
const a1 = a[1];
|
|
2811
|
+
const a2 = a[2];
|
|
2812
|
+
const a3 = a[3];
|
|
2813
|
+
const dot4 = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;
|
|
2814
|
+
const invDot = dot4 ? 1 / dot4 : 0;
|
|
2815
|
+
out[0] = -a0 * invDot;
|
|
2816
|
+
out[1] = -a1 * invDot;
|
|
2817
|
+
out[2] = -a2 * invDot;
|
|
2818
|
+
out[3] = a3 * invDot;
|
|
2819
|
+
return out;
|
|
2820
|
+
}
|
|
2821
|
+
function conjugate(out, a) {
|
|
2822
|
+
out[0] = -a[0];
|
|
2823
|
+
out[1] = -a[1];
|
|
2824
|
+
out[2] = -a[2];
|
|
2825
|
+
out[3] = a[3];
|
|
2826
|
+
return out;
|
|
2827
|
+
}
|
|
2828
|
+
function fromMat3(out, m) {
|
|
2829
|
+
const fTrace = m[0] + m[4] + m[8];
|
|
2830
|
+
let fRoot;
|
|
2831
|
+
if (fTrace > 0) {
|
|
2832
|
+
fRoot = Math.sqrt(fTrace + 1);
|
|
2833
|
+
out[3] = 0.5 * fRoot;
|
|
2834
|
+
fRoot = 0.5 / fRoot;
|
|
2835
|
+
out[0] = (m[5] - m[7]) * fRoot;
|
|
2836
|
+
out[1] = (m[6] - m[2]) * fRoot;
|
|
2837
|
+
out[2] = (m[1] - m[3]) * fRoot;
|
|
2838
|
+
} else {
|
|
2839
|
+
let i = 0;
|
|
2840
|
+
if (m[4] > m[0])
|
|
2841
|
+
i = 1;
|
|
2842
|
+
if (m[8] > m[i * 3 + i])
|
|
2843
|
+
i = 2;
|
|
2844
|
+
const j = (i + 1) % 3;
|
|
2845
|
+
const k = (i + 2) % 3;
|
|
2846
|
+
fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1);
|
|
2847
|
+
out[i] = 0.5 * fRoot;
|
|
2848
|
+
fRoot = 0.5 / fRoot;
|
|
2849
|
+
out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;
|
|
2850
|
+
out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;
|
|
2851
|
+
out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;
|
|
2852
|
+
}
|
|
2853
|
+
return out;
|
|
2854
|
+
}
|
|
2855
|
+
var add2 = add;
|
|
2856
|
+
var scale4 = scale3;
|
|
2857
|
+
var dot3 = dot2;
|
|
2858
|
+
var lerp3 = lerp2;
|
|
2859
|
+
var length3 = length2;
|
|
2860
|
+
var squaredLength2 = squaredLength;
|
|
2861
|
+
var normalize3 = normalize2;
|
|
2862
|
+
var rotationTo = function() {
|
|
2863
|
+
const tmpvec3 = create2();
|
|
2864
|
+
const xUnitVec3 = fromValues(1, 0, 0);
|
|
2865
|
+
const yUnitVec3 = fromValues(0, 1, 0);
|
|
2866
|
+
return function(out, a, b) {
|
|
2867
|
+
const dot4 = dot(a, b);
|
|
2868
|
+
if (dot4 < -0.999999) {
|
|
2869
|
+
cross(tmpvec3, xUnitVec3, a);
|
|
2870
|
+
if (len(tmpvec3) < 1e-6)
|
|
2871
|
+
cross(tmpvec3, yUnitVec3, a);
|
|
2872
|
+
normalize(tmpvec3, tmpvec3);
|
|
2873
|
+
setAxisAngle(out, tmpvec3, Math.PI);
|
|
2874
|
+
return out;
|
|
2875
|
+
} else if (dot4 > 0.999999) {
|
|
2876
|
+
out[0] = 0;
|
|
2877
|
+
out[1] = 0;
|
|
2878
|
+
out[2] = 0;
|
|
2879
|
+
out[3] = 1;
|
|
2880
|
+
return out;
|
|
2881
|
+
}
|
|
2882
|
+
cross(tmpvec3, a, b);
|
|
2883
|
+
out[0] = tmpvec3[0];
|
|
2884
|
+
out[1] = tmpvec3[1];
|
|
2885
|
+
out[2] = tmpvec3[2];
|
|
2886
|
+
out[3] = 1 + dot4;
|
|
2887
|
+
return normalize3(out, out);
|
|
2888
|
+
};
|
|
2889
|
+
}();
|
|
2890
|
+
var sqlerp = function() {
|
|
2891
|
+
const temp1 = create5();
|
|
2892
|
+
const temp2 = create5();
|
|
2893
|
+
return function(out, a, b, c, d, t) {
|
|
2894
|
+
slerp(temp1, a, d, t);
|
|
2895
|
+
slerp(temp2, b, c, t);
|
|
2896
|
+
slerp(out, temp1, temp2, 2 * t * (1 - t));
|
|
2897
|
+
return out;
|
|
2898
|
+
};
|
|
2899
|
+
}();
|
|
2900
|
+
var setAxes = function() {
|
|
2901
|
+
const matr = create3();
|
|
2902
|
+
return function(out, view, right, up) {
|
|
2903
|
+
matr[0] = right[0];
|
|
2904
|
+
matr[3] = right[1];
|
|
2905
|
+
matr[6] = right[2];
|
|
2906
|
+
matr[1] = up[0];
|
|
2907
|
+
matr[4] = up[1];
|
|
2908
|
+
matr[7] = up[2];
|
|
2909
|
+
matr[2] = -view[0];
|
|
2910
|
+
matr[5] = -view[1];
|
|
2911
|
+
matr[8] = -view[2];
|
|
2912
|
+
return normalize3(out, fromMat3(out, matr));
|
|
2913
|
+
};
|
|
2914
|
+
}();
|
|
2915
|
+
|
|
1474
2916
|
// src/classes/quaternion.ts
|
|
1475
|
-
var quat = __toESM(require("gl-matrix/quat"), 1);
|
|
1476
|
-
var vec43 = __toESM(require("gl-matrix/vec4"), 1);
|
|
1477
2917
|
var IDENTITY_QUATERNION = [0, 0, 0, 1];
|
|
1478
2918
|
var Quaternion = class extends MathArray {
|
|
1479
2919
|
constructor(x = 0, y = 0, z = 0, w = 1) {
|
|
@@ -1506,15 +2946,15 @@ var Quaternion = class extends MathArray {
|
|
|
1506
2946
|
return this.check();
|
|
1507
2947
|
}
|
|
1508
2948
|
fromMatrix3(m) {
|
|
1509
|
-
|
|
2949
|
+
fromMat3(this, m);
|
|
1510
2950
|
return this.check();
|
|
1511
2951
|
}
|
|
1512
2952
|
fromAxisRotation(axis, rad) {
|
|
1513
|
-
|
|
2953
|
+
setAxisAngle(this, axis, rad);
|
|
1514
2954
|
return this.check();
|
|
1515
2955
|
}
|
|
1516
2956
|
identity() {
|
|
1517
|
-
|
|
2957
|
+
identity2(this);
|
|
1518
2958
|
return this.check();
|
|
1519
2959
|
}
|
|
1520
2960
|
setAxisAngle(axis, rad) {
|
|
@@ -1548,75 +2988,75 @@ var Quaternion = class extends MathArray {
|
|
|
1548
2988
|
this[3] = checkNumber(value);
|
|
1549
2989
|
}
|
|
1550
2990
|
len() {
|
|
1551
|
-
return
|
|
2991
|
+
return length3(this);
|
|
1552
2992
|
}
|
|
1553
2993
|
lengthSquared() {
|
|
1554
|
-
return
|
|
2994
|
+
return squaredLength2(this);
|
|
1555
2995
|
}
|
|
1556
2996
|
dot(a) {
|
|
1557
|
-
return
|
|
2997
|
+
return dot3(this, a);
|
|
1558
2998
|
}
|
|
1559
2999
|
rotationTo(vectorA, vectorB) {
|
|
1560
|
-
|
|
3000
|
+
rotationTo(this, vectorA, vectorB);
|
|
1561
3001
|
return this.check();
|
|
1562
3002
|
}
|
|
1563
3003
|
add(a) {
|
|
1564
|
-
|
|
3004
|
+
add2(this, this, a);
|
|
1565
3005
|
return this.check();
|
|
1566
3006
|
}
|
|
1567
3007
|
calculateW() {
|
|
1568
|
-
|
|
3008
|
+
calculateW(this, this);
|
|
1569
3009
|
return this.check();
|
|
1570
3010
|
}
|
|
1571
3011
|
conjugate() {
|
|
1572
|
-
|
|
3012
|
+
conjugate(this, this);
|
|
1573
3013
|
return this.check();
|
|
1574
3014
|
}
|
|
1575
3015
|
invert() {
|
|
1576
|
-
|
|
3016
|
+
invert3(this, this);
|
|
1577
3017
|
return this.check();
|
|
1578
3018
|
}
|
|
1579
3019
|
lerp(a, b, t) {
|
|
1580
3020
|
if (t === void 0) {
|
|
1581
3021
|
return this.lerp(this, a, b);
|
|
1582
3022
|
}
|
|
1583
|
-
|
|
3023
|
+
lerp3(this, a, b, t);
|
|
1584
3024
|
return this.check();
|
|
1585
3025
|
}
|
|
1586
3026
|
multiplyRight(a) {
|
|
1587
|
-
|
|
3027
|
+
multiply3(this, this, a);
|
|
1588
3028
|
return this.check();
|
|
1589
3029
|
}
|
|
1590
3030
|
multiplyLeft(a) {
|
|
1591
|
-
|
|
3031
|
+
multiply3(this, a, this);
|
|
1592
3032
|
return this.check();
|
|
1593
3033
|
}
|
|
1594
3034
|
normalize() {
|
|
1595
|
-
const
|
|
1596
|
-
const l =
|
|
3035
|
+
const length4 = this.len();
|
|
3036
|
+
const l = length4 > 0 ? 1 / length4 : 0;
|
|
1597
3037
|
this[0] = this[0] * l;
|
|
1598
3038
|
this[1] = this[1] * l;
|
|
1599
3039
|
this[2] = this[2] * l;
|
|
1600
3040
|
this[3] = this[3] * l;
|
|
1601
|
-
if (
|
|
3041
|
+
if (length4 === 0) {
|
|
1602
3042
|
this[3] = 1;
|
|
1603
3043
|
}
|
|
1604
3044
|
return this.check();
|
|
1605
3045
|
}
|
|
1606
3046
|
rotateX(rad) {
|
|
1607
|
-
|
|
3047
|
+
rotateX3(this, this, rad);
|
|
1608
3048
|
return this.check();
|
|
1609
3049
|
}
|
|
1610
3050
|
rotateY(rad) {
|
|
1611
|
-
|
|
3051
|
+
rotateY3(this, this, rad);
|
|
1612
3052
|
return this.check();
|
|
1613
3053
|
}
|
|
1614
3054
|
rotateZ(rad) {
|
|
1615
|
-
|
|
3055
|
+
rotateZ3(this, this, rad);
|
|
1616
3056
|
return this.check();
|
|
1617
3057
|
}
|
|
1618
3058
|
scale(b) {
|
|
1619
|
-
|
|
3059
|
+
scale4(this, this, b);
|
|
1620
3060
|
return this.check();
|
|
1621
3061
|
}
|
|
1622
3062
|
slerp(arg0, arg1, arg2) {
|
|
@@ -1641,11 +3081,11 @@ var Quaternion = class extends MathArray {
|
|
|
1641
3081
|
target = arg1;
|
|
1642
3082
|
ratio = arg2;
|
|
1643
3083
|
}
|
|
1644
|
-
|
|
3084
|
+
slerp(this, start, target, ratio);
|
|
1645
3085
|
return this.check();
|
|
1646
3086
|
}
|
|
1647
3087
|
transformVector4(vector, result = new Vector4()) {
|
|
1648
|
-
|
|
3088
|
+
transformQuat2(result, vector, this);
|
|
1649
3089
|
return checkVector(result, 4);
|
|
1650
3090
|
}
|
|
1651
3091
|
lengthSq() {
|
|
@@ -1663,8 +3103,7 @@ var Quaternion = class extends MathArray {
|
|
|
1663
3103
|
};
|
|
1664
3104
|
|
|
1665
3105
|
// src/classes/spherical-coordinates.ts
|
|
1666
|
-
var
|
|
1667
|
-
var EPSILON = 1e-6;
|
|
3106
|
+
var EPSILON2 = 1e-6;
|
|
1668
3107
|
var EARTH_RADIUS_METERS = 6371e3;
|
|
1669
3108
|
var SphericalCoordinates = class {
|
|
1670
3109
|
constructor({
|
|
@@ -1750,7 +3189,7 @@ var SphericalCoordinates = class {
|
|
|
1750
3189
|
return this.check();
|
|
1751
3190
|
}
|
|
1752
3191
|
fromVector3(v) {
|
|
1753
|
-
this.radius =
|
|
3192
|
+
this.radius = length(v);
|
|
1754
3193
|
if (this.radius > 0) {
|
|
1755
3194
|
this.theta = Math.atan2(v[0], v[1]);
|
|
1756
3195
|
this.phi = Math.acos(clamp(v[2] / this.radius, -1, 1));
|
|
@@ -1761,7 +3200,7 @@ var SphericalCoordinates = class {
|
|
|
1761
3200
|
return new Vector3(0, 0, this.radius).rotateX({ radians: this.theta }).rotateZ({ radians: this.phi });
|
|
1762
3201
|
}
|
|
1763
3202
|
makeSafe() {
|
|
1764
|
-
this.phi = Math.max(
|
|
3203
|
+
this.phi = Math.max(EPSILON2, Math.min(Math.PI - EPSILON2, this.phi));
|
|
1765
3204
|
return this;
|
|
1766
3205
|
}
|
|
1767
3206
|
check() {
|
|
@@ -1982,7 +3421,7 @@ var Euler = class extends MathArray {
|
|
|
1982
3421
|
}
|
|
1983
3422
|
getQuaternion() {
|
|
1984
3423
|
const q = new Quaternion();
|
|
1985
|
-
switch (this[
|
|
3424
|
+
switch (this[3]) {
|
|
1986
3425
|
case 5 /* XYZ */:
|
|
1987
3426
|
return q.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);
|
|
1988
3427
|
case 1 /* YXZ */:
|
|
@@ -2307,29 +3746,54 @@ var Pose = class {
|
|
|
2307
3746
|
};
|
|
2308
3747
|
|
|
2309
3748
|
// src/lib/math-utils.ts
|
|
2310
|
-
var
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
PI_OVER_FOUR:
|
|
2333
|
-
PI_OVER_SIX:
|
|
2334
|
-
|
|
2335
|
-
|
|
3749
|
+
var math_utils_exports = {};
|
|
3750
|
+
__export(math_utils_exports, {
|
|
3751
|
+
EPSILON1: () => EPSILON1,
|
|
3752
|
+
EPSILON10: () => EPSILON10,
|
|
3753
|
+
EPSILON11: () => EPSILON11,
|
|
3754
|
+
EPSILON12: () => EPSILON12,
|
|
3755
|
+
EPSILON13: () => EPSILON13,
|
|
3756
|
+
EPSILON14: () => EPSILON14,
|
|
3757
|
+
EPSILON15: () => EPSILON15,
|
|
3758
|
+
EPSILON16: () => EPSILON16,
|
|
3759
|
+
EPSILON17: () => EPSILON17,
|
|
3760
|
+
EPSILON18: () => EPSILON18,
|
|
3761
|
+
EPSILON19: () => EPSILON19,
|
|
3762
|
+
EPSILON2: () => EPSILON22,
|
|
3763
|
+
EPSILON20: () => EPSILON20,
|
|
3764
|
+
EPSILON3: () => EPSILON3,
|
|
3765
|
+
EPSILON4: () => EPSILON4,
|
|
3766
|
+
EPSILON5: () => EPSILON5,
|
|
3767
|
+
EPSILON6: () => EPSILON6,
|
|
3768
|
+
EPSILON7: () => EPSILON7,
|
|
3769
|
+
EPSILON8: () => EPSILON8,
|
|
3770
|
+
EPSILON9: () => EPSILON9,
|
|
3771
|
+
PI_OVER_FOUR: () => PI_OVER_FOUR,
|
|
3772
|
+
PI_OVER_SIX: () => PI_OVER_SIX,
|
|
3773
|
+
PI_OVER_TWO: () => PI_OVER_TWO,
|
|
3774
|
+
TWO_PI: () => TWO_PI
|
|
3775
|
+
});
|
|
3776
|
+
var EPSILON1 = 0.1;
|
|
3777
|
+
var EPSILON22 = 0.01;
|
|
3778
|
+
var EPSILON3 = 1e-3;
|
|
3779
|
+
var EPSILON4 = 1e-4;
|
|
3780
|
+
var EPSILON5 = 1e-5;
|
|
3781
|
+
var EPSILON6 = 1e-6;
|
|
3782
|
+
var EPSILON7 = 1e-7;
|
|
3783
|
+
var EPSILON8 = 1e-8;
|
|
3784
|
+
var EPSILON9 = 1e-9;
|
|
3785
|
+
var EPSILON10 = 1e-10;
|
|
3786
|
+
var EPSILON11 = 1e-11;
|
|
3787
|
+
var EPSILON12 = 1e-12;
|
|
3788
|
+
var EPSILON13 = 1e-13;
|
|
3789
|
+
var EPSILON14 = 1e-14;
|
|
3790
|
+
var EPSILON15 = 1e-15;
|
|
3791
|
+
var EPSILON16 = 1e-16;
|
|
3792
|
+
var EPSILON17 = 1e-17;
|
|
3793
|
+
var EPSILON18 = 1e-18;
|
|
3794
|
+
var EPSILON19 = 1e-19;
|
|
3795
|
+
var EPSILON20 = 1e-20;
|
|
3796
|
+
var PI_OVER_TWO = Math.PI / 2;
|
|
3797
|
+
var PI_OVER_FOUR = Math.PI / 4;
|
|
3798
|
+
var PI_OVER_SIX = Math.PI / 6;
|
|
3799
|
+
var TWO_PI = Math.PI * 2;
|