@ifc-lite/renderer 1.48.0 → 1.49.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.
Files changed (41) hide show
  1. package/dist/deviation/deviation-computer.d.ts +87 -0
  2. package/dist/deviation/deviation-computer.d.ts.map +1 -0
  3. package/dist/deviation/deviation-computer.js +201 -0
  4. package/dist/deviation/deviation-computer.js.map +1 -0
  5. package/dist/environment.d.ts +9 -1
  6. package/dist/environment.d.ts.map +1 -1
  7. package/dist/environment.js +9 -2
  8. package/dist/environment.js.map +1 -1
  9. package/dist/index.d.ts +8 -46
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +30 -141
  12. package/dist/index.js.map +1 -1
  13. package/dist/shaders/main.wgsl.d.ts +1 -1
  14. package/dist/shaders/main.wgsl.d.ts.map +1 -1
  15. package/dist/shaders/main.wgsl.js +5 -3
  16. package/dist/shaders/main.wgsl.js.map +1 -1
  17. package/dist/shaders/sky.wgsl.d.ts +1 -1
  18. package/dist/shaders/sky.wgsl.d.ts.map +1 -1
  19. package/dist/shaders/sky.wgsl.js +7 -1
  20. package/dist/shaders/sky.wgsl.js.map +1 -1
  21. package/dist/snap-corner.d.ts +44 -0
  22. package/dist/snap-corner.d.ts.map +1 -0
  23. package/dist/snap-corner.js +111 -0
  24. package/dist/snap-corner.js.map +1 -0
  25. package/dist/snap-detector.d.ts +8 -4
  26. package/dist/snap-detector.d.ts.map +1 -1
  27. package/dist/snap-detector.js +60 -58
  28. package/dist/snap-detector.js.map +1 -1
  29. package/dist/snap-edge-runs.d.ts +75 -0
  30. package/dist/snap-edge-runs.d.ts.map +1 -0
  31. package/dist/snap-edge-runs.js +233 -0
  32. package/dist/snap-edge-runs.js.map +1 -0
  33. package/dist/snap-geometry-cache.d.ts +17 -11
  34. package/dist/snap-geometry-cache.d.ts.map +1 -1
  35. package/dist/snap-geometry-cache.js +115 -141
  36. package/dist/snap-geometry-cache.js.map +1 -1
  37. package/dist/snap-weld.d.ts +66 -0
  38. package/dist/snap-weld.d.ts.map +1 -0
  39. package/dist/snap-weld.js +150 -0
  40. package/dist/snap-weld.js.map +1 -0
  41. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"snap-geometry-cache.js","sourceRoot":"","sources":["../src/snap-geometry-cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snap-geometry-cache.js","sourceRoot":"","sources":["../src/snap-geometry-cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Position welding and the one tolerance every stage of the snap geometry
3
+ * cache measures with.
4
+ *
5
+ * Mesh positions arrive UNWELDED: `rust/geometry/src/mesh_weld.rs` keys vertex
6
+ * identity on (exact f32 position bits, quantized normal, quantized UV), so the
7
+ * two triangles meeting at a crease keep separate vertex indices on purpose
8
+ * (flat shading needs the split normals). Anything that classifies mesh edges
9
+ * by vertex INDEX therefore sees each physical edge twice, once per side, each
10
+ * with a single adjacent triangle — every real edge looks like a boundary edge
11
+ * and no coplanarity test can ever fire. Welding by POSITION first is what makes
12
+ * "is this edge a real model edge or a triangulation diagonal?" answerable.
13
+ */
14
+ import type { Vec3 } from './raycaster.js';
15
+ /**
16
+ * The tolerance for one mesh, as a perpendicular DISTANCE (never an angle).
17
+ *
18
+ * Derived from the LOCAL coordinate magnitude: `MeshData.origin` is f64 and
19
+ * shifts every vertex of the mesh identically, so it cancels in every
20
+ * within-mesh difference and the f32 quantum lives at the local magnitude, not
21
+ * the world one. (When `origin` is absent the positions themselves carry the
22
+ * magnitude, which this same read picks up.)
23
+ *
24
+ * An angle tolerance would be the wrong primitive here: the direction noise of
25
+ * a segment built from two f32 points scales with coordinate magnitude divided
26
+ * by segment length, so any fixed angle is simultaneously too tight for short
27
+ * segments far from the origin and too loose for long ones near it.
28
+ */
29
+ export declare function snapToleranceFor(positions: ArrayLike<number>): number;
30
+ export interface WeldedVertices {
31
+ /** Welded vertex id per source vertex; -1 where the source vertex was non-finite. */
32
+ ids: Int32Array;
33
+ /** World-space representative point per welded id. */
34
+ points: Vec3[];
35
+ }
36
+ /**
37
+ * Weld mesh positions to world-space points, merging anything within `tol`.
38
+ *
39
+ * Uses a uniform hash grid of cell size `2 * tol` and probes the (at most two
40
+ * per axis) cells that can hold a point within `tol` — the pattern
41
+ * `vertex_dedup.rs` uses in the kernel, and the reason this cannot silently drop
42
+ * a pair straddling a cell boundary the way a plain `Math.floor` bucket does.
43
+ *
44
+ * ORDER-INDEPENDENT by construction: the result is a pure function of the
45
+ * position multiset, never of array order. Vertices are processed in canonical
46
+ * VALUE order (lexicographic on world position) and each one joins the NEAREST
47
+ * already-accepted representative within `tol` (ties to the lexicographically
48
+ * earlier representative) or becomes a representative itself. Processed in
49
+ * array order with a first-hit match - the previous scheme - a tolerance chain
50
+ * (|a-b| <= tol, |b-c| <= tol, |a-c| > tol) welded into one cluster or two
51
+ * depending on which point arrived first, so reordering triangles changed
52
+ * adjacency and edge classification: the emission-order dependence (#2388
53
+ * class) the snap cache exists to remove, reintroduced one level down.
54
+ *
55
+ * This is leader clustering, NOT a transitive union: c never joins a through b
56
+ * unless c is itself within `tol` of the representative, so every cluster's
57
+ * diameter is bounded by `2 * tol`. A union-find over all in-tolerance pairs
58
+ * would be order-independent too, but it collapses a chain of genuinely
59
+ * distinct near-tolerance vertices into one point of unbounded diameter - and
60
+ * welding feeds edge classification, so an over-weld silently moves geometry.
61
+ * A plain grid quantisation would also be order-independent but splits pairs
62
+ * straddling a cell boundary, the failure the probe pattern above exists to
63
+ * avoid.
64
+ */
65
+ export declare function weldVertices(positions: ArrayLike<number>, ox: number, oy: number, oz: number, tol: number): WeldedVertices;
66
+ //# sourceMappingURL=snap-weld.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap-weld.d.ts","sourceRoot":"","sources":["../src/snap-weld.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAuB3C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAOrE;AAED,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,GAAG,EAAE,UAAU,CAAC;IAChB,sDAAsD;IACtD,MAAM,EAAE,IAAI,EAAE,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAC5B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,GACV,cAAc,CA6EhB"}
@@ -0,0 +1,150 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * Relative quantum of an f32 coordinate (2^-22).
6
+ *
7
+ * The same scale `packages/clash/src/analysis.ts` uses for `F32_ULP_SCALE` and
8
+ * `rust/geometry/src/kernel/retriangulate_cleanup.rs` uses for its extent-scaled
9
+ * epsilon. A fixed absolute epsilon is only valid near the origin, so the
10
+ * tolerance has to grow with coordinate magnitude.
11
+ */
12
+ const F32_ULP_SCALE = 1 / 4_194_304;
13
+ /**
14
+ * Floor of the tolerance: 1/65536 m (15.3 um), the CSG kernel's own reconcile-grid
15
+ * resolution (`rust/geometry/src/mesh.rs`), measured there as flat in triangle
16
+ * count from 10-50 um and only touching real geometry at ~100 um.
17
+ *
18
+ * Deliberately NOT raised to a round 1e-4/1e-3: `rust/geometry/src/router/voids/
19
+ * prism_cut/vertex_dedup.rs` records that welding at 1e-4 m collapsed real
20
+ * geometry and took corpus defects from 76 to 90.
21
+ */
22
+ const MIN_SNAP_TOLERANCE = 1 / 65536;
23
+ /**
24
+ * The tolerance for one mesh, as a perpendicular DISTANCE (never an angle).
25
+ *
26
+ * Derived from the LOCAL coordinate magnitude: `MeshData.origin` is f64 and
27
+ * shifts every vertex of the mesh identically, so it cancels in every
28
+ * within-mesh difference and the f32 quantum lives at the local magnitude, not
29
+ * the world one. (When `origin` is absent the positions themselves carry the
30
+ * magnitude, which this same read picks up.)
31
+ *
32
+ * An angle tolerance would be the wrong primitive here: the direction noise of
33
+ * a segment built from two f32 points scales with coordinate magnitude divided
34
+ * by segment length, so any fixed angle is simultaneously too tight for short
35
+ * segments far from the origin and too loose for long ones near it.
36
+ */
37
+ export function snapToleranceFor(positions) {
38
+ let maxAbs = 0;
39
+ for (let i = 0; i < positions.length; i++) {
40
+ const a = Math.abs(positions[i]);
41
+ if (isFinite(a) && a > maxAbs)
42
+ maxAbs = a;
43
+ }
44
+ return Math.max(MIN_SNAP_TOLERANCE, maxAbs * F32_ULP_SCALE);
45
+ }
46
+ /**
47
+ * Weld mesh positions to world-space points, merging anything within `tol`.
48
+ *
49
+ * Uses a uniform hash grid of cell size `2 * tol` and probes the (at most two
50
+ * per axis) cells that can hold a point within `tol` — the pattern
51
+ * `vertex_dedup.rs` uses in the kernel, and the reason this cannot silently drop
52
+ * a pair straddling a cell boundary the way a plain `Math.floor` bucket does.
53
+ *
54
+ * ORDER-INDEPENDENT by construction: the result is a pure function of the
55
+ * position multiset, never of array order. Vertices are processed in canonical
56
+ * VALUE order (lexicographic on world position) and each one joins the NEAREST
57
+ * already-accepted representative within `tol` (ties to the lexicographically
58
+ * earlier representative) or becomes a representative itself. Processed in
59
+ * array order with a first-hit match - the previous scheme - a tolerance chain
60
+ * (|a-b| <= tol, |b-c| <= tol, |a-c| > tol) welded into one cluster or two
61
+ * depending on which point arrived first, so reordering triangles changed
62
+ * adjacency and edge classification: the emission-order dependence (#2388
63
+ * class) the snap cache exists to remove, reintroduced one level down.
64
+ *
65
+ * This is leader clustering, NOT a transitive union: c never joins a through b
66
+ * unless c is itself within `tol` of the representative, so every cluster's
67
+ * diameter is bounded by `2 * tol`. A union-find over all in-tolerance pairs
68
+ * would be order-independent too, but it collapses a chain of genuinely
69
+ * distinct near-tolerance vertices into one point of unbounded diameter - and
70
+ * welding feeds edge classification, so an over-weld silently moves geometry.
71
+ * A plain grid quantisation would also be order-independent but splits pairs
72
+ * straddling a cell boundary, the failure the probe pattern above exists to
73
+ * avoid.
74
+ */
75
+ export function weldVertices(positions, ox, oy, oz, tol) {
76
+ const count = Math.floor(positions.length / 3);
77
+ const ids = new Int32Array(count).fill(-1);
78
+ const points = [];
79
+ // World coordinates once, then the canonical processing order. `sort` is a
80
+ // total order on VALUE (exact duplicates are interchangeable), so every
81
+ // later step is a function of the position multiset alone.
82
+ const xs = new Float64Array(count);
83
+ const ys = new Float64Array(count);
84
+ const zs = new Float64Array(count);
85
+ const order = [];
86
+ for (let i = 0; i < count; i++) {
87
+ const x = positions[i * 3] + ox;
88
+ const y = positions[i * 3 + 1] + oy;
89
+ const z = positions[i * 3 + 2] + oz;
90
+ if (!isFinite(x) || !isFinite(y) || !isFinite(z))
91
+ continue;
92
+ xs[i] = x;
93
+ ys[i] = y;
94
+ zs[i] = z;
95
+ order.push(i);
96
+ }
97
+ order.sort((i, j) => (xs[i] - xs[j]) || (ys[i] - ys[j]) || (zs[i] - zs[j]));
98
+ const cell = 2 * tol;
99
+ const tolSq = tol * tol;
100
+ const buckets = new Map();
101
+ for (const i of order) {
102
+ const x = xs[i], y = ys[i], z = zs[i];
103
+ const xLo = Math.floor((x - tol) / cell);
104
+ const xHi = Math.floor((x + tol) / cell);
105
+ const yLo = Math.floor((y - tol) / cell);
106
+ const yHi = Math.floor((y + tol) / cell);
107
+ const zLo = Math.floor((z - tol) / cell);
108
+ const zHi = Math.floor((z + tol) / cell);
109
+ // Nearest representative within tol; ties break to the SMALLER id, which
110
+ // (ids are assigned in value order) is the lexicographically earlier
111
+ // representative - a value tiebreak, not a positional one.
112
+ let best = -1;
113
+ let bestSq = Infinity;
114
+ for (let cx = xLo; cx <= xHi; cx++) {
115
+ for (let cy = yLo; cy <= yHi; cy++) {
116
+ for (let cz = zLo; cz <= zHi; cz++) {
117
+ const bucket = buckets.get(`${cx}_${cy}_${cz}`);
118
+ if (!bucket)
119
+ continue;
120
+ for (const id of bucket) {
121
+ const p = points[id];
122
+ const dx = p.x - x, dy = p.y - y, dz = p.z - z;
123
+ const dSq = dx * dx + dy * dy + dz * dz;
124
+ if (dSq > tolSq)
125
+ continue;
126
+ if (dSq < bestSq || (dSq === bestSq && id < best)) {
127
+ best = id;
128
+ bestSq = dSq;
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
134
+ if (best >= 0) {
135
+ ids[i] = best;
136
+ continue;
137
+ }
138
+ const id = points.length;
139
+ points.push({ x, y, z });
140
+ ids[i] = id;
141
+ const key = `${Math.floor(x / cell)}_${Math.floor(y / cell)}_${Math.floor(z / cell)}`;
142
+ const bucket = buckets.get(key);
143
+ if (bucket)
144
+ bucket.push(id);
145
+ else
146
+ buckets.set(key, [id]);
147
+ }
148
+ return { ids, points };
149
+ }
150
+ //# sourceMappingURL=snap-weld.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap-weld.js","sourceRoot":"","sources":["../src/snap-weld.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/renderer",
3
- "version": "1.48.0",
3
+ "version": "1.49.0",
4
4
  "description": "WebGPU renderer for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",