@woosh/meep-engine 2.59.6 → 2.60.1

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 (41) hide show
  1. package/build/meep.cjs +194 -184
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +194 -184
  4. package/package.json +1 -1
  5. package/src/core/bvh2/binary/IndexedBinaryBVH.js +2 -1
  6. package/src/core/bvh2/bvh3/ExplicitBinaryBoundingVolumeHierarchy.js +1 -1
  7. package/src/core/bvh2/serialization/serializeBinaryNode.js +4 -4
  8. package/src/core/collection/map/HashMap.js +1 -1
  9. package/src/core/collection/table/RowFirstTableSpec.js +1 -1
  10. package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_array_2d.js +1 -1
  11. package/src/core/geom/2d/quad-tree/QuadTreeNode.js +2 -2
  12. package/src/core/geom/2d/quad-tree/qt_collect_by_circle.js +1 -1
  13. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +3 -3
  14. package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +1 -1
  15. package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +1 -1
  16. package/src/core/geom/packing/miniball/Miniball.js +0 -1
  17. package/src/core/geom/packing/miniball/Subspan.js +1 -3
  18. package/src/core/graph/coloring/colorizeGraph.js +1 -1
  19. package/src/core/localization/Localization.js +11 -11
  20. package/src/core/model/ModuleRegistry.js +4 -4
  21. package/src/core/process/task/Task.js +3 -3
  22. package/src/engine/EngineConfiguration.js +0 -1
  23. package/src/engine/EngineHarness.js +1 -1
  24. package/src/engine/ecs/EntityComponentDataset.js +2 -2
  25. package/src/engine/ecs/parent/EntityNode.js +10 -10
  26. package/src/engine/graphics/camera/testClippingPlaneComputation.js +1 -1
  27. package/src/engine/graphics/ecs/camera/Camera.js +11 -11
  28. package/src/engine/graphics/ecs/camera/CameraSystem.d.ts +2 -3
  29. package/src/engine/graphics/ecs/camera/CameraSystem.js +2 -3
  30. package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +1 -1
  31. package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +1 -1
  32. package/src/engine/graphics/ecs/water2/shader/testWaterShader.js +2 -2
  33. package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +15 -4
  34. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +2 -2
  35. package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +1 -1
  36. package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +1 -1
  37. package/src/engine/graphics/render/view/CameraView.js +1 -1
  38. package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +1 -1
  39. package/src/engine/graphics/shaders/ClearShader.js +1 -1
  40. package/src/engine/graphics/shadows/testShadowMapRendering.js +1 -1
  41. package/src/misc/makeMaterialIconCached.js +8 -1
package/build/meep.cjs CHANGED
@@ -55942,8 +55942,9 @@ class IndexedBinaryBVH {
55942
55942
  }
55943
55943
 
55944
55944
  /**
55945
+ * @template T
55945
55946
  * @deprecated use {@link #writeLeaf} instead followed by {@link #unsortedBuiltIntermediate}
55946
- * @param {function(index:number,offset:number,data:*, writeBox:function):*} visitor
55947
+ * @param {function(index:number,offset:number,data:T, writeBox:function):void} visitor
55947
55948
  */
