@woosh/meep-engine 2.118.9 → 2.118.12
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/bundle-worker-terrain.js +1 -1
- package/build/meep.cjs +209 -266
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +209 -266
- package/editor/ecs/component/editors/Sampler2DEditor.js +2 -4
- package/package.json +1 -1
- package/samples/terrain/editor.js +3 -3
- package/src/core/bvh2/binary/2/BinaryUint32BVH.d.ts +1 -19
- package/src/core/bvh2/binary/2/BinaryUint32BVH.d.ts.map +1 -1
- package/src/core/bvh2/binary/2/BinaryUint32BVH.js +10 -78
- package/src/core/bvh2/bvh3/build_triangle_morton_codes.js +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.d.ts.map +1 -1
- package/src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js +13 -11
- package/src/core/collection/array/isArrayEqualStrict.d.ts.map +1 -1
- package/src/core/collection/array/isArrayEqualStrict.js +2 -2
- package/src/core/collection/array/iterator/ArrayIteratorSequential.d.ts.map +1 -1
- package/src/core/collection/array/iterator/ArrayIteratorSequential.js +3 -4
- package/src/core/collection/array/typed/array_buffer_copy.js +2 -2
- package/src/core/collection/array/typed/typed_array_copy.d.ts.map +1 -1
- package/src/core/collection/array/typed/typed_array_copy.js +16 -0
- package/src/core/collection/queue/Deque.d.ts.map +1 -1
- package/src/core/collection/queue/Deque.js +1 -1
- package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/AABB3.js +0 -8
- package/src/core/geom/3d/aabb/aabb3_compute_surface_area.js +1 -3
- package/src/core/geom/3d/morton/{Morton.d.ts → v3_morton_encode.d.ts} +1 -1
- package/src/core/geom/3d/morton/v3_morton_encode.d.ts.map +1 -0
- package/src/core/geom/3d/morton/v3_morton_encode_bounded.js +2 -2
- package/src/core/geom/3d/morton/v3_morton_encode_transformed.js +2 -2
- package/src/core/geom/Quaternion.d.ts.map +1 -1
- package/src/core/geom/Quaternion.js +7 -10
- package/src/core/geom/Vector3.d.ts.map +1 -1
- package/src/core/geom/Vector3.js +4 -49
- package/src/core/math/sinc.d.ts +8 -0
- package/src/core/math/sinc.d.ts.map +1 -0
- package/src/core/math/sinc.js +13 -0
- package/src/core/process/worker/WorkerProxy.d.ts +12 -3
- package/src/core/process/worker/WorkerProxy.d.ts.map +1 -1
- package/src/core/process/worker/WorkerProxy.js +10 -1
- package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.d.ts +2 -17
- package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.d.ts.map +1 -1
- package/src/engine/ecs/terrain/BufferedGeometryArraysBuilder.js +2 -118
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.d.ts +0 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrain.js +1 -6
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts +5 -5
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/cling/ClingToTerrainSystem.js +20 -28
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.js +2 -2
- package/src/engine/ecs/terrain/tiles/TerrainTile.d.ts.map +1 -1
- package/src/engine/ecs/terrain/tiles/TerrainTile.js +3 -1
- package/src/engine/graphics/geometry/MikkT/MikkTSpace.d.ts +1 -1
- package/src/engine/graphics/geometry/MikkT/MikkTSpace.js +12 -12
- package/src/engine/graphics/geometry/MikkT/STSpace.d.ts.map +1 -1
- package/src/engine/graphics/geometry/MikkT/STSpace.js +14 -16
- package/src/engine/graphics/geometry/buffered/build_height_field_geometry.d.ts +17 -0
- package/src/engine/graphics/geometry/buffered/build_height_field_geometry.d.ts.map +1 -0
- package/src/engine/graphics/geometry/buffered/build_height_field_geometry.js +118 -0
- package/src/engine/graphics/geometry/buffered/geometry_compute_vertex_normals_indexed.d.ts +2 -2
- package/src/engine/graphics/geometry/buffered/geometry_compute_vertex_normals_indexed.d.ts.map +1 -1
- package/src/engine/graphics/geometry/buffered/geometry_compute_vertex_normals_indexed.js +1 -1
- package/src/engine/graphics/geometry/optimization/VertexCacheOptimizer.d.ts.map +1 -1
- package/src/engine/graphics/geometry/optimization/VertexCacheOptimizer.js +36 -22
- package/src/engine/graphics/material/optimization/MaterialOptimizationContext.d.ts.map +1 -1
- package/src/engine/graphics/material/optimization/MaterialOptimizationContext.js +2 -2
- package/src/engine/graphics/render/forward_plus/materials/FPlusDebugMaterial.js +3 -3
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +31 -52
- package/src/engine/graphics/texture/sampler/sampler2d_to_texture.d.ts +10 -0
- package/src/engine/graphics/texture/sampler/sampler2d_to_texture.d.ts.map +1 -0
- package/src/engine/graphics/texture/sampler/{Sampler2D2Texture.js → sampler2d_to_texture.js} +5 -5
- package/src/engine/graphics/texture/sampler/{copy_Sampler2D_channel_data.d.ts → sampler2d_transfer_data.d.ts} +2 -2
- package/src/engine/graphics/texture/sampler/sampler2d_transfer_data.d.ts.map +1 -0
- package/src/engine/graphics/texture/sampler/{copy_Sampler2D_channel_data.js → sampler2d_transfer_data.js} +1 -1
- package/src/engine/graphics/texture/sampler/writeSampler2DDataToDataTexture.js +2 -2
- package/src/engine/graphics/trail/x/simulator/RibbonXFixedPhysicsSimulator.d.ts.map +1 -1
- package/src/engine/graphics/trail/x/simulator/RibbonXFixedPhysicsSimulator.js +0 -3
- package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts +6 -3
- package/src/engine/intelligence/behavior/selector/WeightedElement.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedElement.js +9 -12
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.d.ts.map +1 -1
- package/src/engine/intelligence/behavior/selector/WeightedRandomBehavior.js +20 -23
- package/src/engine/intelligence/mcts/StateNode.d.ts.map +1 -1
- package/src/engine/intelligence/mcts/StateNode.js +76 -102
- package/src/engine/logging/Logger.d.ts.map +1 -1
- package/src/engine/logging/Logger.js +7 -9
- package/src/engine/logging/LoggerBackend.d.ts.map +1 -1
- package/src/engine/logging/LoggerBackend.js +7 -7
- package/src/core/geom/3d/morton/Morton.d.ts.map +0 -1
- package/src/engine/graphics/geometry/MikkT/m_getNumVerticesOfFace.d.ts +0 -9
- package/src/engine/graphics/geometry/MikkT/m_getNumVerticesOfFace.d.ts.map +0 -1
- package/src/engine/graphics/geometry/MikkT/m_getNumVerticesOfFace.js +0 -11
- package/src/engine/graphics/geometry/MikkT/m_getPosition.d.ts +0 -14
- package/src/engine/graphics/geometry/MikkT/m_getPosition.d.ts.map +0 -1
- package/src/engine/graphics/geometry/MikkT/m_getPosition.js +0 -20
- package/src/engine/graphics/geometry/MikkT/m_setTSpaceBasic.d.ts +0 -21
- package/src/engine/graphics/geometry/MikkT/m_setTSpaceBasic.d.ts.map +0 -1
- package/src/engine/graphics/geometry/MikkT/m_setTSpaceBasic.js +0 -22
- package/src/engine/graphics/texture/sampler/Sampler2D2Texture.d.ts +0 -10
- package/src/engine/graphics/texture/sampler/Sampler2D2Texture.d.ts.map +0 -1
- package/src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.d.ts.map +0 -1
- /package/src/core/geom/3d/morton/{Morton.js → v3_morton_encode.js} +0 -0
|
@@ -3,9 +3,6 @@ import {
|
|
|
3
3
|
} from "../../../../src/core/collection/array/typed/typedArrayConstructorByInstance.js";
|
|
4
4
|
import { FrameRunner } from "../../../../src/engine/graphics/FrameRunner.js";
|
|
5
5
|
import html_canvas_to_sampler2d from "../../../../src/engine/graphics/texture/html_canvas_to_sampler2d.js";
|
|
6
|
-
import {
|
|
7
|
-
copy_Sampler2D_channel_data
|
|
8
|
-
} from "../../../../src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.js";
|
|
9
6
|
import { downloadSampler2DAsPNG } from "../../../../src/engine/graphics/texture/sampler/downloadSamplerAsPNG.js";
|
|
10
7
|
import { sampler2d_scale } from "../../../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
|
|
11
8
|
import { Sampler2D } from "../../../../src/engine/graphics/texture/sampler/Sampler2D.js";
|
|
@@ -13,6 +10,7 @@ import {
|
|
|
13
10
|
sampler2d_compute_texel_value_conversion_scale_to_uint8
|
|
14
11
|
} from "../../../../src/engine/graphics/texture/sampler/sampler2d_compute_texel_value_conversion_scale_to_uint8.js";
|
|
15
12
|
import sampler2D2Canvas from "../../../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
|
|
13
|
+
import { sampler2d_transfer_data } from "../../../../src/engine/graphics/texture/sampler/sampler2d_transfer_data.js";
|
|
16
14
|
import { MouseEvents } from "../../../../src/engine/input/devices/events/MouseEvents.js";
|
|
17
15
|
import { CanvasView } from "../../../../src/view/elements/CanvasView.js";
|
|
18
16
|
import EmptyView from "../../../../src/view/elements/EmptyView.js";
|
|
@@ -102,7 +100,7 @@ function enable_drop(parent, element, field) {
|
|
|
102
100
|
|
|
103
101
|
sampler.resize(width, height, false);
|
|
104
102
|
|
|
105
|
-
|
|
103
|
+
sampler2d_transfer_data(file_data_sampler, sampler);
|
|
106
104
|
};
|
|
107
105
|
|
|
108
106
|
|
package/package.json
CHANGED
|
@@ -16,10 +16,10 @@ import { EngineConfiguration } from "../../src/engine/EngineConfiguration.js";
|
|
|
16
16
|
import { EngineHarness } from "../../src/engine/EngineHarness.js";
|
|
17
17
|
import { load_and_set_cubemap_v0 } from "../../src/engine/graphics/load_and_set_cubemap_v0.js";
|
|
18
18
|
import CheckersTextureURI from "../../src/engine/graphics/texture/CheckersTextureURI.js";
|
|
19
|
-
import { copy_Sampler2D_channel_data } from "../../src/engine/graphics/texture/sampler/copy_Sampler2D_channel_data.js";
|
|
20
19
|
import { sampler2d_scale } from "../../src/engine/graphics/texture/sampler/resize/sampler2d_scale.js";
|
|
21
20
|
import { Sampler2D } from "../../src/engine/graphics/texture/sampler/Sampler2D.js";
|
|
22
21
|
import sampler2d_to_html_canvas from "../../src/engine/graphics/texture/sampler/sampler2d_to_html_canvas.js";
|
|
22
|
+
import { sampler2d_transfer_data } from "../../src/engine/graphics/texture/sampler/sampler2d_transfer_data.js";
|
|
23
23
|
import { NativeListController } from "../../src/view/controller/controls/NativeListController.js";
|
|
24
24
|
import { CanvasView } from "../../src/view/elements/CanvasView.js";
|
|
25
25
|
import EmptyView from "../../src/view/elements/EmptyView.js";
|
|
@@ -120,12 +120,12 @@ class TextureLayerEditor {
|
|
|
120
120
|
const layer = layers.get(this.index);
|
|
121
121
|
|
|
122
122
|
target.resize(layer.diffuse.width, layer.diffuse.height);
|
|
123
|
-
|
|
123
|
+
sampler2d_transfer_data(layer.diffuse, target);
|
|
124
124
|
},
|
|
125
125
|
write: (source) => {
|
|
126
126
|
const layer = this.__terrain.layers.get(this.index);
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
sampler2d_transfer_data(source, layer.diffuse);
|
|
129
129
|
|
|
130
130
|
this.__terrain.layers.writeLayerDataIntoTexture(this.index);
|
|
131
131
|
},
|
|
@@ -110,31 +110,13 @@ export class BinaryUint32BVH {
|
|
|
110
110
|
*/
|
|
111
111
|
readLeafPayload(leaf_index: number): number;
|
|
112
112
|
compute_total_surface_area(): number;
|
|
113
|
-
/**
|
|
114
|
-
*
|
|
115
|
-
* @param {number} a address
|
|
116
|
-
* @param {number} b address
|
|
117
|
-
* @param {number} c address
|
|
118
|
-
* @returns {number}
|
|
119
|
-
* @private
|
|
120
|
-
*/
|
|
121
|
-
private __compute_bounds_area_of_3_boxes;
|
|
122
|
-
/**
|
|
123
|
-
*
|
|
124
|
-
* @param {number} a
|
|
125
|
-
* @param {number} b
|
|
126
|
-
* @returns {number}
|
|
127
|
-
* @private
|
|
128
|
-
*/
|
|
129
|
-
private __fitness_function_should_swap_leaves_sah;
|
|
130
|
-
sort_bubble_sah(): void;
|
|
131
113
|
/**
|
|
132
114
|
* Sort leaf nodes according to their morton codes
|
|
133
115
|
* @param {number[]} bounds
|
|
134
116
|
*/
|
|
135
117
|
sort_morton(bounds: number[]): void;
|
|
136
118
|
/**
|
|
137
|
-
*
|
|
119
|
+
* Does not update intermediate node bounds
|
|
138
120
|
* @param {number} i
|
|
139
121
|
* @param {number} j
|
|
140
122
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryUint32BVH.d.ts","sourceRoot":"","sources":["../../../../../../src/core/bvh2/binary/2/BinaryUint32BVH.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BinaryUint32BVH.d.ts","sourceRoot":"","sources":["../../../../../../src/core/bvh2/binary/2/BinaryUint32BVH.js"],"names":[],"mappings":"AAUA;;;GAGG;AACH,gCAFU,MAAM,CAEmB;AAEnC;;;;GAIG;AACH,mCAFU,MAAM,CAEsB;AACtC;;;GAGG;AACH,iCAFU,MAAM,CAEoB;AAiDpC;IACI;;;;OAIG;IACH,sBAAc;IAEd;;;;OAIG;IACH,gCAAe;IAEf;;;;OAIG;IACH,+BAAc;IAEd;;;;OAIG;IACH,4BAAwB;IAExB;;;;OAIG;IACH,0BAAsB;IA0CtB;;;OAGG;IACH,2BAOC;IAED,wBAEC;IAnDD;;;OAGG;IACH,oBAFa,MAAM,CAIlB;IAED,2BAEC;IAED,gCAEC;IAED,8BAEC;IAED;;;OAGG;IACH,uBAFa,MAAM,CAIlB;IAED,4BAEC;IAED,0BAEC;IAmBD;;;;OAIG;IACH,2BAHW,MAAM,GACJ,MAAM,CAalB;IAED,6BASC;IAED;;;OAGG;IACH,oBAFW,MAAM,QAgBhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,GACL,MAAM,CASjB;IAED;;;;;;;;;;OAUG;IACH,mBATW,MAAM,WACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAoChB;IAED;;;;;OAKG;IACH,oBAJW,MAAM,eACN,MAAM,EAAE,GAAC,YAAY,sBACrB,MAAM,QAIhB;IAED;;;;OAIG;IACH,4BAHW,MAAM,GACJ,MAAM,CAQlB;IAED,qCAoBC;IAED;;;OAGG;IACH,oBAFW,MAAM,EAAE,QAqElB;IAED;;;;;OAKG;IACH,sBAUC;IAED;;OAEG;IACH,cAsEC;CACJ"}
|
|
@@ -7,10 +7,6 @@ import { aabb3_array_combine } from "../../../geom/3d/aabb/aabb3_array_combine.j
|
|
|
7
7
|
import { aabb3_array_set } from "../../../geom/3d/aabb/aabb3_array_set.js";
|
|
8
8
|
import { aabb3_compute_half_surface_area } from "../../../geom/3d/aabb/aabb3_compute_half_surface_area.js";
|
|
9
9
|
import { v3_morton_encode_bounded } from "../../../geom/3d/morton/v3_morton_encode_bounded.js";
|
|
10
|
-
import { max2 } from "../../../math/max2.js";
|
|
11
|
-
import { max3 } from "../../../math/max3.js";
|
|
12
|
-
import { min2 } from "../../../math/min2.js";
|
|
13
|
-
import { min3 } from "../../../math/min3.js";
|
|
14
10
|
|
|
15
11
|
/**
|
|
16
12
|
* @readonly
|
|
@@ -325,73 +321,6 @@ export class BinaryUint32BVH {
|
|
|
325
321
|
return result;
|
|
326
322
|
}
|
|
327
323
|
|
|
328
|
-
/**
|
|
329
|
-
*
|
|
330
|
-
* @param {number} a address
|
|
331
|
-
* @param {number} b address
|
|
332
|
-
* @param {number} c address
|
|
333
|
-
* @returns {number}
|
|
334
|
-
* @private
|
|
335
|
-
*/
|
|
336
|
-
__compute_bounds_area_of_3_boxes(a, b, c) {
|
|
337
|
-
const float32 = this.__data_float32;
|
|
338
|
-
|
|
339
|
-
const x0 = min3(float32[a + 0], float32[b + 0], float32[c + 0]);
|
|
340
|
-
const y0 = min3(float32[a + 1], float32[b + 1], float32[c + 1]);
|
|
341
|
-
const z0 = min3(float32[a + 2], float32[b + 2], float32[c + 2]);
|
|
342
|
-
|
|
343
|
-
const x1 = max3(float32[a + 3], float32[b + 3], float32[c + 3]);
|
|
344
|
-
const y1 = max3(float32[a + 4], float32[b + 4], float32[c + 4]);
|
|
345
|
-
const z1 = max3(float32[a + 5], float32[b + 5], float32[c + 5]);
|
|
346
|
-
|
|
347
|
-
return aabb3_compute_half_surface_area(x0, y0, z0, x1, y1, z1);
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
/**
|
|
351
|
-
*
|
|
352
|
-
* @param {number} a
|
|
353
|
-
* @param {number} b
|
|
354
|
-
* @returns {number}
|
|
355
|
-
* @private
|
|
356
|
-
*/
|
|
357
|
-
__fitness_function_should_swap_leaves_sah(a, b) {
|
|
358
|
-
const a_0 = max2(a - 1, 0);
|
|
359
|
-
const a_1 = min2(a + 1, this.__node_count_leaf - 1);
|
|
360
|
-
|
|
361
|
-
const leaf_block_offset = this.getLeafBlockAddress();
|
|
362
|
-
|
|
363
|
-
const a_c_address = a * BVH_LEAF_NODE_SIZE + leaf_block_offset;
|
|
364
|
-
const a_0_address = a_0 * BVH_LEAF_NODE_SIZE + leaf_block_offset;
|
|
365
|
-
const a_1_address = a_1 * BVH_LEAF_NODE_SIZE + leaf_block_offset;
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
const b_0 = max2(b - 1, 0);
|
|
369
|
-
const b_1 = min2(b + 1, this.__node_count_leaf - 1);
|
|
370
|
-
|
|
371
|
-
const b_c_address = b * BVH_LEAF_NODE_SIZE + leaf_block_offset;
|
|
372
|
-
const b_0_address = b_0 * BVH_LEAF_NODE_SIZE + leaf_block_offset;
|
|
373
|
-
const b_1_address = b_1 * BVH_LEAF_NODE_SIZE + leaf_block_offset;
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
const current_area = this.__compute_bounds_area_of_3_boxes(a_0_address, a_c_address, a_1_address) + this.__compute_bounds_area_of_3_boxes(b_0_address, b_c_address, b_1_address);
|
|
377
|
-
const swap_area = this.__compute_bounds_area_of_3_boxes(a_0_address, b_c_address, a_1_address) + this.__compute_bounds_area_of_3_boxes(b_0_address, a_c_address, b_1_address);
|
|
378
|
-
|
|
379
|
-
return current_area - swap_area;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
sort_bubble_sah() {
|
|
383
|
-
const n = this.__node_count_leaf;
|
|
384
|
-
|
|
385
|
-
for (let i = 0; i < n; i++) {
|
|
386
|
-
for (let j = i + 1; j < n; j++) {
|
|
387
|
-
if (this.__fitness_function_should_swap_leaves_sah(i, j) > 0) {
|
|
388
|
-
this.__swap_leaves(i, j);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
|
|
395
324
|
/**
|
|
396
325
|
* Sort leaf nodes according to their morton codes
|
|
397
326
|
* @param {number[]} bounds
|
|
@@ -405,15 +334,17 @@ export class BinaryUint32BVH {
|
|
|
405
334
|
return;
|
|
406
335
|
}
|
|
407
336
|
|
|
408
|
-
|
|
337
|
+
const stack_top = stack.pointer;
|
|
338
|
+
|
|
339
|
+
let stackPointer = stack_top;
|
|
409
340
|
let i, j;
|
|
410
341
|
|
|
411
|
-
stack[
|
|
412
|
-
stack[
|
|
342
|
+
stack[stackPointer++] = 0; // first node
|
|
343
|
+
stack[stackPointer++] = this.__node_count_leaf - 1; // last node
|
|
413
344
|
|
|
414
345
|
const data = this.__data_float32;
|
|
415
346
|
|
|
416
|
-
while (stackPointer >
|
|
347
|
+
while (stackPointer > stack_top) {
|
|
417
348
|
stackPointer -= 2;
|
|
418
349
|
|
|
419
350
|
const right = stack[stackPointer + 1];
|
|
@@ -422,14 +353,15 @@ export class BinaryUint32BVH {
|
|
|
422
353
|
i = left;
|
|
423
354
|
j = right;
|
|
424
355
|
|
|
425
|
-
const
|
|
356
|
+
const pivot_index = (left + right) >> 1;
|
|
426
357
|
|
|
427
|
-
const pivot_address =
|
|
358
|
+
const pivot_address = pivot_index * BVH_LEAF_NODE_SIZE + leaf_block_address;
|
|
428
359
|
|
|
429
360
|
const pivot = build_morton(data, pivot_address, bounds);
|
|
430
361
|
|
|
431
362
|
/* partition */
|
|
432
363
|
while (i <= j) {
|
|
364
|
+
|
|
433
365
|
while (build_morton(data, i * BVH_LEAF_NODE_SIZE + leaf_block_address, bounds) < pivot) {
|
|
434
366
|
i++;
|
|
435
367
|
}
|
|
@@ -463,7 +395,7 @@ export class BinaryUint32BVH {
|
|
|
463
395
|
}
|
|
464
396
|
|
|
465
397
|
/**
|
|
466
|
-
*
|
|
398
|
+
* Does not update intermediate node bounds
|
|
467
399
|
* @param {number} i
|
|
468
400
|
* @param {number} j
|
|
469
401
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ebvh_build_for_geometry_morton.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js"],"names":[],"mappings":"AAWA;;;;;;;;;GASG;AACH,sEANW,MAAM,EAAE,GAAC,WAAW,GAAC,WAAW,kBAChC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,WAAW,WACX,KAAK,YACL,MAAM,
|
|
1
|
+
{"version":3,"file":"ebvh_build_for_geometry_morton.d.ts","sourceRoot":"","sources":["../../../../../src/core/bvh2/bvh3/ebvh_build_for_geometry_morton.js"],"names":[],"mappings":"AAWA;;;;;;;;;GASG;AACH,sEANW,MAAM,EAAE,GAAC,WAAW,GAAC,WAAW,kBAChC,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,WAAW,WACX,KAAK,YACL,MAAM,QAmHhB;sBAnIqB,6BAA6B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { assert } from "../../assert.js";
|
|
2
|
-
import { array_copy } from "../../collection/array/array_copy.js";
|
|
3
2
|
import { array_quick_sort_by_lookup_uint } from "../../collection/array/array_quick_sort_by_lookup_uint.js";
|
|
3
|
+
import { typed_array_copy } from "../../collection/array/typed/typed_array_copy.js";
|
|
4
4
|
import { AABB3 } from "../../geom/3d/aabb/AABB3.js";
|
|
5
5
|
import { aabb3_from_v3_array } from "../../geom/3d/aabb/aabb3_from_v3_array.js";
|
|
6
6
|
import { aabb3_compute_from_triangle } from "../../geom/3d/aabb3_compute_from_triangle.js";
|
|
@@ -50,17 +50,11 @@ export function ebvh_build_for_geometry_morton(
|
|
|
50
50
|
|
|
51
51
|
const node_total_count = node_leaf_count + node_bin_count;
|
|
52
52
|
|
|
53
|
-
const nodes = new Uint32Array(node_total_count);
|
|
54
53
|
|
|
55
54
|
// skip allocation calls, allocate exactly as many nodes as we need
|
|
56
55
|
bvh.node_capacity = node_total_count;
|
|
57
56
|
bvh.__size = node_total_count;
|
|
58
57
|
|
|
59
|
-
for (let i = 0; i < node_total_count; i++) {
|
|
60
|
-
// store nodes in reverse order so that top-level nodes end up on top
|
|
61
|
-
nodes[i] = (node_total_count - 1) - i;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
58
|
|
|
65
59
|
// indices of triangles, but sorted by morton codes
|
|
66
60
|
const sorted_triangle_order = new Uint32Array(tri_count);
|
|
@@ -102,7 +96,7 @@ export function ebvh_build_for_geometry_morton(
|
|
|
102
96
|
|
|
103
97
|
// assign leaves
|
|
104
98
|
for (let i = 0; i < tri_count; i++) {
|
|
105
|
-
const
|
|
99
|
+
const node_id = (node_total_count - 1) - i;
|
|
106
100
|
|
|
107
101
|
const triangle_index = sorted_triangle_order[i];
|
|
108
102
|
|
|
@@ -112,7 +106,7 @@ export function ebvh_build_for_geometry_morton(
|
|
|
112
106
|
const b_index = index_array[triangle_index3 + 1];
|
|
113
107
|
const c_index = index_array[triangle_index3 + 2];
|
|
114
108
|
|
|
115
|
-
const node_address = ELEMENT_WORD_COUNT *
|
|
109
|
+
const node_address = ELEMENT_WORD_COUNT * node_id;
|
|
116
110
|
|
|
117
111
|
aabb3_compute_from_triangle(
|
|
118
112
|
bvh_float32, node_address,
|
|
@@ -124,10 +118,18 @@ export function ebvh_build_for_geometry_morton(
|
|
|
124
118
|
bvh_uint32[node_address + COLUMN_HEIGHT] = 0;
|
|
125
119
|
}
|
|
126
120
|
|
|
121
|
+
|
|
122
|
+
const nodes = new Uint32Array(node_total_count);
|
|
123
|
+
for (let i = 0; i < node_total_count; i++) {
|
|
124
|
+
// store nodes in reverse order so that top-level nodes end up on top
|
|
125
|
+
nodes[i] = (node_total_count - 1) - i;
|
|
126
|
+
}
|
|
127
|
+
|
|
127
128
|
// record newly generated nodes as "unprocessed"
|
|
128
129
|
const unprocessed_nodes = new Uint32Array(tri_count);
|
|
129
|
-
|
|
130
|
+
|
|
131
|
+
typed_array_copy(nodes, unprocessed_nodes);
|
|
130
132
|
|
|
131
133
|
// assign root
|
|
132
|
-
bvh.root = ebvh_build_hierarchy(bvh, unprocessed_nodes, tri_count, nodes, tri_count, quality
|
|
134
|
+
bvh.root = ebvh_build_hierarchy(bvh, unprocessed_nodes, tri_count, nodes, tri_count, quality);
|
|
133
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isArrayEqualStrict.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/isArrayEqualStrict.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,sCAJW,QAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"isArrayEqualStrict.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/array/isArrayEqualStrict.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,sCAJW,QAAM,UAAU,GAAC,YAAY,KAC7B,QAAM,UAAU,GAAC,YAAY,GAC3B,OAAO,CAoBnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayIteratorSequential.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/iterator/ArrayIteratorSequential.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"ArrayIteratorSequential.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/iterator/ArrayIteratorSequential.js"],"names":[],"mappings":"AAEA;;IAGI,YAAQ;IAGR,4BAIC;IAED,wBAcC;CACJ;sCA7BqC,4BAA4B"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { AbstractArrayIterator } from "./AbstractArrayIterator.js";
|
|
2
2
|
|
|
3
3
|
export class ArrayIteratorSequential extends AbstractArrayIterator {
|
|
4
|
-
constructor() {
|
|
5
|
-
super();
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
|
|
6
|
+
__i = 0;
|
|
7
|
+
|
|
9
8
|
|
|
10
9
|
initialize(data) {
|
|
11
10
|
super.initialize(data);
|
|
@@ -18,8 +18,8 @@ export function array_buffer_copy(
|
|
|
18
18
|
assert.isNonNegativeInteger(source_offset, 'source_offset');
|
|
19
19
|
assert.isNonNegativeInteger(target_offset, 'target_offset');
|
|
20
20
|
assert.isNonNegativeInteger(byte_length, 'byte_length');
|
|
21
|
-
assert.ok(source instanceof ArrayBuffer || source instanceof SharedArrayBuffer,'source is not an ArrayBuffer');
|
|
22
|
-
assert.ok(target instanceof ArrayBuffer || target instanceof SharedArrayBuffer,'source is not an ArrayBuffer');
|
|
21
|
+
// assert.ok(source instanceof ArrayBuffer || source instanceof SharedArrayBuffer,'source is not an ArrayBuffer');
|
|
22
|
+
// assert.ok(target instanceof ArrayBuffer || target instanceof SharedArrayBuffer,'source is not an ArrayBuffer');
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* @type {Uint8Array|Uint16Array|Uint32Array}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed_array_copy.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/typed/typed_array_copy.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"typed_array_copy.d.ts","sourceRoot":"","sources":["../../../../../../src/core/collection/array/typed/typed_array_copy.js"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,yCAHW,aAAW,YAAY,GAAC,UAAU,GAAC,WAAW,eAC9C,aAAW,YAAY,GAAC,UAAU,GAAC,WAAW,QA0BxD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { array_copy } from "../array_copy.js";
|
|
2
|
+
import { array_buffer_copy } from "./array_buffer_copy.js";
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -10,9 +11,24 @@ export function typed_array_copy(source, destination) {
|
|
|
10
11
|
const destination_size = destination.length;
|
|
11
12
|
|
|
12
13
|
if (destination_size >= source.length) {
|
|
14
|
+
|
|
13
15
|
destination.set(source, 0);
|
|
16
|
+
|
|
17
|
+
} else if (source.constructor === destination.constructor) {
|
|
18
|
+
|
|
19
|
+
// same type
|
|
20
|
+
array_buffer_copy(
|
|
21
|
+
source.buffer,
|
|
22
|
+
source.byteOffset,
|
|
23
|
+
destination.buffer,
|
|
24
|
+
destination.byteOffset,
|
|
25
|
+
Math.min(source.byteLength, destination.byteLength)
|
|
26
|
+
);
|
|
27
|
+
|
|
14
28
|
} else {
|
|
29
|
+
|
|
15
30
|
// destination is smaller than source, crop source data
|
|
16
31
|
array_copy(source, 0, destination, 0, destination_size);
|
|
32
|
+
|
|
17
33
|
}
|
|
18
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Deque.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/queue/Deque.js"],"names":[],"mappings":"AAqBA;;;GAGG;AACH;IAgCI;;;OAGG;IACH,uBAFW,MAAM,EAUhB;IAuFD;;;OAGG;IACH,WAFY,OAAO,CAIlB;IAED,cAeC;IAED;;;OAGG;IACH,QAFa,MAAM,CAalB;IA6BD;;;;OAIG;IACH,UAHW,CAAC,GACC,OAAO,CAYnB;IA4BD;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"Deque.d.ts","sourceRoot":"","sources":["../../../../../src/core/collection/queue/Deque.js"],"names":[],"mappings":"AAqBA;;;GAGG;AACH;IAgCI;;;OAGG;IACH,uBAFW,MAAM,EAUhB;IAuFD;;;OAGG;IACH,WAFY,OAAO,CAIlB;IAED,cAeC;IAED;;;OAGG;IACH,QAFa,MAAM,CAalB;IA6BD;;;;OAIG;IACH,UAHW,CAAC,GACC,OAAO,CAYnB;IA4BD;;;;OAIG;IACH,OAHW,CAAC,GACC,OAAO,CAInB;IAED;;;OAGG;IACH,YAFW,CAAC,QAOX;IAED;;;OAGG;IACH,eAFa,CAAC,GAAC,SAAS,CAQvB;IAED;;;OAGG;IACH,YAFa,CAAC,GAAC,SAAS,CAIvB;IAED;;;OAGG;IACH,WAFW,CAAC,QAOX;IAED;;;OAGG;IACH,cAFa,CAAC,CASb;IAGD;;;OAGG;IACH,WAFa,CAAC,GAAC,SAAS,CAKvB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,CAAC,GAAC,SAAS,CAmBvB;IAED;;;;;OAKG;IACH,iBAJW,CAAC,EAAE,kBACH,MAAM,GACJ,CAAC,EAAE,CAUf;IAoBL;;OAEG;IACH,gBAAoB;IACpB;;OAEG;IACH,uBAAoB;IACpB;;OAEG;IACH,eAAmB;IAEnB;;OAEG;IACH,sBAAmB;IAlCf;;;OAGG;IACH,qBAFa,UAAU,CAAC,EAAC,IAAI,CAAC,CAS7B;;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { assert } from "../../../assert.js";
|
|
2
2
|
import Vector3 from "../../Vector3.js";
|
|
3
|
-
import computeMortonCode from "../morton/Morton.js";
|
|
4
3
|
import { aabb3_array_intersects_point } from "./aabb3_array_intersects_point.js";
|
|
5
4
|
import { aabb3_build_corners } from "./aabb3_build_corners.js";
|
|
6
5
|
import { aabb3_compute_distance_above_plane_max } from "./aabb3_compute_distance_above_plane_max.js";
|
|
@@ -128,13 +127,6 @@ export class AABB3 {
|
|
|
128
127
|
|| (z + tolerance) < this.z0 || (z - tolerance) > this.z1);
|
|
129
128
|
}
|
|
130
129
|
|
|
131
|
-
computeMortonCode() {
|
|
132
|
-
const cx = (this.x0 + this.x1) >> 1;
|
|
133
|
-
const cy = (this.y0 + this.y1) >> 1;
|
|
134
|
-
const cz = (this.z0 + this.z1) >> 1;
|
|
135
|
-
return computeMortonCode(cx, cy, cz);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
130
|
/**
|
|
139
131
|
*
|
|
140
132
|
* @returns {number}
|
|
@@ -8,11 +8,9 @@
|
|
|
8
8
|
* @param {number} z1
|
|
9
9
|
* @returns {number}
|
|
10
10
|
*/
|
|
11
|
-
function aabb3_compute_surface_area(x0, y0, z0, x1, y1, z1) {
|
|
11
|
+
export function aabb3_compute_surface_area(x0, y0, z0, x1, y1, z1) {
|
|
12
12
|
const dx = x1 - x0;
|
|
13
13
|
const dy = y1 - y0;
|
|
14
14
|
const dz = z1 - z0;
|
|
15
15
|
return (dy * (dx + dz) + dz * dx) * 2; //2 of each side
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
export { aabb3_compute_surface_area };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v3_morton_encode.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/morton/v3_morton_encode.js"],"names":[],"mappings":";uCAAuC,6BAA6B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import v3_morton_encode from "./v3_morton_encode.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @param {number} x
|
|
@@ -26,7 +26,7 @@ export function v3_morton_encode_bounded(x, y, z, bounds) {
|
|
|
26
26
|
const ndc_y = 1023 * (y - bounds_y0) / bounds_span_y;
|
|
27
27
|
const ndc_z = 1023 * (z - bounds_z0) / bounds_span_z;
|
|
28
28
|
|
|
29
|
-
return
|
|
29
|
+
return v3_morton_encode(
|
|
30
30
|
Math.round(ndc_x),
|
|
31
31
|
Math.round(ndc_y),
|
|
32
32
|
Math.round(ndc_z)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { clamp } from "../../../math/clamp.js";
|
|
2
|
-
import
|
|
2
|
+
import v3_morton_encode from "./v3_morton_encode.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Assumes that coordinates will be mapped to -1..1 range after transform
|
|
@@ -29,7 +29,7 @@ export function v3_morton_encode_transformed(x, y, z, matrix) {
|
|
|
29
29
|
const py = clamp(ndc_y + 511.5, 0, 1023);
|
|
30
30
|
const pz = clamp(ndc_z + 511.5, 0, 1023);
|
|
31
31
|
|
|
32
|
-
return
|
|
32
|
+
return v3_morton_encode(
|
|
33
33
|
Math.round(px),
|
|
34
34
|
Math.round(py),
|
|
35
35
|
Math.round(pz)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Quaternion.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Quaternion.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Quaternion.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Quaternion.js"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,6 @@ import { v3_dot } from "./vec3/v3_dot.js";
|
|
|
12
12
|
import { v4_length } from "./vec4/v4_length.js";
|
|
13
13
|
import Vector3 from "./Vector3.js";
|
|
14
14
|
|
|
15
|
-
|
|
16
15
|
const scratch_v3_a = new Vector3();
|
|
17
16
|
const scratch_v3_b = new Vector3();
|
|
18
17
|
const scratch_v3_c = new Vector3();
|
|
@@ -853,18 +852,18 @@ class Quaternion {
|
|
|
853
852
|
if (uv_dot < -0.9999999) {
|
|
854
853
|
//to vector is opposite, produce a reversal quaternion
|
|
855
854
|
|
|
856
|
-
|
|
855
|
+
scratch_v3_a.crossVectors(Vector3.left, from);
|
|
857
856
|
|
|
858
|
-
if (
|
|
859
|
-
|
|
857
|
+
if (scratch_v3_a.lengthSqr() < 0.00001) {
|
|
858
|
+
scratch_v3_a.crossVectors(Vector3.up, from);
|
|
860
859
|
}
|
|
861
860
|
|
|
862
|
-
|
|
861
|
+
scratch_v3_a.normalize();
|
|
863
862
|
|
|
864
863
|
this.set(
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
864
|
+
scratch_v3_a.x,
|
|
865
|
+
scratch_v3_a.y,
|
|
866
|
+
scratch_v3_a.z,
|
|
868
867
|
0
|
|
869
868
|
);
|
|
870
869
|
|
|
@@ -1428,6 +1427,4 @@ Quaternion.prototype.toArray = Quaternion.prototype.writeToArray;
|
|
|
1428
1427
|
Quaternion.identity = Object.freeze(new Quaternion(0, 0, 0, 1));
|
|
1429
1428
|
|
|
1430
1429
|
|
|
1431
|
-
const tempvec3 = new Vector3();
|
|
1432
|
-
|
|
1433
1430
|
export default Quaternion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector3.js"],"names":[],"mappings":";AAcA;;;GAGG;AACH;
|
|
1
|
+
{"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../../../src/core/geom/Vector3.js"],"names":[],"mappings":"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"}
|