@woosh/meep-engine 2.43.0 → 2.43.3

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 (105) hide show
  1. package/core/bvh2/aabb3/aabb3_array_combine.js +2 -2
  2. package/core/collection/RingBuffer.js +4 -2
  3. package/core/collection/RingBuffer.spec.js +59 -0
  4. package/core/collection/array/ArrayIteratorRandom.js +1 -1
  5. package/core/collection/{ArrayUtils.spec.js → array/arrayPickBestElement.spec.js} +1 -1
  6. package/core/collection/array/arrayPickBestElements.js +51 -0
  7. package/core/collection/array/arrayPickMinElement.js +43 -0
  8. package/core/collection/array/arrayQuickSort.js +1 -1
  9. package/core/collection/array/arraySetSortingDiff.js +1 -1
  10. package/core/collection/array/arraySwapElements.js +12 -0
  11. package/core/collection/array/groupArrayBy.js +42 -0
  12. package/core/collection/array/isArrayEqual.js +50 -0
  13. package/core/collection/array/randomMultipleFromArray.js +34 -0
  14. package/core/collection/array/randomizeArrayElementOrder.js +23 -0
  15. package/core/geom/2d/convex-hull/convex_hull_monotone_2d.js +1 -1
  16. package/core/geom/3d/aabb/aabb3_build_frustum.js +1 -1
  17. package/core/geom/3d/aabb/compute_aabb_from_points.js +1 -1
  18. package/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +3 -1
  19. package/core/geom/3d/morton/v3_morton_encode_transformed.spec.js +20 -0
  20. package/core/geom/3d/plane/orient3d_fast.js +8 -10
  21. package/core/geom/3d/plane/plane_computeConvex3PlaneIntersection.js +0 -23
  22. package/core/geom/3d/plane/plane_three_compute_convex3_plane_intersection.js +24 -0
  23. package/core/geom/3d/shape/UnionShape3D.js +1 -1
  24. package/core/geom/3d/tetrahedra/README.md +10 -1
  25. package/core/geom/3d/tetrahedra/{tetrahedra_collection.js → TetrahedralMesh.js} +236 -152
  26. package/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +156 -0
  27. package/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +2 -2
  28. package/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +4 -4
  29. package/core/geom/3d/tetrahedra/delaunay/Cavity.js +45 -7
  30. package/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +44 -9
  31. package/core/geom/3d/tetrahedra/delaunay/debug_validate_mesh.js +19 -0
  32. package/core/geom/3d/tetrahedra/delaunay/fill_in_a_cavity.js +155 -0
  33. package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_cavity2.js +224 -0
  34. package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.js +77 -0
  35. package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.spec.js +30 -0
  36. package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_insert_point.js +98 -0
  37. package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_walk_toward_cavity.js +13 -6
  38. package/core/geom/3d/tetrahedra/point_in_tetrahedron_circumsphere.js +9 -9
  39. package/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +1 -1
  40. package/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +83 -0
  41. package/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.spec.js +24 -0
  42. package/core/geom/3d/tetrahedra/tetrahedron_contains_point.spec.js +66 -0
  43. package/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +119 -0
  44. package/core/geom/Bezier.js +0 -27
  45. package/core/geom/Plane.js +0 -4
  46. package/core/geom/packing/miniball/Subspan.js +2 -2
  47. package/core/geom/v3_lerp.js +6 -1
  48. package/core/math/isqrt.js +28 -0
  49. package/core/math/isqrt.spec.js +9 -0
  50. package/core/math/max.spec.js +25 -0
  51. package/core/math/min2.spec.js +25 -0
  52. package/core/model/node-graph/node/NodeInstance.js +3 -3
  53. package/core/primitives/strings/prefixTree/PrefixTreeLeaf.js +1 -1
  54. package/core/process/task/util/randomCountTask.js +1 -1
  55. package/editor/ecs/component/editors/primitive/ArrayEditor.js +1 -1
  56. package/editor/tools/v2/BlenderCameraOrientationGizmo.js +6 -0
  57. package/editor/view/ecs/components/common/AutoCanvasView.js +13 -25
  58. package/engine/asset/AssetManager.d.ts +7 -1
  59. package/engine/asset/AssetManager.js +50 -15
  60. package/engine/asset/AssetManager.spec.js +17 -11
  61. package/engine/asset/AssetRequest.js +57 -0
  62. package/engine/asset/loaders/ArrayBufferLoader.js +22 -0
  63. package/engine/asset/loaders/AssetLoader.js +1 -1
  64. package/engine/ecs/System.js +1 -1
  65. package/engine/ecs/dynamic_actions/DynamicActorSystem.js +1 -1
  66. package/engine/graphics/FrameRunner.js +5 -9
  67. package/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +1 -1
  68. package/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +1 -1
  69. package/engine/graphics/ecs/camera/Camera.js +1 -10
  70. package/engine/graphics/ecs/camera/CameraSystem.js +8 -8
  71. package/engine/graphics/ecs/camera/ProjectionType.js +9 -0
  72. package/engine/graphics/ecs/camera/build_three_camera_object.js +3 -3
  73. package/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +59 -4
  74. package/engine/graphics/geometry/VertexDataSpec.js +1 -1
  75. package/engine/graphics/impostors/octahedral/prototypeBaker.js +3 -3
  76. package/engine/graphics/micron/plugin/GLTFAssetTransformer.js +1 -1
  77. package/engine/graphics/micron/plugin/MicronRenderPlugin.js +3 -1
  78. package/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.js +1 -1
  79. package/engine/graphics/render/forward_plus/LightManager.js +1 -1
  80. package/engine/graphics/render/forward_plus/LightManager.spec.js +4 -0
  81. package/engine/graphics/render/forward_plus/computeFrustumCorners.js +4 -2
  82. package/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +2 -2
  83. package/engine/graphics/render/layers/RenderLayerUtils.js +2 -2
  84. package/engine/graphics/shaders/DenoiseShader.js +1 -1
  85. package/engine/graphics/texture/atlas/AtlasPatch.js +11 -3
  86. package/engine/graphics/texture/atlas/CachingTextureAtlas.js +2 -2
  87. package/engine/graphics/texture/atlas/TextureAtlas.js +7 -1
  88. package/engine/graphics/texture/atlas/TextureAtlas.spec.js +22 -0
  89. package/engine/graphics/texture/sampler/Sampler2D.js +0 -64
  90. package/engine/graphics/texture/sampler/Sampler2D.spec.js +2 -1
  91. package/engine/graphics/texture/sampler/sampler2d_combine.js +67 -0
  92. package/engine/intelligence/behavior/ecs/BehaviorSystem.spec.js +0 -3
  93. package/engine/network/PriorityFetch.js +192 -0
  94. package/engine/simulation/DormandPrince.js +1 -1
  95. package/engine/ui/DraggableAspect.js +0 -1
  96. package/generation/grid/generation/road/GridTaskGenerateRoads.js +1 -1
  97. package/package.json +1 -1
  98. package/view/elements/CanvasView.js +7 -1
  99. package/view/elements/image/HTMLElementCacheKey.js +1 -1
  100. package/view/util/DomSizeObserver.js +3 -5
  101. package/core/collection/ArrayUtils.js +0 -263
  102. package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_cavity.js +0 -73
  103. package/core/geom/3d/tetrahedra/hxt/a.js +0 -524
  104. package/core/geom/3d/tetrahedra/hxt/hxt.js +0 -140
  105. package/core/geom/3d/tetrahedra/hxt/hxt.wasm +0 -0
