@woosh/meep-engine 2.133.3 → 2.134.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/bundle-worker-image-decoder.js +1 -1
- package/package.json +2 -2
- package/src/core/binary/BinaryBuffer.d.ts +20 -0
- package/src/core/binary/BinaryBuffer.d.ts.map +1 -1
- package/src/core/binary/BinaryBuffer.js +50 -0
- package/src/core/binary/BitSet.d.ts +6 -0
- package/src/core/binary/BitSet.d.ts.map +1 -1
- package/src/core/binary/BitSet.js +38 -1
- package/src/core/binary/operations/bitCount.d.ts.map +1 -1
- package/src/core/binary/operations/bitCount.js +11 -6
- package/src/core/geom/3d/aabb/AABB3.d.ts +7 -1
- package/src/core/geom/3d/aabb/AABB3.d.ts.map +1 -1
- package/src/core/geom/3d/aabb/AABB3.js +14 -1
- package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.d.ts +4 -4
- package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.js +2 -2
- package/src/core/geom/3d/topology/simplify/build_edge_collapse_candidates.d.ts +2 -2
- package/src/core/geom/3d/topology/simplify/build_edge_collapse_candidates.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/build_edge_collapse_candidates.js +1 -1
- package/src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.d.ts +2 -2
- package/src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.js +1 -1
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts +4 -4
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js +3 -3
- package/src/core/geom/3d/topology/simplify/quadratic/{Quadratic3.d.ts → Quadric3.d.ts} +55 -29
- package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.d.ts.map +1 -0
- package/src/core/geom/3d/topology/simplify/quadratic/Quadric3.js +307 -0
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadratics.d.ts +7 -7
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadratics.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/quadratic/build_vertex_quadratics.js +39 -13
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadratic.d.ts +2 -2
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadratic.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/quadratic/compute_edge_collapse_cost_quadratic.js +1 -1
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh.d.ts +2 -2
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh.js +2 -2
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh2.d.ts +4 -4
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh2.d.ts.map +1 -1
- package/src/core/geom/3d/topology/simplify/simplifyTopoMesh2.js +5 -5
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_face_normals.d.ts +8 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_face_normals.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_face_normals.js +56 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadratics.d.ts +14 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadratics.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_compute_vertex_quadratics.js +95 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts +17 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/bt_mesh_simplify.js +352 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_collapse.d.ts +21 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_collapse.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_collapse.js +52 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.d.ts +16 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_edge_kill_parallels.js +90 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_fuse_duplicate_edges.d.ts +19 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_fuse_duplicate_edges.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/edge/bt_mesh_fuse_duplicate_edges.js +83 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_fuse_duplicate_edges.d.ts +22 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_fuse_duplicate_edges.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/io/vertex/bt_vert_fuse_duplicate_edges.js +148 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_face_get_incenter.js +4 -4
- package/src/core/geom/3d/topology/struct/binary/query/bt_faces_shared_loop.d.ts +15 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_faces_shared_loop.d.ts.map +1 -0
- package/src/core/geom/3d/topology/struct/binary/query/bt_faces_shared_loop.js +48 -0
- package/src/engine/ecs/terrain/ecs/Terrain.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/Terrain.js +6 -1
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayer.js +10 -9
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.d.ts.map +1 -1
- package/src/engine/ecs/terrain/ecs/layers/TerrainLayers.js +14 -11
- package/src/engine/graphics/ecs/water/WaterSystem.d.ts.map +1 -1
- package/src/engine/graphics/ecs/water/WaterSystem.js +3 -0
- package/src/engine/graphics/material/SplatMaterial.d.ts.map +1 -1
- package/src/engine/graphics/material/SplatMaterial.js +2 -4
- package/src/engine/graphics/shaders/TerrainShader.js +4 -11
- package/src/engine/navigation/mesh/NavigationMesh.d.ts +6 -4
- package/src/engine/navigation/mesh/NavigationMesh.d.ts.map +1 -1
- package/src/engine/navigation/mesh/NavigationMesh.js +212 -190
- package/src/engine/navigation/mesh/build/navmesh_build_topology.d.ts.map +1 -1
- package/src/engine/navigation/mesh/build/navmesh_build_topology.js +20 -7
- package/src/engine/navigation/mesh/bvh_query_nearest_face.d.ts +15 -0
- package/src/engine/navigation/mesh/bvh_query_nearest_face.d.ts.map +1 -0
- package/src/engine/navigation/mesh/bvh_query_nearest_face.js +131 -0
- package/src/engine/physics/gjk/gjk.d.ts +16 -0
- package/src/engine/physics/gjk/gjk.d.ts.map +1 -0
- package/src/engine/physics/gjk/gjk.js +378 -0
- package/src/core/geom/3d/topology/simplify/quadratic/Quadratic3.d.ts.map +0 -1
- package/src/core/geom/3d/topology/simplify/quadratic/Quadratic3.js +0 -302
|
@@ -7,11 +7,16 @@ export function bitCount(v) {
|
|
|
7
7
|
// see https://stackoverflow.com/a/109025/3973586
|
|
8
8
|
// see https://graphics.stanford.edu/%7Eseander/bithacks.html#CountBitsSetParallel
|
|
9
9
|
|
|
10
|
-
let i = v|0;
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
i =
|
|
14
|
-
|
|
15
|
-
i
|
|
16
|
-
|
|
11
|
+
// Force to a 32-bit unsigned integer
|
|
12
|
+
let i = v >>> 0;
|
|
13
|
+
|
|
14
|
+
i = i - ((i >>> 1) & 0x55555555); // Add pairs of bits
|
|
15
|
+
i = (i & 0x33333333) + ((i >>> 2) & 0x33333333); // Quads
|
|
16
|
+
i = (i + (i >>> 4)) & 0x0F0F0F0F; // Groups of 8
|
|
17
|
+
|
|
18
|
+
// horizontal sum of bytes
|
|
19
|
+
// return just that top byte (after truncating to 32-bit even when int is wider than uint32_t)
|
|
20
|
+
// Math.imul perfectly simulates C's 32-bit integer multiplication overflow
|
|
21
|
+
return (Math.imul(i, 0x01010101) >>> 24);
|
|
17
22
|
}
|
|
@@ -215,10 +215,16 @@ export class AABB3 {
|
|
|
215
215
|
* @returns {boolean}
|
|
216
216
|
*/
|
|
217
217
|
_expandToFitPoint(x: number, y: number, z: number): boolean;
|
|
218
|
+
/**
|
|
219
|
+
*
|
|
220
|
+
* @param {AABB3} other
|
|
221
|
+
*/
|
|
222
|
+
union(other: AABB3): void;
|
|
218
223
|
/**
|
|
219
224
|
*
|
|
220
225
|
* @param {AABB3} box
|
|
221
226
|
* @returns {boolean}
|
|
227
|
+
* @deprecated use {@link AABB3#union} instead
|
|
222
228
|
*/
|
|
223
229
|
expandToFit(box: AABB3): boolean;
|
|
224
230
|
/**
|
|
@@ -323,7 +329,7 @@ export class AABB3 {
|
|
|
323
329
|
intersectRay(oX: any, oY: any, oZ: any, dX: any, dY: any, dZ: any): boolean;
|
|
324
330
|
intersectSegment(startX: any, startY: any, startZ: any, endX: any, endY: any, endZ: any): boolean;
|
|
325
331
|
/**
|
|
326
|
-
*
|
|
332
|
+
* @deprecated use {@link AABB3#_containsBox} instead
|
|
327
333
|
* @param {THREE.Box} box
|
|
328
334
|
* @returns {boolean}
|
|
329
335
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"AAeA;;;;GAIG;AACH;IACI;;;;;;;;;OASG;IACH,iBARW,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,EAYhB;IAgED;;;OAGG;IACH,mBAEC;IAxDD;;;OAGG;IACH,gBAEC;IAoDD;;;OAGG;IACH,mBAEC;IAvDD;;;OAGG;IACH,gBAEC;IAmDD;;;OAGG;IACH,mBAEC;IAvDD;;;OAGG;IACH,gBAEC;IAmDD;;;OAGG;IACH,mBAEC;IAtDD;;;OAGG;IACH,gBAEC;IAkDD;;;OAGG;IACH,mBAEC;IAtDD;;;OAGG;IACH,gBAEC;IAkDD;;;OAGG;IACH,mBAEC;IAtDD;;;OAGG;IACH,gBAEC;IAOG,IA4GU,MAAM,CA5GL;IAQX,IAyGU,MAAM,CAzGL;IAQX,IAsGU,MAAM,CAtGL;IAQX,IAmGU,MAAM,CAnGL;IAQX,IAgGU,MAAM,CAhGL;IAQX,IA6FU,MAAM,CA7FL;IAGf;;;;;;;OAOG;IACH,8BANW,MAAM,KACN,MAAM,KACN,MAAM,aACN,MAAM,GACJ,OAAO,CAMnB;IAED;;;OAGG;IACH,sBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,iBAFa,MAAM,CAIlB;IAED;;;OAGG;IACH,YAFW,KAAK,QAIf;IAED;;;;;;;;OAQG;IACH,wFAsCC;IAED;;;;OAIG;IACH,cAHW,KAAK,GACH,OAAO,CAQnB;IAED;;;;;;;;;OASG;IACH,iFAFa,OAAO,CASnB;IAED;;OAEG;IACH,QAFa,MAAM,CAIlB;IAED;;;;;;;;OAQG;IACH,iGA6BC;IAED,oCAEC;IAED,0BAEC;IAED;;;;;OAKG;IACH,cAJW,MAAM,KACN,MAAM,KACN,MAAM,QAOhB;IAED;;;;;;;OAOG;IACH,oBANW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CASlB;IAED;;;;OAIG;IACH,mBAHW,KAAK,GACH,MAAM,CAIlB;IAED;;;;;;;;;;OAUG;IACH,mBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAclB;IAED;;;;;OAKG;IACH,wBAJW,KAAK,GACH,MAAM,CAKlB;IAED;;;;;;;;;;;OAWG;IACH,sBATW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,MAAM,CAuClB;IAED;;;;;;OAMG;IACH,qBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,OAAO,CA6BnB;IAED
|
|
1
|
+
{"version":3,"file":"AABB3.d.ts","sourceRoot":"","sources":["../../../../../../src/core/geom/3d/aabb/AABB3.js"],"names":[],"mappings":"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"}
|
|
@@ -491,10 +491,19 @@ export class AABB3 {
|
|
|
491
491
|
return expanded;
|
|
492
492
|
}
|
|
493
493
|
|
|
494
|
+
/**
|
|
495
|
+
*
|
|
496
|
+
* @param {AABB3} other
|
|
497
|
+
*/
|
|
498
|
+
union(other) {
|
|
499
|
+
this._expandToFit(other.x0, other.y0, other.z0, other.x1, other.y1, other.z1);
|
|
500
|
+
}
|
|
501
|
+
|
|
494
502
|
/**
|
|
495
503
|
*
|
|
496
504
|
* @param {AABB3} box
|
|
497
505
|
* @returns {boolean}
|
|
506
|
+
* @deprecated use {@link AABB3#union} instead
|
|
498
507
|
*/
|
|
499
508
|
expandToFit(box) {
|
|
500
509
|
return this._expandToFit(box.x0, box.y0, box.z0, box.x1, box.y1, box.z1);
|
|
@@ -710,7 +719,7 @@ export class AABB3 {
|
|
|
710
719
|
}
|
|
711
720
|
|
|
712
721
|
/**
|
|
713
|
-
*
|
|
722
|
+
* @deprecated use {@link AABB3#_containsBox} instead
|
|
714
723
|
* @param {THREE.Box} box
|
|
715
724
|
* @returns {boolean}
|
|
716
725
|
*/
|
|
@@ -961,6 +970,10 @@ export class AABB3 {
|
|
|
961
970
|
* @param {number} extra
|
|
962
971
|
*/
|
|
963
972
|
grow(extra) {
|
|
973
|
+
assert.isNumber(extra, 'extra');
|
|
974
|
+
assert.notNaN(extra, 'extra');
|
|
975
|
+
assert.isFinite(extra, 'extra');
|
|
976
|
+
|
|
964
977
|
this.x0 -= extra;
|
|
965
978
|
this.y0 -= extra;
|
|
966
979
|
this.z0 -= extra;
|
|
@@ -39,15 +39,15 @@ export class EdgeCollapseCandidate {
|
|
|
39
39
|
/**
|
|
40
40
|
*
|
|
41
41
|
* @param {TopoMesh} mesh
|
|
42
|
-
* @param {Map<number,
|
|
42
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
43
43
|
*/
|
|
44
|
-
collapse(mesh: TopoMesh, vertex_quadratics: Map<number,
|
|
44
|
+
collapse(mesh: TopoMesh, vertex_quadratics: Map<number, Quadric3>): void;
|
|
45
45
|
/**
|
|
46
46
|
* Compute cost of collapse as well as which vertex should be the victim
|
|
47
|
-
* @param {Map<number,
|
|
47
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
48
48
|
* @param {Set<number>} restricted_vertices
|
|
49
49
|
* @returns {boolean}
|
|
50
50
|
*/
|
|
51
|
-
update(vertex_quadratics: Map<number,
|
|
51
|
+
update(vertex_quadratics: Map<number, Quadric3>, restricted_vertices: Set<number>): boolean;
|
|
52
52
|
}
|
|
53
53
|
//# sourceMappingURL=EdgeCollapseCandidate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeCollapseCandidate.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.js"],"names":[],"mappings":"AAIA;IAEQ;;;OAGG;IACH,MAFU,WAAS,IAAI,CAEP;IAChB;;;OAGG;IACH,eAFU,aAAW,IAAI,CAEA;IACzB;;;OAGG;IACH,eAFU,aAAW,IAAI,CAEA;IAEzB;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,SAFU,MAAM,CAEA;IAEhB;;;;OAIG;IACH,0BAA8B;IAGlC;;;OAGG;IACH,oBAFa,OAAO,CAInB;IAGD,oBAMC;IAED;;;;OAIG;IACH,4CAFW,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"EdgeCollapseCandidate.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/EdgeCollapseCandidate.js"],"names":[],"mappings":"AAIA;IAEQ;;;OAGG;IACH,MAFU,WAAS,IAAI,CAEP;IAChB;;;OAGG;IACH,eAFU,aAAW,IAAI,CAEA;IACzB;;;OAGG;IACH,eAFU,aAAW,IAAI,CAEA;IAEzB;;;OAGG;IACH,MAFU,MAAM,CAEH;IAEb;;;OAGG;IACH,SAFU,MAAM,CAEA;IAEhB;;;;OAIG;IACH,0BAA8B;IAGlC;;;OAGG;IACH,oBAFa,OAAO,CAInB;IAGD,oBAMC;IAED;;;;OAIG;IACH,4CAFW,IAAI,MAAM,WAAW,QA2B/B;IAED;;;;;OAKG;IACH,0BAJW,IAAI,MAAM,WAAW,uBACrB,IAAI,MAAM,CAAC,GACT,OAAO,CAkDnB;CACJ"}
|
|
@@ -60,7 +60,7 @@ export class EdgeCollapseCandidate {
|
|
|
60
60
|
/**
|
|
61
61
|
*
|
|
62
62
|
* @param {TopoMesh} mesh
|
|
63
|
-
* @param {Map<number,
|
|
63
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
64
64
|
*/
|
|
65
65
|
collapse(mesh, vertex_quadratics) {
|
|
66
66
|
// if (!this.validate()) {
|
|
@@ -91,7 +91,7 @@ export class EdgeCollapseCandidate {
|
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* Compute cost of collapse as well as which vertex should be the victim
|
|
94
|
-
* @param {Map<number,
|
|
94
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
95
95
|
* @param {Set<number>} restricted_vertices
|
|
96
96
|
* @returns {boolean}
|
|
97
97
|
*/
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* @param {TopoMesh} mesh
|
|
4
4
|
* @param {BinaryHeap<EdgeCollapseCandidate>} heap
|
|
5
5
|
* @param {Map<TopoEdge, EdgeCollapseCandidate>} edge_map
|
|
6
|
-
* @param {Map<number,
|
|
6
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
7
7
|
* @param {Set<number>} restricted_vertices
|
|
8
8
|
*/
|
|
9
|
-
export function build_edge_collapse_candidates(mesh: TopoMesh, heap: BinaryHeap<EdgeCollapseCandidate>, edge_map: Map<TopoEdge, EdgeCollapseCandidate>, vertex_quadratics: Map<number,
|
|
9
|
+
export function build_edge_collapse_candidates(mesh: TopoMesh, heap: BinaryHeap<EdgeCollapseCandidate>, edge_map: Map<TopoEdge, EdgeCollapseCandidate>, vertex_quadratics: Map<number, Quadric3>, restricted_vertices: Set<number>): void;
|
|
10
10
|
import { EdgeCollapseCandidate } from "./EdgeCollapseCandidate.js";
|
|
11
11
|
//# sourceMappingURL=build_edge_collapse_candidates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build_edge_collapse_candidates.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/build_edge_collapse_candidates.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,kHAJW,cAAc,qBAAqB,CAAC,qBACpC,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"build_edge_collapse_candidates.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/build_edge_collapse_candidates.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,kHAJW,cAAc,qBAAqB,CAAC,qBACpC,IAAI,MAAM,WAAW,uBACrB,IAAI,MAAM,CAAC,QA6BrB;sCArCqC,4BAA4B"}
|
|
@@ -6,7 +6,7 @@ import { EdgeCollapseCandidate } from "./EdgeCollapseCandidate.js";
|
|
|
6
6
|
* @param {TopoMesh} mesh
|
|
7
7
|
* @param {BinaryHeap<EdgeCollapseCandidate>} heap
|
|
8
8
|
* @param {Map<TopoEdge, EdgeCollapseCandidate>} edge_map
|
|
9
|
-
* @param {Map<number,
|
|
9
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
10
10
|
* @param {Set<number>} restricted_vertices
|
|
11
11
|
*/
|
|
12
12
|
export function build_edge_collapse_candidates(
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* @param {TopoVertex} victim
|
|
5
5
|
* @param {TopoVertex} target
|
|
6
6
|
* @param {TopoEdge} victim_edge
|
|
7
|
-
* @param {Map<number,
|
|
7
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
8
8
|
* @return {number}
|
|
9
9
|
*/
|
|
10
|
-
export function computeEdgeCollapseCost(victim: TopoVertex, target: TopoVertex, victim_edge: TopoEdge, vertex_quadratics: Map<number,
|
|
10
|
+
export function computeEdgeCollapseCost(victim: TopoVertex, target: TopoVertex, victim_edge: TopoEdge, vertex_quadratics: Map<number, Quadric3>): number;
|
|
11
11
|
//# sourceMappingURL=computeEdgeCollapseCost.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeEdgeCollapseCost.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.js"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,0HAHW,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"computeEdgeCollapseCost.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/computeEdgeCollapseCost.js"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,0HAHW,IAAI,MAAM,WAAW,GACpB,MAAM,CAgEjB"}
|
|
@@ -14,7 +14,7 @@ const INVALID_FLIP_COST = Number.MAX_VALUE;
|
|
|
14
14
|
* @param {TopoVertex} victim
|
|
15
15
|
* @param {TopoVertex} target
|
|
16
16
|
* @param {TopoEdge} victim_edge
|
|
17
|
-
* @param {Map<number,
|
|
17
|
+
* @param {Map<number, Quadric3>} vertex_quadratics
|
|
18
18
|
* @return {number}
|
|
19
19
|
*/
|
|
20
20
|
export function computeEdgeCollapseCost(victim, target, victim_edge, vertex_quadratics) {
|
|
@@ -14,19 +14,19 @@ export function edge_collapse_pick_target_vertex(edge: TopoEdge, restricted_vert
|
|
|
14
14
|
/**
|
|
15
15
|
*
|
|
16
16
|
* @param {TopoEdge} edge
|
|
17
|
-
* @param {Map<number,
|
|
17
|
+
* @param {Map<number,Quadric3>} quadratics
|
|
18
18
|
* @param {Set<number>} restricted_vertices
|
|
19
19
|
*/
|
|
20
|
-
export function compute_edge_collapse_cost(edge: TopoEdge, quadratics: Map<number,
|
|
20
|
+
export function compute_edge_collapse_cost(edge: TopoEdge, quadratics: Map<number, Quadric3>, restricted_vertices: Set<number>): number;
|
|
21
21
|
/**
|
|
22
22
|
*
|
|
23
23
|
* @param {TopoMesh} mesh
|
|
24
24
|
* @param {TopoEdge}edge
|
|
25
25
|
* @param {TopoVertex} target
|
|
26
|
-
* @param {Map<number,
|
|
26
|
+
* @param {Map<number,Quadric3>} quadratics
|
|
27
27
|
* @param {Uint32Heap} heap
|
|
28
28
|
* @param {Set<number>} restricted_vertices
|
|
29
29
|
* @returns {boolean}
|
|
30
30
|
*/
|
|
31
|
-
export function decimate_edge_collapse_snap(mesh: TopoMesh, edge: TopoEdge, target: TopoVertex, quadratics: Map<number,
|
|
31
|
+
export function decimate_edge_collapse_snap(mesh: TopoMesh, edge: TopoEdge, target: TopoVertex, quadratics: Map<number, Quadric3>, heap: Uint32Heap, restricted_vertices: Set<number>): boolean;
|
|
32
32
|
//# sourceMappingURL=decimate_edge_collapse_snap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decimate_edge_collapse_snap.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,kFASC;AAED;;;;;GAKG;AACH,sFAHW,IAAI,MAAM,CAAC,GACT,aAAW,SAAS,CA0ChC;AAqBD;;;;;GAKG;AACH,uEAHW,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"decimate_edge_collapse_snap.d.ts","sourceRoot":"","sources":["../../../../../../../src/core/geom/3d/topology/simplify/decimate_edge_collapse_snap.js"],"names":[],"mappings":"AAgDA;;;;GAIG;AACH,kFASC;AAED;;;;;GAKG;AACH,sFAHW,IAAI,MAAM,CAAC,GACT,aAAW,SAAS,CA0ChC;AAqBD;;;;;GAKG;AACH,uEAHW,IAAI,MAAM,WAAU,uBACpB,IAAI,MAAM,CAAC,UAsBrB;AAsBD;;;;;;;;;GASG;AACH,4GALW,IAAI,MAAM,WAAU,yCAEpB,IAAI,MAAM,CAAC,GACT,OAAO,CAmFnB"}
|
|
@@ -132,7 +132,7 @@ function build_edge_cost_squared_topology(edge) {
|
|
|
132
132
|
/**
|
|
133
133
|
*
|
|
134
134
|
* @param {TopoEdge} edge
|
|
135
|
-
* @param {Map<number,
|
|
135
|
+
* @param {Map<number,Quadric3>} quadratics
|
|
136
136
|
* @param {Set<number>} restricted_vertices
|
|
137
137
|
*/
|
|
138
138
|
export function compute_edge_collapse_cost(edge, quadratics, restricted_vertices) {
|
|
@@ -160,7 +160,7 @@ export function compute_edge_collapse_cost(edge, quadratics, restricted_vertices
|
|
|
160
160
|
/**
|
|
161
161
|
*
|
|
162
162
|
* @param {TopoEdge} edge
|
|
163
|
-
* @param {Map<number,
|
|
163
|
+
* @param {Map<number,Quadric3>} quadratics
|
|
164
164
|
* @param {Uint32Heap} heap
|
|
165
165
|
* @param {Set<number>} restricted_vertices
|
|
166
166
|
*/
|
|
@@ -182,7 +182,7 @@ function tm_build_cost(edge, quadratics, heap, restricted_vertices) {
|
|
|
182
182
|
* @param {TopoMesh} mesh
|
|
183
183
|
* @param {TopoEdge}edge
|
|
184
184
|
* @param {TopoVertex} target
|
|
185
|
-
* @param {Map<number,
|
|
185
|
+
* @param {Map<number,Quadric3>} quadratics
|
|
186
186
|
* @param {Uint32Heap} heap
|
|
187
187
|
* @param {Set<number>} restricted_vertices
|
|
188
188
|
* @returns {boolean}
|
|
@@ -1,18 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Quadric Error Metric
|
|
3
|
-
*
|
|
3
|
+
* Upper-triangular portion of a symmetric 4x4 matrix encoding a quadric form.
|
|
4
|
+
*
|
|
5
|
+
* Layout (10 elements):
|
|
6
|
+
* [0]=a2 [1]=ab [2]=ac [3]=ad
|
|
7
|
+
* [4]=b2 [5]=bc [6]=bd
|
|
8
|
+
* [7]=c2 [8]=cd
|
|
9
|
+
* [9]=d2
|
|
4
10
|
*/
|
|
5
|
-
export class
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
export class Quadric3 extends Float64Array {
|
|
12
|
+
constructor();
|
|
13
|
+
set a2(arg: any);
|
|
14
|
+
get a2(): any;
|
|
15
|
+
0: any;
|
|
16
|
+
set ab(arg: any);
|
|
17
|
+
get ab(): any;
|
|
18
|
+
1: any;
|
|
19
|
+
set ac(arg: any);
|
|
20
|
+
get ac(): any;
|
|
21
|
+
2: any;
|
|
22
|
+
set ad(arg: any);
|
|
23
|
+
get ad(): any;
|
|
24
|
+
3: any;
|
|
25
|
+
set b2(arg: any);
|
|
26
|
+
get b2(): any;
|
|
27
|
+
4: any;
|
|
28
|
+
set bc(arg: any);
|
|
29
|
+
get bc(): any;
|
|
30
|
+
5: any;
|
|
31
|
+
set bd(arg: any);
|
|
32
|
+
get bd(): any;
|
|
33
|
+
6: any;
|
|
34
|
+
set c2(arg: any);
|
|
35
|
+
get c2(): any;
|
|
36
|
+
7: any;
|
|
37
|
+
set cd(arg: any);
|
|
38
|
+
get cd(): any;
|
|
39
|
+
8: any;
|
|
40
|
+
set d2(arg: any);
|
|
41
|
+
get d2(): any;
|
|
42
|
+
9: any;
|
|
16
43
|
/**
|
|
17
44
|
*
|
|
18
45
|
* @param {ArrayLike<number>|number[]|Float32Array} result
|
|
@@ -39,12 +66,7 @@ export class Quadratic3 {
|
|
|
39
66
|
*/
|
|
40
67
|
setFromVector4(x: number, y: number, z: number, w: number): void;
|
|
41
68
|
/**
|
|
42
|
-
*
|
|
43
|
-
* @param {TopoTriangle} face
|
|
44
|
-
*/
|
|
45
|
-
setFromFace(face: TopoTriangle): void;
|
|
46
|
-
/**
|
|
47
|
-
* Squared distance from the given point to plane encoded by the quadratic
|
|
69
|
+
* Squared distance from the given point to plane encoded by the quadric
|
|
48
70
|
* @param {number} x
|
|
49
71
|
* @param {number} y
|
|
50
72
|
* @param {number} z
|
|
@@ -52,19 +74,17 @@ export class Quadratic3 {
|
|
|
52
74
|
*/
|
|
53
75
|
evaluate(x: number, y: number, z: number): number;
|
|
54
76
|
/**
|
|
55
|
-
* Find optimal vertex position based on the
|
|
77
|
+
* Find the optimal vertex position based on the quadric
|
|
56
78
|
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* @param {number[]} out
|
|
79
|
+
* @param {number[]} out vector3
|
|
60
80
|
* @returns {boolean}
|
|
61
81
|
*/
|
|
62
82
|
optimize(out: number[]): boolean;
|
|
63
83
|
/**
|
|
64
84
|
*
|
|
65
|
-
* @param {
|
|
85
|
+
* @param {Quadric3} Q
|
|
66
86
|
*/
|
|
67
|
-
add(Q:
|
|
87
|
+
add(Q: Quadric3): void;
|
|
68
88
|
/**
|
|
69
89
|
*
|
|
70
90
|
* @param {number} v
|
|
@@ -72,17 +92,23 @@ export class Quadratic3 {
|
|
|
72
92
|
multiplyScalar(v: number): void;
|
|
73
93
|
/**
|
|
74
94
|
*
|
|
75
|
-
* @returns {
|
|
95
|
+
* @returns {Quadric3}
|
|
76
96
|
*/
|
|
77
|
-
clone():
|
|
97
|
+
clone(): Quadric3;
|
|
78
98
|
/**
|
|
79
99
|
*
|
|
80
|
-
* @param {
|
|
100
|
+
* @param {Quadric3} other
|
|
81
101
|
*/
|
|
82
|
-
copy(other:
|
|
102
|
+
copy(other: Quadric3): void;
|
|
83
103
|
/**
|
|
84
104
|
* Set all matrix values to 0
|
|
85
105
|
*/
|
|
86
106
|
clear(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Useful for type checking
|
|
109
|
+
* @readonly
|
|
110
|
+
* @type {boolean}
|
|
111
|
+
*/
|
|
112
|
+
readonly isQuadric3: boolean;
|
|
87
113
|
}
|
|
88
|
-
//# sourceMappingURL=
|
|
114
|
+
//# sourceMappingURL=Quadric3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Quadric3.d.ts","sourceRoot":"","sources":["../../../../../../../../src/core/geom/3d/topology/simplify/quadratic/Quadric3.js"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH;IACI,cAEC;IAMD,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAOf,iBAEC;IAND,cAEC;IAGG,OAAW;IAGf;;;OAGG;IACH,kBAFW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,QAMjD;IAED;;;OAGG;IACH,eAFW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,QAkBjD;IAED;;;;;OAKG;IACH,sBAJW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,YAAY,WACvC,MAAM,GACJ,OAAO,CAqCnB;IAED;;;;;;OAMG;IACH,kBALW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAgBhB;IAED;;;;;;OAMG;IACH,YALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CASlB;IAED;;;;;OAKG;IACH,cAHW,MAAM,EAAE,GACN,OAAO,CAkBnB;IAED;;;OAGG;IACH,OAFW,QAAQ,QAalB;IAED;;;OAGG;IACH,kBAFW,MAAM,QAahB;IAED;;;OAGG;IACH,SAFa,QAAQ,CAQpB;IAED;;;OAGG;IACH,YAFW,QAAQ,QAIlB;IAED;;OAEG;IACH,cAEC;IAGL;;;;OAIG;IACH,qBAFU,OAAO,CAEY;CAP5B"}
|