@ifc-lite/clash 1.7.0 → 1.8.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/dist/analysis.d.ts +10 -1
- package/dist/analysis.d.ts.map +1 -1
- package/dist/analysis.js +20 -0
- package/dist/analysis.js.map +1 -1
- package/dist/contact/narrow-phase.d.ts +3 -2
- package/dist/contact/narrow-phase.d.ts.map +1 -1
- package/dist/contact/narrow-phase.js +32 -14
- package/dist/contact/narrow-phase.js.map +1 -1
- package/dist/contact/tri-tri.d.ts +33 -7
- package/dist/contact/tri-tri.d.ts.map +1 -1
- package/dist/contact/tri-tri.js +37 -14
- package/dist/contact/tri-tri.js.map +1 -1
- package/dist/duplicate-metric.d.ts +26 -8
- package/dist/duplicate-metric.d.ts.map +1 -1
- package/dist/duplicate-metric.js +26 -8
- package/dist/duplicate-metric.js.map +1 -1
- package/dist/duplicates.d.ts +9 -0
- package/dist/duplicates.d.ts.map +1 -1
- package/dist/duplicates.js +53 -18
- package/dist/duplicates.js.map +1 -1
- package/dist/engine-ts/depth.d.ts +99 -0
- package/dist/engine-ts/depth.d.ts.map +1 -0
- package/dist/engine-ts/depth.js +172 -0
- package/dist/engine-ts/depth.js.map +1 -0
- package/dist/engine-ts/kernel.d.ts +3 -1
- package/dist/engine-ts/kernel.d.ts.map +1 -1
- package/dist/engine-ts/narrow.d.ts +7 -1
- package/dist/engine-ts/narrow.d.ts.map +1 -1
- package/dist/engine-ts/narrow.js +53 -95
- package/dist/engine-ts/narrow.js.map +1 -1
- package/dist/engine-ts/obb.d.ts +116 -0
- package/dist/engine-ts/obb.d.ts.map +1 -0
- package/dist/engine-ts/obb.js +331 -0
- package/dist/engine-ts/obb.js.map +1 -0
- package/dist/engine-ts/orchestrator.d.ts.map +1 -1
- package/dist/engine-ts/orchestrator.js +3 -13
- package/dist/engine-ts/orchestrator.js.map +1 -1
- package/dist/engine-ts/tri-mesh.d.ts +84 -22
- package/dist/engine-ts/tri-mesh.d.ts.map +1 -1
- package/dist/engine-ts/tri-mesh.js +151 -48
- package/dist/engine-ts/tri-mesh.js.map +1 -1
- package/dist/engine-ts/ts-kernel.d.ts.map +1 -1
- package/dist/engine-ts/ts-kernel.js +1 -0
- package/dist/engine-ts/ts-kernel.js.map +1 -1
- package/dist/engine-wasm/wasm-kernel.d.ts.map +1 -1
- package/dist/engine-wasm/wasm-kernel.js +7 -0
- package/dist/engine-wasm/wasm-kernel.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/math/aabb.d.ts +10 -1
- package/dist/math/aabb.d.ts.map +1 -1
- package/dist/math/aabb.js +33 -13
- package/dist/math/aabb.js.map +1 -1
- package/dist/triage.d.ts.map +1 -1
- package/dist/triage.js +11 -3
- package/dist/triage.js.map +1 -1
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -3
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { BVH } from '@ifc-lite/spatial';
|
|
5
5
|
import { sub, cross, dot, distSq } from '../math/vec3.js';
|
|
6
6
|
import { closestPtPointTriangle } from '../math/triangle-distance.js';
|
|
7
|
+
import { detectObb } from './obb.js';
|
|
7
8
|
/**
|
|
8
9
|
* Fixed ray direction for point-in-solid tests: `normalize([1, √3, √5])`.
|
|
9
10
|
* Deliberately NON-axis-aligned so the ray never grazes the edges/vertices of
|
|
@@ -11,9 +12,16 @@ import { closestPtPointTriangle } from '../math/triangle-distance.js';
|
|
|
11
12
|
* IEEE-754 literals (not computed via `normalize()`) so the Rust kernel uses
|
|
12
13
|
* byte-identical components — `|RAY_DIR| === 1` exactly.
|
|
13
14
|
*/
|
|
14
|
-
const RAY_DIR = [0.3333333333333333, 0.5773502691896257, 0.7453559924999299];
|
|
15
|
+
export const RAY_DIR = [0.3333333333333333, 0.5773502691896257, 0.7453559924999299];
|
|
15
16
|
/** Parallel-reject + forward-crossing threshold. Same literal in the Rust kernel. */
|
|
16
|
-
const RAY_EPS = 1e-9;
|
|
17
|
+
export const RAY_EPS = 1e-9;
|
|
18
|
+
/** The axis-aligned cube of half-size `h` centred on `p`. */
|
|
19
|
+
function cubeAround(p, h) {
|
|
20
|
+
return {
|
|
21
|
+
min: [p[0] - h, p[1] - h, p[2] - h],
|
|
22
|
+
max: [p[0] + h, p[1] + h, p[2] + h],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
17
25
|
/**
|
|
18
26
|
* A triangle mesh with a per-triangle BVH for narrow-phase queries. Built once
|
|
19
27
|
* per element per run and cached by the engine, so each element's triangle
|
|
@@ -25,15 +33,52 @@ export class TriMesh {
|
|
|
25
33
|
indices;
|
|
26
34
|
transform;
|
|
27
35
|
bvh;
|
|
36
|
+
/**
|
|
37
|
+
* Starting half-size for the expanding-cube probe in `distanceToSurface`: a
|
|
38
|
+
* power-of-two fraction of the mesh's longest axis, scaled down by the cube
|
|
39
|
+
* root of the triangle count so it lands near the average triangle size.
|
|
40
|
+
* Derived with exact power-of-two arithmetic (no `pow`/`cbrt`, whose last bit
|
|
41
|
+
* is not guaranteed to agree between JS and Rust) — the Rust
|
|
42
|
+
* `TriMesh::probe_seed` computes the identical value.
|
|
43
|
+
*/
|
|
44
|
+
probeSeed;
|
|
45
|
+
/** Memoized `detectObb(this)` result; `undefined` until first requested.
|
|
46
|
+
* Computed at most once per element per run, same lifetime as the mesh. */
|
|
47
|
+
obbCache;
|
|
28
48
|
constructor(positions, indices, transform) {
|
|
29
49
|
this.positions = positions;
|
|
30
50
|
this.indices = indices;
|
|
31
51
|
this.transform = transform;
|
|
32
52
|
this.count = Math.floor(indices.length / 3);
|
|
33
53
|
const items = [];
|
|
54
|
+
let extent = 0;
|
|
55
|
+
const lo = [Infinity, Infinity, Infinity];
|
|
56
|
+
const hi = [-Infinity, -Infinity, -Infinity];
|
|
34
57
|
for (let t = 0; t < this.count; t += 1) {
|
|
35
|
-
|
|
58
|
+
const bounds = this.triBounds(t);
|
|
59
|
+
items.push({ bounds, expressId: t });
|
|
60
|
+
for (let a = 0; a < 3; a += 1) {
|
|
61
|
+
if (bounds.min[a] < lo[a])
|
|
62
|
+
lo[a] = bounds.min[a];
|
|
63
|
+
if (bounds.max[a] > hi[a])
|
|
64
|
+
hi[a] = bounds.max[a];
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
for (let a = 0; a < 3; a += 1) {
|
|
68
|
+
const e = hi[a] - lo[a];
|
|
69
|
+
if (e > extent)
|
|
70
|
+
extent = e;
|
|
71
|
+
}
|
|
72
|
+
// Halve the extent once per factor of 8 in the triangle count (≈ one
|
|
73
|
+
// subdivision step per axis). Both the loop and the division are exact.
|
|
74
|
+
let divisor = 1;
|
|
75
|
+
let cap = 8;
|
|
76
|
+
while (cap <= this.count && divisor < 1048576) {
|
|
77
|
+
divisor *= 2;
|
|
78
|
+
cap *= 8;
|
|
36
79
|
}
|
|
80
|
+
const seed = extent / divisor;
|
|
81
|
+
this.probeSeed = seed > 0 && seed < Infinity ? seed : 1;
|
|
37
82
|
this.bvh = BVH.build(items);
|
|
38
83
|
}
|
|
39
84
|
/** World-space vertex `i` (applies the element transform if present). */
|
|
@@ -88,6 +133,13 @@ export class TriMesh {
|
|
|
88
133
|
return [];
|
|
89
134
|
return this.bvh.queryAABB(bounds);
|
|
90
135
|
}
|
|
136
|
+
/** Memoized `Obb` for this mesh, or `null` when the mesh is not (within
|
|
137
|
+
* tolerance) a rectangular box. See `obb.ts` for the detection rule. */
|
|
138
|
+
getObb() {
|
|
139
|
+
if (this.obbCache === undefined)
|
|
140
|
+
this.obbCache = detectObb(this);
|
|
141
|
+
return this.obbCache;
|
|
142
|
+
}
|
|
91
143
|
/**
|
|
92
144
|
* Mean of every vertex (world-space, transform applied), summed in index
|
|
93
145
|
* order. A rigid-invariant interior probe for the volumetric-overlap check in
|
|
@@ -112,23 +164,20 @@ export class TriMesh {
|
|
|
112
164
|
}
|
|
113
165
|
return [sx / n, sy / n, sz / n];
|
|
114
166
|
}
|
|
115
|
-
/**
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
* pair depth measurement (#1866), so the O(n) scan is fine.
|
|
130
|
-
*/
|
|
131
|
-
distanceToSurface(p) {
|
|
167
|
+
/** Minimum point-to-triangle distance over `tris`, as a squared distance. */
|
|
168
|
+
minDistSqOver(p, tris) {
|
|
169
|
+
let best = Infinity;
|
|
170
|
+
for (const t of tris) {
|
|
171
|
+
const [a, b, c] = this.tri(t);
|
|
172
|
+
const q = closestPtPointTriangle(p, a, b, c);
|
|
173
|
+
const d2 = distSq(p, q);
|
|
174
|
+
if (d2 < best)
|
|
175
|
+
best = d2;
|
|
176
|
+
}
|
|
177
|
+
return best;
|
|
178
|
+
}
|
|
179
|
+
/** Exhaustive fallback for `distanceToSurface`: every triangle, index order. */
|
|
180
|
+
distanceToSurfaceScan(p) {
|
|
132
181
|
let best = Infinity;
|
|
133
182
|
for (let t = 0; t < this.count; t += 1) {
|
|
134
183
|
const [a, b, c] = this.tri(t);
|
|
@@ -140,40 +189,85 @@ export class TriMesh {
|
|
|
140
189
|
return Math.sqrt(best);
|
|
141
190
|
}
|
|
142
191
|
/**
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
192
|
+
* Exact distance from `p` to this mesh's surface: the minimum point-to-
|
|
193
|
+
* triangle distance over the whole mesh.
|
|
194
|
+
*
|
|
195
|
+
* Not on the narrow-phase hot path as of PR #2536 (its former caller,
|
|
196
|
+
* `maxPenetrationInto`, was removed — see `obb.ts`): a nearest-crossing-
|
|
197
|
+
* VERTEX distance-to-surface probe is a sampling artifact that converges to
|
|
198
|
+
* 0 under retessellation rather than to the true penetration depth. Kept as
|
|
199
|
+
* a genuinely exact, independently tested primitive (see the shared probe
|
|
200
|
+
* fixture in `tri-mesh.test.ts` / `kernel_tests.rs`) for future callers that
|
|
201
|
+
* need it — e.g. clearance-to-nearest-surface — not as dead weight. Driven
|
|
202
|
+
* by the triangle BVH rather than a linear scan so it stays cheap when it IS
|
|
203
|
+
* called. The BVH is used through a plain `queryAABB`, so the value is still
|
|
204
|
+
* the exact global minimum:
|
|
205
|
+
*
|
|
206
|
+
* TODO(remove-by: no production caller has appeared by the next
|
|
207
|
+
* clash-engine feature pass, or on maintainer request): tracking issue
|
|
208
|
+
* https://github.com/LTplus-AG/ifc-lite/issues/2646.
|
|
209
|
+
*
|
|
210
|
+
* 1. Query the cube of half-size `h` centred on `p`. Every triangle within
|
|
211
|
+
* distance `h` of `p` has its closest point inside that cube, hence its
|
|
212
|
+
* AABB intersects the cube, hence it is in the candidate set.
|
|
213
|
+
* 2. If the candidate minimum `d` satisfies `d <= h`, the true minimum is
|
|
214
|
+
* `<= h` too, so its triangle was a candidate and `d` IS the true minimum.
|
|
215
|
+
* 3. Otherwise `d` is still an upper bound on the true minimum, so one more
|
|
216
|
+
* query at half-size `d` provably captures the closest triangle.
|
|
217
|
+
*
|
|
218
|
+
* The reported value is therefore the same minimum the linear scan returns —
|
|
219
|
+
* `min` selects an element, it does not accumulate, so visiting a superset of
|
|
220
|
+
* the argmin in a different order returns the identical `f64`. The Rust
|
|
221
|
+
* `distance_to_surface` runs the identical sequence of queries on the identical
|
|
222
|
+
* BVH, so the two kernels stay bit-identical to each other (see the shared
|
|
223
|
+
* probe fixture in `tri-mesh.test.ts` / `kernel_tests.rs`).
|
|
224
|
+
*
|
|
225
|
+
* The `wider.length === 0` arm below is unreachable, not a tested fallback:
|
|
226
|
+
* `cubeAround(p, d)` with `d > h` strictly contains `cubeAround(p, h)`, whose
|
|
227
|
+
* query was already non-empty, so every triangle that made `hits` non-empty
|
|
228
|
+
* also intersects the wider cube — `wider` cannot come back empty. It is kept
|
|
229
|
+
* only as defence-in-depth against a future `queryTris` regression, not as a
|
|
230
|
+
* code path with coverage; do not read it as a tested safety net.
|
|
151
231
|
*/
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
depth = d;
|
|
232
|
+
distanceToSurface(p) {
|
|
233
|
+
if (this.count === 0)
|
|
234
|
+
return Infinity;
|
|
235
|
+
let h = this.probeSeed;
|
|
236
|
+
// 64 doublings from a positive seed overflow to Infinity, whose cube
|
|
237
|
+
// intersects every finite box — so the loop only runs out on NaN geometry,
|
|
238
|
+
// which falls through to the exhaustive scan rather than spinning.
|
|
239
|
+
for (let step = 0; step < 64; step += 1) {
|
|
240
|
+
const hits = this.queryTris(cubeAround(p, h));
|
|
241
|
+
if (hits.length > 0) {
|
|
242
|
+
const d = Math.sqrt(this.minDistSqOver(p, hits));
|
|
243
|
+
if (d <= h)
|
|
244
|
+
return d;
|
|
245
|
+
const wider = this.queryTris(cubeAround(p, d));
|
|
246
|
+
if (wider.length > 0)
|
|
247
|
+
return Math.sqrt(this.minDistSqOver(p, wider));
|
|
248
|
+
return this.distanceToSurfaceScan(p);
|
|
170
249
|
}
|
|
250
|
+
h *= 2;
|
|
171
251
|
}
|
|
172
|
-
return
|
|
252
|
+
return this.distanceToSurfaceScan(p);
|
|
173
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* True when `p` is inside this closed mesh. Casts a fixed-direction ray and
|
|
256
|
+
* counts forward crossings (Möller–Trumbore, double-sided so winding doesn't
|
|
257
|
+
* matter); an odd count means inside.
|
|
258
|
+
*
|
|
259
|
+
* Only the triangles the BVH reports along the ray are tested. A triangle the
|
|
260
|
+
* ray hits at `tHit > RAY_EPS > 0` is hit inside its own AABB, so the slab
|
|
261
|
+
* test admits it — the candidate set is a superset of the triangles a linear
|
|
262
|
+
* scan would count, and the crossing count is an integer sum, so the parity
|
|
263
|
+
* (and hence the verdict) is unchanged by the visit order. `RAY_DIR` is a
|
|
264
|
+
* unit vector exactly, so `BVH.raycast`'s normalisation is the identity and
|
|
265
|
+
* the slab test sees exactly `RAY_DIR`; the Rust `Bvh::raycast` mirrors this
|
|
266
|
+
* traversal operation for operation, keeping the two kernels bit-identical.
|
|
267
|
+
*/
|
|
174
268
|
containsPoint(p) {
|
|
175
269
|
let crossings = 0;
|
|
176
|
-
for (
|
|
270
|
+
for (const t of this.bvh.raycast(p, RAY_DIR)) {
|
|
177
271
|
const [v0, v1, v2] = this.tri(t);
|
|
178
272
|
const e1 = sub(v1, v0);
|
|
179
273
|
const e2 = sub(v2, v0);
|
|
@@ -196,5 +290,14 @@ export class TriMesh {
|
|
|
196
290
|
}
|
|
197
291
|
return (crossings & 1) === 1;
|
|
198
292
|
}
|
|
293
|
+
/** Number of vertices in this mesh (positions are packed `x, y, z`). */
|
|
294
|
+
vertexCount() {
|
|
295
|
+
return Math.floor(this.positions.length / 3);
|
|
296
|
+
}
|
|
297
|
+
/** The three vertex indices of triangle `t` (local, 0-based). */
|
|
298
|
+
triIndices(t) {
|
|
299
|
+
const o = t * 3;
|
|
300
|
+
return [this.indices[o], this.indices[o + 1], this.indices[o + 2]];
|
|
301
|
+
}
|
|
199
302
|
}
|
|
200
303
|
//# sourceMappingURL=tri-mesh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tri-mesh.js","sourceRoot":"","sources":["../../src/engine-ts/tri-mesh.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,GAAG,EAAkC,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"tri-mesh.js","sourceRoot":"","sources":["../../src/engine-ts/tri-mesh.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-kernel.d.ts","sourceRoot":"","sources":["../../src/engine-ts/ts-kernel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAgB,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,QAAS,YAAW,WAAW;IAS9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IAEjE;;;;;OAKG;gBAC0B,OAAO,GAAE,MAAiB;IAEvD,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,MAAM;IASR,UAAU,CACd,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAC1B,IAAI,EAAE,OAAO,aAAa,EAAE,SAAS,EACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACjD,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ts-kernel.d.ts","sourceRoot":"","sources":["../../src/engine-ts/ts-kernel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,KAAK,EAAE,WAAW,EAAgB,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,QAAS,YAAW,WAAW;IAS9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IAEjE;;;;;OAKG;gBAC0B,OAAO,GAAE,MAAiB;IAEvD,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,MAAM;IASR,UAAU,CACd,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAC1B,IAAI,EAAE,OAAO,aAAa,EAAE,SAAS,EACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACjD,OAAO,CAAC,aAAa,CAAC;CA2F1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-kernel.js","sourceRoot":"","sources":["../../src/engine-ts/ts-kernel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ts-kernel.js","sourceRoot":"","sources":["../../src/engine-ts/ts-kernel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-kernel.d.ts","sourceRoot":"","sources":["../../src/engine-wasm/wasm-kernel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"wasm-kernel.d.ts","sourceRoot":"","sources":["../../src/engine-wasm/wasm-kernel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAA2B,YAAY,EAAE,SAAS,EAA2B,MAAM,aAAa,CAAC;AAC7G,OAAO,KAAK,EAAE,WAAW,EAAgB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAevF;;;;;;;;GAQG;AACH,qBAAa,UAAW,YAAW,WAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAElD,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;IA2CjC,UAAU,CACd,SAAS,EAAE,YAAY,EAAE,EACzB,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,EAC1B,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACjD,OAAO,CAAC,aAAa,CAAC;IAmDzB,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
const STATUS = ['hard', 'clearance', 'touch'];
|
|
5
|
+
/** Mirrors the Rust `DistanceKind` discriminants (`Mesh = 0`, `Estimate = 1`). */
|
|
6
|
+
const DISTANCE_KIND = ['mesh', 'estimate'];
|
|
5
7
|
/** Transform a point by a column-major 4x4 matrix. */
|
|
6
8
|
function applyMat4(m, x, y, z) {
|
|
7
9
|
return [
|
|
@@ -73,6 +75,7 @@ export class WasmKernel {
|
|
|
73
75
|
const b = res.b;
|
|
74
76
|
const status = res.status;
|
|
75
77
|
const distance = res.distance;
|
|
78
|
+
const distanceKind = res.distanceKind;
|
|
76
79
|
const points = res.points;
|
|
77
80
|
const bounds = res.bounds;
|
|
78
81
|
for (let k = 0; k < a.length; k += 1) {
|
|
@@ -85,6 +88,10 @@ export class WasmKernel {
|
|
|
85
88
|
b: b[k],
|
|
86
89
|
status: STATUS[status[k]] ?? 'hard',
|
|
87
90
|
distance: distance[k],
|
|
91
|
+
// Defensive: an out-of-range byte would mean the kernel's encoding
|
|
92
|
+
// and this table had drifted apart. Fall back to the humbler label
|
|
93
|
+
// rather than claim a measurement the kernel may not have made.
|
|
94
|
+
distanceKind: DISTANCE_KIND[distanceKind[k]] ?? 'estimate',
|
|
88
95
|
point: [points[k * 3], points[k * 3 + 1], points[k * 3 + 2]],
|
|
89
96
|
bounds: bnds,
|
|
90
97
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-kernel.js","sourceRoot":"","sources":["../../src/engine-wasm/wasm-kernel.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAM/D,MAAM,MAAM,GAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"wasm-kernel.js","sourceRoot":"","sources":["../../src/engine-wasm/wasm-kernel.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,13 +11,13 @@ export * from './types.js';
|
|
|
11
11
|
export { matchesSelector } from './selectors.js';
|
|
12
12
|
export { DISCIPLINES, CLASH_RULE_PRESETS, inferClashSeverity, disciplineMatrixRules, rulesFromPresets, type Discipline, type DisciplineInfo, type ClashRulePreset, } from './disciplines.js';
|
|
13
13
|
export { createClashEngine, type ClashEngine, type ClashBackend, type CreateClashEngineOptions } from './engine.js';
|
|
14
|
-
export { makeExclusionSet, isExcluded, pairKey } from './exclude.js';
|
|
14
|
+
export { makeExclusionSet, isExcluded, pairKey, qualifiedKey } from './exclude.js';
|
|
15
15
|
export { buildTriageSystemPrompt, buildTriageUserMessage, parseTriageResponse, type ClashTriageResult, } from './triage.js';
|
|
16
16
|
export { groupClashes, isClusterGroupingIneffective, type GroupOptions } from './grouping.js';
|
|
17
17
|
export { groupDuplicateSets } from './duplicate-sets.js';
|
|
18
18
|
export { clashReviewKey, aggregateReviewStatus, reviewStatusToBcfTopicStatus, } from './review.js';
|
|
19
19
|
export { compareClashRuns, type ClashRevisionDiff } from './lifecycle.js';
|
|
20
|
-
export { SEVERITY_RANK, TOUCHING_EPSILON, penetrationDepth, isTouching, sortClashes, ruleHadNoMatch, classifyRuleCoverage, type ClashSortBy, type RuleCoverageOutcome, } from './analysis.js';
|
|
20
|
+
export { SEVERITY_RANK, TOUCHING_EPSILON, penetrationDepth, isTouching, sortClashes, summarizeClashes, ruleHadNoMatch, classifyRuleCoverage, type ClashSortBy, type RuleCoverageOutcome, } from './analysis.js';
|
|
21
21
|
export { findDuplicates, DUPLICATES_RULE, type DuplicateOptions, } from './duplicates.js';
|
|
22
22
|
/**
|
|
23
23
|
* Per-triangle mesh analysis, re-exported for consumers outside this package
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AACzB;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,13 +14,13 @@ export * from './types.js';
|
|
|
14
14
|
export { matchesSelector } from './selectors.js';
|
|
15
15
|
export { DISCIPLINES, CLASH_RULE_PRESETS, inferClashSeverity, disciplineMatrixRules, rulesFromPresets, } from './disciplines.js';
|
|
16
16
|
export { createClashEngine } from './engine.js';
|
|
17
|
-
export { makeExclusionSet, isExcluded, pairKey } from './exclude.js';
|
|
17
|
+
export { makeExclusionSet, isExcluded, pairKey, qualifiedKey } from './exclude.js';
|
|
18
18
|
export { buildTriageSystemPrompt, buildTriageUserMessage, parseTriageResponse, } from './triage.js';
|
|
19
19
|
export { groupClashes, isClusterGroupingIneffective } from './grouping.js';
|
|
20
20
|
export { groupDuplicateSets } from './duplicate-sets.js';
|
|
21
21
|
export { clashReviewKey, aggregateReviewStatus, reviewStatusToBcfTopicStatus, } from './review.js';
|
|
22
22
|
export { compareClashRuns } from './lifecycle.js';
|
|
23
|
-
export { SEVERITY_RANK, TOUCHING_EPSILON, penetrationDepth, isTouching, sortClashes, ruleHadNoMatch, classifyRuleCoverage, } from './analysis.js';
|
|
23
|
+
export { SEVERITY_RANK, TOUCHING_EPSILON, penetrationDepth, isTouching, sortClashes, summarizeClashes, ruleHadNoMatch, classifyRuleCoverage, } from './analysis.js';
|
|
24
24
|
export { findDuplicates, DUPLICATES_RULE, } from './duplicates.js';
|
|
25
25
|
/**
|
|
26
26
|
* Per-triangle mesh analysis, re-exported for consumers outside this package
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GAIjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAsE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;GAQG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,GAIjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAsE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,GAEpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAqB,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,4BAA4B,GAC7B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAA0B,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,eAAe,GAEhB,MAAM,iBAAiB,CAAC;AACzB;;;;;;;GAOG;AACH,OAAO,EACL,YAAY,GAEb,MAAM,uBAAuB,CAAC"}
|
package/dist/math/aabb.d.ts
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import type { AABB } from '@ifc-lite/spatial';
|
|
2
2
|
import type { Mat4, Vec3 } from '../types.js';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Axis-aligned bounds of a packed `[x,y,z,...]` position buffer.
|
|
5
|
+
*
|
|
6
|
+
* Non-finite coordinates (NaN and ±Infinity, checked after `transform` is
|
|
7
|
+
* applied) never become bounds: an infinite bound makes `boxDistance` return
|
|
8
|
+
* NaN, and a NaN distance passes every comparison-shaped gate downstream. If
|
|
9
|
+
* NO vertex contributes a finite coordinate on an axis, the box is returned
|
|
10
|
+
* inverted (`min > max`) on that axis, which is rejected by `boxesTouch`
|
|
11
|
+
* rather than silently paired.
|
|
12
|
+
*/
|
|
4
13
|
export declare function fromPositions(positions: Float32Array, transform?: Mat4): AABB;
|
|
5
14
|
/** Expand bounds by `m` on every side. */
|
|
6
15
|
export declare function inflate(b: AABB, m: number): AABB;
|
package/dist/math/aabb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aabb.d.ts","sourceRoot":"","sources":["../../src/math/aabb.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAY9C
|
|
1
|
+
{"version":3,"file":"aabb.d.ts","sourceRoot":"","sources":["../../src/math/aabb.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAY9C;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAoC7E;AAED,0CAA0C;AAC1C,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAEpC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAElD;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAEpD;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAE9D"}
|
package/dist/math/aabb.js
CHANGED
|
@@ -10,7 +10,16 @@ function applyMat4(m, x, y, z) {
|
|
|
10
10
|
m[2] * x + m[6] * y + m[10] * z + m[14],
|
|
11
11
|
];
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Axis-aligned bounds of a packed `[x,y,z,...]` position buffer.
|
|
15
|
+
*
|
|
16
|
+
* Non-finite coordinates (NaN and ±Infinity, checked after `transform` is
|
|
17
|
+
* applied) never become bounds: an infinite bound makes `boxDistance` return
|
|
18
|
+
* NaN, and a NaN distance passes every comparison-shaped gate downstream. If
|
|
19
|
+
* NO vertex contributes a finite coordinate on an axis, the box is returned
|
|
20
|
+
* inverted (`min > max`) on that axis, which is rejected by `boxesTouch`
|
|
21
|
+
* rather than silently paired.
|
|
22
|
+
*/
|
|
14
23
|
export function fromPositions(positions, transform) {
|
|
15
24
|
if (positions.length < 3) {
|
|
16
25
|
return { min: [0, 0, 0], max: [0, 0, 0] };
|
|
@@ -28,18 +37,29 @@ export function fromPositions(positions, transform) {
|
|
|
28
37
|
if (transform) {
|
|
29
38
|
[x, y, z] = applyMat4(transform, x, y, z);
|
|
30
39
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
// Only finite coordinates may become bounds. NaN was already excluded as a
|
|
41
|
+
// side effect (it fails both `<` and `>`), but ±Infinity propagated, and an
|
|
42
|
+
// infinite bound turns `boxDistance` into NaN — which `boxesTouch` passes.
|
|
43
|
+
// The rule is per coordinate, matching what NaN already got: the finite
|
|
44
|
+
// coordinates of a partly poisoned vertex still count.
|
|
45
|
+
if (Number.isFinite(x)) {
|
|
46
|
+
if (x < minX)
|
|
47
|
+
minX = x;
|
|
48
|
+
if (x > maxX)
|
|
49
|
+
maxX = x;
|
|
50
|
+
}
|
|
51
|
+
if (Number.isFinite(y)) {
|
|
52
|
+
if (y < minY)
|
|
53
|
+
minY = y;
|
|
54
|
+
if (y > maxY)
|
|
55
|
+
maxY = y;
|
|
56
|
+
}
|
|
57
|
+
if (Number.isFinite(z)) {
|
|
58
|
+
if (z < minZ)
|
|
59
|
+
minZ = z;
|
|
60
|
+
if (z > maxZ)
|
|
61
|
+
maxZ = z;
|
|
62
|
+
}
|
|
43
63
|
}
|
|
44
64
|
return { min: [minX, minY, minZ], max: [maxX, maxY, maxZ] };
|
|
45
65
|
}
|
package/dist/math/aabb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aabb.js","sourceRoot":"","sources":["../../src/math/aabb.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAa/D,OAAO,KAAK,CAAC,MAAM,wBAAwB,CAAC;AAE5C,sDAAsD;AACtD,SAAS,SAAS,CAAC,CAAO,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;IACzD,OAAO;QACL,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"aabb.js","sourceRoot":"","sources":["../../src/math/aabb.ts"],"names":[],"mappings":"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"}
|
package/dist/triage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../src/triage.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../src/triage.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAS,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,iFAAiF;AACjF,wBAAgB,uBAAuB,IAAI,MAAM,CAsBhD;AAUD,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA4ClE;AAgBD,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAoBxF"}
|
package/dist/triage.js
CHANGED
|
@@ -65,14 +65,22 @@ export function buildTriageUserMessage(result) {
|
|
|
65
65
|
for (const c of important) {
|
|
66
66
|
const aLabel = c.a.name || c.a.key.slice(0, 8);
|
|
67
67
|
const bLabel = c.b.name || c.b.key.slice(0, 8);
|
|
68
|
-
lines.push(`- [${c.severity}] ${c.a.tag} "${aLabel}" vs ${c.b.tag} "${bLabel}" — ${formatDistance(c.distance)} (rule: ${c.rule})`);
|
|
68
|
+
lines.push(`- [${c.severity}] ${c.a.tag} "${aLabel}" vs ${c.b.tag} "${bLabel}" — ${formatDistance(c.distance, c.distanceKind)} (rule: ${c.rule})`);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
return lines.join('\n');
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
/**
|
|
74
|
+
* Render a signed clash distance for the LLM triage prompt. `distanceKind`
|
|
75
|
+
* absent or `'estimate'` means the value is a box dimension read off the
|
|
76
|
+
* AABBs, not a mesh measurement (see `Clash.distanceKind`) — labelled so the
|
|
77
|
+
* prompt does not hand the LLM a bare number it will report as a precise
|
|
78
|
+
* penetration depth.
|
|
79
|
+
*/
|
|
80
|
+
function formatDistance(distance, distanceKind) {
|
|
81
|
+
const estimated = distanceKind !== 'mesh';
|
|
74
82
|
return distance < 0
|
|
75
|
-
? `penetration ${Math.abs(distance).toFixed(3)} m`
|
|
83
|
+
? `penetration ${estimated ? '~' : ''}${Math.abs(distance).toFixed(3)} m${estimated ? ' (AABB estimate)' : ''}`
|
|
76
84
|
: `gap ${distance.toFixed(3)} m`;
|
|
77
85
|
}
|
|
78
86
|
/** Parse the LLM's JSON response into a structured triage result. */
|
package/dist/triage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../src/triage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../src/triage.ts"],"names":[],"mappings":"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"}
|