@woosh/meep-engine 2.43.28 → 2.43.30
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.
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import Signal from "../events/signal/Signal";
|
|
2
2
|
import {Matrix4, Quaternion as ThreeQuaternion} from "three";
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
interface Vector3Like {
|
|
5
|
+
x: number,
|
|
6
|
+
y: number,
|
|
7
|
+
z: number
|
|
8
|
+
}
|
|
4
9
|
|
|
5
10
|
export default class Quaternion {
|
|
6
11
|
public x: number
|
|
@@ -18,7 +23,7 @@ export default class Quaternion {
|
|
|
18
23
|
|
|
19
24
|
equals(other: { x: number, y: number, z: number, w: number }): boolean
|
|
20
25
|
|
|
21
|
-
slerp(other:Quaternion,t:number):void
|
|
26
|
+
slerp(other: Quaternion, t: number): void
|
|
22
27
|
|
|
23
28
|
normalize(): void
|
|
24
29
|
|
|
@@ -32,14 +37,17 @@ export default class Quaternion {
|
|
|
32
37
|
|
|
33
38
|
decodeFromUint32(uint: number): void
|
|
34
39
|
|
|
40
|
+
_lookRotation(forward_x: number, forward_y: number, forward_z: number, up_x: number, up_y: number, up_z: number): void;
|
|
41
|
+
|
|
42
|
+
lookRotation(v3: Vector3Like, up?: Vector3Like): void
|
|
35
43
|
|
|
36
44
|
toEulerAnglesXYZ(v3: { set(x: number, y: number, z: number): any }): void
|
|
37
45
|
|
|
38
46
|
fromEulerAnglesXYZ(x: number, y: number, z: number): void
|
|
39
47
|
|
|
40
|
-
fromAxisAngle(axis:
|
|
48
|
+
fromAxisAngle(axis: Vector3Like, angle: number): void
|
|
41
49
|
|
|
42
|
-
computeTwistAngle(axis:
|
|
50
|
+
computeTwistAngle(axis: Vector3Like): number
|
|
43
51
|
|
|
44
52
|
multiplyQuaternions(a: Quaternion, b: Quaternion): void
|
|
45
53
|
|
package/core/geom/Quaternion.js
CHANGED
|
@@ -521,6 +521,15 @@ class Quaternion {
|
|
|
521
521
|
return Math.sqrt(x * x + y * y + z * z + w * w);
|
|
522
522
|
}
|
|
523
523
|
|
|
524
|
+
/**
|
|
525
|
+
*
|
|
526
|
+
* @param {Quaternion} other
|
|
527
|
+
* @param {number} max_delta
|
|
528
|
+
*/
|
|
529
|
+
rotateTowards(other, max_delta) {
|
|
530
|
+
Quaternion.rotateTowards(this, this, other, max_delta);
|
|
531
|
+
}
|
|
532
|
+
|
|
524
533
|
/**
|
|
525
534
|
*
|
|
526
535
|
* @param {Vector3} direction
|
|
@@ -1273,6 +1282,8 @@ class Quaternion {
|
|
|
1273
1282
|
* @param {number} t
|
|
1274
1283
|
*/
|
|
1275
1284
|
slerp(other, t) {
|
|
1285
|
+
assert.isNumber(t, 't');
|
|
1286
|
+
|
|
1276
1287
|
const ax = this.x,
|
|
1277
1288
|
ay = this.y,
|
|
1278
1289
|
az = this.z,
|
|
@@ -1609,6 +1620,32 @@ class Quaternion {
|
|
|
1609
1620
|
return result;
|
|
1610
1621
|
}
|
|
1611
1622
|
|
|
1623
|
+
/**
|
|
1624
|
+
*
|
|
1625
|
+
* @param {number[]} array
|
|
1626
|
+
* @param {number} offset
|
|
1627
|
+
*/
|
|
1628
|
+
readFromArray(array, offset) {
|
|
1629
|
+
this.set(
|
|
1630
|
+
array[offset],
|
|
1631
|
+
array[offset + 1],
|
|
1632
|
+
array[offset + 2],
|
|
1633
|
+
array[offset + 3]
|
|
1634
|
+
);
|
|
1635
|
+
}
|
|
1636
|
+
|
|
1637
|
+
/**
|
|
1638
|
+
*
|
|
1639
|
+
* @param {number[]} array
|
|
1640
|
+
* @param {number} offset
|
|
1641
|
+
*/
|
|
1642
|
+
writeToArray(array, offset) {
|
|
1643
|
+
array[offset] = this.x;
|
|
1644
|
+
array[offset + 1] = this.y;
|
|
1645
|
+
array[offset + 2] = this.z;
|
|
1646
|
+
array[offset + 3] = this.w;
|
|
1647
|
+
}
|
|
1648
|
+
|
|
1612
1649
|
asArray() {
|
|
1613
1650
|
return [this.x, this.y, this.z, this.w];
|
|
1614
1651
|
}
|
|
@@ -1676,7 +1713,7 @@ class Quaternion {
|
|
|
1676
1713
|
|
|
1677
1714
|
/**
|
|
1678
1715
|
* Based on http://planning.cs.uiuc.edu/node198.html
|
|
1679
|
-
* @param random
|
|
1716
|
+
* @param {function():number} [random]
|
|
1680
1717
|
* @return {Quaternion}
|
|
1681
1718
|
*/
|
|
1682
1719
|
random(random = Math.random) {
|
|
@@ -1733,6 +1770,8 @@ class Quaternion {
|
|
|
1733
1770
|
* @param {number} max_delta
|
|
1734
1771
|
*/
|
|
1735
1772
|
static rotateTowards(result, from, to, max_delta) {
|
|
1773
|
+
assert.isNumber(max_delta, 'max_delta');
|
|
1774
|
+
|
|
1736
1775
|
const angle = from.angleTo(to);
|
|
1737
1776
|
|
|
1738
1777
|
if (angle === 0) {
|
|
@@ -85,7 +85,7 @@ export class Transform {
|
|
|
85
85
|
unsubscribeAllChanges(handler, thisArg) {
|
|
86
86
|
this.position.onChanged.remove(handler, thisArg);
|
|
87
87
|
this.rotation.onChanged.remove(handler, thisArg);
|
|
88
|
-
this.scale.onChanged.
|
|
88
|
+
this.scale.onChanged.remove(handler, thisArg);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
/**
|
package/package.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"productName": "Meep",
|
|
6
6
|
"description": "production-ready JavaScript game engine based on Entity Component System Architecture",
|
|
7
7
|
"author": "Alexander Goldring",
|
|
8
|
-
"version": "2.43.
|
|
8
|
+
"version": "2.43.30",
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"gl-matrix": "3.4.3",
|
|
11
11
|
"fast-levenshtein": "2.0.6",
|