@woosh/meep-engine 2.124.10 → 2.124.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/core/assert.d.ts +8 -0
  4. package/src/core/assert.d.ts.map +1 -1
  5. package/src/core/assert.js +14 -0
  6. package/src/core/debug/matchers/IsFinite.d.ts +6 -0
  7. package/src/core/debug/matchers/IsFinite.d.ts.map +1 -0
  8. package/src/core/debug/matchers/IsFinite.js +11 -0
  9. package/src/core/debug/matchers/IsInteger.d.ts +6 -0
  10. package/src/core/debug/matchers/IsInteger.d.ts.map +1 -0
  11. package/src/core/debug/matchers/IsInteger.js +11 -0
  12. package/src/core/debug/matchers/IsUndefined.js +1 -0
  13. package/src/core/debug/matchers/matchers.d.ts +5 -0
  14. package/src/core/debug/matchers/matchers.d.ts.map +1 -1
  15. package/src/core/debug/matchers/matchers.js +14 -0
  16. package/src/core/math/interval/NumericInterval.d.ts +49 -9
  17. package/src/core/math/interval/NumericInterval.d.ts.map +1 -1
  18. package/src/core/math/interval/NumericInterval.js +91 -13
  19. package/src/core/math/spline/spline_hermite3.d.ts +3 -0
  20. package/src/core/math/spline/spline_hermite3.d.ts.map +1 -1
  21. package/src/core/math/spline/spline_hermite3.js +3 -0
  22. package/src/core/math/spline/spline_hermite3_bounds.d.ts +7 -7
  23. package/src/core/math/spline/spline_hermite3_bounds.d.ts.map +1 -1
  24. package/src/core/math/spline/spline_hermite3_bounds.js +13 -7
  25. package/src/core/model/ObservedBoolean.d.ts +3 -3
  26. package/src/core/model/ObservedBoolean.d.ts.map +1 -1
  27. package/src/core/model/ObservedBoolean.js +3 -3
  28. package/src/core/model/ObservedEnum.d.ts.map +1 -1
  29. package/src/core/model/ObservedEnum.js +52 -11
  30. package/src/core/model/ObservedInteger.d.ts +7 -7
  31. package/src/core/model/ObservedInteger.d.ts.map +1 -1
  32. package/src/core/model/ObservedInteger.js +12 -11
  33. package/src/engine/animation/curve/AnimationCurve.d.ts +24 -8
  34. package/src/engine/animation/curve/AnimationCurve.d.ts.map +1 -1
  35. package/src/engine/animation/curve/AnimationCurve.js +100 -30
  36. package/src/engine/animation/curve/Keyframe.d.ts +3 -0
  37. package/src/engine/animation/curve/Keyframe.d.ts.map +1 -1
  38. package/src/engine/animation/curve/Keyframe.js +3 -0
  39. package/src/engine/animation/curve/animation_curve_compute_aabb.js +1 -1
  40. package/src/engine/animation/curve/animation_curve_optimize.d.ts +5 -1
  41. package/src/engine/animation/curve/animation_curve_optimize.d.ts.map +1 -1
  42. package/src/engine/animation/curve/animation_curve_optimize.js +19 -2
  43. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  44. package/src/engine/ecs/EntityComponentDataset.js +20 -7
package/README.md CHANGED
@@ -13,7 +13,7 @@ To help get you started, various samples are provided under `/samples` folder. F
13
13
 
14
14
  ## Quality
15
15
 
16
- Meep is covered by 2,508 unit tests
16
+ Meep is covered by 2,669 unit tests
17
17
 