@@ -1,140 +0,0 @@
1
- import hxt_wasm from "./hxt.wasm";
2
- import { min2 } from "../../../../math/min2.js";
3
- import { max2 } from "../../../../math/max2.js";
4
-
5
- var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;
6
-
7
- function updateGlobalBufferAndViews(buf) {
8
- buffer = buf;
9
- HEAP8 = new Int8Array(buf);
10
- HEAP16 = new Int16Array(buf);
11
- HEAP32 = new Int32Array(buf);
12
- HEAPU8 = new Uint8Array(buf);
13
- HEAPU16 = new Uint16Array(buf);
14
- HEAPU32 = new Uint32Array(buf);
15
- HEAPF32 = new Float32Array(buf);
16
- HEAPF64 = new Float64Array(buf)
17
- }
18
-
19
- let instance;
20
-
21
- function emscripten_realloc_buffer(size) {
22
- try {
23
- wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
24
- updateGlobalBufferAndViews(wasmMemory.buffer);
25
- return 1
26
- } catch (e) {
27
- }
28
- }
29
-
30
- function _emscripten_resize_heap(requestedSize) {
31
- var oldSize = HEAPU8.length;
32
- requestedSize = requestedSize >>> 0;
33
- var maxHeapSize = getHeapMax();
34
- if (requestedSize > maxHeapSize) {
35
- return false
36
- }
37
- let alignUp = (x, multiple) => x + (multiple - x % multiple) % multiple;
38
- for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
39
- var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
40
- overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
41
- var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
42
- var replacement = emscripten_realloc_buffer(newSize);
43
- if (replacement) {
44
- return true
45
- }
46
- }
47
- return false
48
- }
49
-
50
- function _emscripten_memcpy_big(dest, src, num) {
51
- HEAPU8.copyWithin(dest, src, src + num)
52
- }
53
-
54
- function _fd_close(fd) {
55
- return 52
56
- }
57
-
58
- function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
59
- return 70
60
- }
61
-
62
- function _fd_write(fd, iov, iovcnt, pnum) {
63
- var num = 0;
64
- for (var i = 0; i < iovcnt; i++) {
65
- var ptr = HEAPU32[iov >> 2];
66
- var len = HEAPU32[iov + 4 >> 2];
67
- iov += 8;
68
- for (var j = 0; j < len; j++) {
69
- printChar(fd, HEAPU8[ptr + j])
70
- }
71
- num += len
72
- }
73
- HEAPU32[pnum >> 2] = num;
74
- return 0
75
- }
76
-
77
- var asmLibraryArg = {
78
- "e": _emscripten_memcpy_big,
79
- "b": _emscripten_resize_heap,
80
- "d": _fd_close,
81
- "a": _fd_seek,
82
- "c": _fd_write
83
- };
84
-
85
- /**
86
- *
87
- * @param {number[]} _points
88
- * @param {number} n
89
- * @return {Promise<void>}
90
- */
91
- export async function hxt(_points, n) {
92
-
93
- if (instance === undefined) {
94
- var info = { "a": asmLibraryArg };
95
-
96
- updateGlobalBufferAndViews(new ArrayBuffer(4 * 1024 * 1024));
97
-
98
- const response = await fetch(hxt_wasm);
99
- const bytes = await response.arrayBuffer();
100
-
101
- const module = await WebAssembly.instantiate(bytes, info);
102
-
103
- instance = module.instance;
104
- }
105
-
106
- /*
107
-
108
- double* points, // x0, y0, z0, x1,y1,z1, ...
109
- uint32_t point_count, // number of points in the input buffer
110
- double* bbox, //6 floats: min_x, min_y, min_z, max_x, max_y, max_z
111
- LinkedTetrahedron* output
112
-
113
- */
114
-
115
- const points = new Float64Array(_points);
116
-
117
- const bbox = new Float64Array(6);
118
-
119
- for (let i = 0; i < n; i++) {
120
-
121
- const x = points[i * 3];
122
- const y = points[i * 3 + 1];
123
- const z = points[i * 3 + 2];
124
-
125
- bbox[0] = min2(x, bbox[0]);
126
- bbox[1] = min2(y, bbox[1]);
127
- bbox[2] = min2(z, bbox[2]);
128
-
129
- bbox[3] = max2(x, bbox[3]);
130
- bbox[4] = max2(y, bbox[4]);
131
- bbox[5] = max2(z, bbox[5]);
132
-
133
- }
134
-
135
- const output_tets = new Uint8Array(10 * 1024 * 1024);
136
-
137
- const out_tet_count = instance.exports["h"](points, n, bbox, output_tets);
138
-
139
- console.log(out_tet_count);
140
- }