@math.gl/core 4.0.0-alpha.1 → 4.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +1603 -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,631 @@ 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
|
+
|
|
1085
2164
|
// 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
2165
|
var INDICES2 = /* @__PURE__ */ ((INDICES3) => {
|
|
1091
2166
|
INDICES3[INDICES3["COL0ROW0"] = 0] = "COL0ROW0";
|
|
1092
2167
|
INDICES3[INDICES3["COL0ROW1"] = 1] = "COL0ROW1";
|
|
@@ -1218,7 +2293,7 @@ var Matrix4 = class extends Matrix {
|
|
|
1218
2293
|
return this.check();
|
|
1219
2294
|
}
|
|
1220
2295
|
fromQuaternion(quaternion) {
|
|
1221
|
-
|
|
2296
|
+
fromQuat2(this, quaternion);
|
|
1222
2297
|
return this.check();
|
|
1223
2298
|
}
|
|
1224
2299
|
frustum(view) {
|
|
@@ -1226,18 +2301,18 @@ var Matrix4 = class extends Matrix {
|
|
|
1226
2301
|
if (far === Infinity) {
|
|
1227
2302
|
computeInfinitePerspectiveOffCenter(this, left, right, bottom, top, near);
|
|
1228
2303
|
} else {
|
|
1229
|
-
|
|
2304
|
+
frustum(this, left, right, bottom, top, near, far);
|
|
1230
2305
|
}
|
|
1231
2306
|
return this.check();
|
|
1232
2307
|
}
|
|
1233
2308
|
lookAt(view) {
|
|
1234
2309
|
const { eye, center = [0, 0, 0], up = [0, 1, 0] } = view;
|
|
1235
|
-
|
|
2310
|
+
lookAt(this, eye, center, up);
|
|
1236
2311
|
return this.check();
|
|
1237
2312
|
}
|
|
1238
2313
|
ortho(view) {
|
|
1239
2314
|
const { left, right, bottom, top, near = DEFAULT_NEAR, far = DEFAULT_FAR } = view;
|
|
1240
|
-
|
|
2315
|
+
ortho(this, left, right, bottom, top, near, far);
|
|
1241
2316
|
return this.check();
|
|
1242
2317
|
}
|
|
1243
2318
|
orthographic(view) {
|
|
@@ -1264,11 +2339,11 @@ var Matrix4 = class extends Matrix {
|
|
|
1264
2339
|
perspective(view) {
|
|
1265
2340
|
const { fovy = 45 * Math.PI / 180, aspect = 1, near = 0.1, far = 500 } = view;
|
|
1266
2341
|
checkRadians(fovy);
|
|
1267
|
-
|
|
2342
|
+
perspective(this, fovy, aspect, near, far);
|
|
1268
2343
|
return this.check();
|
|
1269
2344
|
}
|
|
1270
2345
|
determinant() {
|
|
1271
|
-
return
|
|
2346
|
+
return determinant2(this);
|
|
1272
2347
|
}
|
|
1273
2348
|
getScale(result = [-0, -0, -0]) {
|
|
1274
2349
|
result[0] = Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);
|
|
@@ -1285,10 +2360,10 @@ var Matrix4 = class extends Matrix {
|
|
|
1285
2360
|
getRotation(result, scaleResult) {
|
|
1286
2361
|
result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0];
|
|
1287
2362
|
scaleResult = scaleResult || [-0, -0, -0];
|
|
1288
|
-
const
|
|
1289
|
-
const inverseScale0 = 1 /
|
|
1290
|
-
const inverseScale1 = 1 /
|
|
1291
|
-
const inverseScale2 = 1 /
|
|
2363
|
+
const scale5 = this.getScale(scaleResult);
|
|
2364
|
+
const inverseScale0 = 1 / scale5[0];
|
|
2365
|
+
const inverseScale1 = 1 / scale5[1];
|
|
2366
|
+
const inverseScale2 = 1 / scale5[2];
|
|
1292
2367
|
result[0] = this[0] * inverseScale0;
|
|
1293
2368
|
result[1] = this[1] * inverseScale1;
|
|
1294
2369
|
result[2] = this[2] * inverseScale2;
|
|
@@ -1310,10 +2385,10 @@ var Matrix4 = class extends Matrix {
|
|
|
1310
2385
|
getRotationMatrix3(result, scaleResult) {
|
|
1311
2386
|
result = result || [-0, -0, -0, -0, -0, -0, -0, -0, -0];
|
|
1312
2387
|
scaleResult = scaleResult || [-0, -0, -0];
|
|
1313
|
-
const
|
|
1314
|
-
const inverseScale0 = 1 /
|
|
1315
|
-
const inverseScale1 = 1 /
|
|
1316
|
-
const inverseScale2 = 1 /
|
|
2388
|
+
const scale5 = this.getScale(scaleResult);
|
|
2389
|
+
const inverseScale0 = 1 / scale5[0];
|
|
2390
|
+
const inverseScale1 = 1 / scale5[1];
|
|
2391
|
+
const inverseScale2 = 1 / scale5[2];
|
|
1317
2392
|
result[0] = this[0] * inverseScale0;
|
|
1318
2393
|
result[1] = this[1] * inverseScale1;
|
|
1319
2394
|
result[2] = this[2] * inverseScale2;
|
|
@@ -1326,65 +2401,65 @@ var Matrix4 = class extends Matrix {
|
|
|
1326
2401
|
return result;
|
|
1327
2402
|
}
|
|
1328
2403
|
transpose() {
|
|
1329
|
-
|
|
2404
|
+
transpose2(this, this);
|
|
1330
2405
|
return this.check();
|
|
1331
2406
|
}
|
|
1332
2407
|
invert() {
|
|
1333
|
-
|
|
2408
|
+
invert2(this, this);
|
|
1334
2409
|
return this.check();
|
|
1335
2410
|
}
|
|
1336
2411
|
multiplyLeft(a) {
|
|
1337
|
-
|
|
2412
|
+
multiply2(this, a, this);
|
|
1338
2413
|
return this.check();
|
|
1339
2414
|
}
|
|
1340
2415
|
multiplyRight(a) {
|
|
1341
|
-
|
|
2416
|
+
multiply2(this, this, a);
|
|
1342
2417
|
return this.check();
|
|
1343
2418
|
}
|
|
1344
2419
|
rotateX(radians2) {
|
|
1345
|
-
|
|
2420
|
+
rotateX2(this, this, radians2);
|
|
1346
2421
|
return this.check();
|
|
1347
2422
|
}
|
|
1348
2423
|
rotateY(radians2) {
|
|
1349
|
-
|
|
2424
|
+
rotateY2(this, this, radians2);
|
|
1350
2425
|
return this.check();
|
|
1351
2426
|
}
|
|
1352
2427
|
rotateZ(radians2) {
|
|
1353
|
-
|
|
2428
|
+
rotateZ2(this, this, radians2);
|
|
1354
2429
|
return this.check();
|
|
1355
2430
|
}
|
|
1356
2431
|
rotateXYZ(angleXYZ) {
|
|
1357
2432
|
return this.rotateX(angleXYZ[0]).rotateY(angleXYZ[1]).rotateZ(angleXYZ[2]);
|
|
1358
2433
|
}
|
|
1359
2434
|
rotateAxis(radians2, axis) {
|
|
1360
|
-
|
|
2435
|
+
rotate2(this, this, radians2, axis);
|
|
1361
2436
|
return this.check();
|
|
1362
2437
|
}
|
|
1363
2438
|
scale(factor) {
|
|
1364
|
-
|
|
2439
|
+
scale2(this, this, Array.isArray(factor) ? factor : [factor, factor, factor]);
|
|
1365
2440
|
return this.check();
|
|
1366
2441
|
}
|
|
1367
2442
|
translate(vector) {
|
|
1368
|
-
|
|
2443
|
+
translate2(this, this, vector);
|
|
1369
2444
|
return this.check();
|
|
1370
2445
|
}
|
|
1371
2446
|
transform(vector, result) {
|
|
1372
2447
|
if (vector.length === 4) {
|
|
1373
|
-
result =
|
|
2448
|
+
result = transformMat42(result || [-0, -0, -0, -0], vector, this);
|
|
1374
2449
|
checkVector(result, 4);
|
|
1375
2450
|
return result;
|
|
1376
2451
|
}
|
|
1377
2452
|
return this.transformAsPoint(vector, result);
|
|
1378
2453
|
}
|
|
1379
2454
|
transformAsPoint(vector, result) {
|
|
1380
|
-
const { length:
|
|
2455
|
+
const { length: length4 } = vector;
|
|
1381
2456
|
let out;
|
|
1382
|
-
switch (
|
|
2457
|
+
switch (length4) {
|
|
1383
2458
|
case 2:
|
|
1384
|
-
out =
|
|
2459
|
+
out = transformMat4(result || [-0, -0], vector, this);
|
|
1385
2460
|
break;
|
|
1386
2461
|
case 3:
|
|
1387
|
-
out =
|
|
2462
|
+
out = transformMat42(result || [-0, -0, -0], vector, this);
|
|
1388
2463
|
break;
|
|
1389
2464
|
default:
|
|
1390
2465
|
throw new Error("Illegal vector");
|
|
@@ -1471,9 +2546,363 @@ function computeInfinitePerspectiveOffCenter(result, left, right, bottom, top, n
|
|
|
1471
2546
|
return result;
|
|
1472
2547
|
}
|
|
1473
2548
|
|
|
2549
|
+
// src/gl-matrix/vec4.js
|
|
2550
|
+
function create4() {
|
|
2551
|
+
const out = new ARRAY_TYPE(4);
|
|
2552
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
2553
|
+
out[0] = 0;
|
|
2554
|
+
out[1] = 0;
|
|
2555
|
+
out[2] = 0;
|
|
2556
|
+
out[3] = 0;
|
|
2557
|
+
}
|
|
2558
|
+
return out;
|
|
2559
|
+
}
|
|
2560
|
+
function add(out, a, b) {
|
|
2561
|
+
out[0] = a[0] + b[0];
|
|
2562
|
+
out[1] = a[1] + b[1];
|
|
2563
|
+
out[2] = a[2] + b[2];
|
|
2564
|
+
out[3] = a[3] + b[3];
|
|
2565
|
+
return out;
|
|
2566
|
+
}
|
|
2567
|
+
function scale3(out, a, b) {
|
|
2568
|
+
out[0] = a[0] * b;
|
|
2569
|
+
out[1] = a[1] * b;
|
|
2570
|
+
out[2] = a[2] * b;
|
|
2571
|
+
out[3] = a[3] * b;
|
|
2572
|
+
return out;
|
|
2573
|
+
}
|
|
2574
|
+
function length2(a) {
|
|
2575
|
+
const x = a[0];
|
|
2576
|
+
const y = a[1];
|
|
2577
|
+
const z = a[2];
|
|
2578
|
+
const w = a[3];
|
|
2579
|
+
return Math.sqrt(x * x + y * y + z * z + w * w);
|
|
2580
|
+
}
|
|
2581
|
+
function squaredLength(a) {
|
|
2582
|
+
const x = a[0];
|
|
2583
|
+
const y = a[1];
|
|
2584
|
+
const z = a[2];
|
|
2585
|
+
const w = a[3];
|
|
2586
|
+
return x * x + y * y + z * z + w * w;
|
|
2587
|
+
}
|
|
2588
|
+
function normalize2(out, a) {
|
|
2589
|
+
const x = a[0];
|
|
2590
|
+
const y = a[1];
|
|
2591
|
+
const z = a[2];
|
|
2592
|
+
const w = a[3];
|
|
2593
|
+
let len2 = x * x + y * y + z * z + w * w;
|
|
2594
|
+
if (len2 > 0) {
|
|
2595
|
+
len2 = 1 / Math.sqrt(len2);
|
|
2596
|
+
}
|
|
2597
|
+
out[0] = x * len2;
|
|
2598
|
+
out[1] = y * len2;
|
|
2599
|
+
out[2] = z * len2;
|
|
2600
|
+
out[3] = w * len2;
|
|
2601
|
+
return out;
|
|
2602
|
+
}
|
|
2603
|
+
function dot2(a, b) {
|
|
2604
|
+
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
|
|
2605
|
+
}
|
|
2606
|
+
function lerp2(out, a, b, t) {
|
|
2607
|
+
const ax = a[0];
|
|
2608
|
+
const ay = a[1];
|
|
2609
|
+
const az = a[2];
|
|
2610
|
+
const aw = a[3];
|
|
2611
|
+
out[0] = ax + t * (b[0] - ax);
|
|
2612
|
+
out[1] = ay + t * (b[1] - ay);
|
|
2613
|
+
out[2] = az + t * (b[2] - az);
|
|
2614
|
+
out[3] = aw + t * (b[3] - aw);
|
|
2615
|
+
return out;
|
|
2616
|
+
}
|
|
2617
|
+
function transformQuat2(out, a, q) {
|
|
2618
|
+
const x = a[0];
|
|
2619
|
+
const y = a[1];
|
|
2620
|
+
const z = a[2];
|
|
2621
|
+
const qx = q[0];
|
|
2622
|
+
const qy = q[1];
|
|
2623
|
+
const qz = q[2];
|
|
2624
|
+
const qw = q[3];
|
|
2625
|
+
const ix = qw * x + qy * z - qz * y;
|
|
2626
|
+
const iy = qw * y + qz * x - qx * z;
|
|
2627
|
+
const iz = qw * z + qx * y - qy * x;
|
|
2628
|
+
const iw = -qx * x - qy * y - qz * z;
|
|
2629
|
+
out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;
|
|
2630
|
+
out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;
|
|
2631
|
+
out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;
|
|
2632
|
+
out[3] = a[3];
|
|
2633
|
+
return out;
|
|
2634
|
+
}
|
|
2635
|
+
var forEach3 = function() {
|
|
2636
|
+
const vec = create4();
|
|
2637
|
+
return function(a, stride, offset, count, fn, arg) {
|
|
2638
|
+
let i;
|
|
2639
|
+
let l;
|
|
2640
|
+
if (!stride) {
|
|
2641
|
+
stride = 4;
|
|
2642
|
+
}
|
|
2643
|
+
if (!offset) {
|
|
2644
|
+
offset = 0;
|
|
2645
|
+
}
|
|
2646
|
+
if (count) {
|
|
2647
|
+
l = Math.min(count * stride + offset, a.length);
|
|
2648
|
+
} else {
|
|
2649
|
+
l = a.length;
|
|
2650
|
+
}
|
|
2651
|
+
for (i = offset; i < l; i += stride) {
|
|
2652
|
+
vec[0] = a[i];
|
|
2653
|
+
vec[1] = a[i + 1];
|
|
2654
|
+
vec[2] = a[i + 2];
|
|
2655
|
+
vec[3] = a[i + 3];
|
|
2656
|
+
fn(vec, vec, arg);
|
|
2657
|
+
a[i] = vec[0];
|
|
2658
|
+
a[i + 1] = vec[1];
|
|
2659
|
+
a[i + 2] = vec[2];
|
|
2660
|
+
a[i + 3] = vec[3];
|
|
2661
|
+
}
|
|
2662
|
+
return a;
|
|
2663
|
+
};
|
|
2664
|
+
}();
|
|
2665
|
+
|
|
2666
|
+
// src/gl-matrix/quat.ts
|
|
2667
|
+
function create5() {
|
|
2668
|
+
const out = new ARRAY_TYPE(4);
|
|
2669
|
+
if (ARRAY_TYPE != Float32Array) {
|
|
2670
|
+
out[0] = 0;
|
|
2671
|
+
out[1] = 0;
|
|
2672
|
+
out[2] = 0;
|
|
2673
|
+
}
|
|
2674
|
+
out[3] = 1;
|
|
2675
|
+
return out;
|
|
2676
|
+
}
|
|
2677
|
+
function identity2(out) {
|
|
2678
|
+
out[0] = 0;
|
|
2679
|
+
out[1] = 0;
|
|
2680
|
+
out[2] = 0;
|
|
2681
|
+
out[3] = 1;
|
|
2682
|
+
return out;
|
|
2683
|
+
}
|
|
2684
|
+
function setAxisAngle(out, axis, rad) {
|
|
2685
|
+
rad = rad * 0.5;
|
|
2686
|
+
const s = Math.sin(rad);
|
|
2687
|
+
out[0] = s * axis[0];
|
|
2688
|
+
out[1] = s * axis[1];
|
|
2689
|
+
out[2] = s * axis[2];
|
|
2690
|
+
out[3] = Math.cos(rad);
|
|
2691
|
+
return out;
|
|
2692
|
+
}
|
|
2693
|
+
function multiply3(out, a, b) {
|
|
2694
|
+
const ax = a[0];
|
|
2695
|
+
const ay = a[1];
|
|
2696
|
+
const az = a[2];
|
|
2697
|
+
const aw = a[3];
|
|
2698
|
+
const bx = b[0];
|
|
2699
|
+
const by = b[1];
|
|
2700
|
+
const bz = b[2];
|
|
2701
|
+
const bw = b[3];
|
|
2702
|
+
out[0] = ax * bw + aw * bx + ay * bz - az * by;
|
|
2703
|
+
out[1] = ay * bw + aw * by + az * bx - ax * bz;
|
|
2704
|
+
out[2] = az * bw + aw * bz + ax * by - ay * bx;
|
|
2705
|
+
out[3] = aw * bw - ax * bx - ay * by - az * bz;
|
|
2706
|
+
return out;
|
|
2707
|
+
}
|
|
2708
|
+
function rotateX3(out, a, rad) {
|
|
2709
|
+
rad *= 0.5;
|
|
2710
|
+
const ax = a[0];
|
|
2711
|
+
const ay = a[1];
|
|
2712
|
+
const az = a[2];
|
|
2713
|
+
const aw = a[3];
|
|
2714
|
+
const bx = Math.sin(rad);
|
|
2715
|
+
const bw = Math.cos(rad);
|
|
2716
|
+
out[0] = ax * bw + aw * bx;
|
|
2717
|
+
out[1] = ay * bw + az * bx;
|
|
2718
|
+
out[2] = az * bw - ay * bx;
|
|
2719
|
+
out[3] = aw * bw - ax * bx;
|
|
2720
|
+
return out;
|
|
2721
|
+
}
|
|
2722
|
+
function rotateY3(out, a, rad) {
|
|
2723
|
+
rad *= 0.5;
|
|
2724
|
+
const ax = a[0];
|
|
2725
|
+
const ay = a[1];
|
|
2726
|
+
const az = a[2];
|
|
2727
|
+
const aw = a[3];
|
|
2728
|
+
const by = Math.sin(rad);
|
|
2729
|
+
const bw = Math.cos(rad);
|
|
2730
|
+
out[0] = ax * bw - az * by;
|
|
2731
|
+
out[1] = ay * bw + aw * by;
|
|
2732
|
+
out[2] = az * bw + ax * by;
|
|
2733
|
+
out[3] = aw * bw - ay * by;
|
|
2734
|
+
return out;
|
|
2735
|
+
}
|
|
2736
|
+
function rotateZ3(out, a, rad) {
|
|
2737
|
+
rad *= 0.5;
|
|
2738
|
+
const ax = a[0];
|
|
2739
|
+
const ay = a[1];
|
|
2740
|
+
const az = a[2];
|
|
2741
|
+
const aw = a[3];
|
|
2742
|
+
const bz = Math.sin(rad);
|
|
2743
|
+
const bw = Math.cos(rad);
|
|
2744
|
+
out[0] = ax * bw + ay * bz;
|
|
2745
|
+
out[1] = ay * bw - ax * bz;
|
|
2746
|
+
out[2] = az * bw + aw * bz;
|
|
2747
|
+
out[3] = aw * bw - az * bz;
|
|
2748
|
+
return out;
|
|
2749
|
+
}
|
|
2750
|
+
function calculateW(out, a) {
|
|
2751
|
+
const x = a[0];
|
|
2752
|
+
const y = a[1];
|
|
2753
|
+
const z = a[2];
|
|
2754
|
+
out[0] = x;
|
|
2755
|
+
out[1] = y;
|
|
2756
|
+
out[2] = z;
|
|
2757
|
+
out[3] = Math.sqrt(Math.abs(1 - x * x - y * y - z * z));
|
|
2758
|
+
return out;
|
|
2759
|
+
}
|
|
2760
|
+
function slerp(out, a, b, t) {
|
|
2761
|
+
const ax = a[0];
|
|
2762
|
+
const ay = a[1];
|
|
2763
|
+
const az = a[2];
|
|
2764
|
+
const aw = a[3];
|
|
2765
|
+
let bx = b[0];
|
|
2766
|
+
let by = b[1];
|
|
2767
|
+
let bz = b[2];
|
|
2768
|
+
let bw = b[3];
|
|
2769
|
+
let cosom;
|
|
2770
|
+
let omega;
|
|
2771
|
+
let scale0;
|
|
2772
|
+
let scale1;
|
|
2773
|
+
let sinom;
|
|
2774
|
+
cosom = ax * bx + ay * by + az * bz + aw * bw;
|
|
2775
|
+
if (cosom < 0) {
|
|
2776
|
+
cosom = -cosom;
|
|
2777
|
+
bx = -bx;
|
|
2778
|
+
by = -by;
|
|
2779
|
+
bz = -bz;
|
|
2780
|
+
bw = -bw;
|
|
2781
|
+
}
|
|
2782
|
+
if (1 - cosom > EPSILON) {
|
|
2783
|
+
omega = Math.acos(cosom);
|
|
2784
|
+
sinom = Math.sin(omega);
|
|
2785
|
+
scale0 = Math.sin((1 - t) * omega) / sinom;
|
|
2786
|
+
scale1 = Math.sin(t * omega) / sinom;
|
|
2787
|
+
} else {
|
|
2788
|
+
scale0 = 1 - t;
|
|
2789
|
+
scale1 = t;
|
|
2790
|
+
}
|
|
2791
|
+
out[0] = scale0 * ax + scale1 * bx;
|
|
2792
|
+
out[1] = scale0 * ay + scale1 * by;
|
|
2793
|
+
out[2] = scale0 * az + scale1 * bz;
|
|
2794
|
+
out[3] = scale0 * aw + scale1 * bw;
|
|
2795
|
+
return out;
|
|
2796
|
+
}
|
|
2797
|
+
function invert3(out, a) {
|
|
2798
|
+
const a0 = a[0];
|
|
2799
|
+
const a1 = a[1];
|
|
2800
|
+
const a2 = a[2];
|
|
2801
|
+
const a3 = a[3];
|
|
2802
|
+
const dot4 = a0 * a0 + a1 * a1 + a2 * a2 + a3 * a3;
|
|
2803
|
+
const invDot = dot4 ? 1 / dot4 : 0;
|
|
2804
|
+
out[0] = -a0 * invDot;
|
|
2805
|
+
out[1] = -a1 * invDot;
|
|
2806
|
+
out[2] = -a2 * invDot;
|
|
2807
|
+
out[3] = a3 * invDot;
|
|
2808
|
+
return out;
|
|
2809
|
+
}
|
|
2810
|
+
function conjugate(out, a) {
|
|
2811
|
+
out[0] = -a[0];
|
|
2812
|
+
out[1] = -a[1];
|
|
2813
|
+
out[2] = -a[2];
|
|
2814
|
+
out[3] = a[3];
|
|
2815
|
+
return out;
|
|
2816
|
+
}
|
|
2817
|
+
function fromMat3(out, m) {
|
|
2818
|
+
const fTrace = m[0] + m[4] + m[8];
|
|
2819
|
+
let fRoot;
|
|
2820
|
+
if (fTrace > 0) {
|
|
2821
|
+
fRoot = Math.sqrt(fTrace + 1);
|
|
2822
|
+
out[3] = 0.5 * fRoot;
|
|
2823
|
+
fRoot = 0.5 / fRoot;
|
|
2824
|
+
out[0] = (m[5] - m[7]) * fRoot;
|
|
2825
|
+
out[1] = (m[6] - m[2]) * fRoot;
|
|
2826
|
+
out[2] = (m[1] - m[3]) * fRoot;
|
|
2827
|
+
} else {
|
|
2828
|
+
let i = 0;
|
|
2829
|
+
if (m[4] > m[0])
|
|
2830
|
+
i = 1;
|
|
2831
|
+
if (m[8] > m[i * 3 + i])
|
|
2832
|
+
i = 2;
|
|
2833
|
+
const j = (i + 1) % 3;
|
|
2834
|
+
const k = (i + 2) % 3;
|
|
2835
|
+
fRoot = Math.sqrt(m[i * 3 + i] - m[j * 3 + j] - m[k * 3 + k] + 1);
|
|
2836
|
+
out[i] = 0.5 * fRoot;
|
|
2837
|
+
fRoot = 0.5 / fRoot;
|
|
2838
|
+
out[3] = (m[j * 3 + k] - m[k * 3 + j]) * fRoot;
|
|
2839
|
+
out[j] = (m[j * 3 + i] + m[i * 3 + j]) * fRoot;
|
|
2840
|
+
out[k] = (m[k * 3 + i] + m[i * 3 + k]) * fRoot;
|
|
2841
|
+
}
|
|
2842
|
+
return out;
|
|
2843
|
+
}
|
|
2844
|
+
var add2 = add;
|
|
2845
|
+
var scale4 = scale3;
|
|
2846
|
+
var dot3 = dot2;
|
|
2847
|
+
var lerp3 = lerp2;
|
|
2848
|
+
var length3 = length2;
|
|
2849
|
+
var squaredLength2 = squaredLength;
|
|
2850
|
+
var normalize3 = normalize2;
|
|
2851
|
+
var rotationTo = function() {
|
|
2852
|
+
const tmpvec3 = create2();
|
|
2853
|
+
const xUnitVec3 = fromValues(1, 0, 0);
|
|
2854
|
+
const yUnitVec3 = fromValues(0, 1, 0);
|
|
2855
|
+
return function(out, a, b) {
|
|
2856
|
+
const dot4 = dot(a, b);
|
|
2857
|
+
if (dot4 < -0.999999) {
|
|
2858
|
+
cross(tmpvec3, xUnitVec3, a);
|
|
2859
|
+
if (len(tmpvec3) < 1e-6)
|
|
2860
|
+
cross(tmpvec3, yUnitVec3, a);
|
|
2861
|
+
normalize(tmpvec3, tmpvec3);
|
|
2862
|
+
setAxisAngle(out, tmpvec3, Math.PI);
|
|
2863
|
+
return out;
|
|
2864
|
+
} else if (dot4 > 0.999999) {
|
|
2865
|
+
out[0] = 0;
|
|
2866
|
+
out[1] = 0;
|
|
2867
|
+
out[2] = 0;
|
|
2868
|
+
out[3] = 1;
|
|
2869
|
+
return out;
|
|
2870
|
+
}
|
|
2871
|
+
cross(tmpvec3, a, b);
|
|
2872
|
+
out[0] = tmpvec3[0];
|
|
2873
|
+
out[1] = tmpvec3[1];
|
|
2874
|
+
out[2] = tmpvec3[2];
|
|
2875
|
+
out[3] = 1 + dot4;
|
|
2876
|
+
return normalize3(out, out);
|
|
2877
|
+
};
|
|
2878
|
+
}();
|
|
2879
|
+
var sqlerp = function() {
|
|
2880
|
+
const temp1 = create5();
|
|
2881
|
+
const temp2 = create5();
|
|
2882
|
+
return function(out, a, b, c, d, t) {
|
|
2883
|
+
slerp(temp1, a, d, t);
|
|
2884
|
+
slerp(temp2, b, c, t);
|
|
2885
|
+
slerp(out, temp1, temp2, 2 * t * (1 - t));
|
|
2886
|
+
return out;
|
|
2887
|
+
};
|
|
2888
|
+
}();
|
|
2889
|
+
var setAxes = function() {
|
|
2890
|
+
const matr = create3();
|
|
2891
|
+
return function(out, view, right, up) {
|
|
2892
|
+
matr[0] = right[0];
|
|
2893
|
+
matr[3] = right[1];
|
|
2894
|
+
matr[6] = right[2];
|
|
2895
|
+
matr[1] = up[0];
|
|
2896
|
+
matr[4] = up[1];
|
|
2897
|
+
matr[7] = up[2];
|
|
2898
|
+
matr[2] = -view[0];
|
|
2899
|
+
matr[5] = -view[1];
|
|
2900
|
+
matr[8] = -view[2];
|
|
2901
|
+
return normalize3(out, fromMat3(out, matr));
|
|
2902
|
+
};
|
|
2903
|
+
}();
|
|
2904
|
+
|
|
1474
2905
|
// src/classes/quaternion.ts
|
|
1475
|
-
var quat = __toESM(require("gl-matrix/quat"), 1);
|
|
1476
|
-
var vec43 = __toESM(require("gl-matrix/vec4"), 1);
|
|
1477
2906
|
var IDENTITY_QUATERNION = [0, 0, 0, 1];
|
|
1478
2907
|
var Quaternion = class extends MathArray {
|
|
1479
2908
|
constructor(x = 0, y = 0, z = 0, w = 1) {
|
|
@@ -1506,15 +2935,15 @@ var Quaternion = class extends MathArray {
|
|
|
1506
2935
|
return this.check();
|
|
1507
2936
|
}
|
|
1508
2937
|
fromMatrix3(m) {
|
|
1509
|
-
|
|
2938
|
+
fromMat3(this, m);
|
|
1510
2939
|
return this.check();
|
|
1511
2940
|
}
|
|
1512
2941
|
fromAxisRotation(axis, rad) {
|
|
1513
|
-
|
|
2942
|
+
setAxisAngle(this, axis, rad);
|
|
1514
2943
|
return this.check();
|
|
1515
2944
|
}
|
|
1516
2945
|
identity() {
|
|
1517
|
-
|
|
2946
|
+
identity2(this);
|
|
1518
2947
|
return this.check();
|
|
1519
2948
|
}
|
|
1520
2949
|
setAxisAngle(axis, rad) {
|
|
@@ -1548,75 +2977,75 @@ var Quaternion = class extends MathArray {
|
|
|
1548
2977
|
this[3] = checkNumber(value);
|
|
1549
2978
|
}
|
|
1550
2979
|
len() {
|
|
1551
|
-
return
|
|
2980
|
+
return length3(this);
|
|
1552
2981
|
}
|
|
1553
2982
|
lengthSquared() {
|
|
1554
|
-
return
|
|
2983
|
+
return squaredLength2(this);
|
|
1555
2984
|
}
|
|
1556
2985
|
dot(a) {
|
|
1557
|
-
return
|
|
2986
|
+
return dot3(this, a);
|
|
1558
2987
|
}
|
|
1559
2988
|
rotationTo(vectorA, vectorB) {
|
|
1560
|
-
|
|
2989
|
+
rotationTo(this, vectorA, vectorB);
|
|
1561
2990
|
return this.check();
|
|
1562
2991
|
}
|
|
1563
2992
|
add(a) {
|
|
1564
|
-
|
|
2993
|
+
add2(this, this, a);
|
|
1565
2994
|
return this.check();
|
|
1566
2995
|
}
|
|
1567
2996
|
calculateW() {
|
|
1568
|
-
|
|
2997
|
+
calculateW(this, this);
|
|
1569
2998
|
return this.check();
|
|
1570
2999
|
}
|
|
1571
3000
|
conjugate() {
|
|
1572
|
-
|
|
3001
|
+
conjugate(this, this);
|
|
1573
3002
|
return this.check();
|
|
1574
3003
|
}
|
|
1575
3004
|
invert() {
|
|
1576
|
-
|
|
3005
|
+
invert3(this, this);
|
|
1577
3006
|
return this.check();
|
|
1578
3007
|
}
|
|
1579
3008
|
lerp(a, b, t) {
|
|
1580
3009
|
if (t === void 0) {
|
|
1581
3010
|
return this.lerp(this, a, b);
|
|
1582
3011
|
}
|
|
1583
|
-
|
|
3012
|
+
lerp3(this, a, b, t);
|
|
1584
3013
|
return this.check();
|
|
1585
3014
|
}
|
|
1586
3015
|
multiplyRight(a) {
|
|
1587
|
-
|
|
3016
|
+
multiply3(this, this, a);
|
|
1588
3017
|
return this.check();
|
|
1589
3018
|
}
|
|
1590
3019
|
multiplyLeft(a) {
|
|
1591
|
-
|
|
3020
|
+
multiply3(this, a, this);
|
|
1592
3021
|
return this.check();
|
|
1593
3022
|
}
|
|
1594
3023
|
normalize() {
|
|
1595
|
-
const
|
|
1596
|
-
const l =
|
|
3024
|
+
const length4 = this.len();
|
|
3025
|
+
const l = length4 > 0 ? 1 / length4 : 0;
|
|
1597
3026
|
this[0] = this[0] * l;
|
|
1598
3027
|
this[1] = this[1] * l;
|
|
1599
3028
|
this[2] = this[2] * l;
|
|
1600
3029
|
this[3] = this[3] * l;
|
|
1601
|
-
if (
|
|
3030
|
+
if (length4 === 0) {
|
|
1602
3031
|
this[3] = 1;
|
|
1603
3032
|
}
|
|
1604
3033
|
return this.check();
|
|
1605
3034
|
}
|
|
1606
3035
|
rotateX(rad) {
|
|
1607
|
-
|
|
3036
|
+
rotateX3(this, this, rad);
|
|
1608
3037
|
return this.check();
|
|
1609
3038
|
}
|
|
1610
3039
|
rotateY(rad) {
|
|
1611
|
-
|
|
3040
|
+
rotateY3(this, this, rad);
|
|
1612
3041
|
return this.check();
|
|
1613
3042
|
}
|
|
1614
3043
|
rotateZ(rad) {
|
|
1615
|
-
|
|
3044
|
+
rotateZ3(this, this, rad);
|
|
1616
3045
|
return this.check();
|
|
1617
3046
|
}
|
|
1618
3047
|
scale(b) {
|
|
1619
|
-
|
|
3048
|
+
scale4(this, this, b);
|
|
1620
3049
|
return this.check();
|
|
1621
3050
|
}
|
|
1622
3051
|
slerp(arg0, arg1, arg2) {
|
|
@@ -1641,11 +3070,11 @@ var Quaternion = class extends MathArray {
|
|
|
1641
3070
|
target = arg1;
|
|
1642
3071
|
ratio = arg2;
|
|
1643
3072
|
}
|
|
1644
|
-
|
|
3073
|
+
slerp(this, start, target, ratio);
|
|
1645
3074
|
return this.check();
|
|
1646
3075
|
}
|
|
1647
3076
|
transformVector4(vector, result = new Vector4()) {
|
|
1648
|
-
|
|
3077
|
+
transformQuat2(result, vector, this);
|
|
1649
3078
|
return checkVector(result, 4);
|
|
1650
3079
|
}
|
|
1651
3080
|
lengthSq() {
|
|
@@ -1663,8 +3092,7 @@ var Quaternion = class extends MathArray {
|
|
|
1663
3092
|
};
|
|
1664
3093
|
|
|
1665
3094
|
// src/classes/spherical-coordinates.ts
|
|
1666
|
-
var
|
|
1667
|
-
var EPSILON = 1e-6;
|
|
3095
|
+
var EPSILON2 = 1e-6;
|
|
1668
3096
|
var EARTH_RADIUS_METERS = 6371e3;
|
|
1669
3097
|
var SphericalCoordinates = class {
|
|
1670
3098
|
constructor({
|
|
@@ -1750,7 +3178,7 @@ var SphericalCoordinates = class {
|
|
|
1750
3178
|
return this.check();
|
|
1751
3179
|
}
|
|
1752
3180
|
fromVector3(v) {
|
|
1753
|
-
this.radius =
|
|
3181
|
+
this.radius = length(v);
|
|
1754
3182
|
if (this.radius > 0) {
|
|
1755
3183
|
this.theta = Math.atan2(v[0], v[1]);
|
|
1756
3184
|
this.phi = Math.acos(clamp(v[2] / this.radius, -1, 1));
|
|
@@ -1761,7 +3189,7 @@ var SphericalCoordinates = class {
|
|
|
1761
3189
|
return new Vector3(0, 0, this.radius).rotateX({ radians: this.theta }).rotateZ({ radians: this.phi });
|
|
1762
3190
|
}
|
|
1763
3191
|
makeSafe() {
|
|
1764
|
-
this.phi = Math.max(
|
|
3192
|
+
this.phi = Math.max(EPSILON2, Math.min(Math.PI - EPSILON2, this.phi));
|
|
1765
3193
|
return this;
|
|
1766
3194
|
}
|
|
1767
3195
|
check() {
|
|
@@ -1982,7 +3410,7 @@ var Euler = class extends MathArray {
|
|
|
1982
3410
|
}
|
|
1983
3411
|
getQuaternion() {
|
|
1984
3412
|
const q = new Quaternion();
|
|
1985
|
-
switch (this[
|
|
3413
|
+
switch (this[3]) {
|
|
1986
3414
|
case 5 /* XYZ */:
|
|
1987
3415
|
return q.rotateX(this[0]).rotateY(this[1]).rotateZ(this[2]);
|
|
1988
3416
|
case 1 /* YXZ */:
|
|
@@ -2307,29 +3735,54 @@ var Pose = class {
|
|
|
2307
3735
|
};
|
|
2308
3736
|
|
|
2309
3737
|
// 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
|
-
|
|
3738
|
+
var math_utils_exports = {};
|
|
3739
|
+
__export(math_utils_exports, {
|
|
3740
|
+
EPSILON1: () => EPSILON1,
|
|
3741
|
+
EPSILON10: () => EPSILON10,
|
|
3742
|
+
EPSILON11: () => EPSILON11,
|
|
3743
|
+
EPSILON12: () => EPSILON12,
|
|
3744
|
+
EPSILON13: () => EPSILON13,
|
|
3745
|
+
EPSILON14: () => EPSILON14,
|
|
3746
|
+
EPSILON15: () => EPSILON15,
|
|
3747
|
+
EPSILON16: () => EPSILON16,
|
|
3748
|
+
EPSILON17: () => EPSILON17,
|
|
3749
|
+
EPSILON18: () => EPSILON18,
|
|
3750
|
+
EPSILON19: () => EPSILON19,
|
|
3751
|
+
EPSILON2: () => EPSILON22,
|
|
3752
|
+
EPSILON20: () => EPSILON20,
|
|
3753
|
+
EPSILON3: () => EPSILON3,
|
|
3754
|
+
EPSILON4: () => EPSILON4,
|
|
3755
|
+
EPSILON5: () => EPSILON5,
|
|
3756
|
+
EPSILON6: () => EPSILON6,
|
|
3757
|
+
EPSILON7: () => EPSILON7,
|
|
3758
|
+
EPSILON8: () => EPSILON8,
|
|
3759
|
+
EPSILON9: () => EPSILON9,
|
|
3760
|
+
PI_OVER_FOUR: () => PI_OVER_FOUR,
|
|
3761
|
+
PI_OVER_SIX: () => PI_OVER_SIX,
|
|
3762
|
+
PI_OVER_TWO: () => PI_OVER_TWO,
|
|
3763
|
+
TWO_PI: () => TWO_PI
|
|
3764
|
+
});
|
|
3765
|
+
var EPSILON1 = 0.1;
|
|
3766
|
+
var EPSILON22 = 0.01;
|
|
3767
|
+
var EPSILON3 = 1e-3;
|
|
3768
|
+
var EPSILON4 = 1e-4;
|
|
3769
|
+
var EPSILON5 = 1e-5;
|
|
3770
|
+
var EPSILON6 = 1e-6;
|
|
3771
|
+
var EPSILON7 = 1e-7;
|
|
3772
|
+
var EPSILON8 = 1e-8;
|
|
3773
|
+
var EPSILON9 = 1e-9;
|
|
3774
|
+
var EPSILON10 = 1e-10;
|
|
3775
|
+
var EPSILON11 = 1e-11;
|
|
3776
|
+
var EPSILON12 = 1e-12;
|
|
3777
|
+
var EPSILON13 = 1e-13;
|
|
3778
|
+
var EPSILON14 = 1e-14;
|
|
3779
|
+
var EPSILON15 = 1e-15;
|
|
3780
|
+
var EPSILON16 = 1e-16;
|
|
3781
|
+
var EPSILON17 = 1e-17;
|
|
3782
|
+
var EPSILON18 = 1e-18;
|
|
3783
|
+
var EPSILON19 = 1e-19;
|
|
3784
|
+
var EPSILON20 = 1e-20;
|
|
3785
|
+
var PI_OVER_TWO = Math.PI / 2;
|
|
3786
|
+
var PI_OVER_FOUR = Math.PI / 4;
|
|
3787
|
+
var PI_OVER_SIX = Math.PI / 6;
|
|
3788
|
+
var TWO_PI = Math.PI * 2;
|