18
18
  The aim is to [ensure quality](https://about.codecov.io/blog/the-case-against-100-code-coverage/). As a result, the tests are written to cover complex code first and to exhaustively validate critical algorithms.
19
19
  Most of the test code is significantly larger than the code that is being tested.
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.124.10",
8
+ "version": "2.124.12",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -128,6 +128,14 @@ export namespace assert {
128
128
  import isFiniteNumber = isFinite;
129
129
  export { isFiniteNumber };
130
130
  /**
131
+ * More powerful and flexible assertion API based on matchers.
132
+ * Allows complex matching criteria to be constructed.
133
+ *
134
+ * see {@link Matcher}
135
+ * @example
136
+ * assert.that(value,'value', anyOf(isNull(),isUndefined())); // will trigger iff !(value === undefined || value === null)
137
+ * assert.that(value, 'value', isOneOf([3,7])); // will only trigger iff !(value === 3 || value === 7)
138
+ *
131
139
  * @template T
132
140
  * @param {T} value
133
141
  * @param {string} name
@@ -1 +1 @@
1
- {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/core/assert.js"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAMhB;;IAsJD;;;;;OAKG;IACH,eALa,CAAC,SACH,CAAC,0BAED,MAAM,QAUhB;;;;;;;;;;;;;;;IAmBD;;;;;;OAMG;IACH,oCALW,GAAC,SACD,KAAK,eACL,MAAM,eACN,MAAM,QAKhB;IAGD;;;;OAIG;IACH,gCAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,gCAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,iCAHW,OAAO,GAAC,GAAC,SACT,MAAM,QAQhB;IAED;;;;OAIG;IACH,kCAHW,WAAS,GAAC,SACV,MAAM,QAQhB;IAED;;;;OAIG;IACH,gCAHW,MAAO,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,4CAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,wBAJa,CAAC,SACH,CAAC,EAAE,SACH,MAAM,QAOhB;IAED;;;;OAIG;IACH,4BAJa,CAAC,SACH,SAAS,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,GAAC,WAAW,GAAC,YAAY,SACzC,MAAM,QAOhB;IAGD;;;;OAIG;IACH,+BAHW,GAAC,uBASX;IAED;;;;OAIG;IACH,iCAHW,GAAC,uBASX;IAGD;;;;OAIG;IACH,8BAHW,GAAC,uBAOX;IAED;;;;OAIG;IACH,+BAHW,GAAC,uBASX;IAED;;;;OAIG;IACH,8BAHW,MAAM,SACN,MAAM,QAMhB;IAED;;;;;OAKG;IACH,gCAHW,MAAM,SACN,MAAM,QAMhB;;;IAQD;;;;;OAKG;IACH,qBALa,CAAC,SACH,CAAC,QACD,MAAM,WACN,OAAO,CAAC,CAAC,CAAC,QAkBpB;;AApcD;;;;;GAKG;AACH,0BALa,CAAC,KACH,CAAC,KACD,CAAC,MACD,MAAM,QAIhB;AAED;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAIhB;AAhCD;;;;;GAKG;AACH,uBALa,CAAC,KACH,CAAC,KACD,CAAC,MACD,MAAM,QAShB;AAqBD;;;;;GAKG;AACH,kCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAIhB;AAaD;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,uCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AA5CD;;;;;GAKG;AACH,6BAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,oCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAKD;;;;;GAKG;AACH,+BAJW,GAAC,QACD,MAAM,cACN,MAAM,QAehB;AAED;;;;;GAKG;AACH,0BALa,CAAC,YACH,CAAC,EAAE,UACH,CAAC,YACD,MAAM,QAIhB;AAED;;;;;GAKG;AACH,4BALa,CAAC,YACH,CAAC,EAAE,UACH,CAAC,YACD,MAAM,QAIhB;AAED;;;;;GAKG;AACH,4BALa,CAAC,KACH,CAAC,EAAE,GAAC,SAAS,CAAC,CAAC,CAAC,GAAC,YAAY,GAAC,UAAU,KACxC,CAAC,EAAE,GAAC,SAAS,CAAC,CAAC,CAAC,GAAC,YAAY,GAAC,UAAU,YACxC,MAAM,QAMhB"}
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../src/core/assert.js"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAMhB;;IAsJD;;;;;OAKG;IACH,eALa,CAAC,SACH,CAAC,0BAED,MAAM,QAUhB;;;;;;;;;;;;;;;IAmBD;;;;;;OAMG;IACH,oCALW,GAAC,SACD,KAAK,eACL,MAAM,eACN,MAAM,QAKhB;IAGD;;;;OAIG;IACH,gCAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,gCAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,iCAHW,OAAO,GAAC,GAAC,SACT,MAAM,QAQhB;IAED;;;;OAIG;IACH,kCAHW,WAAS,GAAC,SACV,MAAM,QAQhB;IAED;;;;OAIG;IACH,gCAHW,MAAO,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,iCAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,4CAHW,MAAM,GAAC,GAAC,SACR,MAAM,QAQhB;IAED;;;;OAIG;IACH,wBAJa,CAAC,SACH,CAAC,EAAE,SACH,MAAM,QAOhB;IAED;;;;OAIG;IACH,4BAJa,CAAC,SACH,SAAS,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,GAAC,WAAW,GAAC,YAAY,SACzC,MAAM,QAOhB;IAGD;;;;OAIG;IACH,+BAHW,GAAC,uBASX;IAED;;;;OAIG;IACH,iCAHW,GAAC,uBASX;IAGD;;;;OAIG;IACH,8BAHW,GAAC,uBAOX;IAED;;;;OAIG;IACH,+BAHW,GAAC,uBASX;IAED;;;;OAIG;IACH,8BAHW,MAAM,SACN,MAAM,QAMhB;IAED;;;;;OAKG;IACH,gCAHW,MAAM,SACN,MAAM,QAMhB;;;IAQD;;;;;;;;;;;;;OAaG;IACH,qBALa,CAAC,SACH,CAAC,QACD,MAAM,WACN,OAAO,CAAC,CAAC,CAAC,QAwBpB;;AAldD;;;;;GAKG;AACH,0BALa,CAAC,KACH,CAAC,KACD,CAAC,MACD,MAAM,QAIhB;AAED;;;;GAIG;AACH,0BAHW,OAAO,MACP,MAAM,QAIhB;AAhCD;;;;;GAKG;AACH,uBALa,CAAC,KACH,CAAC,KACD,CAAC,MACD,MAAM,QAShB;AAqBD;;;;;GAKG;AACH,kCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAIhB;AAaD;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,uCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AA5CD;;;;;GAKG;AACH,6BAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAyBD;;;;;GAKG;AACH,oCAJW,MAAM,KACN,MAAM,MACN,MAAM,QAiBhB;AAKD;;;;;GAKG;AACH,+BAJW,GAAC,QACD,MAAM,cACN,MAAM,QAehB;AAED;;;;;GAKG;AACH,0BALa,CAAC,YACH,CAAC,EAAE,UACH,CAAC,YACD,MAAM,QAIhB;AAED;;;;;GAKG;AACH,4BALa,CAAC,YACH,CAAC,EAAE,UACH,CAAC,YACD,MAAM,QAIhB;AAED;;;;;GAKG;AACH,4BALa,CAAC,KACH,CAAC,EAAE,GAAC,SAAS,CAAC,CAAC,CAAC,GAAC,YAAY,GAAC,UAAU,KACxC,CAAC,EAAE,GAAC,SAAS,CAAC,CAAC,CAAC,GAAC,YAAY,GAAC,UAAU,YACxC,MAAM,QAMhB"}
@@ -448,16 +448,30 @@ assert.isFinite = function (value, name = "value") {
448
448
  assert.isFiniteNumber = assert.isFinite;
449
449
 
450
450
  /**
451
+ * More powerful and flexible assertion API based on matchers.
452
+ * Allows complex matching criteria to be constructed.
453
+ *
454
+ * see {@link Matcher}
455
+ * @example
456
+ * assert.that(value,'value', anyOf(isNull(),isUndefined())); // will trigger iff !(value === undefined || value === null)
457
+ * assert.that(value, 'value', isOneOf([3,7])); // will only trigger iff !(value === 3 || value === 7)
458
+ *
451
459
  * @template T
452
460
  * @param {T} value
453
461
  * @param {string} name
454
462
  * @param {Matcher<T>} matcher
455
463
  */
456
464
  assert.that = function (value, name, matcher) {
465
+ assert.isString(name, 'name');
466
+ assert.defined(matcher, 'matcher');
467
+
457
468
  if (matcher.matches(value)) {
458
469
  return;
459
470
  }
460
471
 
472
+ // if we got here, our assertion has failed
473
+ // construct failure message
474
+
461
475
  const mismatch_description = new InMemoryDescriptor();
462
476
 
463
477
  mismatch_description.appendText(`Expected ${name} to be `);
@@ -0,0 +1,6 @@
1
+ export class IsFinite extends BaseMatcher {
2
+ matches(item: any, mismatch_description: any): boolean;
3
+ describeTo(description: any): void;
4
+ }
5
+ import { BaseMatcher } from "../BaseMatcher.js";
6
+ //# sourceMappingURL=IsFinite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsFinite.d.ts","sourceRoot":"","sources":["../../../../../src/core/debug/matchers/IsFinite.js"],"names":[],"mappings":"AAEA;IACI,uDAEC;IAED,mCAEC;CACJ;4BAV2B,mBAAmB"}
@@ -0,0 +1,11 @@
1
+ import { BaseMatcher } from "../BaseMatcher.js";
2
+
3
+ export class IsFinite extends BaseMatcher {
4
+ matches(item, mismatch_description) {
5
+ return Number.isFinite(item);
6
+ }
7
+
8
+ describeTo(description) {
9
+ description.appendText("finite");
10
+ }
11
+ }
@@ -0,0 +1,6 @@
1
+ export class IsInteger extends BaseMatcher {
2
+ matches(item: any, mismatch_description: any): boolean;
3
+ describeTo(description: any): void;
4
+ }
5
+ import { BaseMatcher } from "../BaseMatcher.js";
6
+ //# sourceMappingURL=IsInteger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IsInteger.d.ts","sourceRoot":"","sources":["../../../../../src/core/debug/matchers/IsInteger.js"],"names":[],"mappings":"AAEA;IACI,uDAEC;IAED,mCAEC;CACJ;4BAV2B,mBAAmB"}
@@ -0,0 +1,11 @@
1
+ import { BaseMatcher } from "../BaseMatcher.js";
2
+
3
+ export class IsInteger extends BaseMatcher {
4
+ matches(item, mismatch_description) {
5
+ return Number.isInteger(item);
6
+ }
7
+
8
+ describeTo(description) {
9
+ description.appendText("integer");
10
+ }
11
+ }
@@ -9,3 +9,4 @@ export class IsUndefined extends BaseMatcher {
9
9
  description.appendText("undefined");
10
10
  }
11
11
  }
12
+
@@ -48,6 +48,9 @@ export function isUndefined<T_1>(): Matcher<T_1>;
48
48
  * @return {Matcher<T>}
49
49
  */
50
50
  export function isDefined<T_1>(): Matcher<T_1>;
51
+ export function isFinite(): IsFinite;
52
+ export function isInfinite(): Matcher<any>;
53
+ export function isInteger(): IsInteger;
51
54
  /**
52
55
  * @template T
53
56
  * @param {Matcher|T} value
@@ -85,4 +88,6 @@ export function nothing<T_1>(message?: string): Matcher<T_1>;
85
88
  */
86
89
  export function isNotUndefined<T_1>(): Matcher<T_1>;
87
90
  import { Matcher } from "../Matcher.js";
91
+ import { IsFinite } from "./IsFinite.js";
92
+ import { IsInteger } from "./IsInteger.js";
88
93
  //# sourceMappingURL=matchers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../../../../src/core/debug/matchers/matchers.js"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,wCAHW,OAAO,CAAC,GAAC,CAAC,GACT,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,wCAHW,OAAO,CAAC,GAAC,CAAC,GACT,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,kCAHW,OAAO,CAAC,GAAC,CAAC,GACT,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,oCAHW,GAAC,GACA,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,uCAHW,GAAC,GACA,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,+BAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,kCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,oCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,kCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAQD;;;;GAIG;AACH,oCAHW,eAAQ,GAAC,GACR,OAAO,CAAC,GAAC,CAAC,CAQrB;AAED;;;;GAIG;AACH,iCAHW,GAAC,EAAE,GACD,OAAO,CAAC,GAAC,CAAC,CAItB;AAGD;;;;GAIG;AACH,0CAHW,GAAC,GACA,OAAO,CAAC,GAAC,CAAC,CAIrB;AAcD;;;;;GAKG;AACH,wCAHW,MAAM,GACL,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,uCAHW,MAAM,GACL,OAAO,CAAC,GAAC,CAAC,CAUrB;AAjFD;;;GAGG;AACH,uCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;wBAvFuB,eAAe"}
1
+ {"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../../../../src/core/debug/matchers/matchers.js"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,wCAHW,OAAO,CAAC,GAAC,CAAC,GACT,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,wCAHW,OAAO,CAAC,GAAC,CAAC,GACT,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,kCAHW,OAAO,CAAC,GAAC,CAAC,GACT,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,oCAHW,GAAC,GACA,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,uCAHW,GAAC,GACA,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,+BAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,kCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,oCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;GAGG;AACH,kCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;AAQD,qCAEC;AAED,2CAEC;AAED,uCAEC;AAED;;;;GAIG;AACH,oCAHW,eAAQ,GAAC,GACR,OAAO,CAAC,GAAC,CAAC,CAQrB;AAED;;;;GAIG;AACH,iCAHW,GAAC,EAAE,GACD,OAAO,CAAC,GAAC,CAAC,CAItB;AAGD;;;;GAIG;AACH,0CAHW,GAAC,GACA,OAAO,CAAC,GAAC,CAAC,CAIrB;AAcD;;;;;GAKG;AACH,wCAHW,MAAM,GACL,OAAO,CAAC,GAAC,CAAC,CAIrB;AAED;;;;GAIG;AACH,uCAHW,MAAM,GACL,OAAO,CAAC,GAAC,CAAC,CAUrB;AA7FD;;;GAGG;AACH,uCAFY,OAAO,CAAC,GAAC,CAAC,CAIrB;wBAzFuB,eAAe;yBAMd,eAAe;0BAEd,gBAAgB"}
@@ -4,7 +4,9 @@ import { AnyOf } from "./AnyOf.js";
4
4
  import { DescribeAs } from "./DescribeAs.js";
5
5
  import { IsAnything } from "./IsAnything.js";
6
6
  import { IsEqual } from "./IsEqual.js";
7
+ import { IsFinite } from "./IsFinite.js";
7
8
  import { IsIn } from "./IsIn.js";
9
+ import { IsInteger } from "./IsInteger.js";
8
10
  import { IsIterableContaining } from "./IsIterableContaining.js";
9
11
  import { IsNot } from "./IsNot.js";
10
12
  import { IsNull } from "./IsNull.js";
@@ -93,6 +95,18 @@ export function isDefined() {
93
95
  */
94
96
  export const isNotUndefined = isDefined;
95
97
 
98
+ export function isFinite(){
99
+ return new IsFinite();
100
+ }
101
+
102
+ export function isInfinite(){
103
+ return not(isFinite());
104
+ }
105
+
106
+ export function isInteger(){
107
+ return new IsInteger();
108
+ }
109
+
96
110
  /**
97
111
  * @template T
98
112
  * @param {Matcher|T} value
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Defines a numeric interval, by min and max.
3
+ * Provides a suite of interval logic operations.
4
+ * Interval can be of 0 width.
5
+ */
1
6
  export class NumericInterval {
2
7
  /**
3
8
  *
@@ -25,13 +30,15 @@ export class NumericInterval {
25
30
  *
26
31
  * @param {number} min
27
32
  * @param {number} max
33
+ * @returns {this}
28
34
  */
29
- set(min: number, max: number): void;
35
+ set(min: number, max: number): this;
30
36
  /**
31
37
  *
32
38
  * @param {number} value
39
+ * @returns {this}
33
40
  */
34
- multiplyScalar(value: number): void;
41
+ multiplyScalar(value: number): this;
35
42
  /**
36
43
  * Compute normalized position of input within this interval, where result is 0 if input is equal to `min`, and 1 when input is equal to `max`
37
44
  * @param {number} v value to be normalized
@@ -49,11 +56,6 @@ export class NumericInterval {
49
56
  * @returns {boolean}
50
57
  */
51
58
  isExact(): boolean;
52
- /**
53
- *
54
- * @returns {number}
55
- */
56
- computeAverage(): number;
57
59
  /**
58
60
  *
59
61
  * @param {function} random Random number generator function, must return values between 0 and 1
@@ -65,6 +67,19 @@ export class NumericInterval {
65
67
  min: number;
66
68
  max: number;
67
69
  };
70
+ /**
71
+ *
72
+ * @param {number[]|Float32Array|Float64Array} array
73
+ * @param {number} [offset=0]
74
+ */
75
+ fromArray(array: number[] | Float32Array | Float64Array, offset?: number): this;
76
+ /**
77
+ *
78
+ * @param {number[]|Float32Array|Float64Array} [destination=[]]
79
+ * @param {number} [offset=0]
80
+ * @return {number[]}
81
+ */
82
+ toArray(destination?: number[] | Float32Array | Float64Array, offset?: number): number[];
68
83
  toString(): string;
69
84
  /**
70
85
  *
@@ -79,8 +94,27 @@ export class NumericInterval {
79
94
  /**
80
95
  *
81
96
  * @param {NumericInterval} other
97
+ * @returns {this}
98
+ */
99
+ copy(other: NumericInterval): this;
100
+ /**
101
+ * Performs union operation with another interval, mutates current interval.
102
+ * @param {NumericInterval} other
103
+ * @returns {this}
104
+ */
105
+ union(other: NumericInterval): this;
106
+ /**
107
+ *
108
+ * @param {NumericInterval} other
109
+ * @return {boolean}
82
110
  */
83
- copy(other: NumericInterval): void;
111
+ overlaps(other: NumericInterval): boolean;
112
+ /**
113
+ *
114
+ * @param {NumericInterval} other
115
+ * @return {boolean}
116
+ */
117
+ contains(other: NumericInterval): boolean;
84
118
  /**
85
119
  *
86
120
  * @param {NumericInterval} other
@@ -93,10 +127,16 @@ export class NumericInterval {
93
127
  */
94
128
  hash(): number;
95
129
  /**
96
- * Distance between min and max (= max - min)
130
+ * Distance between min and max (`= max - min`)
97
131
  * @returns {number}
98
132
  */
99
133
  get span(): number;
134
+ get middle(): number;
135
+ /**
136
+ * @deprecated use {@link middle} instead
137
+ * @returns {number}
138
+ */
139
+ computeAverage(): number;
100
140
  /**
101
141
  * @readonly
102
142
  * @type {boolean}
@@ -1 +1 @@
1
- {"version":3,"file":"NumericInterval.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/interval/NumericInterval.js"],"names":[],"mappings":"AAKA;IACI;;;;;OAKG;IACH,kBAJW,MAAM,QACN,MAAM,EA4BhB;IAhBG;;;OAGG;IACH,KAFU,MAAM,CAEF;IACd;;;OAGG;IACH,KAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,oBAFU,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEnB;IAIjC;;;;OAIG;IACH,SAHW,MAAM,OACN,MAAM,QA0BhB;IAGD;;;OAGG;IACH,sBAFW,MAAM,QAahB;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,UAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,WAFa,OAAO,CAInB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,gCAFa,MAAM,CAMlB;IAED,0BAEC;IAED;;;MAKC;IAED,mBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAKtB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAKtB;IAED;;;OAGG;IACH,YAFW,eAAe,QAIzB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAN1C;;mBAUS,eAAe;kBAMf,eAAe;iBAMf,eAAe;;mBAhON,+BAA+B"}
1
+ {"version":3,"file":"NumericInterval.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/interval/NumericInterval.js"],"names":[],"mappings":"AAKA;;;;GAIG;AACH;IACI;;;;;OAKG;IACH,kBAJW,MAAM,QACN,MAAM,EA4BhB;IAhBG;;;OAGG;IACH,KAFU,MAAM,CAEF;IACd;;;OAGG;IACH,KAFU,MAAM,CAEF;IAEd;;;OAGG;IACH,oBAFU,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAEnB;IAIjC;;;;;OAKG;IACH,SAJW,MAAM,OACN,MAAM,GACJ,IAAI,CA6BhB;IAGD;;;;OAIG;IACH,sBAHW,MAAM,GACJ,IAAI,CAchB;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACJ,MAAM,CAIlB;IAED;;;OAGG;IACH,UAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,WAFa,OAAO,CAInB;IAGD;;;;OAIG;IACH,gCAFa,MAAM,CAOlB;IAED,0BAEC;IAED;;;MAKC;IAED;;;;OAIG;IACH,iBAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,WAClC,MAAM,QAIhB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,WAClC,MAAM,GACL,MAAM,EAAE,CAOnB;IAED,mBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAKtB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAKtB;IAED;;;;OAIG;IACH,YAHW,eAAe,GACb,IAAI,CAIhB;IAED;;;;OAIG;IACH,aAHW,eAAe,GACb,IAAI,CAShB;IAED;;;;OAIG;IACH,gBAHW,eAAe,GACd,OAAO,CAMlB;IAED;;;;OAIG;IACH,gBAHW,eAAe,GACd,OAAO,CAMlB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAMnB;IAED;;;OAGG;IACH,QAFa,MAAM,CAQlB;IAED;;;OAGG;IACH,YAFa,MAAM,CAIlB;IAED,qBAEC;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAN1C;;mBAUS,eAAe;kBAMf,eAAe;iBAMf,eAAe;;mBA9SN,+BAA+B"}
@@ -3,6 +3,11 @@ import Signal from "../../events/signal/Signal.js";
3
3
  import { computeHashFloat } from "../../primitives/numbers/computeHashFloat.js";
4
4
  import { inverseLerp } from "../inverseLerp.js";
5
5
 
6
+ /**
7
+ * Defines a numeric interval, by min and max.
8
+ * Provides a suite of interval logic operations.
9
+ * Interval can be of 0 width.
10
+ */
6
11
  export class NumericInterval {
7
12
  /**
8
13
  *
@@ -42,6 +47,7 @@ export class NumericInterval {
42
47
  *
43
48
  * @param {number} min
44
49
  * @param {number} max
50
+ * @returns {this}
45
51
  */
46
52
  set(min, max) {
47
53
  assert.isNumber(min, 'min');
@@ -56,23 +62,27 @@ export class NumericInterval {
56
62
  const oldMax = this.max;
57
63
 
58
64
  if (min === oldMin && max === oldMax) {
59
- return;
65
+ // no change
66
+ return this;
60
67
  }
61
68
 
62
69
  this.min = min;
63
70
  this.max = max;
64
71
 
65
72
  if (!this.onChanged.hasHandlers()) {
66
- return;
73
+ return this;
67
74
  }
68
75
 
69
76
  this.onChanged.send4(min, max, oldMin, oldMax);
77
+
78
+ return this;
70
79
  }
71
80
 
72
81
 
73
82
  /**
74
83
  *
75
84
  * @param {number} value
85
+ * @returns {this}
76
86
  */
77
87
  multiplyScalar(value) {
78
88
  const v0 = this.min * value;
@@ -82,9 +92,10 @@ export class NumericInterval {
82
92
  //probably negative scale
83
93
  this.set(v1, v0);
84
94
  } else {
85
-
86
95
  this.set(v0, v1);
87
96
  }
97
+
98
+ return this;
88
99
  }
89
100
 
90
101
  /**
@@ -113,13 +124,6 @@ export class NumericInterval {
113
124
  return this.min === this.max;
114
125
  }
115
126
 
116
- /**
117
- *
118
- * @returns {number}
119
- */
120
- computeAverage() {
121
- return (this.min + this.max) * 0.5;
122
- }
123
127
 
124
128
  /**
125
129
  *
@@ -129,7 +133,8 @@ export class NumericInterval {
129
133
  sampleRandom(random) {
130
134
  assert.isFunction(random, "random");
131
135
 
132
- return this.min + random() * (this.max - this.min);
136
+ const span = this.max - this.min;
137
+ return this.min + random() * span;
133
138
  }
134
139
 
135
140
  fromJSON(json) {
@@ -143,6 +148,28 @@ export class NumericInterval {
143
148
  };
144
149
  }
145
150
 
151
+ /**
152
+ *
153
+ * @param {number[]|Float32Array|Float64Array} array
154
+ * @param {number} [offset=0]
155
+ */
156
+ fromArray(array, offset = 0) {
157
+ return this.set(array[offset], array[offset + 1]);
158
+ }
159
+
160
+ /**
161
+ *
162
+ * @param {number[]|Float32Array|Float64Array} [destination=[]]
163
+ * @param {number} [offset=0]
164
+ * @return {number[]}
165
+ */
166
+ toArray(destination = [], offset = 0) {
167
+ destination[offset] = this.min;
168
+ destination[offset + 1] = this.max;
169
+
170
+ return destination;
171
+ }
172
+
146
173
  toString() {
147
174
  return `NumericInterval{ min=${this.min}, max=${this.max} }`;
148
175
  }
@@ -168,9 +195,46 @@ export class NumericInterval {
168
195
  /**
169
196
  *
170
197
  * @param {NumericInterval} other
198
+ * @returns {this}
171
199
  */
172
200
  copy(other) {
173
- this.set(other.min, other.max);
201
+ return this.set(other.min, other.max);
202
+ }
203
+
204
+ /**
205
+ * Performs union operation with another interval, mutates current interval.
206
+ * @param {NumericInterval} other
207
+ * @returns {this}
208
+ */
209
+ union(other) {
210
+ assert.equal(other.isNumericInterval, true, "other must be a NumericInterval");
211
+
212
+ return this.set(
213
+ Math.min(this.min, other.min),
214
+ Math.max(this.max, other.max)
215
+ );
216
+ }
217
+
218
+ /**
219
+ *
220
+ * @param {NumericInterval} other
221
+ * @return {boolean}
222
+ */
223
+ overlaps(other) {
224
+ assert.equal(other.isNumericInterval, true, "other must be a NumericInterval");
225
+
226
+ return this.min < other.max && this.max > other.min;
227
+ }
228
+
229
+ /**
230
+ *
231
+ * @param {NumericInterval} other
232
+ * @return {boolean}
233
+ */
234
+ contains(other) {
235
+ assert.equal(other.isNumericInterval, true, "other must be a NumericInterval");
236
+
237
+ return this.min <= other.min && this.max >= other.max;
174
238
  }
175
239
 
176
240
  /**
@@ -179,6 +243,8 @@ export class NumericInterval {
179
243
  * @returns {boolean}
180
244
  */
181
245
  equals(other) {
246
+ assert.equal(other.isNumericInterval, true, "other must be a NumericInterval");
247
+
182
248
  return this.min === other.min && this.max === other.max;
183
249
  }
184
250
 
@@ -195,12 +261,24 @@ export class NumericInterval {
195
261
  }
196
262
 
197
263
  /**
198
- * Distance between min and max (= max - min)
264
+ * Distance between min and max (`= max - min`)
199
265
  * @returns {number}
200
266
  */
201
267
  get span() {
202
268
  return this.max - this.min;
203
269
  }
270
+
271
+ get middle() {
272
+ return (this.max + this.min) * 0.5;
273
+ }
274
+
275
+ /**
276
+ * @deprecated use {@link middle} instead
277
+ * @returns {number}
278
+ */
279
+ computeAverage() {
280
+ return this.middle;
281
+ }
204
282
  }
205
283
 
206
284
  /**
@@ -7,6 +7,9 @@
7
7
  * @param {number} m0 first tangent (tangent exiting from first value)
8
8
  * @param {number} m1 second tangent (tangent entering into second value)
9
9
  * @return {number}
10
+ *
11
+ * @author Alex Goldring
12
+ * @copyright Company Named Limited (c) 2025
10
13
  */
11
14
  export function spline_hermite3(t: number, p0: number, p1: number, m0: number, m1: number): number;
12
15
  //# sourceMappingURL=spline_hermite3.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spline_hermite3.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/spline/spline_hermite3.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,mCAPW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACL,MAAM,CAajB"}
1
+ {"version":3,"file":"spline_hermite3.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/spline/spline_hermite3.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,mCAVW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACL,MAAM,CAgBjB"}
@@ -7,6 +7,9 @@
7
7
  * @param {number} m0 first tangent (tangent exiting from first value)
8
8
  * @param {number} m1 second tangent (tangent entering into second value)
9
9
  * @return {number}
10
+ *
11
+ * @author Alex Goldring
12
+ * @copyright Company Named Limited (c) 2025
10
13
  */
11
14
  export function spline_hermite3(t, p0, p1, m0, m1) {
12
15
 
@@ -1,17 +1,17 @@
1
1
  /**
2
- * Compute bounds of a 3-rd degree hermite curve
3
- * Note that this is a 1d case solver
2
+ * Compute `y0,y1` bounds of a cubic hermite spline.
4
3
  * Lower bound will be written into result[offset], upper bounds will be written into result[offset+result_stride]
5
- * Solution is based on https://stackoverflow.com/questions/24809978/calculating-the-bounding-box-of-cubic-bezier-curve
6
- * Differentiation of hermite polynomial is done in WolframAlpha
7
- * 0 = 3 t^2 (m0 + m1 + 2 p0 - 2 p1) - 2 t (2 m0 + m1 + 3 p0 - 3 p1) + m0
8
- * @param {number[]|Float32Array} result
4
+ *
5
+ * @param {number[]|Float32Array} result output will be written here, only y0 and y1
9
6
  * @param {number} result_offset offset into the result array
10
- * @param {number} result_stride
7
+ * @param {number} result_stride useful for mixing multidimensional results
11
8
  * @param {number} p0
12
9
  * @param {number} p1
13
10
  * @param {number} m0
14
11
  * @param {number} m1
12
+ *
13
+ * @author Alex Goldring
14
+ * @copyright Company Named Limited (c) 2025
15
15
  */
16
16
  export function spline_hermite3_bounds(result: number[] | Float32Array, result_offset: number, result_stride: number, p0: number, p1: number, m0: number, m1: number): void;
17
17
  //# sourceMappingURL=spline_hermite3_bounds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spline_hermite3_bounds.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/spline/spline_hermite3_bounds.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AACH,+CARW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,iBACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QA4EhB"}
1
+ {"version":3,"file":"spline_hermite3_bounds.d.ts","sourceRoot":"","sources":["../../../../../src/core/math/spline/spline_hermite3_bounds.js"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AACH,+CAXW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,iBACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAqFhB"}
@@ -4,19 +4,19 @@ import { min2 } from "../min2.js";
4
4
  import { spline_hermite3 } from "./spline_hermite3.js";
5
5
 
6
6
  /**
7
- * Compute bounds of a 3-rd degree hermite curve
8
- * Note that this is a 1d case solver
7
+ * Compute `y0,y1` bounds of a cubic hermite spline.
9
8
  * Lower bound will be written into result[offset], upper bounds will be written into result[offset+result_stride]
10
- * Solution is based on https://stackoverflow.com/questions/24809978/calculating-the-bounding-box-of-cubic-bezier-curve
11
- * Differentiation of hermite polynomial is done in WolframAlpha
12
- * 0 = 3 t^2 (m0 + m1 + 2 p0 - 2 p1) - 2 t (2 m0 + m1 + 3 p0 - 3 p1) + m0
13
- * @param {number[]|Float32Array} result
9
+ *
10
+ * @param {number[]|Float32Array} result output will be written here, only y0 and y1
14
11
  * @param {number} result_offset offset into the result array
15
- * @param {number} result_stride
12
+ * @param {number} result_stride useful for mixing multidimensional results
16
13
  * @param {number} p0
17
14
  * @param {number} p1
18
15
  * @param {number} m0
19
16
  * @param {number} m1
17
+ *
18
+ * @author Alex Goldring
19
+ * @copyright Company Named Limited (c) 2025
20
20
  */
21
21
  export function spline_hermite3_bounds(
22
22
  result,
@@ -24,6 +24,12 @@ export function spline_hermite3_bounds(
24
24
  result_stride,
25
25
  p0, p1, m0, m1) {
26
26
 
27
+ /*
28
+ Solution is based on https://stackoverflow.com/questions/24809978/calculating-the-bounding-box-of-cubic-bezier-curve
29
+ Differentiation of hermite polynomial is done in WolframAlpha:
30
+ 0 = 3 t^2 (m0 + m1 + 2 p0 - 2 p1) - 2 t (2 m0 + m1 + 3 p0 - 3 p1) + m0
31
+ */
32
+
27
33
  assert.greaterThan(result_stride, 0, 'result_stride must be greater than 0');
28
34
  assert.isInteger(result_stride, 'result_stride');
29
35
 
@@ -2,10 +2,10 @@ export default ObservedBoolean;
2
2
  declare class ObservedBoolean extends Boolean {
3
3
  /**
4
4
  *
5
- * @param {boolean} value
5
+ * @param {boolean} [value=false]
6
6
  * @constructor
7
7
  */
8
- constructor(value: boolean);
8
+ constructor(value?: boolean);
9
9
  /**
10
10
  * @readonly
11
11
  * @type {Signal<boolean,boolean>}
@@ -50,7 +50,7 @@ declare class ObservedBoolean extends Boolean {
50
50
  process(f: (arg0: boolean, arg1: boolean) => any, thisArg?: any): this;
51
51
  /**
52
52
  *
53
- * @returns {Boolean}
53
+ * @returns {boolean}
54
54
  */
55
55
  getValue(): boolean;
56
56
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedBoolean.js"],"names":[],"mappings":";AAGA;IAQI;;;;OAIG;IACH,mBAHW,OAAO,EAcjB;IAtBD;;;OAGG;IACH,oBAFU,MAAM,CAAC,OAAO,EAAC,OAAO,CAAC,CAER;IAYrB;;;;OAIG;IACH,gBAAoB;IAmBxB;;;;OAIG;IACH,WAHW,OAAO,GACL,eAAe,CAa3B;IAED,gBAEC;IAED,iBAEC;IAED;;;OAGG;IACH,YAFW,eAAe,QAIzB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,YAFY,MAAM,CAIjB;IAED;;;;;OAKG;IACH,WAJW,CAAS,IAAO,EAAP,OAAO,EAAC,IAAO,EAAP,OAAO,QAAC,YACzB,GAAC,GACC,IAAI,CAWhB;IAED;;;OAGG;IACH,oBAEC;IAED;;OAEG;IACH,eAEC;IAED,kBAEC;IAED,yBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAItB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAKtB;IAeL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAlB1C;;eAIS,eAAe;cAMf,eAAe;;mBAjKN,4BAA4B"}
1
+ {"version":3,"file":"ObservedBoolean.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedBoolean.js"],"names":[],"mappings":";AAGA;IAQI;;;;OAIG;IACH,oBAHW,OAAO,EAcjB;IAtBD;;;OAGG;IACH,oBAFU,MAAM,CAAC,OAAO,EAAC,OAAO,CAAC,CAER;IAYrB;;;;OAIG;IACH,gBAAoB;IAmBxB;;;;OAIG;IACH,WAHW,OAAO,GACL,eAAe,CAa3B;IAED,gBAEC;IAED,iBAEC;IAED;;;OAGG;IACH,YAFW,eAAe,QAIzB;IAED;;;;OAIG;IACH,cAHW,eAAe,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,YAFY,MAAM,CAIjB;IAED;;;;;OAKG;IACH,WAJW,CAAS,IAAO,EAAP,OAAO,EAAC,IAAO,EAAP,OAAO,QAAC,YACzB,GAAC,GACC,IAAI,CAWhB;IAED;;;OAGG;IACH,YAFa,OAAO,CAInB;IAED;;OAEG;IACH,eAEC;IAED,kBAEC;IAED,yBAEC;IAED;;;OAGG;IACH,uBAFW,YAAY,QAItB;IAED;;;OAGG;IACH,yBAFW,YAAY,QAKtB;IAeL;;;OAGG;IACH,4BAFU,OAAO,CAE0B;CAlB1C;;eAIS,eAAe;cAMf,eAAe;;mBAjKN,4BAA4B"}
@@ -11,10 +11,10 @@ class ObservedBoolean extends Boolean {
11
11
 
12
12
  /**
13
13
  *
14
- * @param {boolean} value
14
+ * @param {boolean} [value=false]
15
15
  * @constructor
16
16
  */
17
- constructor(value) {
17
+ constructor(value=false) {
18
18
  super();
19
19
 
20
20
  assert.isBoolean(value, 'value');
@@ -113,7 +113,7 @@ class ObservedBoolean extends Boolean {
113
113
 
114
114
  /**
115
115
  *
116
- * @returns {Boolean}
116
+ * @returns {boolean}
117
117
  */
118
118
  getValue() {
119
119
  return this.__value;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedEnum.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedEnum.js"],"names":[],"mappings":";AAGA;IACI;;;;;OAKG;IACH,mBAJW,CAAC;;OAiBX;IATG;;;;OAIG;IACH,gBAAoB;IACpB;;MAA0B;IAE1B,0DAA6B;IAGjC;;;OAGG;IACH;;MAEC;IAED;;;;OAIG;IACH,WAHW,CAAC,GACC,YAAY,CAYxB;IAED;;;;OAIG;IACH,OAJa,CAAC,SACH,YAAY,CAAC,CAAC,CAAC,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,YAFW,YAAY,QAItB;IAED;;;OAGG;IACH,YAFa,CAAC,CAIb;IAED,eAEC;IAED;;;;;OAKG;IACH,mBAJW,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,QAAC,YACb,GAAC,GACC,IAAI,CAUhB;IAED,YAEC;IAED,yBAEC;CACJ;mBArGkB,4BAA4B"}
1
+ {"version":3,"file":"ObservedEnum.d.ts","sourceRoot":"","sources":["../../../../src/core/model/ObservedEnum.js"],"names":[],"mappings":";AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH;IACI;;;;OAIG;IACH,mBAHW,CAAC;;OAyBX;IAlBG;;;;OAIG;IACH,gBAAoB;IACpB;;;;OAIG;IACH,mBAA0B;IAE1B;;;OAGG;IACH,oBAFU,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAEQ;IAGjC;;;OAGG;IACH;;MAEC;IAED;;;;OAIG;IACH,WAHW,CAAC,GACC,YAAY,CAYxB;IAED;;;;OAIG;IACH,mBAHW,YAAY,CAAC,GAAC,CAAC,GACb,OAAO,CAInB;IAED;;;OAGG;IACH,QAFY,MAAM,CAcjB;IAED;;;OAGG;IACH,YAFW,YAAY,QAItB;IAED;;;OAGG;IACH,YAFa,CAAC,CAIb;IAED;;;;;OAKG;IACH,mBAJW,CAAS,IAAC,EAAD,CAAC,EAAC,IAAC,EAAD,CAAC,QAAC,YACb,GAAC,GACC,IAAI,CAUhB;IAED,YAEC;IAED,yBAEC;CACJ;mBA9IkB,4BAA4B"}