@woosh/meep-engine 2.126.62 → 2.126.64

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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Pure JavaScript game engine. Fully featured and production ready.",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.126.62",
8
+ "version": "2.126.64",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -4,8 +4,9 @@ export default class List<T> {
4
4
  get length(): number
5
5
 
6
6
  on: {
7
- added: Signal<T>,
8
- removed: Signal<T, number>
7
+ added: Signal<T, number>,
8
+ removed: Signal<T, number>,
9
+ changed: Signal<void>,
9
10
  }
10
11
 
11
12
  constructor(elements?: T[])
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/list/List.js"],"names":[],"mappings":"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"}
@@ -28,9 +28,36 @@ class List {
28
28
  * @readonly
29
29
  * @type {Signal<T,number>}
30
30
  */
31
- removed: new Signal()
31
+ removed: new Signal(),
32
+
33
+ /**
34
+ * Captures both {@link #on.added} and {@link #on.removed} signals.
35
+ * Useful shortcut if you don't care about actual modifications, just the fact that something has changed.
36
+ * @readonly
37
+ * @type {Signal<>}
38
+ */
39
+ get changed() {
40
+ // lazily initialization, don't want to create the signal and capture events if we don't need it
41
+
42
+ const signal = new Signal();
43
+
44
+ // pipe changes to an aggregate signal
45
+ this.added.add(signal.send0, signal);
46
+ this.removed.add(signal.send0, signal);
47
+
48
+ // rewrite the property to return the aggregate signal
49
+ Object.defineProperty(this, 'changed', {
50
+ value: signal,
51
+ writable: false,
52
+ enumerable: true,
53
+ configurable: false
54
+ });
55
+
56
+ return signal;
57
+ }
32
58
  };
33
59
 
60
+
34
61
  /**
35
62
  * @readonly
36
63
  * @type {T[]}
@@ -58,6 +85,7 @@ class List {
58
85
  * @type {number}
59
86
  */
60
87
  this.length = this.data.length;
88
+
61
89
  }
62
90
 
