@woosh/meep-engine 2.118.9 → 2.118.11
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 +192 -266
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +192 -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 +9 -7
- 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/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/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/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"}
|
|
@@ -50,16 +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
58
|
|
|
64
59
|
|
|
65
60
|
// indices of triangles, but sorted by morton codes
|
|
@@ -102,7 +97,7 @@ export function ebvh_build_for_geometry_morton(
|
|
|
102
97
|
|
|
103
98
|
// assign leaves
|
|
104
99
|
for (let i = 0; i < tri_count; i++) {
|
|
105
|
-
const
|
|
100
|
+
const node_id = (node_total_count - 1) - i;
|
|
106
101
|
|
|
107
102
|
const triangle_index = sorted_triangle_order[i];
|
|
108
103
|
|
|
@@ -112,7 +107,7 @@ export function ebvh_build_for_geometry_morton(
|
|
|
112
107
|
const b_index = index_array[triangle_index3 + 1];
|
|
113
108
|
const c_index = index_array[triangle_index3 + 2];
|
|
114
109
|
|
|
115
|
-
const node_address = ELEMENT_WORD_COUNT *
|
|
110
|
+
const node_address = ELEMENT_WORD_COUNT * node_id;
|
|
116
111
|
|
|
117
112
|
aabb3_compute_from_triangle(
|
|
118
113
|
bvh_float32, node_address,
|
|
@@ -124,6 +119,13 @@ export function ebvh_build_for_geometry_morton(
|
|
|
124
119
|
bvh_uint32[node_address + COLUMN_HEIGHT] = 0;
|
|
125
120
|
}
|
|
126
121
|
|
|
122
|
+
|
|
123
|
+
const nodes = new Uint32Array(node_total_count);
|
|
124
|
+
for (let i = 0; i < node_total_count; i++) {
|
|
125
|
+
// store nodes in reverse order so that top-level nodes end up on top
|
|
126
|
+
nodes[i] = (node_total_count - 1) - i;
|
|
127
|
+
}
|
|
128
|
+
|
|
127
129
|
// record newly generated nodes as "unprocessed"
|
|
128
130
|
const unprocessed_nodes = new Uint32Array(tri_count);
|
|
129
131
|
array_copy(nodes, 0, unprocessed_nodes, 0, tri_count);
|
|
@@ -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);
|
|
@@ -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}
|
|
@@ -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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"}
|
package/src/core/geom/Vector3.js
CHANGED
|
@@ -426,10 +426,10 @@ class Vector3 {
|
|
|
426
426
|
* @param {number} [squaredError]
|
|
427
427
|
* @return {boolean}
|
|
428
428
|
*/
|
|
429
|
-
isNormalized(squaredError =
|
|
429
|
+
isNormalized(squaredError = 1e-5) {
|
|
430
430
|
const lengthSq = this.lengthSqr();
|
|
431
431
|
|
|
432
|
-
return (lengthSq
|
|
432
|
+
return epsilonEquals(lengthSq, 1, squaredError);
|
|
433
433
|
}
|
|
434
434
|
|
|
435
435
|
/**
|
|
@@ -479,10 +479,6 @@ class Vector3 {
|
|
|
479
479
|
return v3_length_sqr(this.x - x, this.y - y, this.z - z);
|
|
480
480
|
}
|
|
481
481
|
|
|
482
|
-
distanceToSquared(other) {
|
|
483
|
-
return v3_length_sqr(this.x - other.x, this.y - other.y, this.z - other.z);
|
|
484
|
-
}
|
|
485
|
-
|
|
486
482
|
/**
|
|
487
483
|
* Angle between two vectors (co-planar) in radians
|
|
488
484
|
* @param {Vector3} other
|
|
@@ -742,31 +738,6 @@ class Vector3 {
|
|
|
742
738
|
this._projectVectors(x0, y0, z0, x1, y1, z1);
|
|
743
739
|
}
|
|
744
740
|
|
|
745
|
-
/**
|
|
746
|
-
* Compute orthogonal vectors given a normal
|
|
747
|
-
* Orthogonal vectors are normalized vectors pointing at right angles away from the input normal and to one another
|
|
748
|
-
* @see https://stackoverflow.com/questions/3684269/component-of-a-quaternion-rotation-around-an-axis
|
|
749
|
-
* @param normal
|
|
750
|
-
* @param orthonormal1
|
|
751
|
-
* @param orthonormal2
|
|
752
|
-
*/
|
|
753
|
-
static findOrthonormals(normal, orthonormal1, orthonormal2) {
|
|
754
|
-
throw new Error('Not Implemented');
|
|
755
|
-
|
|
756
|
-
// Vector3 w = Vector3.Transform(normal, OrthoX);
|
|
757
|
-
// float dot = Vector3.Dot(normal, w);
|
|
758
|
-
// if (Math.Abs(dot) > 0.6)
|
|
759
|
-
// {
|
|
760
|
-
// w = Vector3.Transform(normal, OrthoY);
|
|
761
|
-
// }
|
|
762
|
-
// w.Normalize();
|
|
763
|
-
//
|
|
764
|
-
// orthonormal1 = Vector3.Cross(normal, w);
|
|
765
|
-
// orthonormal1.Normalize();
|
|
766
|
-
// orthonormal2 = Vector3.Cross(normal, orthonormal1);
|
|
767
|
-
// orthonormal2.Normalize();
|
|
768
|
-
}
|
|
769
|
-
|
|
770
741
|
/**
|
|
771
742
|
* Project first vector onto second one
|
|
772
743
|
* @param {number} x0
|
|
@@ -907,24 +878,6 @@ class Vector3 {
|
|
|
907
878
|
this.set(x, y, z);
|
|
908
879
|
}
|
|
909
880
|
|
|
910
|
-
/**
|
|
911
|
-
*
|
|
912
|
-
* @param {BinaryBuffer} buffer
|
|
913
|
-
* @deprecated use dedicated method directly instead
|
|
914
|
-
*/
|
|
915
|
-
toBinaryBufferFloat32_EqualityEncoded(buffer) {
|
|
916
|
-
throw new Error('deprecated, use v3_binary_equality_encode')
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
/**
|
|
920
|
-
* Uses an extra byte for a header. Only writes unique components. Useful for things like scale where all components usually have the same value
|
|
921
|
-
* @param {BinaryBuffer} buffer
|
|
922
|
-
* @deprecated use dedicated method directly instead
|
|
923
|
-
*/
|
|
924
|
-
fromBinaryBufferFloat32_EqualityEncoded(buffer) {
|
|
925
|
-
throw new Error('deprecated, use v3_binary_equality_decode')
|
|
926
|
-
}
|
|
927
|
-
|
|
928
881
|
hash() {
|
|
929
882
|
const x = computeHashFloat(this.x);
|
|
930
883
|
const y = computeHashFloat(this.y);
|
|
@@ -1012,6 +965,8 @@ class Vector3 {
|
|
|
1012
965
|
|
|
1013
966
|
// Aliases
|
|
1014
967
|
|
|
968
|
+
Vector3.prototype.distanceToSquared = Vector3.prototype.distanceSqrTo;
|
|
969
|
+
|
|
1015
970
|
Vector3.prototype.lengthSq = Vector3.prototype.lengthSqr;
|
|
1016
971
|
Vector3.prototype.fromArray = Vector3.prototype.readFromArray;
|
|
1017
972
|
Vector3.prototype.toArray = Vector3.prototype.writeToArray;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sinc.d.ts","sourceRoot":"","sources":["../../../../src/core/math/sinc.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAHW,MAAM,GACL,MAAM,CAQjB"}
|