@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.
- package/core/bvh2/aabb3/aabb3_array_combine.js +2 -2
- package/core/collection/RingBuffer.js +4 -2
- package/core/collection/RingBuffer.spec.js +59 -0
- package/core/collection/array/ArrayIteratorRandom.js +1 -1
- package/core/collection/{ArrayUtils.spec.js → array/arrayPickBestElement.spec.js} +1 -1
- package/core/collection/array/arrayPickBestElements.js +51 -0
- package/core/collection/array/arrayPickMinElement.js +43 -0
- package/core/collection/array/arrayQuickSort.js +1 -1
- package/core/collection/array/arraySetSortingDiff.js +1 -1
- package/core/collection/array/arraySwapElements.js +12 -0
- package/core/collection/array/groupArrayBy.js +42 -0
- package/core/collection/array/isArrayEqual.js +50 -0
- package/core/collection/array/randomMultipleFromArray.js +34 -0
- package/core/collection/array/randomizeArrayElementOrder.js +23 -0
- package/core/geom/2d/convex-hull/convex_hull_monotone_2d.js +1 -1
- package/core/geom/3d/aabb/aabb3_build_frustum.js +1 -1
- package/core/geom/3d/aabb/compute_aabb_from_points.js +1 -1
- package/core/geom/3d/frustum/frustum3_computeNearestPointToPoint.js +3 -1
- package/core/geom/3d/morton/v3_morton_encode_transformed.spec.js +20 -0
- package/core/geom/3d/plane/orient3d_fast.js +8 -10
- package/core/geom/3d/plane/plane_computeConvex3PlaneIntersection.js +0 -23
- package/core/geom/3d/plane/plane_three_compute_convex3_plane_intersection.js +24 -0
- package/core/geom/3d/shape/UnionShape3D.js +1 -1
- package/core/geom/3d/tetrahedra/README.md +10 -1
- package/core/geom/3d/tetrahedra/{tetrahedra_collection.js → TetrahedralMesh.js} +236 -152
- package/core/geom/3d/tetrahedra/TetrahedralMesh.spec.js +156 -0
- package/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.js +2 -2
- package/core/geom/3d/tetrahedra/compute_bounding_simplex_3d.spec.js +4 -4
- package/core/geom/3d/tetrahedra/delaunay/Cavity.js +45 -7
- package/core/geom/3d/tetrahedra/delaunay/compute_delaunay_tetrahedral_mesh.js +44 -9
- package/core/geom/3d/tetrahedra/delaunay/debug_validate_mesh.js +19 -0
- package/core/geom/3d/tetrahedra/delaunay/fill_in_a_cavity.js +155 -0
- package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_cavity2.js +224 -0
- package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.js +77 -0
- package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_sub_determinant.spec.js +30 -0
- package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_insert_point.js +98 -0
- package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_walk_toward_cavity.js +13 -6
- package/core/geom/3d/tetrahedra/point_in_tetrahedron_circumsphere.js +9 -9
- package/core/geom/3d/tetrahedra/prototypeTetrahedraBuilder.js +1 -1
- package/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.js +83 -0
- package/core/geom/3d/tetrahedra/tetrahedron_compute_signed_volume.spec.js +24 -0
- package/core/geom/3d/tetrahedra/tetrahedron_contains_point.spec.js +66 -0
- package/core/geom/3d/tetrahedra/validate_tetrahedral_mesh.js +119 -0
- package/core/geom/Bezier.js +0 -27
- package/core/geom/Plane.js +0 -4
- package/core/geom/packing/miniball/Subspan.js +2 -2
- package/core/geom/v3_lerp.js +6 -1
- package/core/math/isqrt.js +28 -0
- package/core/math/isqrt.spec.js +9 -0
- package/core/math/max.spec.js +25 -0
- package/core/math/min2.spec.js +25 -0
- package/core/model/node-graph/node/NodeInstance.js +3 -3
- package/core/primitives/strings/prefixTree/PrefixTreeLeaf.js +1 -1
- package/core/process/task/util/randomCountTask.js +1 -1
- package/editor/ecs/component/editors/primitive/ArrayEditor.js +1 -1
- package/editor/tools/v2/BlenderCameraOrientationGizmo.js +6 -0
- package/editor/view/ecs/components/common/AutoCanvasView.js +13 -25
- package/engine/asset/AssetManager.d.ts +7 -1
- package/engine/asset/AssetManager.js +50 -15
- package/engine/asset/AssetManager.spec.js +17 -11
- package/engine/asset/AssetRequest.js +57 -0
- package/engine/asset/loaders/ArrayBufferLoader.js +22 -0
- package/engine/asset/loaders/AssetLoader.js +1 -1
- package/engine/ecs/System.js +1 -1
- package/engine/ecs/dynamic_actions/DynamicActorSystem.js +1 -1
- package/engine/graphics/FrameRunner.js +5 -9
- package/engine/graphics/ecs/animation/animator/AnimationClipDefinition.js +1 -1
- package/engine/graphics/ecs/animation/animator/graph/definition/AnimationGraphDefinition.js +1 -1
- package/engine/graphics/ecs/camera/Camera.js +1 -10
- package/engine/graphics/ecs/camera/CameraSystem.js +8 -8
- package/engine/graphics/ecs/camera/ProjectionType.js +9 -0
- package/engine/graphics/ecs/camera/build_three_camera_object.js +3 -3
- package/engine/graphics/ecs/decal/v2/prototypeDecalSystem.js +59 -4
- package/engine/graphics/geometry/VertexDataSpec.js +1 -1
- package/engine/graphics/impostors/octahedral/prototypeBaker.js +3 -3
- package/engine/graphics/micron/plugin/GLTFAssetTransformer.js +1 -1
- package/engine/graphics/micron/plugin/MicronRenderPlugin.js +3 -1
- package/engine/graphics/particles/node-based/codegen/modules/FunctionSignature.js +1 -1
- package/engine/graphics/render/forward_plus/LightManager.js +1 -1
- package/engine/graphics/render/forward_plus/LightManager.spec.js +4 -0
- package/engine/graphics/render/forward_plus/computeFrustumCorners.js +4 -2
- package/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +2 -2
- package/engine/graphics/render/layers/RenderLayerUtils.js +2 -2
- package/engine/graphics/shaders/DenoiseShader.js +1 -1
- package/engine/graphics/texture/atlas/AtlasPatch.js +11 -3
- package/engine/graphics/texture/atlas/CachingTextureAtlas.js +2 -2
- package/engine/graphics/texture/atlas/TextureAtlas.js +7 -1
- package/engine/graphics/texture/atlas/TextureAtlas.spec.js +22 -0
- package/engine/graphics/texture/sampler/Sampler2D.js +0 -64
- package/engine/graphics/texture/sampler/Sampler2D.spec.js +2 -1
- package/engine/graphics/texture/sampler/sampler2d_combine.js +67 -0
- package/engine/intelligence/behavior/ecs/BehaviorSystem.spec.js +0 -3
- package/engine/network/PriorityFetch.js +192 -0
- package/engine/simulation/DormandPrince.js +1 -1
- package/engine/ui/DraggableAspect.js +0 -1
- package/generation/grid/generation/road/GridTaskGenerateRoads.js +1 -1
- package/package.json +1 -1
- package/view/elements/CanvasView.js +7 -1
- package/view/elements/image/HTMLElementCacheKey.js +1 -1
- package/view/util/DomSizeObserver.js +3 -5
- package/core/collection/ArrayUtils.js +0 -263
- package/core/geom/3d/tetrahedra/delaunay/tetrahedral_mesh_compute_cavity.js +0 -73
- package/core/geom/3d/tetrahedra/hxt/a.js +0 -524
- package/core/geom/3d/tetrahedra/hxt/hxt.js +0 -140
- 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
|
-
}
|
|
Binary file
|