@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.
- package/build/meep.cjs +194 -184
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +194 -184
- package/package.json +1 -1
- package/src/core/bvh2/binary/IndexedBinaryBVH.js +2 -1
- package/src/core/bvh2/bvh3/ExplicitBinaryBoundingVolumeHierarchy.js +1 -1
- package/src/core/bvh2/serialization/serializeBinaryNode.js +4 -4
- package/src/core/collection/map/HashMap.js +1 -1
- package/src/core/collection/table/RowFirstTableSpec.js +1 -1
- package/src/core/geom/2d/line/line_segment_compute_line_segment_intersection_vectors_array_2d.js +1 -1
- package/src/core/geom/2d/quad-tree/QuadTreeNode.js +2 -2
- package/src/core/geom/2d/quad-tree/qt_collect_by_circle.js +1 -1
- package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +3 -3
- package/src/core/geom/3d/tetrahedra/TetrahedralMesh.js +1 -1
- package/src/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +1 -1
- package/src/core/geom/packing/miniball/Miniball.js +0 -1
- package/src/core/geom/packing/miniball/Subspan.js +1 -3
- package/src/core/graph/coloring/colorizeGraph.js +1 -1
- package/src/core/localization/Localization.js +11 -11
- package/src/core/model/ModuleRegistry.js +4 -4
- package/src/core/process/task/Task.js +3 -3
- package/src/engine/EngineConfiguration.js +0 -1
- package/src/engine/EngineHarness.js +1 -1
- package/src/engine/ecs/EntityComponentDataset.js +2 -2
- package/src/engine/ecs/parent/EntityNode.js +10 -10
- package/src/engine/graphics/camera/testClippingPlaneComputation.js +1 -1
- package/src/engine/graphics/ecs/camera/Camera.js +11 -11
- package/src/engine/graphics/ecs/camera/CameraSystem.d.ts +2 -3
- package/src/engine/graphics/ecs/camera/CameraSystem.js +2 -3
- package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +1 -1
- package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +1 -1
- package/src/engine/graphics/ecs/water2/shader/testWaterShader.js +2 -2
- package/src/engine/graphics/geometry/instancing/InstancedMeshGroup.js +15 -4
- package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +2 -2
- package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +1 -1
- package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +1 -1
- package/src/engine/graphics/render/view/CameraView.js +1 -1
- package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +1 -1
- package/src/engine/graphics/shaders/ClearShader.js +1 -1
- package/src/engine/graphics/shadows/testShadowMapRendering.js +1 -1
- 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
|
|
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:
|
|
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)
|
|
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)
|
|
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}
|
|
69886
|
-
* @param {
|
|
69887
|
-
* @param {number}
|
|
69888
|
-
* @param {number}
|
|
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
|
|
69899
|
-
|
|
69900
|
-
|
|
69901
|
-
|
|
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(
|
|
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(
|
|
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
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
72094
|
-
}
|
|
72078
|
+
const end_index = start_index + length;
|
|
72095
72079
|
|
|
72096
|
-
|
|
72097
|
-
|
|
72098
|
-
|
|
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
|
-
|
|
72103
|
-
|
|
72084
|
+
return true;
|
|
72085
|
+
}
|
|
72104
72086
|
}
|
|
72105
|
-
}
|
|
72106
72087
|
|
|
72107
|
-
|
|
72108
|
-
|
|
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)
|
|
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,
|
|
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 {
|
|
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 {
|
|
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 {
|
|
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)
|
|
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)
|
|
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
|
|
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:
|
|
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
|
|
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(), {
|
|
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,
|
|
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 {
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
121050
|
+
em.addSystem(new CameraSystem(engine.graphics));
|
|
121041
121051
|
}
|
|
121042
121052
|
|
|
121043
121053
|
if (em.getSystem(SoundListenerSystem) === null) {
|