63
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"AABB2.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/aabb/AABB2.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AABB2.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/2d/aabb/AABB2.js"],"names":[],"mappings":"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"}
@@ -477,16 +477,15 @@ class AABB2 {
477
477
  * @return {number}
478
478
  */
479
479
  get centerY() {
480
-
481
480
  return (this.y0 + this.y1) * 0.5
482
481
  }
483
482
 
484
483
  /**
485
- *
484
+ * @deprecated prefer to use {@link width} property instead
486
485
  * @returns {number}
487
486
  */
488
487
  getWidth() {
489
- return this.x1 - this.x0;
488
+ return this.width;
490
489
  }
491
490
 
492
491
  /**
@@ -494,15 +493,16 @@ class AABB2 {
494
493
  * @return {number}
495
494
  */
496
495
  get width() {
497
- return this.getWidth();
496
+ return this.x1 - this.x0;
498
497
  }
499
498
 
500
499
  /**
501
500
  *
501
+ * @deprecated prefer to use {@link height} property instead
502
502
  * @returns {number}
503
503
  */
504
504
  getHeight() {
505
- return this.y1 - this.y0;
505
+ return this.height;
506
506
  }
507
507
 
508
508
  /**
@@ -510,7 +510,7 @@ class AABB2 {
510
510
  * @return {number}
511
511
  */
512
512
  get height() {
513
- return this.getHeight();
513
+ return this.y1 - this.y0;
514
514
  }
515
515
 
516
516
  /**
@@ -520,6 +520,8 @@ class AABB2 {
520
520
  * @param {Number} x1
521
521
  * @param {Number} y1
522
522
  * @returns {this}
523
+ *
524
+ * @see setBoundsUnordered
523
525
  */
524
526
  set(x0, y0, x1, y1) {
525
527
  assert.isNumber(x0, `x0`);
@@ -546,8 +548,8 @@ class AABB2 {
546
548
  * @param {number} y
547
549
  */
548
550
  setPosition(x, y) {
549
- const width = this.getWidth();
550
- const height = this.getHeight();
551
+ const width = this.width;
552
+ const height = this.height;
551
553
 
552
554
  this.set(x, y, x + width, y + height);
553
555
  }
@@ -598,7 +600,7 @@ class AABB2 {
598
600
  *
599
601
  * @return {number}
600
602
  */
601
- hash(){
603
+ hash() {
602
604
  let h = 0; // Initial hash value
603
605
 
604
606
  // Prime numbers for mixing. These are often chosen to be large and coprime.
@@ -750,8 +752,13 @@ AABB2.prototype.isAABB2 = true;
750
752
  AABB2.computeLineBetweenTwoBoxes = computeLineBetweenTwoBoxes;
751
753
 
752
754
  /**
755
+ * Useful singleton with bounds 0,0,0,0.
753
756
  * @readonly
754
757
  * @type {AABB2}
758
+ * @example
759
+ * const box = new AABB();
760
+ * // ...
761
+ * box.copy(AABB.zero); // zero out
755
762
  */
756
763
  AABB2.zero = Object.freeze(new AABB2(0, 0, 0, 0));
757
764
 
@@ -5,6 +5,11 @@
5
5
  * @param {number} b
6
6
  * @param {number} fraction value between 0 and 1
7
7
  * @return {number}
8
+ *
9
+ * @example
10
+ * lerp(1, 2, 0.5) === 1.5
11
+ * lerp(1, 2, 0) === 1
12
+ * lerp(1, 2, 1) === 2
8
13
  */
9
14
  export function lerp(a: number, b: number, fraction: number): number;
10
15
  //# sourceMappingURL=lerp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lerp.d.ts","sourceRoot":"","sources":["../../../../src/core/math/lerp.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBALW,MAAM,KACN,MAAM,YACN,MAAM,GACL,MAAM,CAKjB"}
1
+ {"version":3,"file":"lerp.d.ts","sourceRoot":"","sources":["../../../../src/core/math/lerp.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAVW,MAAM,KACN,MAAM,YACN,MAAM,GACL,MAAM,CAUjB"}
@@ -5,6 +5,11 @@
5
5
  * @param {number} b
6
6
  * @param {number} fraction value between 0 and 1
7
7
  * @return {number}
8
+ *
9
+ * @example
10
+ * lerp(1, 2, 0.5) === 1.5
11
+ * lerp(1, 2, 0) === 1
12
+ * lerp(1, 2, 1) === 2
8
13
  */
9
14
  export function lerp(a, b, fraction) {
10
15
  const span = b - a;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @see https://www.w3.org/TR/WGSL/#roundup
3
+ * @param {number} x what to round
4
+ * @param {number} divisor divisor positive integer
5
+ * @return {number}
6
+ *
7
+ * @example
8
+ * round_up(10, 2) === 10
9
+ * round_up(11, 2) === 12
10
+ * round_up(1, 10) === 10
11
+ * round_up(9, 10) === 10
12
+ * round_up(11, 10) === 20
13
+ */
14
+ export function round_up(x: number, divisor: number): number;
15
+ //# sourceMappingURL=round_up.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round_up.d.ts","sourceRoot":"","sources":["../../../../src/core/math/round_up.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,4BAXW,MAAM,WACN,MAAM,GACL,MAAM,CAejB"}
@@ -0,0 +1,22 @@
1
+ import { assert } from "@woosh/meep-engine/src/core/assert";
2
+
3
+ /**
4
+ * @see https://www.w3.org/TR/WGSL/#roundup
5
+ * @param {number} x what to round
6
+ * @param {number} divisor divisor positive integer
7
+ * @return {number}
8
+ *
9
+ * @example
10
+ * round_up(10, 2) === 10
11
+ * round_up(11, 2) === 12
12
+ * round_up(1, 10) === 10
13
+ * round_up(9, 10) === 10
14
+ * round_up(11, 10) === 20
15
+ */
16
+ export function round_up(x, divisor) {
17
+ assert.isNonNegativeInteger(divisor, 'k');
18
+ assert.isNumber(x, 'n');
19
+ assert.notNaN(x, 'n');
20
+
21
+ return Math.ceil(x / divisor) * divisor
22
+ }
@@ -2,6 +2,9 @@
2
2
  * Square input (x^2)
3
3
  * @param {number} x
4
4
  * @returns {number}
5
+ * @example
6
+ * sqr(2) === 4
7
+ * sqr(4) === 16
5
8
  */
6
9
  export function sqr(x: number): number;
7
10
  //# sourceMappingURL=sqr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqr.d.ts","sourceRoot":"","sources":["../../../../src/core/math/sqr.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,uBAHW,MAAM,GACJ,MAAM,CAIlB"}
1
+ {"version":3,"file":"sqr.d.ts","sourceRoot":"","sources":["../../../../src/core/math/sqr.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,uBANW,MAAM,GACJ,MAAM,CAOlB"}
@@ -2,6 +2,9 @@
2
2
  * Square input (x^2)
3
3
  * @param {number} x
4
4
  * @returns {number}
5
+ * @example
6
+ * sqr(2) === 4
7
+ * sqr(4) === 16
5
8
  */
6
9
  export function sqr(x) {
7
10
  return x * x;