55948
55949
  setLeafs(visitor) {
55949
55950
  let offset = this.binaryNodeCount * 6;
@@ -60409,7 +60410,7 @@ class HashMap {
60409
60410
 
60410
60411
  /**
60411
60412
  * Note that dead entries are marked as such with a special reserved hash values, so records can be reused for new entries
60412
- * @type {MapEntry<K,V>[]}
60413
+ * @type {Array<MapEntry<K,V>>}
60413
60414
  */
60414
60415
  #entries = new Array(0);
60415
60416
 
@@ -64124,7 +64125,7 @@ class Task {
64124
64125
 
64125
64126
  /**
64126
64127
  *
64127
- * @type {function(Task, executor:{run:function(Task)})}
64128
+ * @type {function(Task, executor:ConcurrentExecutor)}
64128
64129
  */
64129
64130
  this.initialize = initializer;
64130
64131
 
@@ -64218,7 +64219,7 @@ class Task {
64218
64219
 
64219
64220
  /**
64220
64221
  *
64221
- * @param {(Task|TaskGroup)[]} tasks
64222
+ * @param {Array<(Task|TaskGroup)>} tasks
64222
64223
  */
64223
64224
  addDependencies(tasks) {
64224
64225
  if (!Array.isArray(tasks)) {
@@ -64274,7 +64275,7 @@ class Task {
64274
64275
 
64275
64276
  /**
64276
64277
  *
64277
- * @param {(Task|TaskGroup)[]} tasks
64278
+ * @param {Array<(Task|TaskGroup)>} tasks
64278
64279
  * @return {Promise}
64279
64280
  */
64280
64281
  static promiseAll(tasks) {
@@ -69553,6 +69554,84 @@ function computeSystemName(system) {
69553
69554
  return system.constructor.name;
69554
69555
  }
69555
69556
 
69557
+ /**
69558
+ *
69559
+ * @param {Vector3} out Result will be written here
69560
+ * @param {number} originX Ray origin
69561
+ * @param {number} originY Ray origin
69562
+ * @param {number} originZ Ray origin
69563
+ * @param {number} directionX Ray direction
69564
+ * @param {number} directionY Ray direction
69565
+ * @param {number} directionZ Ray direction
69566
+ * @param {number} normalX Plane normal
69567
+ * @param {number} normalY Plane normal
69568
+ * @param {number} normalZ Plane normal
69569
+ * @param {number} dist Plane distance
69570
+ * @returns {boolean} true if intersection is found, false otherwise
69571
+ */
69572
+ function plane3_compute_ray_intersection(
69573
+ out,
69574
+ originX, originY, originZ,
69575
+ directionX, directionY, directionZ,
69576
+ normalX, normalY, normalZ, dist
69577
+ ) {
69578
+ const denom = v3_dot(directionX, directionY, directionZ, normalX, normalY, normalZ);
69579
+
69580
+ const p = v3_dot(normalX, normalY, normalZ, originX, originY, originZ) + dist;
69581
+
69582
+ if (denom !== 0) {
69583
+
69584
+ const t = -p / denom;
69585
+
69586
+ if (t < 0) {
69587
+ return false;
69588
+ }
69589
+
69590
+ out.set(
69591
+ directionX * t + originX,
69592
+ directionY * t + originY,
69593
+ directionZ * t + originZ
69594
+ );
69595
+
69596
+ return true;
69597
+
69598
+ } else {
69599
+
69600
+ if (p === 0) {
69601
+
69602
+ out.set(originX, originY, originZ);
69603
+
69604
+ return true;
69605
+
69606
+ } else {
69607
+
69608
+ //no intersection
69609
+ return false;
69610
+
69611
+ }
69612
+
69613
+ }
69614
+ }
69615
+
69616
+ /**
69617
+ * Orthogonal distance of a point to a plane, the distance is positive when the point lies above the plane and negative when the point is below
69618
+ * @param {number} x
69619
+ * @param {number} y
69620
+ * @param {number} z
69621
+ * @param {number} normalX
69622
+ * @param {number} normalY
69623
+ * @param {number} normalZ
69624
+ * @param {number} planeConstant
69625
+ * @returns {number}
69626
+ */
69627
+ function v3_distance_above_plane(
69628
+ x, y, z,
69629
+ normalX, normalY, normalZ, planeConstant
69630
+ ) {
69631
+ // this is the same as v4_dot(v4(x,y,z,1.0), v4(plane.normal, plane.constant));
69632
+ return v3_dot(normalX, normalY, normalZ, x, y, z) + planeConstant;
69633
+ }
69634
+
69556
69635
  class ObservedBoolean extends Boolean {
69557
69636
  /**
69558
69637
  *
@@ -69793,21 +69872,6 @@ ObservedEnum.prototype.fromJSON = function (obj) {
69793
69872
  this.set(obj);
69794
69873
  };
69795
69874
 
69796
- //
69797
-
69798
- /**
69799
- *
69800
- * @param {Vector3} result
69801
- * @param {Vector3} input
69802
- * @param {number[]} projection_matrix_inverse inverse of projection matrix
69803
- * @param {number[]} world_matrix world transform
69804
- */
69805
- function unprojectPoint(result, input, projection_matrix_inverse, world_matrix) {
69806
- result.copy(input);
69807
- result.applyMatrix4(projection_matrix_inverse);
69808
- result.applyMatrix4(world_matrix);
69809
- }
69810
-
69811
69875
  const matrix4 = new Matrix4();
69812
69876
 
69813
69877
  /**
@@ -69851,25 +69915,6 @@ function invertQuaternionOrientation(output, input) {
69851
69915
  output.setFromRotationMatrix(m4_scratch);
69852
69916
  }
69853
69917
 
69854
- /**
69855
- * Orthogonal distance of a point to a plane, the distance is positive when the point lies above the plane and negative when the point is below
69856
- * @param {number} x
69857
- * @param {number} y
69858
- * @param {number} z
69859
- * @param {number} normalX
69860
- * @param {number} normalY
69861
- * @param {number} normalZ
69862
- * @param {number} planeConstant
69863
- * @returns {number}
69864
- */
69865
- function v3_distance_above_plane(
69866
- x, y, z,
69867
- normalX, normalY, normalZ, planeConstant
69868
- ) {
69869
- // this is the same as v4_dot(v4(x,y,z,1.0), v4(plane.normal, plane.constant));
69870
- return v3_dot(normalX, normalY, normalZ, x, y, z) + planeConstant;
69871
- }
69872
-
69873
69918
  /**
69874
69919
  *
69875
69920
  * @enum {String}
@@ -69880,63 +69925,19 @@ const ProjectionType = {
69880
69925
  Orthographic: "orthographic"
69881
69926
  };
69882
69927
 
69928
+ //
69929
+
69883
69930
  /**
69884
69931
  *
69885
- * @param {Vector3} out Result will be written here
69886
- * @param {number} originX Ray origin
69887
- * @param {number} originY Ray origin
69888
- * @param {number} originZ Ray origin
69889
- * @param {number} directionX Ray direction
69890
- * @param {number} directionY Ray direction
69891
- * @param {number} directionZ Ray direction
69892
- * @param {number} normalX Plane normal
69893
- * @param {number} normalY Plane normal
69894
- * @param {number} normalZ Plane normal
69895
- * @param {number} dist Plane distance
69896
- * @returns {boolean} true if intersection is found, false otherwise
69932
+ * @param {Vector3} result
69933
+ * @param {Vector3} input
69934
+ * @param {number[]} projection_matrix_inverse inverse of projection matrix
69935
+ * @param {number[]} world_matrix world transform
69897
69936
  */
69898
- function plane3_compute_ray_intersection(
69899
- out,
69900
- originX, originY, originZ,
69901
- directionX, directionY, directionZ,
69902
- normalX, normalY, normalZ, dist
69903
- ) {
69904
- const denom = v3_dot(directionX, directionY, directionZ, normalX, normalY, normalZ);
69905
-
69906
- const p = v3_dot(normalX, normalY, normalZ, originX, originY, originZ) + dist;
69907
-
69908
- if (denom !== 0) {
69909
-
69910
- const t = -p / denom;
69911
-
69912
- if (t < 0) {
69913
- return false;
69914
- }
69915
-
69916
- out.set(
69917
- directionX * t + originX,
69918
- directionY * t + originY,
69919
- directionZ * t + originZ
69920
- );
69921
-
69922
- return true;
69923
-
69924
- } else {
69925
-
69926
- if (p === 0) {
69927
-
69928
- out.set(originX, originY, originZ);
69929
-
69930
- return true;
69931
-
69932
- } else {
69933
-
69934
- //no intersection
69935
- return false;
69936
-
69937
- }
69938
-
69939
- }
69937
+ function unprojectPoint(result, input, projection_matrix_inverse, world_matrix) {
69938
+ result.copy(input);
69939
+ result.applyMatrix4(projection_matrix_inverse);
69940
+ result.applyMatrix4(world_matrix);
69940
69941
  }
69941
69942
 
69942
69943
  /**
@@ -69978,7 +69979,7 @@ class Camera {
69978
69979
  *
69979
69980
  * @type {ObservedBoolean}
69980
69981
  */
69981
- this.active = new ObservedBoolean(false);
69982
+ this.active = new ObservedBoolean(true);
69982
69983
 
69983
69984
  /**
69984
69985
  * Near clipping plane
@@ -70654,14 +70655,13 @@ ResourceAccessSpecification.prototype.isResourceAccessSpecification = true;
70654
70655
  class CameraSystem extends System {
70655
70656
  /**
70656
70657
  *
70657
- * @param {THREE.Scene} scene
70658
70658
  * @param {GraphicsEngine} graphics
70659
70659
  * @constructor
70660
70660
  */
70661
- constructor(scene, graphics) {
70661
+ constructor(graphics) {
70662
70662
  super();
70663
70663
 
70664
- this.scene = scene;
70664
+ this.scene = graphics.scene;
70665
70665
 
70666
70666
  this.dependencies = [Camera, Transform];
70667
70667
 
@@ -72065,55 +72065,28 @@ class TerrainSystem extends System {
72065
72065
  }
72066
72066
 
72067
72067
  /**
72068
- * Component representing logical attachment to another entity, when parent disappears - so does the child
72068
+ * Remove first occurrence of element from the array
72069
+ * @template T
72070
+ * @param {T[]} array
72071
+ * @param {T} element
72072
+ * @param {number} [start_index]
72073
+ * @param {number} [length]
72074
+ * @return {boolean} true if element was removed, false if it was not found
72069
72075
  */
72070
- class ParentEntity {
72071
- /**
72072
- * * @constructor
72073
- */
72074
- constructor() {
72075
- /**
72076
- * Entity representing logical parent.
72077
- * Must not be mutated (changed) while component is attached to a dataset
72078
- * @type {number}
72079
- */
72080
- this.entity = -1;
72081
- }
72082
-
72083
- /**
72084
- *
72085
- * @param {number} entity
72086
- * @returns {ParentEntity}
72087
- */
72088
- static from(entity) {
72089
- const r = new ParentEntity();
72090
-
72091
- r.entity = entity;
72076
+ function array_remove_first(array, element, start_index = 0, length = array.length) {
72092
72077
 
72093
- return r;
72094
- }
72078
+ const end_index = start_index + length;
72095
72079
 
72096
- toJSON() {
72097
- return {
72098
- entity: this.entity,
72099
- };
72100
- }
72080
+ for (let i = start_index; i < end_index; i++) {
72081
+ if (array[i] === element) {
72082
+ array.splice(i, 1);
72101
72083
 
72102
- fromJSON({ entity }) {
72103
- this.entity = entity;
72084
+ return true;
72085
+ }
72104
72086
  }
72105
- }
72106
72087
 
72107
- /**
72108
- * @readonly
72109
- * @type {string}
72110
- */
72111
- ParentEntity.typeName = "ParentEntity";
72112
- /**
72113
- *
72114
- * @type {boolean}
72115
- */
72116
- ParentEntity.serializable = false;
72088
+ return false;
72089
+ }
72117
72090
 
72118
72091
  /**
72119
72092
  * de Bruijn sequence
@@ -75138,30 +75111,6 @@ function checkExistingComponents(entity, components, dataset) {
75138
75111
  return true;
75139
75112
  }
75140
75113
 
75141
- /**
75142
- * Remove first occurrence of element from the array
75143
- * @template T
75144
- * @param {T[]} array
75145
- * @param {T} element
75146
- * @param {number} [start_index]
75147
- * @param {number} [length]
75148
- * @return {boolean} true if element was removed, false if it was not found
75149
- */
75150
- function array_remove_first(array, element, start_index = 0, length = array.length) {
75151
-
75152
- const end_index = start_index + length;
75153
-
75154
- for (let i = start_index; i < end_index; i++) {
75155
- if (array[i] === element) {
75156
- array.splice(i, 1);
75157
-
75158
- return true;
75159
- }
75160
- }
75161
-
75162
- return false;
75163
- }
75164
-
75165
75114
  const TransformAttachmentFlags = {
75166
75115
  /**
75167
75116
  * Update will be performed when component is attached.
@@ -75279,6 +75228,57 @@ const EntityNodeFlags = {
75279
75228
  TransformObserved: 2
75280
75229
  };
75281
75230
 
75231
+ /**
75232
+ * Component representing logical attachment to another entity, when parent disappears - so does the child
75233
+ */
75234
+ class ParentEntity {
75235
+ /**
75236
+ * * @constructor
75237
+ */
75238
+ constructor() {
75239
+ /**
75240
+ * Entity representing logical parent.
75241
+ * Must not be mutated (changed) while component is attached to a dataset
75242
+ * @type {number}
75243
+ */
75244
+ this.entity = -1;
75245
+ }
75246
+
75247
+ /**
75248
+ *
75249
+ * @param {number} entity
75250
+ * @returns {ParentEntity}
75251
+ */
75252
+ static from(entity) {
75253
+ const r = new ParentEntity();
75254
+
75255
+ r.entity = entity;
75256
+
75257
+ return r;
75258
+ }
75259
+
75260
+ toJSON() {
75261
+ return {
75262
+ entity: this.entity,
75263
+ };
75264
+ }
75265
+
75266
+ fromJSON({ entity }) {
75267
+ this.entity = entity;
75268
+ }
75269
+ }
75270
+
75271
+ /**
75272
+ * @readonly
75273
+ * @type {string}
75274
+ */
75275
+ ParentEntity.typeName = "ParentEntity";
75276
+ /**
75277
+ *
75278
+ * @type {boolean}
75279
+ */
75280
+ ParentEntity.serializable = false;
75281
+
75282
75282
  const DEFAULT_FLAGS$1 = EntityNodeFlags.LiveManagement;
75283
75283
 
75284
75284
  class EntityNode {
@@ -75387,7 +75387,7 @@ class EntityNode {
75387
75387
 
75388
75388
  /**
75389
75389
  *
75390
- * @param {(EntityNode) => *} visitor
75390
+ * @param {function(node:EntityNode):*} visitor
75391
75391
  * @param {*} [context]
75392
75392
  */
75393
75393
  traverseChildren(visitor, context) {
@@ -75396,7 +75396,7 @@ class EntityNode {
75396
75396
 
75397
75397
  /**
75398
75398
  *
75399
- * @return {Readonly<EntityNode[]>}
75399
+ * @return {Readonly<Array<EntityNode>>}
75400
75400
  */
75401
75401
  get children() {
75402
75402
  return this.__children;
@@ -77703,9 +77703,15 @@ function rewriteMaterial(shader) {
77703
77703
  `+shader.fragmentShader;
77704
77704
  }
77705
77705
 
77706
+ /**
77707
+ * @typedef {Object} CacheKey
77708
+ * @property {Material} color
77709
+ * @property {Material} depth
77710
+ */
77711
+
77706
77712
  /**
77707
77713
  * @readonly
77708
- * @type {Cache<Material, {color:Material, depth:Material}>}
77714
+ * @type {Cache<Material,CacheKey>}
77709
77715
  */
77710
77716
  const material_cache = new Cache({
77711
77717
  maxWeight: 1024,
@@ -77720,14 +77726,14 @@ class InstancedMeshGroup {
77720
77726
  constructor() {
77721
77727
  /**
77722
77728
  * Instanced geometry
77723
- * @type {THREE.InstancedBufferGeometry|null}
77729
+ * @type {InstancedBufferGeometry|null}
77724
77730
  * @private
77725
77731
  */
77726
77732
  this.__threeGeometry = null;
77727
77733
 
77728
77734
  /**
77729
77735
  * Geometry of a single instance
77730
- * @type {THREE.BufferGeometry|null}
77736
+ * @type {BufferGeometry|null}
77731
77737
  * @private
77732
77738
  */
77733
77739
  this.__threeInstanceGeometry = null;
@@ -77755,7 +77761,12 @@ class InstancedMeshGroup {
77755
77761
  */
77756
77762
  this.growConstant = 16;
77757
77763
 
77764
+ /**
77765
+ *
77766
+ * @type {number}
77767
+ */
77758
77768
  this.shrinkFactor = 0.5;
77769
+
77759
77770
  /**
77760
77771
  * Minimum capacity reduction for shrinkage to occur
77761
77772
  * @type {number}
@@ -77920,7 +77931,7 @@ class InstancedMeshGroup {
77920
77931
  /**
77921
77932
  *
77922
77933
  * @param {THREE.Material|THREE.ShaderMaterial} sourceMaterial
77923
- * @returns {{depth: Material, color: Material}}
77934
+ * @returns {CacheKey}
77924
77935
  */
77925
77936
  #buildMaterial(sourceMaterial) {
77926
77937
  //console.warn(`building material : {id:${sourceMaterial.id}, name: ${sourceMaterial.name}, type: ${sourceMaterial.type}`)
@@ -79617,7 +79628,7 @@ class ExplicitBinaryBoundingVolumeHierarchy {
79617
79628
 
79618
79629
  /**
79619
79630
  *
79620
- * @param {(node:number, tree:ExplicitBinaryBoundingVolumeHierarchy)=>void} callback
79631
+ * @param {function(node:number, tree:ExplicitBinaryBoundingVolumeHierarchy):void} callback
79621
79632
  * @param {*} [ctx]
79622
79633
  */
79623
79634
  traverse(callback, ctx) {
@@ -90393,7 +90404,7 @@ class CameraView {
90393
90404
 
90394
90405
  /**
90395
90406
  *
90396
- * @type {{transform:(Float32Array, Float32Array)=>void, context:*}[]}
90407
+ * @type {Array<{transform:function(Float32Array, Float32Array):void, context:*}>}
90397
90408
  */
90398
90409
  this.projection_modifiers = [];
90399
90410
  }
@@ -93762,7 +93773,7 @@ class EntityComponentDataset {
93762
93773
  * Performs traversal on a subset of entities which have specified components.
93763
93774
  * @example traverseEntities([Transform,Renderable,Tag],function(transform, renderable, tag, entity){ ... }, this);
93764
93775
  * @param {Array} classes
93765
- * @param {function:boolean?} visitor Visitor can return optional "false" to terminate traversal earlier
93776
+ * @param {function(...args):boolean} visitor Visitor can return optional "false" to terminate traversal earlier
93766
93777
  * @param {object} [thisArg] specifies context object on which callbacks are to be called, optional
93767
93778
  */
93768
93779
  traverseEntities(classes, visitor, thisArg) {
@@ -94387,7 +94398,7 @@ class EntityComponentDataset {
94387
94398
  /**
94388
94399
  * Main utility of this method is to facilitate serialization.
94389
94400
  * @param {Array} componentClasses
94390
- * @param {function(componentIndex:number,components:[], componentCount:number)} visitor
94401
+ * @param {function(componentIndex:number,components:Array, componentCount:number)} visitor
94391
94402
  */
94392
94403
  traverseEntitiesCompactedFiltered(componentClasses, visitor) {
94393
94404
 
@@ -105513,7 +105524,7 @@ class Localization {
105513
105524
  this.debug = true;
105514
105525
 
105515
105526
  /**
105516
- * @type {Cache<string[], string>}
105527
+ * @type {Cache<Array<string>, string>}
105517
105528
  * @private
105518
105529
  */
105519
105530
  this.__failure_cache = new Cache({
@@ -105633,7 +105644,7 @@ class Localization {
105633
105644
  * @param {number} value
105634
105645
  */
105635
105646
  formatIntegerByThousands(value) {
105636
- const formatter = new Intl.NumberFormat(this.locale.getValue(), { useGrouping: true });
105647
+ const formatter = new Intl.NumberFormat(this.locale.getValue(), {useGrouping: true});
105637
105648
 
105638
105649
  return formatter.format(value);
105639
105650
  }
@@ -105718,7 +105729,7 @@ class ModuleRegistry {
105718
105729
  #modules = new Map();
105719
105730
  /**
105720
105731
  *
105721
- * @type {Map<*,string[]>}
105732
+ * @type {Map<*,Array<string>>}
105722
105733
  */
105723
105734
  #reverse_lookup = new Map();
105724
105735
 
@@ -105746,7 +105757,7 @@ class ModuleRegistry {
105746
105757
 
105747
105758
  /**
105748
105759
  *
105749
- * @param {(name:string, module:*)=>void} visitor
105760
+ * @param {function(name:string,module:*):void} visitor
105750
105761
  */
105751
105762
  traverse(visitor) {
105752
105763
  this.#modules.forEach((klass, name) => visitor(name, klass));
@@ -105764,7 +105775,7 @@ class ModuleRegistry {
105764
105775
 
105765
105776
  /**
105766
105777
  *
105767
- * @param {String} name
105778
+ * @param {string} name
105768
105779
  * @returns {boolean}
105769
105780
  */
105770
105781
  has(name) {
@@ -105773,7 +105784,7 @@ class ModuleRegistry {
105773
105784
 
105774
105785
  /**
105775
105786
  * @template T
105776
- * @param {String} name
105787
+ * @param {string} name
105777
105788
  * @param {T} module
105778
105789
  * @returns {boolean}
105779
105790
  */
@@ -112573,7 +112584,7 @@ class QuadTreeNode extends AABB2 {
112573
112584
 
112574
112585
  /**
112575
112586
  *
112576
- * @param {QuadTreeDatum<D>[]} result
112587
+ * @param {Array<QuadTreeDatum<D>>} result
112577
112588
  * @param {number} x
112578
112589
  * @param {number} y
112579
112590
  * @returns {number} number of intersecting objects added to the result
@@ -112592,7 +112603,7 @@ class QuadTreeNode extends AABB2 {
112592
112603
 
112593
112604
  /**
112594
112605
  *
112595
- * @param {QuadTreeDatum<D>[]} result
112606
+ * @param {Array<QuadTreeDatum<D>>} result
112596
112607
  * @param {number} x0
112597
112608
  * @param {number} y0
112598
112609
  * @param {number} x1
@@ -120171,7 +120182,6 @@ class EngineConfiguration {
120171
120182
  }
120172
120183
 
120173
120184
  /**
120174
- *
120175
120185
  * @param {System} systems
120176
120186
  */
120177
120187
  addManySystems(...systems) {
@@ -121037,7 +121047,7 @@ class EngineHarness {
121037
121047
  em.addSystem(new TopDownCameraControllerSystem());
121038
121048
  }
121039
121049
  if (em.getSystem(CameraSystem) === null) {
121040
- em.addSystem(new CameraSystem(engine.graphics.scene, engine.graphics));
121050
+ em.addSystem(new CameraSystem(engine.graphics));
121041
121051
  }
121042
121052
 
121043
121053
  if (em.getSystem(SoundListenerSystem) === null) {