@woosh/meep-engine 2.119.16 → 2.119.19

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 (95) hide show
  1. package/README.md +2 -4
  2. package/build/bundle-worker-image-decoder.js +1 -1
  3. package/package.json +1 -1
  4. package/src/core/binary/BinaryBuffer.d.ts +2 -6
  5. package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
  6. package/src/core/binary/BinaryBuffer.js +7 -8
  7. package/src/core/binary/BitSet.d.ts.map +1 -1
  8. package/src/core/binary/BitSet.js +2 -3
  9. package/src/core/bvh2/bvh3/BVH.d.ts.map +1 -1
  10. package/src/core/bvh2/bvh3/BVH.js +8 -0
  11. package/src/core/cache/FrequencySketch.js +1 -1
  12. package/src/core/codegen/LineBuilder.d.ts +7 -1
  13. package/src/core/codegen/LineBuilder.d.ts.map +1 -1
  14. package/src/core/codegen/LineBuilder.js +10 -1
  15. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.d.ts.map +1 -1
  16. package/src/core/geom/2d/convex-hull/fixed_convex_hull_relaxation.js +1 -0
  17. package/src/core/geom/3d/Ray3.d.ts +12 -0
  18. package/src/core/geom/3d/Ray3.d.ts.map +1 -1
  19. package/src/core/geom/3d/Ray3.js +32 -0
  20. package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
  21. package/src/core/geom/3d/aabb/AABB3.js +17 -7
  22. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.d.ts +2 -2
  23. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.d.ts.map +1 -1
  24. package/src/core/geom/3d/sphere/harmonics/sh3_basis_at.js +11 -11
  25. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.d.ts.map +1 -1
  26. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +2 -1
  27. package/src/core/geom/3d/tetrahedra/bvh/tetrahedral_mesh_to_bvh.d.ts +8 -0
  28. package/src/core/geom/3d/tetrahedra/bvh/tetrahedral_mesh_to_bvh.d.ts.map +1 -0
  29. package/src/core/geom/3d/tetrahedra/bvh/tetrahedral_mesh_to_bvh.js +36 -0
  30. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_aabb3.d.ts +10 -0
  31. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_aabb3.d.ts.map +1 -0
  32. package/src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_aabb3.js +49 -0
  33. package/src/core/geom/random/randomPointInCircle.d.ts +3 -2
  34. package/src/core/geom/random/randomPointInCircle.d.ts.map +1 -1
  35. package/src/core/geom/random/randomPointInCircle.js +6 -3
  36. package/src/core/geom/vec2/v2_magnitude.d.ts +3 -5
  37. package/src/core/geom/vec2/v2_magnitude.d.ts.map +1 -1
  38. package/src/core/geom/vec2/v2_magnitude.js +3 -8
  39. package/src/core/graph/v2/NodeContainer.d.ts.map +1 -1
  40. package/src/core/graph/v2/NodeContainer.js +3 -9
  41. package/src/core/lang/reactive/AbstractCachingParser.d.ts +8 -5
  42. package/src/core/lang/reactive/AbstractCachingParser.d.ts.map +1 -1
  43. package/src/core/lang/reactive/AbstractCachingParser.js +19 -24
  44. package/src/core/lang/reactive/pegjs/ReactivePegParser.d.ts +2 -1
  45. package/src/core/lang/reactive/pegjs/ReactivePegParser.d.ts.map +1 -1
  46. package/src/core/localization/Localization.js +1 -1
  47. package/src/core/model/reactive/model/ReactiveBinaryExpression.d.ts.map +1 -1
  48. package/src/core/model/reactive/model/ReactiveBinaryExpression.js +17 -21
  49. package/src/core/model/reactive/model/ReactiveUnaryExpression.d.ts +1 -1
  50. package/src/core/model/reactive/model/ReactiveUnaryExpression.d.ts.map +1 -1
  51. package/src/core/model/reactive/model/ReactiveUnaryExpression.js +10 -10
  52. package/src/core/model/reactive/model/arithmetic/ReactiveNegate.d.ts.map +1 -1
  53. package/src/core/model/reactive/model/logic/ReactiveNot.d.ts.map +1 -1
  54. package/src/engine/achievements/AchievementGateway.d.ts.map +1 -1
  55. package/src/engine/achievements/AchievementGateway.js +1 -1
  56. package/src/engine/achievements/AchievementManager.d.ts +1 -1
  57. package/src/engine/achievements/AchievementManager.d.ts.map +1 -1
  58. package/src/engine/achievements/AchievementManager.js +16 -30
  59. package/src/engine/achievements/gateway/StorageAchievementGateway.d.ts.map +1 -1
  60. package/src/engine/achievements/gateway/StorageAchievementGateway.js +14 -9
  61. package/src/engine/ecs/EntityComponentDataset.d.ts.map +1 -1
  62. package/src/engine/ecs/EntityComponentDataset.js +5 -2
  63. package/src/engine/ecs/EntityReference.d.ts +6 -0
  64. package/src/engine/ecs/EntityReference.d.ts.map +1 -1
  65. package/src/engine/ecs/EntityReference.js +16 -1
  66. package/src/engine/ecs/storage/BinaryBufferDeSerializer.js +1 -1
  67. package/src/engine/graphics/sh3/prototypeSH3Probe.js +1 -1
  68. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts +10 -0
  69. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.d.ts.map +1 -1
  70. package/src/engine/graphics/texture/virtual/VirtualTextureTileLoader.js +39 -19
  71. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts +8 -0
  72. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.d.ts.map +1 -1
  73. package/src/engine/graphics/texture/virtual/VirtualTextureUsage.js +8 -1
  74. package/src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.d.ts.map +1 -1
  75. package/src/engine/graphics/texture/virtual/VirtualTextureUsageUpdater.js +2 -1
  76. package/src/engine/intelligence/behavior/composite/SequenceBehavior.d.ts.map +1 -1
  77. package/src/engine/intelligence/behavior/composite/SequenceBehavior.js +17 -5
  78. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.d.ts.map +1 -1
  79. package/src/engine/intelligence/behavior/ecs/BehaviorComponent.js +22 -54
  80. package/src/engine/intelligence/behavior/ecs/DieBehavior.d.ts.map +1 -1
  81. package/src/engine/intelligence/behavior/ecs/DieBehavior.js +2 -7
  82. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts +4 -0
  83. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.d.ts.map +1 -1
  84. package/src/engine/intelligence/behavior/ecs/SendEventBehavior.js +8 -7
  85. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.d.ts.map +1 -1
  86. package/src/engine/intelligence/behavior/ecs/WaitForEventBehavior.js +21 -22
  87. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts +0 -2
  88. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.d.ts.map +0 -1
  89. package/src/core/bvh2/bvh3/query/cache/BVH_QUERY_CACHE_SIZE.js +0 -1
  90. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts +0 -9
  91. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.d.ts.map +0 -1
  92. package/src/core/bvh2/bvh3/query/cache/bvh_query_cache_hash_v3.js +0 -31
  93. package/src/core/geom/2d/lt-grid/LooseTightGrid.d.ts +0 -55
  94. package/src/core/geom/2d/lt-grid/LooseTightGrid.d.ts.map +0 -1
  95. package/src/core/geom/2d/lt-grid/LooseTightGrid.js +0 -221
