@woosh/meep-engine 2.60.1 → 2.62.0

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 (87) hide show
  1. package/build/meep.cjs +20244 -20262
  2. package/build/meep.min.js +1 -1
  3. package/build/meep.module.js +20244 -20262
  4. package/package.json +1 -1
  5. package/src/core/binary/BitSet.js +1 -1
  6. package/src/core/bvh2/BinaryNode.js +16 -13
  7. package/src/core/bvh2/LeafNode.js +6 -3
  8. package/src/core/bvh2/bvh3/query/bvh_query_user_data_overlaps_sphere.js +81 -0
  9. package/src/core/geom/3d/aabb/AABB3.js +24 -36
  10. package/src/core/geom/3d/aabb/aabb3_array_compute_from_sphere.js +22 -0
  11. package/src/core/geom/3d/aabb/aabb3_array_intersects_sphere.js +22 -0
  12. package/src/core/geom/3d/aabb/aabb3_array_intersects_sphere_array.js +11 -0
  13. package/src/core/geom/3d/aabb/aabb3_signed_distance_to_aabb3.js +28 -0
  14. package/src/core/geom/3d/aabb/serializeAABB3Quantized16Uint.js +19 -10
  15. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.js +30 -182
  16. package/src/core/geom/3d/sphere/harmonics/sh3_dering_optimize_positive.spec.js +27 -1
  17. package/src/core/geom/3d/tetrahedra/delaunay/Cavity.js +3 -4
  18. package/src/core/geom/ConicRay.js +16 -21
  19. package/src/core/geom/ConicRay.spec.js +24 -0
  20. package/src/core/geom/packing/miniball/Miniball.js +68 -117
  21. package/src/core/geom/packing/miniball/Miniball.spec.js +3 -3
  22. package/src/core/geom/packing/miniball/Subspan.js +47 -34
  23. package/src/core/geom/packing/miniball/miniball_compute_quality.js +64 -0
  24. package/src/core/math/bessel_3.js +1 -0
  25. package/src/core/math/random/randomBytes.js +2 -2
  26. package/src/core/math/sqr.js +8 -0
  27. package/src/core/model/node-graph/Connection.js +21 -23
  28. package/src/core/model/node-graph/DataType.js +16 -17
  29. package/src/core/model/node-graph/NodeGraph.js +49 -50
  30. package/src/core/model/node-graph/node/NodeDescription.js +42 -44
  31. package/src/core/model/node-graph/node/NodeInstance.js +59 -60
  32. package/src/core/model/node-graph/node/NodeInstancePortReference.js +27 -29
  33. package/src/core/model/node-graph/node/NodeRegistry.js +16 -18
  34. package/src/core/model/node-graph/node/Port.js +35 -37
  35. package/src/core/model/node-graph/node/parameter/NodeParameterDescription.js +27 -13
  36. package/src/core/path/computePathDirectory.spec.js +8 -0
  37. package/src/core/process/BaseProcess.d.ts +5 -0
  38. package/src/core/process/WatchDog.js +76 -75
  39. package/src/core/process/action/AsynchronousAction.js +24 -22
  40. package/src/core/process/executor/profile/Profile.js +34 -24
  41. package/src/core/process/executor/profile/TraceEvent.js +75 -75
  42. package/src/core/process/worker/OnDemandWorkerManager.js +27 -30
  43. package/src/core/process/worker/WorkerBuilder.js +149 -149
  44. package/src/core/process/worker/WorkerProxy.js +25 -21
  45. package/src/core/process/worker/extractTransferables.js +2 -2
  46. package/src/engine/Engine.js +58 -53
  47. package/src/engine/EngineConfiguration.d.ts +4 -4
  48. package/src/engine/ecs/EntityManager.js +517 -614
  49. package/src/engine/ecs/System.js +2 -2
  50. package/src/engine/ecs/foliage/ecs/Foliage2System.js +3 -0
  51. package/src/engine/ecs/foliage/ecs/InstancedMeshComponent.js +4 -1
  52. package/src/engine/ecs/foliage/ecs/convertInstancedMeshComponents2Entities.js +64 -0
  53. package/src/engine/ecs/foliage/ecs/{InstancedMeshUtils.js → optimizeIndividualMeshesEntitiesToInstances.js} +11 -70
  54. package/src/engine/ecs/transform/Transform.d.ts +7 -5
  55. package/src/engine/ecs/transform/Transform.js +30 -16
  56. package/src/engine/ecs/validateSystem.js +89 -0
  57. package/src/engine/graphics/GraphicsEngine.js +433 -483
  58. package/src/engine/graphics/camera/testClippingPlaneComputation.js +42 -46
  59. package/src/engine/graphics/ecs/decal/v2/FPDecalSystem.js +2 -2
  60. package/src/engine/graphics/ecs/mesh-v2/ShadedGeometrySystem.js +2 -2
  61. package/src/engine/graphics/ecs/mesh-v2/aggregate/SGMeshSystem.js +2 -2
  62. package/src/engine/graphics/ecs/path/testPathDisplaySystem.js +49 -52
  63. package/src/engine/graphics/ecs/path/tube/prototypeAnimatedPathMask.js +52 -56
  64. package/src/engine/graphics/ecs/water2/shader/testWaterShader.js +20 -22
  65. package/src/engine/graphics/particles/ecs/ParticleEmitterSystem.js +43 -25
  66. package/src/engine/graphics/particles/particular/engine/ParticularEngine.js +160 -180
  67. package/src/engine/graphics/particles/particular/engine/emitter/ParticleEmitter.js +37 -41
  68. package/src/engine/graphics/particles/particular/engine/utils/volume/prototypeParticleVolume.js +63 -67
  69. package/src/engine/graphics/render/buffer/buffers/prototypeNormalFrameBuffer.js +46 -50
  70. package/src/engine/graphics/render/forward_plus/plugin/ptototypeFPPlugin.js +61 -65
  71. package/src/engine/graphics/render/visibility/hiz/prototypeHiZ.js +48 -52
  72. package/src/engine/graphics/shadows/testShadowMapRendering.js +28 -32
  73. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_lanczos.spec.js +22 -20
  74. package/src/engine/graphics/texture/sampler/resize/sampler2d_scale_down_linear.js +10 -13
  75. package/src/engine/graphics/texture/virtual/VirtualTexture.spec.js +1 -1
  76. package/src/engine/plugin/EnginePluginManager.d.ts +6 -1
  77. package/src/engine/sound/dB2Volume.js +8 -0
  78. package/src/engine/sound/ecs/emitter/SoundEmitter.js +125 -99
  79. package/src/engine/sound/ecs/emitter/SoundEmitterComponentContext.js +4 -42
  80. package/src/engine/sound/ecs/emitter/SoundEmitterSystem.js +31 -121
  81. package/src/engine/sound/volume2dB.js +8 -0
  82. package/src/generation/theme/ThemeEngine.js +19 -53
  83. package/src/engine/ecs/components/ClingToHeightMap.js +0 -19
  84. package/src/engine/ecs/components/SynchronizePosition.js +0 -15
  85. package/src/engine/ecs/systems/ClingToHeightMapSystem.js +0 -170
  86. package/src/engine/ecs/systems/SynchronizePositionSystem.js +0 -43
  87. package/src/engine/graphics/geometry/bvh/buffered/BVHFromBufferGeometry.js +0 -133
