@woosh/meep-engine 2.66.0 → 2.68.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.
- package/build/meep.cjs +127 -1756
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +127 -1756
- package/package.json +1 -1
- package/src/engine/graphics/GraphicsEngine.js +16 -25
- package/src/engine/graphics/camera/testClippingPlaneComputation.js +5 -5
- package/src/engine/graphics/ecs/compileAllMaterials.js +5 -12
- package/src/engine/graphics/ecs/mesh/Mesh.d.ts +0 -1
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.d.ts +0 -5
- package/src/engine/graphics/ecs/mesh-v2/ShadedGeometry.js +0 -1
- package/src/engine/graphics/ecs/mesh-v2/sample/prototypeShadedGeometry.js +22 -24
- package/src/engine/graphics/ecs/mesh-v2/sample/prototype_sg_raycast.js +21 -23
- package/src/engine/graphics/material/optimization/prototypeMaterialOptimizer.js +16 -19
- package/src/engine/graphics/render/forward_plus/prototype/prototypeLightManager.js +46 -47
- package/src/engine/graphics/render/layers/RenderLayer.d.ts +0 -5
- package/src/engine/graphics/render/layers/RenderLayer.js +29 -45
- package/src/core/bvh2/BVHTasks.js +0 -65
- package/src/core/bvh2/BinaryNode.d.ts +0 -13
- package/src/core/bvh2/BinaryNode.js +0 -1188
- package/src/core/bvh2/BinaryNode.spec.js +0 -309
- package/src/core/bvh2/LeafNode.d.ts +0 -7
- package/src/core/bvh2/LeafNode.js +0 -147
- package/src/core/bvh2/Node.d.ts +0 -9
- package/src/core/bvh2/Node.js +0 -196
- package/src/core/bvh2/NodeValidator.js +0 -197
- package/src/core/bvh2/StacklessTraverser.js +0 -154
- package/src/core/bvh2/StacklessTraverser.spec.js +0 -109
- package/src/core/bvh2/serialization/deserializeBinaryNode.js +0 -40
- package/src/core/bvh2/serialization/deserializeBinaryNodeFromBinaryBuffer.js +0 -90
- package/src/core/bvh2/serialization/serializeBinaryNode.js +0 -31
- package/src/core/bvh2/serialization/serializeBinaryNodeToBinaryBuffer.js +0 -86
- package/src/core/bvh2/transform/BottomUpOptimizingRebuilder.js +0 -144
- package/src/core/bvh2/transform/RotationOptimizer.js +0 -123
- package/src/core/bvh2/transform/RotationOptimizer.spec.js +0 -303
- package/src/core/bvh2/transform/tryRotateSingleNode.js +0 -260
- package/src/core/bvh2/traversal/BVHVisitor.js +0 -30
- package/src/core/bvh2/traversal/RaycastBVHVisitor.js +0 -66
- package/src/core/bvh2/traversal/ThreeClippingPlaneComputingBVHVisitor.js +0 -384
- package/src/core/bvh2/traversal/ThreeFrustumsIntersectionBVHVisitor.js +0 -52
- package/src/core/bvh2/traversal/bvh_traverse_pre_order_using_stack.js +0 -43
- package/src/core/bvh2/traversal/queryBinaryNode_ClippingPlanes.d.ts +0 -5
- package/src/core/bvh2/traversal/queryBinaryNode_ClippingPlanes.js +0 -66
- package/src/core/bvh2/traversal/queryBinaryNode_CollectData.js +0 -49
- package/src/core/bvh2/traversal/queryBinaryNode_CollectLeaves.js +0 -51
- package/src/core/bvh2/traversal/queryBinaryNode_FrustumIntersections.js +0 -77
- package/src/core/bvh2/traversal/queryBinaryNode_SphereIntersections.js +0 -63
- package/src/core/bvh2/traversal/traverseBinaryNodeUsingVisitor.js +0 -50
- package/src/core/bvh2/traversal/traverseBinaryNodeUsingVisitor_DepthFirst_PreOrder.js +0 -34
- package/src/core/bvh2/util/find_least_common_ancestor.js +0 -34
- package/src/core/bvh2/visual/convert_bvh_to_dot_format_string.js +0 -50
- package/src/core/geom/2d/bvh/BinaryNode2.js +0 -152
- package/src/core/geom/2d/bvh/LeafNode2.js +0 -11
- package/src/core/geom/2d/bvh/Node2.js +0 -51
- package/src/engine/ecs/terrain/tiles/FirstRayIntersectionTerrainBVHVisitor.js +0 -74
- package/src/engine/graphics/geometry/bvh/BVHFromGeometry.js +0 -72
- package/src/engine/graphics/geometry/bvh/buffered/BVHGeometryRaycaster.js +0 -240
- package/src/engine/graphics/geometry/bvh/buffered/IndexedTraingleBoundsComputer.js +0 -43
- package/src/engine/graphics/render/forward_plus/query/query_bvh_frustum_from_objects.js +0 -133
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { RingBuffer } from "../collection/RingBuffer.js";
|
|
2
|
-
import Task from "../process/task/Task.js";
|
|
3
|
-
import { TaskSignal } from "../process/task/TaskSignal.js";
|
|
4
|
-
import { optimize } from "./transform/RotationOptimizer.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @param {BinaryNode} bvh
|
|
10
|
-
* @param {number} iterationLength
|
|
11
|
-
* @returns {Task}
|
|
12
|
-
*/
|
|
13
|
-
export function buildTreeOptimizationTask(bvh, iterationLength) {
|
|
14
|
-
|
|
15
|
-
const buffer = new RingBuffer(10);
|
|
16
|
-
|
|
17
|
-
let cycles = 0;
|
|
18
|
-
let sameChangeCountCycles = 0;
|
|
19
|
-
|
|
20
|
-
//optimize bvh
|
|
21
|
-
const task = new Task({
|
|
22
|
-
name: "Optimization of Bounding Volume Hierarchy",
|
|
23
|
-
|
|
24
|
-
initializer(task, executor) {
|
|
25
|
-
cycles = 0;
|
|
26
|
-
sameChangeCountCycles = 0;
|
|
27
|
-
buffer.clear();
|
|
28
|
-
},
|
|
29
|
-
|
|
30
|
-
cycleFunction() {
|
|
31
|
-
const optimizationsDone = optimize(bvh, iterationLength);
|
|
32
|
-
if (optimizationsDone > 0) {
|
|
33
|
-
console.log('otimization step.. changes: ', optimizationsDone);
|
|
34
|
-
|
|
35
|
-
cycles += optimizationsDone;
|
|
36
|
-
if (buffer.contains(optimizationsDone)) {
|
|
37
|
-
sameChangeCountCycles++;
|
|
38
|
-
if (sameChangeCountCycles > 100) {
|
|
39
|
-
console.warn("detected optimization oscillation after 100 cycles, terminating");
|
|
40
|
-
//stuck in oscillation, probably
|
|
41
|
-
return TaskSignal.EndSuccess;
|
|
42
|
-
}
|
|
43
|
-
} else {
|
|
44
|
-
//reset counter
|
|
45
|
-
sameChangeCountCycles = 0;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
buffer.push(optimizationsDone);
|
|
49
|
-
|
|
50
|
-
return TaskSignal.Continue;
|
|
51
|
-
} else {
|
|
52
|
-
return TaskSignal.EndSuccess;
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
computeProgress: function () {
|
|
56
|
-
if (iterationLength <= 0) {
|
|
57
|
-
return 0;
|
|
58
|
-
} else {
|
|
59
|
-
return cycles / iterationLength;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
return task;
|
|
65
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {Node} from "./Node";
|
|
2
|
-
import {LeafNode} from "./LeafNode";
|
|
3
|
-
|
|
4
|
-
export class BinaryNode<T = any> extends Node<T> {
|
|
5
|
-
left: Node<T>
|
|
6
|
-
right: Node<T>
|
|
7
|
-
|
|
8
|
-
traversePreOrderUsingStack(visitor: (node: Node<T>) => boolean, thisArg?: any): void
|
|
9
|
-
|
|
10
|
-
insert(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, value: T): LeafNode<T>
|
|
11
|
-
|
|
12
|
-
traverseRayLeafIntersections(startX: number, startY: number, startZ: number, directionX: number, directionY: number, directionZ: number, visitor: (node: LeafNode<T>) => any, thisArg?: any);
|
|
13
|
-
}
|