@@ -212,4 +212,36 @@ export class Ray3 extends Float32Array {
212
212
  equals(other) {
213
213
  return array_range_equal_strict(this, 0, other, 0, 7);
214
214
  }
215
+
216
+ /**
217
+ *
218
+ * @param {number} origin_x
219
+ * @param {number} origin_y
220
+ * @param {number} origin_z
221
+ * @param {number} direction_x
222
+ * @param {number} direction_y
223
+ * @param {number} direction_z
224
+ * @param {number} t_max
225
+ * @return {Ray3}
226
+ */
227
+ static from(
228
+ origin_x, origin_y, origin_z,
229
+ direction_x, direction_y, direction_z,
230
+ t_max = Infinity
231
+ ) {
232
+
233
+ const ray = new Ray3();
234
+
235
+ ray[0] = origin_x;
236
+ ray[1] = origin_y;
237
+ ray[2] = origin_z;
238
+
239
+ ray[3] = direction_x;
240
+ ray[4] = direction_y;
241
+ ray[5] = direction_z;
242
+
243
+ ray[6] = t_max;
244
+
245
+ return ray;
246
+ }
215
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"AAeA;;;GAGG;AACH;IACI;;;;;;;;;OASG;IACH,iBARW,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,EAYhB;IAyCD,gBAEC;IA7BD,aAEC;IA6BD,gBAEC;IA5BD,aAEC;IA4BD,gBAEC;IA5BD,aAEC;IA4BD,gBAEC;IA3BD,aAEC;IA2BD,gBAEC;IA1BD,aAEC;IA0BD,gBAEC;IA1BD,aAEC;IAGG,QAAW;IAIX,QAAW;IAIX,QAAW;IAIX,QAAW;IAIX,QAAW;IAIX,QAAW;IAGf;;;;;;OAMG;IACH,iBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,8BANW,MAAM,KACN,MAAM,KACN,MAAM,aACN,MAAM,GACJ,OAAO,CAMnB;IAED;;;OAGG;IACH,sBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,iBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFW,KAAK,QAIf;IAED;;;;;;;;OAQG;IACH,wFAsCC;IAED;;;;OAIG;IACH,cAHW,KAAK,GACH,OAAO,CAInB;IAED;;;;;;;;;OASG;IACH,iFAFa,OAAO,CASnB;IAED;;;;;;;;OAQG;IACH,iGA6BC;IAED,oCAEC;IAED,0BAEC;IAED;;;;;OAKG;IACH,cAJW,MAAM,KACN,MAAM,KACN,MAAM,QAOhB;IAED;;;;;;OAMG;IACH,oBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAQlB;IAED;;;;OAIG;IACH,mBAHW,KAAK,GACH,MAAM,CAIlB;IAED;;;;;;;;;;OAUG;IACH,mBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAclB;IAED;;;;OAIG;IACH,wBAHW,KAAK,GACH,MAAM,CAIlB;IAED;;;;;;;;;;OAUG;IACH,sBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAsClB;IAED;;;;;;OAMG;IACH,qBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,OAAO,CA6BnB;IAED;;;;OAIG;IACH,iBAHW,KAAK,GACH,OAAO,CAInB;IAED;;;;;;;;;OASG;IACH,iBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,OAAO,CA6BnB;IAED;;;;;;;;;OASG;IACH,iBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,iBAHW,KAAK,GACH,OAAO,CAInB;IAED;;;OAGG;IACH,eAFa,MAAM,CAIlB;IAED,oBAEC;IAED;;;OAGG;IACH,eAFa,MAAM,CAIlB;IAED,qBAEC;IAED;;;OAGG;IACH,eAFa,MAAM,CAIlB;IAED,oBAEC;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,mBAFW,OAAO,QAQjB;IAED;;;OAGG;IACH,cAFa,MAAM,CAIlB;IAED,sBAEC;IAED;;;OAGG;IACH,cAFa,MAAM,CAIlB;IAED,sBAEC;IAED;;;OAGG;IACH,cAFa,MAAM,CAIlB;IAED,sBAEC;IAED;;;OAGG;IACH,mBAFW,OAAO,WASjB;IAGD;;;;;;;;OAQG;IACH,4EAEC;IAED,kGAEC;IAED;;;;OAIG;IACH,kCAFa,OAAO,CAMnB;IAED;;;;OAIG;IACH,oDAmBC;IAED;;;OAGG;IACH,mBAFW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,QAa5C;IAED;;;;OAIG;IACH,qBAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,WAClC,MAAM,QAYhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,WAClC,MAAM,QAchB;IAED;;;OAGG;IACH,wBAHW,MAAM,KAAK,OAWrB;IAED;;;;;;;OAOG;IACH,oCANW,MAAM,YACN,MAAM,YACN,MAAM,UACN,MAAM,GACJ,MAAM,CAQlB;IAED;;;;;;;OAOG;IACH,wBANW,MAAM,YACN,MAAM,YACN,MAAM,UACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,4BAFY,OAAO,CAMlB;IAED;;;OAGG;IACH,+BAHW,OAAO,GACL,OAAO,CAanB;IAED;;;;OAIG;IACH,0CAFa,MAAM,CAoBlB;IAED;;;;OAIG;IACH,sCAHW,MAAM,EAAE,GACN,MAAM,CAMlB;IAED;;;;OAIG;IACH;;QAFa,OAAO,CAYnB;IAED;;;;OAIG;IACH,gCAHW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,GACrC,OAAO,CAYnB;IAED;;;OAGG;IACH,qBAFW,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,QAWjD;IAED;;;OAGG;IACH,YAFW,MAAM,QAUhB;IAED;;;OAGG;IACH,SAFa,KAAK,CAQjB;IAED;;;;;;;aAEC;IAIL;;;OAGG;IACH,kBAFU,OAAO,CAEM;IAEvB;;;;OAIG;IACH,iBAFU,MAAM,CAEM;IAn4BlB,mDAUC;CA22BJ;oBA75BmB,kBAAkB"}
1
+ {"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"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"}
@@ -576,11 +576,11 @@ export class AABB3 {
576
576
  * @param {Vector3} target
577
577
  */
578
578
  getExtents(target) {
579
- const x = (this.x1 - this.x0);
580
- const y = (this.y1 - this.y0);
581
- const z = (this.z1 - this.z0);
582
-
583
- target.set(x, y, z);
579
+ target.set(
580
+ this.width,
581
+ this.height,
582
+ this.height,
583
+ );
584
584
  }
585
585
 
586
586
  /**
@@ -627,7 +627,12 @@ export class AABB3 {
627
627
  const x = this.getCenterX();
628
628
  const y = this.getCenterY();
629
629
  const z = this.getCenterZ();
630
- target.set(x, y, z);
630
+
631
+ target.set(
632
+ x,
633
+ y,
634
+ z
635
+ );
631
636
 
632
637
  return target;
633
638
  }
@@ -709,7 +714,7 @@ export class AABB3 {
709
714
  * @param {number[]|Float32Array|Float64Array} result
710
715
  * @param {number} offset
711
716
  */
712
- writeToArray(result, offset = 0) {
717
+ writeToArray(result = [], offset = 0) {
713
718
  assert.isNonNegativeInteger(offset, 'offset');
714
719
 
715
720
  result[offset] = this.x0;
@@ -719,6 +724,8 @@ export class AABB3 {
719
724
  result[offset + 3] = this.x1;
720
725
  result[offset + 4] = this.y1;
721
726
  result[offset + 5] = this.z1;
727
+
728
+ return result;
722
729
  }
723
730
 
724
731
  /**
@@ -933,6 +940,9 @@ export class AABB3 {
933
940
  */
934
941
  AABB3.prototype.isAABB3 = true;
935
942
 
943
+ AABB3.prototype.toArray = AABB3.prototype.writeToArray;
944
+ AABB3.prototype.fromArray = AABB3.prototype.readFromArray;
945
+
936
946
  /**
937
947
  * Pretending to be an array
938
948
  * @readonly
@@ -5,7 +5,7 @@
5
5
  * @param {number} x
6
6
  * @param {number} y
7
7
  * @param {number} z
8
- * @param {number[]|ArrayLike<number>|Float32Array|Float64Array} shBasis
8
+ * @param {number[]|ArrayLike<number>|Float32Array|Float64Array} output output is written here
9
9
  */
10
- export function sh3_basis_at(x: number, y: number, z: number, shBasis: number[] | ArrayLike<number> | Float32Array | Float64Array): void;
10
+ export function sh3_basis_at(x: number, y: number, z: number, output: number[] | ArrayLike<number> | Float32Array | Float64Array): void;
11
11
  //# sourceMappingURL=sh3_basis_at.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sh3_basis_at.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_basis_at.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,gCALW,MAAM,KACN,MAAM,KACN,MAAM,WACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,GAAC,YAAY,QA+B9D"}
1
+ {"version":3,"file":"sh3_basis_at.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_basis_at.js"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,gCALW,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,GAAC,YAAY,GAAC,YAAY,QA+B9D"}
@@ -8,9 +8,9 @@ import { assert } from "../../../../assert.js";
8
8
  * @param {number} x
9
9
  * @param {number} y
10
10
  * @param {number} z
11
- * @param {number[]|ArrayLike<number>|Float32Array|Float64Array} shBasis
11
+ * @param {number[]|ArrayLike<number>|Float32Array|Float64Array} output output is written here
12
12
  */
13
- export function sh3_basis_at(x, y, z, shBasis) {
13
+ export function sh3_basis_at(x, y, z, output) {
14
14
 
15
15
  assert.isNumber(x,'x');
16
16
  assert.notNaN(x,'x');
@@ -25,18 +25,18 @@ export function sh3_basis_at(x, y, z, shBasis) {
25
25
 
26
26
 
27
27
  // band 0
28
- shBasis[0] = 0.28209479177387814;
28
+ output[0] = 0.28209479177387814;
29
29
 
30
30
  // band 1
31
- shBasis[1] = -0.4886025119029199 * y;
32
- shBasis[2] = 0.4886025119029199 * z;
33
- shBasis[3] = -0.4886025119029199 * x;
31
+ output[1] = -0.4886025119029199 * y;
32
+ output[2] = 0.4886025119029199 * z;
33
+ output[3] = -0.4886025119029199 * x;
34
34
 
35
35
  // band 2
36
- shBasis[4] = 1.0925484305920792 * x * y;
37
- shBasis[5] = -1.0925484305920792 * y * z;
38
- shBasis[6] = 0.31539156525252005 * (3 * z * z - 1);
39
- shBasis[7] = -1.0925484305920792 * x * z;
40
- shBasis[8] = 0.5462742152960396 * (x * x - y * y);
36
+ output[4] = 1.0925484305920792 * x * y;
37
+ output[5] = -1.0925484305920792 * y * z;
38
+ output[6] = 0.31539156525252005 * (3 * z * z - 1);
39
+ output[7] = -1.0925484305920792 * x * z;
40
+ output[8] = 0.5462742152960396 * (x * x - y * y);
41
41
 
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sh3_dering_optimize_positive.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js"],"names":[],"mappings":"AAgSA;;;;;;;GAOG;AACH,qDANW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,oBAClC,MAAM,oBACN,MAAM,QAIhB"}
1
+ {"version":3,"file":"sh3_dering_optimize_positive.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js"],"names":[],"mappings":"AAiSA;;;;;;;GAOG;AACH,qDANW,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,oBAClC,MAAM,oBACN,MAAM,QAIhB"}
@@ -2,6 +2,7 @@ import { mat3, vec3 } from "gl-matrix";
2
2
  import { assert } from "../../../../assert.js";
3
3
  import { array_copy } from "../../../../collection/array/array_copy.js";
4
4
  import { min2 } from "../../../../math/min2.js";
5
+ import { sinc } from "../../../../math/sinc.js";
5
6
  import { SH3_COEFFICIENTS } from "./SH3_COEFFICIENTS.js";
6
7
  import { sh3_rotate_bl } from "./sh3_rotate_bl.js";
7
8
  import { sh_index } from "./sh_index.js";
@@ -34,7 +35,7 @@ function sinc_window(l, w) {
34
35
  // a sinc window only has zonal harmonics
35
36
  let x = (Math.PI * l) / w;
36
37
 
37
- x = Math.sin(x) / x;
38
+ x = sinc(x);
38
39
 
39
40
  // The convolution of a SH function f and a ZH function h is just the product of both
40
41
  // scaled by 1 / K(0,l) -- the window coefficients include this scale factor.
@@ -0,0 +1,8 @@
1
+ /**
2
+ *
3
+ * @param {BVH} bvh
4
+ * @param {TetrahedralMesh} mesh
5
+ * @param {number[]} positions
6
+ */
7
+ export function tetrahedral_mesh_to_bvh(bvh: BVH, mesh: TetrahedralMesh, positions: number[]): void;
8
+ //# sourceMappingURL=tetrahedral_mesh_to_bvh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tetrahedral_mesh_to_bvh.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/tetrahedra/bvh/tetrahedral_mesh_to_bvh.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,oFAFW,MAAM,EAAE,QA4BlB"}
@@ -0,0 +1,36 @@
1
+ import { ELEMENT_WORD_COUNT } from "../../../../bvh2/bvh3/BVH.js";
2
+ import { tetrahedral_mesh_compute_tet_aabb3 } from "../tetrahedral_mesh_compute_tet_aabb3.js";
3
+
4
+ /**
5
+ *
6
+ * @param {BVH} bvh
7
+ * @param {TetrahedralMesh} mesh
8
+ * @param {number[]} positions
9
+ */
10
+ export function tetrahedral_mesh_to_bvh(bvh, mesh, positions) {
11
+
12
+ const count = mesh.count;
13
+
14
+ bvh.release_all();
15
+ bvh.node_capacity = Math.max(0, count * 2 - 1);
16
+
17
+ const float32 = bvh.data_float32;
18
+
19
+ for (let tet_index = 0; tet_index < count; tet_index++) {
20
+
21
+ const node_id = bvh.allocate_node();
22
+
23
+ const address = node_id * ELEMENT_WORD_COUNT
24
+
25
+ tetrahedral_mesh_compute_tet_aabb3(
26
+ float32, address,
27
+ mesh, tet_index, positions
28
+ );
29
+
30
+ bvh.node_set_user_data(node_id, tet_index);
31
+
32
+ bvh.insert_leaf(node_id);
33
+
34
+ }
35
+
36
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} out
4
+ * @param {number} out_offset
5
+ * @param {TetrahedralMesh} mesh
6
+ * @param {number} tet_index
7
+ * @param {number[]|Float32Array} positions
8
+ */
9
+ export function tetrahedral_mesh_compute_tet_aabb3(out: number[] | Float32Array, out_offset: number, mesh: TetrahedralMesh, tet_index: number, positions: number[] | Float32Array): void;
10
+ //# sourceMappingURL=tetrahedral_mesh_compute_tet_aabb3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tetrahedral_mesh_compute_tet_aabb3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/tetrahedra/tetrahedral_mesh_compute_tet_aabb3.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wDANW,MAAM,EAAE,GAAC,YAAY,cACrB,MAAM,oCAEN,MAAM,aACN,MAAM,EAAE,GAAC,YAAY,QA0C/B"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ *
3
+ * @param {number[]|Float32Array} out
4
+ * @param {number} out_offset
5
+ * @param {TetrahedralMesh} mesh
6
+ * @param {number} tet_index
7
+ * @param {number[]|Float32Array} positions
8
+ */
9
+ export function tetrahedral_mesh_compute_tet_aabb3(
10
+ out, out_offset,
11
+ mesh, tet_index,
12
+ positions
13
+ ) {
14
+
15
+ const vertex_index = mesh.getVertexIndex(tet_index, 0);
16
+ out[out_offset] = out[out_offset + 3] = positions[vertex_index * 3];
17
+ out[out_offset + 1] = out[out_offset + 4] = positions[vertex_index * 3 + 1];
18
+ out[out_offset + 2] = out[out_offset + 5] = positions[vertex_index * 3 + 2];
19
+
20
+ for (let j = 1; j < 4; j++) {
21
+
22
+ const vertex_index = mesh.getVertexIndex(tet_index, j);
23
+
24
+ const v3 = vertex_index * 3;
25
+
26
+ const x = positions[v3];
27
+ const y = positions[v3 + 1];
28
+ const z = positions[v3 + 2];
29
+
30
+ if (x < out[out_offset]) {
31
+ out[out_offset] = x;
32
+ } else if (x > out[out_offset + 3]) {
33
+ out[out_offset + 3] = x;
34
+ }
35
+
36
+ if (y < out[out_offset + 1]) {
37
+ out[out_offset + 1] = y;
38
+ } else if (y > out[out_offset + 4]) {
39
+ out[out_offset + 4] = y;
40
+ }
41
+
42
+ if (z < out[out_offset + 2]) {
43
+ out[out_offset + 2] = z;
44
+ } else if (z > out[out_offset + 5]) {
45
+ out[out_offset + 5] = z;
46
+ }
47
+
48
+ }
49
+ }
@@ -2,7 +2,8 @@
2
2
  * Pick a random point within a unit circle
3
3
  * Based on: https://stackoverflow.com/questions/5837572/generate-a-random-point-within-a-circle-uniformly
4
4
  * @param {function} random
5
- * @param {Vector2} result
5
+ * @param {number[]|Float32Array} result
6
+ * @param {number} result_offset
6
7
  */
7
- export function randomPointInCircle(random: Function, result: Vector2): void;
8
+ export function randomPointInCircle(random: Function, result: number[] | Float32Array, result_offset: number): void;
8
9
  //# sourceMappingURL=randomPointInCircle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"randomPointInCircle.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/random/randomPointInCircle.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,6EASC"}
1
+ {"version":3,"file":"randomPointInCircle.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/random/randomPointInCircle.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,8DAHW,MAAM,EAAE,GAAC,YAAY,iBACrB,MAAM,QAahB"}
@@ -4,9 +4,10 @@ import { PI2 } from "../../math/PI2.js";
4
4
  * Pick a random point within a unit circle
5
5
  * Based on: https://stackoverflow.com/questions/5837572/generate-a-random-point-within-a-circle-uniformly
6
6
  * @param {function} random
7
- * @param {Vector2} result
7
+ * @param {number[]|Float32Array} result
8
+ * @param {number} result_offset
8
9
  */
9
- export function randomPointInCircle(random, result) {
10
+ export function randomPointInCircle(random, result, result_offset) {
10
11
  const r = Math.sqrt(random());
11
12
 
12
13
  const theta = random() * PI2;
@@ -14,5 +15,7 @@ export function randomPointInCircle(random, result) {
14
15
  const x = r * Math.cos(theta);
15
16
  const y = r * Math.sin(theta);
16
17
 
17
- result.set(x, y);
18
+ result[result_offset] = x;
19
+ result[result_offset + 1] = y;
20
+
18
21
  }
@@ -1,8 +1,6 @@
1
1
  /**
2
- *
3
- * @param {number} x
4
- * @param {number} y
5
- * @returns {number}
2
+ * @deprecated
6
3
  */
7
- export function v2_magnitude(x: number, y: number): number;
4
+ export const v2_magnitude: typeof v2_length;
5
+ import { v2_length } from "./v2_length.js";
8
6
  //# sourceMappingURL=v2_magnitude.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"v2_magnitude.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_magnitude.js"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,gCAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB"}
1
+ {"version":3,"file":"v2_magnitude.d.ts","sourceRoot":"","sources":["../../../../../src/core/geom/vec2/v2_magnitude.js"],"names":[],"mappings":"AAEA;;GAEG;AACH,4CAAsC;0BALZ,gBAAgB"}
@@ -1,11 +1,6 @@
1
- import { v2_length_sqr } from "./v2_length_sqr.js";
1
+ import { v2_length } from "./v2_length.js";
2
2
 
3
3
  /**
4
- *
5
- * @param {number} x
6
- * @param {number} y
7
- * @returns {number}
4
+ * @deprecated
8
5
  */
9
- export function v2_magnitude(x, y) {
10
- return Math.sqrt(v2_length_sqr(x, y));
11
- }
6
+ export const v2_magnitude = v2_length;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeContainer.d.ts","sourceRoot":"","sources":["../../../../../src/core/graph/v2/NodeContainer.js"],"names":[],"mappings":"AAEA;;;;GAIG;AACH;IACI;;;OAGG;IACH,MAFU,CAAC,CAEC;IAEZ;;;;OAIG;IACH,gBAAa;IAEb;;;;;OAKG;IACH,oBAAwB;IAExB;;;OAGG;IACH,sBAEC;IAED;;;OAGG;IACH,gBAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,YAFY,SAAS,CAIpB;IAED;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,oBAEC;IAGD;;;OAGG;IACH,0BAUC;IAED;;;OAGG;IACH,yBAUC;IAGD;;;;OAIG;IACH,yBAHW,SAAS,GACP,MAAM,CAsBlB;IAED;;;;OAIG;IACH,yBAHW,SAAS,GACP,MAAM,CAsBlB;IAED;;;OAGG;IACH,wBAFY,MAAM,CAuBjB;IAGD;;;;OAIG;IACH,0BAHW,CAAC,GACC,OAAO,CAMnB;IAED;;;;;OAKG;IACH,+DAFa,MAAM,CAclB;IAED;;;;OAIG;IACH,sBAHW,CAAC,GACC,UAAQ,SAAS,CAwB7B;IAED;;;;OAIG;IACH,6BAHW,CAAC,GACC,UAAQ,SAAS,CA0B7B;IAED;;;;OAIG;IACH,kBAFa,OAAO,CAoBnB;IAED;;;;OAIG;IACH,qBAFa,OAAO,CAsBnB;CACJ"}
1
+ {"version":3,"file":"NodeContainer.d.ts","sourceRoot":"","sources":["../../../../../src/core/graph/v2/NodeContainer.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;IACI;;;OAGG;IACH,MAFU,CAAC,CAEC;IAEZ;;;;OAIG;IACH,gBAAa;IAEb;;;;;OAKG;IACH,oBAAwB;IAExB;;;OAGG;IACH,sBAEC;IAED;;;OAGG;IACH,gBAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,YAFY,SAAS,CAIpB;IAED;;;OAGG;IACH,mBAEC;IAED;;;OAGG;IACH,oBAEC;IAGD;;;OAGG;IACH,0BAUC;IAED;;;OAGG;IACH,yBAUC;IAGD;;;;OAIG;IACH,yBAHW,SAAS,GACP,MAAM,CAsBlB;IAED;;;;OAIG;IACH,yBAHW,SAAS,GACP,MAAM,CAsBlB;IAED;;;OAGG;IACH,wBAFY,MAAM,CAmBjB;IAGD;;;;OAIG;IACH,0BAHW,CAAC,GACC,OAAO,CAMnB;IAED;;;;;OAKG;IACH,+DAFa,MAAM,CAclB;IAED;;;;OAIG;IACH,sBAHW,CAAC,GACC,UAAQ,SAAS,CAwB7B;IAED;;;;OAIG;IACH,6BAHW,CAAC,GACC,UAAQ,SAAS,CA0B7B;IAED;;;;OAIG;IACH,kBAFa,OAAO,CAoBnB;IAED;;;;OAIG;IACH,qBAFa,OAAO,CAsBnB;CACJ"}
@@ -1,5 +1,3 @@
1
- import { EdgeDirectionType } from "../Edge.js";
2
-
3
1
  /**
4
2
  * Supplementary structure to `Graph`, holds edges and neighbour nodes for fast access
5
3
  * Used internally by `Graph`
@@ -170,11 +168,7 @@ export class NodeContainer {
170
168
  for (let i = 0; i < edge_count; i++) {
171
169
  const edge = edges[i];
172
170
 
173
- if (
174
- (edge.first === current_node && edge.direction === EdgeDirectionType.Forward)
175
- || (edge.second === current_node && edge.direction === EdgeDirectionType.Backward)
176
-
177
- ) {
171
+ if (edge.isDirectedTowards(current_node)) {
178
172
  r++;
179
173
  }
180
174
  }
@@ -262,8 +256,8 @@ export class NodeContainer {
262
256
  const edge = edges[i];
263
257
 
264
258
  if (
265
- (edge.second === other && edge.direction === EdgeDirectionType.Forward)
266
- || (edge.first === other && edge.direction === EdgeDirectionType.Backward)
259
+ (edge.second === other && edge.traversableForward())
260
+ || (edge.first === other && edge.traversableBackward())
267
261
 
268
262
  ) {
269
263
  return edge;
@@ -1,9 +1,12 @@
1
- export class AbstractCachingParser {
1
+ /**
2
+ * @template T
3
+ */
4
+ export class AbstractCachingParser<T> {
2
5
  /**
3
6
  * Parser cache
4
- * @type {Cache<string, *>}
7
+ * @type {Cache<string, T>}
5
8
  */
6
- __cache: Cache<string, any>;
9
+ __cache: Cache<string, T>;
7
10
  /**
8
11
  *
9
12
  * @param {string} code
@@ -14,9 +17,9 @@ export class AbstractCachingParser {
14
17
  /**
15
18
  *
16
19
  * @param {string} code
17
- * @returns {*}
20
+ * @returns {T}
18
21
  */
19
- parse(code: string): any;
22
+ parse(code: string): T;
20
23
  /**
21
24
  *
22
25
  * @param {string} code
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractCachingParser.d.ts","sourceRoot":"","sources":["../../../../../src/core/lang/reactive/AbstractCachingParser.js"],"names":[],"mappings":"AAMA;IAEQ;;;OAGG;IACH,SAFU,MAAM,MAAM,MAAI,CAKxB;IAGN;;;;;OAKG;IACH,wBAEC;IAED;;;;OAIG;IACH,YAHW,MAAM,OAoBhB;IAED;;;;OAIG;IACH,eAHW,MAAM,wCAgBhB;CACJ;sBAtEqB,sBAAsB;qBAEvB,wBAAwB"}
1
+ {"version":3,"file":"AbstractCachingParser.d.ts","sourceRoot":"","sources":["../../../../../src/core/lang/reactive/AbstractCachingParser.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IAEI;;;OAGG;IACH,SAFU,MAAM,MAAM,EAAE,CAAC,CAAC,CAKvB;IAGH;;;;;OAKG;IACH,wBAEC;IAED;;;;OAIG;IACH,YAHW,MAAM,GACJ,CAAC,CAWb;IAED;;;;OAIG;IACH,eAHW,MAAM,wCAgBhB;CACJ;sBAjEqB,sBAAsB;qBAEvB,wBAAwB"}
@@ -4,17 +4,20 @@ import { Cache } from "../../cache/Cache.js";
4
4
  import { noop } from "../../function/noop.js";
5
5
  import { computeStringHash } from "../../primitives/strings/computeStringHash.js";
6
6
 
7
+ /**
8
+ * @template T
9
+ */
7
10
  export class AbstractCachingParser {
8
- constructor() {
9
- /**
10
- * Parser cache
11
- * @type {Cache<string, *>}
12
- */
13
- this.__cache = new Cache({
14
- maxWeight: 1000,
15
- keyHashFunction: computeStringHash
16
- });
17
- }
11
+
12
+ /**
13
+ * Parser cache
14
+ * @type {Cache<string, T>}
15
+ */
16
+ __cache = new Cache({
17
+ maxWeight: 1000,
18
+ keyHashFunction: computeStringHash
19
+ });
20
+
18
21
 
19
22
  /**
20
23
  *
@@ -29,25 +32,17 @@ export class AbstractCachingParser {
29
32
  /**
30
33
  *
31
34
  * @param {string} code
32
- * @returns {*}
35
+ * @returns {T}
33
36
  */
34
37
  parse(code) {
35
- assert.typeOf(code, 'string', 'code');
38
+ assert.isString(code, 'code');
36
39
 
40
+ // applying trim increases chances of cache keys matching
37
41
  const trimmedCode = code.trim();
38
42
 
39
43
  assert.notEqual(trimmedCode, "", 'code is empty');
40
- //check cache
41
- let parseTree = this.__cache.get(trimmedCode);
42
-
43
- if (parseTree === null) {
44
- parseTree = this.__invoke_parser(trimmedCode);
45
-
46
- //cache compiled expression
47
- this.__cache.put(trimmedCode, parseTree);
48
- }
49
44
 
50
- return parseTree;
45
+ return this.__cache.getOrCompute(trimmedCode, this.__invoke_parser, this);
51
46
  }
52
47
 
53
48
  /**
@@ -56,8 +51,8 @@ export class AbstractCachingParser {
56
51
  * @param {function(e:Error)} [errorConsumer]
57
52
  */
58
53
  validate(code, errorConsumer = noop) {
59
- assert.typeOf(code, 'string', 'code');
60
- assert.typeOf(errorConsumer, 'function', 'errorConsumer');
54
+ assert.isString(code, 'code');
55
+ assert.isFunction(errorConsumer, 'errorConsumer');
61
56
 
62
57
  try {
63
58
  this.parse(code);
@@ -1,4 +1,5 @@
1
- export class ReactivePegParser extends AbstractCachingParser {
1
+ export class ReactivePegParser extends AbstractCachingParser<any> {
2
+ constructor();
2
3
  __invoke_parser(code: any): any;
3
4
  }
4
5
  export namespace ReactivePegParser {
@@ -1 +1 @@
1
- {"version":3,"file":"ReactivePegParser.d.ts","sourceRoot":"","sources":["../../../../../../src/core/lang/reactive/pegjs/ReactivePegParser.js"],"names":[],"mappings":"AAGA;IAEI,gCAEC;CACJ;;kBAIS,iBAAiB;;sCAZW,6BAA6B"}
1
+ {"version":3,"file":"ReactivePegParser.d.ts","sourceRoot":"","sources":["../../../../../../src/core/lang/reactive/pegjs/ReactivePegParser.js"],"names":[],"mappings":"AAGA;;IAEI,gCAEC;CACJ;;kBAIS,iBAAiB;;sCAZW,6BAA6B"}
@@ -209,7 +209,7 @@ export class Localization {
209
209
 
210
210
  const suggestions = similarities.slice(0, 3).map(p => p.key);
211
211
 
212
- return `No localization value for id='${id}', seed=${seed_string}, approximate matches: ${suggestions.join(', ')}`;
212
+ return `No localization value for id='${id}', seed=${seed_string}, best approximate matches: ${suggestions.join(', ')}`;
213
213
  });
214
214
 
215
215
  console.warn(message);
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveBinaryExpression.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/reactive/model/ReactiveBinaryExpression.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACI,cAqBC;IAlBG;;;OAGG;IACH,MAFU,0BAAmB,IAAI,CAEjB;IAChB;;;OAGG;IACH,OAFU,0BAAmB,IAAI,CAEhB;IAEjB;;;;OAIG;IACH,mBAA2B;IAI/B,uBAQC;IAED,wBAcC;IAED,eAMC;IAED,0BAQC;IAED,eAUC;IAED;;;OAGG;IACH,kCAFa,IAAE,OAAO,GAAC,MAAM,CAI5B;IAED,2CAKC;IAED;;;;OAIG;IACH,qCAkBC;IAED,mBAaC;IAyBL;;;;;;OAMG;IACH,wBAFU,OAAO,CAE+B;IAEhD;;;OAGG;IACH,6BAFU,OAAO,CAEoC;CAfpD;mCAjKkC,yBAAyB"}
1
+ {"version":3,"file":"ReactiveBinaryExpression.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/reactive/model/ReactiveBinaryExpression.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;;IAEI;;;OAGG;IACH,MAFU,0BAAmB,IAAI,CAErB;IACZ;;;OAGG;IACH,OAFU,0BAAmB,IAAI,CAEpB;IAEb;;;;OAIG;IACH,mBAAuB;IAEvB,uBAQC;IAED,wBAcC;IAED,eAMC;IAED,0BAQC;IAED,eAUC;IAED;;;OAGG;IACH,kCAFa,IAAE,OAAO,GAAC,MAAM,CAI5B;IAED,2CAKC;IAED;;;;OAIG;IACH,qCAkBC;IAED,mBAaC;IAyBL;;;;;;OAMG;IACH,wBAFU,OAAO,CAE+B;IAEhD;;;OAGG;IACH,6BAFU,OAAO,CAEoC;CAfpD;mCA7JkC,yBAAyB"}
@@ -6,28 +6,24 @@ import { ReactiveExpression } from "./ReactiveExpression.js";
6
6
  * @extends {ReactiveExpression}
7
7
  */
8
8
  export class ReactiveBinaryExpression extends ReactiveExpression {
9
- constructor() {
10
- super();
11
-
12
- /**
13
- *
14
- * @type {ReactiveExpression|null}
15
- */
16
- this.left = null;
17
- /**
18
- *
19
- * @type {ReactiveExpression|null}
20
- */
21
- this.right = null;
22
-
23
- /**
24
- *
25
- * @type {undefined}
26
- * @private
27
- */
28
- this.__oldValue = undefined;
29
9
 
30
- }
10
+ /**
11
+ *
12
+ * @type {ReactiveExpression|null}
13
+ */
14
+ left = null;
15
+ /**
16
+ *
17
+ * @type {ReactiveExpression|null}
18
+ */
19
+ right = null;
20
+
21
+ /**
22
+ *
23
+ * @type {undefined}
24
+ * @private
25
+ */
26
+ __oldValue = undefined;
31
27
 
32
28
  copy(other) {
33
29
  assert.equal(other.isReactiveExpression, true, 'other.isReactiveExpression !== true');
@@ -17,7 +17,7 @@ export class ReactiveUnaryExpression<T, R> extends ReactiveExpression<any> {
17
17
  * @protected
18
18
  */
19
19
  protected transform(v: any): void;
20
- evaluate(scope: any): any;
20
+ evaluate(scope: any): void;
21
21
  /**
22
22
  *
23
23
  * @param {ReactiveExpression} other
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveUnaryExpression.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/reactive/model/ReactiveUnaryExpression.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACI,cASC;IANG;;;OAGG;IACH,QAFU,mBAAmB,CAAC,CAAC,CAEb;IAItB,uBAMC;IAED,qBAIC;IAED,2CAIC;IAED,2BAMC;IAED,mBAIC;IAED;;OAEG;IACH,kCAEC;IAED,0BAIC;IAED;;;;OAIG;IACH,wCAFa,OAAO,CAOnB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED,iBAEC;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAEkC;CANlD;mCAvFkC,yBAAyB"}
1
+ {"version":3,"file":"ReactiveUnaryExpression.d.ts","sourceRoot":"","sources":["../../../../../../src/core/model/reactive/model/ReactiveUnaryExpression.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;;IAEI;;;OAGG;IACH,QAFU,mBAAmB,CAAC,CAAC,CAEjB;IAEd,uBAMC;IAED,qBAIC;IAED,2CAIC;IAED,2BAMC;IAED,mBAQC;IAED;;OAEG;IACH,kCAEC;IAED,2BAIC;IAED;;;;OAIG;IACH,wCAFa,OAAO,CAOnB;IAED;;;OAGG;IACH,QAFa,MAAM,CAIlB;IAED,iBAEC;IAGL;;;OAGG;IACH,4BAFU,OAAO,CAEkC;CANlD;mCAvFkC,yBAAyB"}