@@ -1,133 +0,0 @@
1
- /**
2
- * Created by Alex on 04/05/2016.
3
- */
4
- import { BinaryNode } from '../../../../../core/bvh2/BinaryNode.js';
5
- import { LeafNode } from '../../../../../core/bvh2/LeafNode.js';
6
- import IndexedTriangleBoundsComputer from './IndexedTraingleBoundsComputer.js';
7
-
8
- import { buildUnsorted as buildUnsortedBinaryBVH } from './BinaryBVHFromBufferGeometry.js';
9
-
10
- const makeTriangle = IndexedTriangleBoundsComputer.compute;
11
-
12
- /**
13
- *
14
- * @param object
15
- * @param {number|uint} a
16
- * @param {number|uint} b
17
- * @param {number|uint} c
18
- * @param {Float32Array|Float64Array} vertices
19
- */
20
- function makeTriangleLeaf(object, a, b, c, vertices) {
21
- return makeTriangle(a, b, c, vertices, function (x0, y0, z0, x1, y1, z1) {
22
- return new LeafNode(object, x0, y0, z0, x1, y1, z1);
23
- });
24
- }
25
-
26
- /**
27
- *
28
- * @param {Uint32Array|Uint16Array|Uint8Array} indices
29
- * @param {Float32Array|Float64Array} vertices
30
- * @param {BinaryNode} tree
31
- */
32
- function fillTree(indices, vertices, tree) {
33
- const numFaces = indices.length / 3;
34
- let iA, iB, iC;
35
-
36
- function processLeaf(index) {
37
- const index3 = index * 3;
38
-
39
- iA = indices[index3];
40
- iB = indices[index3 + 1];
41
- iC = indices[index3 + 2];
42
-
43
- return makeTriangleLeaf(index, iA * 3, iB * 3, iC * 3, vertices);
44
- }
45
-
46
- tree.insertManyBoxes2(processLeaf, numFaces);
47
- }
48
-
49
- /**
50
- *
51
- * @param {BufferGeometry} geometry
52
- * @returns {BinaryNode}
53
- */
54
- function bvhFromGeometry(geometry) {
55
- // console.profile( "building geometry bvh" );
56
- const tree = new BinaryNode();
57
- tree.setNegativelyInfiniteBounds();
58
- const vertices = geometry.getAttribute('position').array;
59
- const indices = geometry.getIndex().array;
60
-
61
- fillTree(indices, vertices, tree);
62
-
63
- // console.profileEnd( "building geometry bvh" );
64
- //
65
- //console.log("built bvh for " + faces.length + " faces");
66
- return tree;
67
- }
68
-
69
- /**
70
- *
71
- * @param {THREE.BufferGeometry} geometry
72
- * @returns {BinaryNode}
73
- */
74
- function buildUnsorted(geometry) {
75
- const tree = new BinaryNode();
76
- tree.setNegativelyInfiniteBounds();
77
- //
78
- const index = geometry.index;
79
- const indices = index.array;
80
- const vertices = geometry.attributes.position.array;
81
-
82
- let numNodes = indices.length / 3;
83
- let i, n;
84
- //create leaf nodes
85
- const nodes = new Array(numNodes);
86
- let iA, iB, iC;
87
-
88
-
89
- for (i = 0; i < numNodes; i++) {
90
- //leaf needs to be set up inside the callback
91
- const index3 = i * 3;
92
-
93
- iA = indices[index3];
94
- iB = indices[index3 + 1];
95
- iC = indices[index3 + 2];
96
- nodes[i] = makeTriangleLeaf(i, iA * 3, iB * 3, iC * 3, vertices);
97
- }
98
- while (numNodes > 2) {
99
- //sort leafs
100
-
101
- //pair
102
- for (i = 0; i < numNodes; i += 2) {
103
- const a = nodes[i];
104
- const b = nodes[i + 1];
105
- n = new BinaryNode();
106
- n.setChildren(a, b);
107
- nodes[i >> 1] = n;
108
- }
109
- numNodes = (numNodes >> 1) + numNodes % 2;
110
- //nodes.length = numNodes;
111
- }
112
- //finally insert these boxes from this node
113
- nodes.length = numNodes;
114
- for (i = 0; i < numNodes; i++) {
115
- n = nodes[i];
116
- tree.insertNode(n);
117
- }
118
- return tree;
119
- }
120
-
121
-
122
- export default {
123
- build: bvhFromGeometry,
124
- buildUnsorted: buildUnsorted,
125
- setFaceBounds: makeTriangleLeaf,
126
- buildUnsortedBinaryBVH: function (geometry) {
127
-
128
- const index = geometry.index;
129
- const indices = index.array;
130
- const vertices = geometry.attributes.position.array;
131
- return buildUnsortedBinaryBVH(vertices, indices);
132
- }
133
- };