@ifc-lite/renderer 1.43.0 → 1.44.1
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/camera-animation.d.ts +20 -32
- package/dist/camera-animation.d.ts.map +1 -1
- package/dist/camera-animation.js +71 -358
- package/dist/camera-animation.js.map +1 -1
- package/dist/camera-controls.d.ts +11 -51
- package/dist/camera-controls.d.ts.map +1 -1
- package/dist/camera-controls.js +140 -12
- package/dist/camera-controls.js.map +1 -1
- package/dist/camera-first-person.d.ts +52 -0
- package/dist/camera-first-person.d.ts.map +1 -0
- package/dist/camera-first-person.js +119 -0
- package/dist/camera-first-person.js.map +1 -0
- package/dist/camera-framing.d.ts +86 -0
- package/dist/camera-framing.d.ts.map +1 -0
- package/dist/camera-framing.js +230 -0
- package/dist/camera-framing.js.map +1 -0
- package/dist/camera-guards.d.ts +148 -0
- package/dist/camera-guards.d.ts.map +1 -0
- package/dist/camera-guards.js +150 -0
- package/dist/camera-guards.js.map +1 -0
- package/dist/camera-matrices.d.ts +14 -0
- package/dist/camera-matrices.d.ts.map +1 -0
- package/dist/camera-matrices.js +146 -0
- package/dist/camera-matrices.js.map +1 -0
- package/dist/camera-preset-view.d.ts +56 -0
- package/dist/camera-preset-view.d.ts.map +1 -0
- package/dist/camera-preset-view.js +180 -0
- package/dist/camera-preset-view.js.map +1 -0
- package/dist/camera-projection.d.ts +1 -1
- package/dist/camera-projection.d.ts.map +1 -1
- package/dist/camera-projection.js +83 -30
- package/dist/camera-projection.js.map +1 -1
- package/dist/camera-state.d.ts +62 -0
- package/dist/camera-state.d.ts.map +1 -0
- package/dist/camera-state.js +5 -0
- package/dist/camera-state.js.map +1 -0
- package/dist/camera.d.ts +22 -11
- package/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +75 -120
- package/dist/camera.js.map +1 -1
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +23 -1
- package/dist/environment.js.map +1 -1
- package/dist/fill-bridge-anchor.d.ts +32 -0
- package/dist/fill-bridge-anchor.d.ts.map +1 -0
- package/dist/fill-bridge-anchor.js +82 -0
- package/dist/fill-bridge-anchor.js.map +1 -0
- package/dist/fill-predicates.d.ts +44 -0
- package/dist/fill-predicates.d.ts.map +1 -0
- package/dist/fill-predicates.js +65 -0
- package/dist/fill-predicates.js.map +1 -0
- package/dist/fill-triangulate.d.ts +102 -0
- package/dist/fill-triangulate.d.ts.map +1 -0
- package/dist/fill-triangulate.js +333 -0
- package/dist/fill-triangulate.js.map +1 -0
- package/dist/index.d.ts +154 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +294 -45
- package/dist/index.js.map +1 -1
- package/dist/math.d.ts +49 -1
- package/dist/math.d.ts.map +1 -1
- package/dist/math.js +122 -67
- package/dist/math.js.map +1 -1
- package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
- package/dist/renderer-symbolic-overlays.js +20 -25
- package/dist/renderer-symbolic-overlays.js.map +1 -1
- package/dist/scene-geometry.d.ts +32 -0
- package/dist/scene-geometry.d.ts.map +1 -1
- package/dist/scene-geometry.js +66 -0
- package/dist/scene-geometry.js.map +1 -1
- package/dist/scene.d.ts +25 -0
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +91 -109
- package/dist/scene.js.map +1 -1
- package/dist/section-2d-lift.d.ts +109 -0
- package/dist/section-2d-lift.d.ts.map +1 -0
- package/dist/section-2d-lift.js +168 -0
- package/dist/section-2d-lift.js.map +1 -0
- package/dist/section-2d-line-buffer.d.ts +58 -0
- package/dist/section-2d-line-buffer.d.ts.map +1 -0
- package/dist/section-2d-line-buffer.js +109 -0
- package/dist/section-2d-line-buffer.js.map +1 -0
- package/dist/section-2d-overlay.d.ts +28 -77
- package/dist/section-2d-overlay.d.ts.map +1 -1
- package/dist/section-2d-overlay.js +161 -593
- package/dist/section-2d-overlay.js.map +1 -1
- package/dist/section-plane-basis.d.ts +22 -3
- package/dist/section-plane-basis.d.ts.map +1 -1
- package/dist/section-plane-basis.js +51 -10
- package/dist/section-plane-basis.js.map +1 -1
- package/dist/section-plane.d.ts.map +1 -1
- package/dist/section-plane.js +10 -1
- package/dist/section-plane.js.map +1 -1
- package/dist/shaders/section-2d-overlay.wgsl.d.ts +102 -0
- package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -0
- package/dist/shaders/section-2d-overlay.wgsl.js +281 -0
- package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -0
- package/dist/symbolic-overlay-pipelines.d.ts +10 -39
- package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
- package/dist/symbolic-overlay-pipelines.js +20 -163
- package/dist/symbolic-overlay-pipelines.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,333 @@
|
|
|
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
|
+
* Even-odd triangulation of a flat ring set (issue #2516).
|
|
6
|
+
*
|
|
7
|
+
* Two consumers hand us the same shape of input — a bag of closed 2D rings in
|
|
8
|
+
* the (x, z) plane with no promised winding and no promised order:
|
|
9
|
+
*
|
|
10
|
+
* - section cut caps (`buildCapFillGeometry`), where the rings are a cut
|
|
11
|
+
* polygon's outer boundary plus the openings/voids the plane sliced
|
|
12
|
+
* through;
|
|
13
|
+
* - `IfcAnnotationFillArea` (`SymbolicFillPipeline`), where the rings are the
|
|
14
|
+
* annotation's outer bound plus its inner bounds.
|
|
15
|
+
*
|
|
16
|
+
* Both used to assume "ring 0 is the outer boundary, everything else is a hole"
|
|
17
|
+
* and then bridge the holes in and ear-clip. That produced a *near-empty* cap
|
|
18
|
+
* wherever a profile had a hole: the bridge duplicates two vertices, and the
|
|
19
|
+
* old ear test treated any vertex lying ON a candidate ear (including those
|
|
20
|
+
* duplicates) as obstructing it, so almost no ear was ever clipped. A 4x4
|
|
21
|
+
* square with a 2x2 hole came out at area 2 instead of 12.
|
|
22
|
+
*
|
|
23
|
+
* The fix here is deliberately NOT "reverse the hole's winding" — with the
|
|
24
|
+
* hole merely added rather than subtracted the same case comes out at 20. What
|
|
25
|
+
* is actually needed is the even-odd rule:
|
|
26
|
+
*
|
|
27
|
+
* 1. Nest the rings: a ring's depth is the number of other rings that
|
|
28
|
+
* contain it. Even depth = filled boundary, odd depth = hole. That is what
|
|
29
|
+
* makes a hole-inside-a-hole (an island) come back as solid rather than as
|
|
30
|
+
* another void.
|
|
31
|
+
* 2. Group each even-depth ring with its immediate children.
|
|
32
|
+
* 3. Bridge each group's holes into its boundary and ear-clip, with an ear
|
|
33
|
+
* test that (a) only lets REFLEX vertices obstruct an ear and (b) ignores
|
|
34
|
+
* vertices coincident with the ear's own corners, which is exactly the
|
|
35
|
+
* bridge duplicate that used to deadlock the clipper.
|
|
36
|
+
*
|
|
37
|
+
* Everything is O(n²) in the ring's vertex count, which is fine: fill regions
|
|
38
|
+
* and cut cross-sections are tens of vertices, not thousands.
|
|
39
|
+
*/
|
|
40
|
+
import { chooseBridgeAnchor } from './fill-bridge-anchor.js';
|
|
41
|
+
import { orient, pointOnSegment, ringScale, samePoint, } from './fill-predicates.js';
|
|
42
|
+
/**
|
|
43
|
+
* Shoelace area of a ring in the (x, z) plane. Positive = counter-clockwise.
|
|
44
|
+
* Winding normalisation is built on this, and tests use it to state the
|
|
45
|
+
* analytic area a ring set must triangulate to.
|
|
46
|
+
*/
|
|
47
|
+
export function signedRingArea(ring) {
|
|
48
|
+
let a = 0;
|
|
49
|
+
for (let i = 0; i < ring.length; i++) {
|
|
50
|
+
const p = ring[i];
|
|
51
|
+
const q = ring[(i + 1) % ring.length];
|
|
52
|
+
a += p.x * q.z - q.x * p.z;
|
|
53
|
+
}
|
|
54
|
+
return a / 2;
|
|
55
|
+
}
|
|
56
|
+
/** Crossing-number point-in-polygon. Points exactly on the ring are undefined
|
|
57
|
+
* here — callers screen those out with {@link pointOnRing} first. */
|
|
58
|
+
function pointInRing(p, ring) {
|
|
59
|
+
let inside = false;
|
|
60
|
+
for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
|
|
61
|
+
const a = ring[i];
|
|
62
|
+
const b = ring[j];
|
|
63
|
+
if (a.z > p.z !== b.z > p.z &&
|
|
64
|
+
p.x < ((b.x - a.x) * (p.z - a.z)) / (b.z - a.z) + a.x) {
|
|
65
|
+
inside = !inside;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return inside;
|
|
69
|
+
}
|
|
70
|
+
/** True when `p` lies on one of the ring's edges, endpoints included. */
|
|
71
|
+
function pointOnRing(p, ring) {
|
|
72
|
+
for (let i = 0, j = ring.length - 1; i < ring.length; j = i++) {
|
|
73
|
+
if (pointOnSegment(p, ring[i], ring[j], true))
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* True when `inner` sits inside `outer`. Well-formed IFC bounds never cross,
|
|
80
|
+
* so the first vertex of `inner` that is not ON `outer` settles it; shared
|
|
81
|
+
* vertices and shared edge stretches (a hole flush against the boundary) are
|
|
82
|
+
* skipped rather than decided.
|
|
83
|
+
*/
|
|
84
|
+
function ringInsideRing(inner, outer) {
|
|
85
|
+
for (const p of inner) {
|
|
86
|
+
if (pointOnRing(p, outer))
|
|
87
|
+
continue;
|
|
88
|
+
return pointInRing(p, outer);
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Sort a bag of rings into filled boundaries and their holes by the even-odd
|
|
94
|
+
* rule. Rings with fewer than 3 vertices are dropped.
|
|
95
|
+
*
|
|
96
|
+
* A ring nested at odd depth is a hole; at even depth it is filled — so an
|
|
97
|
+
* island inside a hole comes back as its own group rather than being counted
|
|
98
|
+
* as void. A ring at depth d+1 that is contained in a ring at depth d is
|
|
99
|
+
* necessarily its immediate child (every ring containing the child also
|
|
100
|
+
* contains the parent, so the counts can only differ by the parent itself),
|
|
101
|
+
* which is why no explicit tree is built.
|
|
102
|
+
*/
|
|
103
|
+
export function groupRingsByNesting(rings) {
|
|
104
|
+
const usable = rings.filter((r) => r.length >= 3).map((r) => r.slice());
|
|
105
|
+
const depth = usable.map((r, i) => usable.reduce((d, other, j) => (j !== i && ringInsideRing(r, other) ? d + 1 : d), 0));
|
|
106
|
+
const groups = [];
|
|
107
|
+
for (let i = 0; i < usable.length; i++) {
|
|
108
|
+
if (depth[i] % 2 !== 0)
|
|
109
|
+
continue;
|
|
110
|
+
const holes = [];
|
|
111
|
+
for (let j = 0; j < usable.length; j++) {
|
|
112
|
+
if (j === i || depth[j] !== depth[i] + 1)
|
|
113
|
+
continue;
|
|
114
|
+
if (ringInsideRing(usable[j], usable[i]))
|
|
115
|
+
holes.push(usable[j]);
|
|
116
|
+
}
|
|
117
|
+
groups.push({ outer: usable[i], holes });
|
|
118
|
+
}
|
|
119
|
+
return groups;
|
|
120
|
+
}
|
|
121
|
+
function asCcw(ring) {
|
|
122
|
+
return signedRingArea(ring) >= 0 ? ring : ring.slice().reverse();
|
|
123
|
+
}
|
|
124
|
+
function asCw(ring) {
|
|
125
|
+
return signedRingArea(ring) <= 0 ? ring : ring.slice().reverse();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Stitch each hole into the outer ring with a single bridge edge so the result
|
|
129
|
+
* is one simple polygon ear-clipping can handle. Mirrors mapbox/earcut's
|
|
130
|
+
* `eliminateHoles` pass:
|
|
131
|
+
*
|
|
132
|
+
* 1. For each hole, pick its rightmost (max-x) vertex as the bridge start.
|
|
133
|
+
* 2. Sort holes by descending bridge-start x so outer holes go in first.
|
|
134
|
+
* 3. Pick the anchor on the boundary the bridge can actually reach without
|
|
135
|
+
* crossing anything — see `fill-bridge-anchor.ts`.
|
|
136
|
+
* 4. Splice the hole in at that anchor, closing both ends back to their
|
|
137
|
+
* starts to form a zero-area bridge edge.
|
|
138
|
+
*
|
|
139
|
+
* Windings are normalised here rather than assumed: the boundary is made CCW
|
|
140
|
+
* and every hole CW, so the merged ring's signed area stays consistent no
|
|
141
|
+
* matter how the caller's rings were wound.
|
|
142
|
+
*/
|
|
143
|
+
export function joinHoles(outer, holes) {
|
|
144
|
+
if (holes.length === 0)
|
|
145
|
+
return outer;
|
|
146
|
+
const sorted = holes
|
|
147
|
+
// Same degenerate-ring rule the rest of the module uses. Without it a
|
|
148
|
+
// 1- or 2-point "hole" bridges in as a spur, which is silently wrong
|
|
149
|
+
// geometry rather than a dropped hole.
|
|
150
|
+
.filter((h) => h.length >= 3)
|
|
151
|
+
.map((h) => asCw(h))
|
|
152
|
+
.map((ring) => {
|
|
153
|
+
let bestI = 0;
|
|
154
|
+
for (let i = 1; i < ring.length; i++) {
|
|
155
|
+
if (ring[i].x > ring[bestI].x)
|
|
156
|
+
bestI = i;
|
|
157
|
+
}
|
|
158
|
+
return { ring, startIdx: bestI, startX: ring[bestI].x };
|
|
159
|
+
})
|
|
160
|
+
.sort((a, b) => b.startX - a.startX);
|
|
161
|
+
let result = asCcw(outer).slice();
|
|
162
|
+
for (const { ring, startIdx } of sorted) {
|
|
163
|
+
const bestIdx = chooseBridgeAnchor(result, ring, startIdx);
|
|
164
|
+
if (bestIdx < 0)
|
|
165
|
+
continue;
|
|
166
|
+
const rotated = [...ring.slice(startIdx), ...ring.slice(0, startIdx)];
|
|
167
|
+
result = [
|
|
168
|
+
...result.slice(0, bestIdx + 1),
|
|
169
|
+
...rotated,
|
|
170
|
+
rotated[0],
|
|
171
|
+
result[bestIdx],
|
|
172
|
+
...result.slice(bestIdx + 1),
|
|
173
|
+
];
|
|
174
|
+
}
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
function pointInTriangle(p, a, b, c) {
|
|
178
|
+
const s1 = (p.x - c.x) * (a.z - c.z) - (a.x - c.x) * (p.z - c.z);
|
|
179
|
+
const s2 = (p.x - a.x) * (b.z - a.z) - (b.x - a.x) * (p.z - a.z);
|
|
180
|
+
const s3 = (p.x - b.x) * (c.z - b.z) - (c.x - b.x) * (p.z - b.z);
|
|
181
|
+
const hasNeg = s1 < 0 || s2 < 0 || s3 < 0;
|
|
182
|
+
const hasPos = s1 > 0 || s2 > 0 || s3 > 0;
|
|
183
|
+
return !(hasNeg && hasPos);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Ear-clipping triangulation of a simple polygon (which may be a bridged
|
|
187
|
+
* polygon-with-holes). Returns triangles as index triples into `ring`.
|
|
188
|
+
*
|
|
189
|
+
* Two properties keep the bridged case from deadlocking, and both are the
|
|
190
|
+
* #2516 fix:
|
|
191
|
+
*
|
|
192
|
+
* - only a REFLEX vertex can obstruct an ear of a simple polygon, so convex
|
|
193
|
+
* vertices are not tested at all. Testing them made every vertex lying on
|
|
194
|
+
* an axis-aligned ear edge veto that ear;
|
|
195
|
+
* - a vertex coincident with one of the ear's own corners is skipped. That
|
|
196
|
+
* is precisely the duplicate the bridge introduces; the slit it belongs to
|
|
197
|
+
* has zero width, so it cannot cover any of the ear.
|
|
198
|
+
*
|
|
199
|
+
* When no ear can be found the clipper drops one zero-area (collinear or
|
|
200
|
+
* duplicated) vertex — which cannot change the covered region — and retries,
|
|
201
|
+
* rather than bailing out with most of the polygon untriangulated.
|
|
202
|
+
*
|
|
203
|
+
* If even that leaves no ear the loop stops and returns what it has, which is
|
|
204
|
+
* a PARTIAL fill. That is deliberate, and it is the least-bad option rather
|
|
205
|
+
* than an oversight:
|
|
206
|
+
*
|
|
207
|
+
* - it is not reachable for well-formed rings. Measured over 20 000 rotated
|
|
208
|
+
* multi-notch boundaries with a hole in a random solid column, 4 000
|
|
209
|
+
* axis-aligned ones and 2 000 concave stars with up to three concave
|
|
210
|
+
* holes: zero occurrences, zero area error. It fires on schema-illegal
|
|
211
|
+
* input, e.g. an inner bound that pokes outside its outer bound;
|
|
212
|
+
* - throwing would lose the whole cap upload over one bad profile;
|
|
213
|
+
* - falling back to a fan over the outer ring would reintroduce BOTH defects
|
|
214
|
+
* this module exists to remove — holes not subtracted, and inversion on
|
|
215
|
+
* concave cross-sections.
|
|
216
|
+
*
|
|
217
|
+
* What the partial output does NOT promise is that it only ever omits area:
|
|
218
|
+
* a self-intersecting ring triangulates to more than even-odd would fill,
|
|
219
|
+
* because ear clipping reads "inside" from the ring's normalised orientation
|
|
220
|
+
* rather than from crossing parity. What it does promise — and what a render
|
|
221
|
+
* thread needs — is that it returns in bounded time, emits only vertices it
|
|
222
|
+
* was given, and stays inside the input's own extent.
|
|
223
|
+
* `fill-triangulate.test.ts` pins those.
|
|
224
|
+
*/
|
|
225
|
+
export function earClip(ring) {
|
|
226
|
+
const n = ring.length;
|
|
227
|
+
if (n < 3)
|
|
228
|
+
return [];
|
|
229
|
+
// No 3-vertex fast path: it returned the caller's index order unnormalised,
|
|
230
|
+
// so a clockwise TRIANGLE came back clockwise while a clockwise quad came
|
|
231
|
+
// back counter-clockwise. The winding-normalisation below costs nothing at
|
|
232
|
+
// n = 3 and makes every emitted triangle agree.
|
|
233
|
+
// Coordinate comparisons are measured against the ring's own extent, so the
|
|
234
|
+
// same ring triangulates identically whether it is stated in metres or in
|
|
235
|
+
// millimetres.
|
|
236
|
+
const scale = ringScale(ring);
|
|
237
|
+
// Walk the ring counter-clockwise so the ear test below has a fixed sign.
|
|
238
|
+
let area2 = 0;
|
|
239
|
+
for (let i = 0; i < n; i++) {
|
|
240
|
+
const a = ring[i];
|
|
241
|
+
const b = ring[(i + 1) % n];
|
|
242
|
+
area2 += a.x * b.z - b.x * a.z;
|
|
243
|
+
}
|
|
244
|
+
const indices = [];
|
|
245
|
+
for (let i = 0; i < n; i++)
|
|
246
|
+
indices.push(area2 > 0 ? i : n - 1 - i);
|
|
247
|
+
const triangles = [];
|
|
248
|
+
let safety = indices.length * indices.length;
|
|
249
|
+
while (indices.length > 3 && safety-- > 0) {
|
|
250
|
+
let found = false;
|
|
251
|
+
for (let i = 0; i < indices.length; i++) {
|
|
252
|
+
if (!isEar(ring, indices, i, scale))
|
|
253
|
+
continue;
|
|
254
|
+
const m = indices.length;
|
|
255
|
+
triangles.push([indices[(i + m - 1) % m], indices[i], indices[(i + 1) % m]]);
|
|
256
|
+
indices.splice(i, 1);
|
|
257
|
+
found = true;
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
if (found)
|
|
261
|
+
continue;
|
|
262
|
+
const degenerate = findZeroAreaVertex(ring, indices);
|
|
263
|
+
if (degenerate < 0)
|
|
264
|
+
break; // see the note above on partial output
|
|
265
|
+
indices.splice(degenerate, 1);
|
|
266
|
+
}
|
|
267
|
+
if (indices.length === 3) {
|
|
268
|
+
triangles.push([indices[0], indices[1], indices[2]]);
|
|
269
|
+
}
|
|
270
|
+
return triangles;
|
|
271
|
+
}
|
|
272
|
+
function isEar(ring, indices, i, scale) {
|
|
273
|
+
const m = indices.length;
|
|
274
|
+
const ia = indices[(i + m - 1) % m];
|
|
275
|
+
const ib = indices[i];
|
|
276
|
+
const ic = indices[(i + 1) % m];
|
|
277
|
+
const a = ring[ia];
|
|
278
|
+
const b = ring[ib];
|
|
279
|
+
const c = ring[ic];
|
|
280
|
+
if (orient(a, b, c) <= 0)
|
|
281
|
+
return false; // reflex or degenerate corner
|
|
282
|
+
for (let j = 0; j < m; j++) {
|
|
283
|
+
const ij = indices[j];
|
|
284
|
+
if (ij === ia || ij === ib || ij === ic)
|
|
285
|
+
continue;
|
|
286
|
+
const p = ring[ij];
|
|
287
|
+
if (samePoint(p, a, scale) || samePoint(p, b, scale) || samePoint(p, c, scale))
|
|
288
|
+
continue;
|
|
289
|
+
const prev = ring[indices[(j + m - 1) % m]];
|
|
290
|
+
const next = ring[indices[(j + 1) % m]];
|
|
291
|
+
if (orient(prev, p, next) > 0)
|
|
292
|
+
continue; // strictly convex — cannot obstruct
|
|
293
|
+
if (pointInTriangle(p, a, b, c))
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
return true;
|
|
297
|
+
}
|
|
298
|
+
function findZeroAreaVertex(ring, indices) {
|
|
299
|
+
const m = indices.length;
|
|
300
|
+
for (let i = 0; i < m; i++) {
|
|
301
|
+
const a = ring[indices[(i + m - 1) % m]];
|
|
302
|
+
const b = ring[indices[i]];
|
|
303
|
+
const c = ring[indices[(i + 1) % m]];
|
|
304
|
+
if (orient(a, b, c) === 0)
|
|
305
|
+
return i;
|
|
306
|
+
}
|
|
307
|
+
return -1;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Triangulate a bag of rings under the even-odd rule. This is the single entry
|
|
311
|
+
* point both fill consumers call; see the module comment for why.
|
|
312
|
+
*
|
|
313
|
+
* A hole-free ring set takes the same path it always did — the ring is handed
|
|
314
|
+
* straight to {@link earClip} in its original vertex order — so profiles
|
|
315
|
+
* without holes are byte-identical to before #2516.
|
|
316
|
+
*/
|
|
317
|
+
export function triangulateRings(rings) {
|
|
318
|
+
const points = [];
|
|
319
|
+
const triangles = [];
|
|
320
|
+
for (const group of groupRingsByNesting(rings)) {
|
|
321
|
+
const stitched = group.holes.length === 0 ? group.outer : joinHoles(group.outer, group.holes);
|
|
322
|
+
const tris = earClip(stitched);
|
|
323
|
+
if (tris.length === 0)
|
|
324
|
+
continue;
|
|
325
|
+
const base = points.length;
|
|
326
|
+
for (const p of stitched)
|
|
327
|
+
points.push(p);
|
|
328
|
+
for (const [a, b, c] of tris)
|
|
329
|
+
triangles.push([base + a, base + b, base + c]);
|
|
330
|
+
}
|
|
331
|
+
return { points, triangles };
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=fill-triangulate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill-triangulate.js","sourceRoot":"","sources":["../src/fill-triangulate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
export { WebGPUDevice } from './device.js';
|
|
5
5
|
export { RenderPipeline } from './pipeline.js';
|
|
6
6
|
export { Camera } from './camera.js';
|
|
7
|
-
export type { ProjectionMode } from './camera-
|
|
7
|
+
export type { ProjectionMode } from './camera-state.js';
|
|
8
8
|
export { pickFitPolicy } from './camera-fit-policy.js';
|
|
9
9
|
export type { FitPolicy, FitPolicyKind, Bounds3, PickFitPolicyOptions } from './camera-fit-policy.js';
|
|
10
10
|
export { Scene } from './scene.js';
|
|
11
11
|
export { Picker } from './picker.js';
|
|
12
12
|
export { MathUtils } from './math.js';
|
|
13
|
+
export { viewBasis } from './math.js';
|
|
13
14
|
export { SectionPlaneRenderer } from './section-plane.js';
|
|
14
15
|
export { Section2DOverlayRenderer } from './section-2d-overlay.js';
|
|
15
16
|
export { SymbolicFillPipeline, SymbolicTextPipeline, type SymbolicFillInput, type SymbolicTextInput, } from './symbolic-overlay-pipelines.js';
|
|
@@ -86,9 +87,28 @@ export declare class Renderer {
|
|
|
86
87
|
private skyPass;
|
|
87
88
|
private edlOptions;
|
|
88
89
|
private pointCloudRenderer;
|
|
89
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* Set true at the end of the LATEST `init()`; gates `whenReady()` and
|
|
92
|
+
* `isReady()`. Revoked synchronously by `init()` and by `destroy()`, and
|
|
93
|
+
* overridden (not cleared) by a device loss — see `deviceLost`, which the
|
|
94
|
+
* two readiness methods consult alongside this flag because the loss can
|
|
95
|
+
* land in the middle of the init that is about to set it.
|
|
96
|
+
*/
|
|
90
97
|
private ready;
|
|
91
98
|
private readyWaiters;
|
|
99
|
+
/**
|
|
100
|
+
* Set by the public `destroy()`, cleared synchronously by `init()`. It is
|
|
101
|
+
* the difference between "not ready YET" and "never going to be ready":
|
|
102
|
+
* `whenReady()` parks for the first and rejects for the second.
|
|
103
|
+
*
|
|
104
|
+
* Without it a caller parked across the teardown waits forever, because
|
|
105
|
+
* nothing after `destroy()` will ever reach `markReady()` — the host's
|
|
106
|
+
* remount builds a NEW Renderer rather than re-initialising this one. The
|
|
107
|
+
* private `teardown()` deliberately does NOT set it: the teardown
|
|
108
|
+
* `initOnce()` runs on the previous init's objects is part of an init that
|
|
109
|
+
* IS going to publish readiness, and its waiters must survive to be flushed.
|
|
110
|
+
*/
|
|
111
|
+
private destroyed;
|
|
92
112
|
/**
|
|
93
113
|
* The tail of the `init()` queue. `init()` chains onto this rather than
|
|
94
114
|
* running immediately, so two overlapping calls cannot both walk past the
|
|
@@ -98,12 +118,33 @@ export declare class Renderer {
|
|
|
98
118
|
* caller) so one failure does not deadlock every later call.
|
|
99
119
|
*/
|
|
100
120
|
private initChain;
|
|
121
|
+
/**
|
|
122
|
+
* Incremented synchronously by every `init()` call AND by every public
|
|
123
|
+
* `destroy()`. It stamps "the lifecycle event an in-flight init belongs to":
|
|
124
|
+
* an init that no longer carries the current stamp has been superseded and
|
|
125
|
+
* must neither allocate nor publish readiness.
|
|
126
|
+
*
|
|
127
|
+
* Both bumps are load-bearing, for the same reason. Because the queue above
|
|
128
|
+
* defers the body, an init can finish while a later one is still waiting its
|
|
129
|
+
* turn; that later call is about to tear down everything the earlier one
|
|
130
|
+
* built, so the earlier one must not publish readiness. And a host that calls
|
|
131
|
+
* `destroy()` while an init is parked on `await device.init(...)` gets the
|
|
132
|
+
* same hazard from the other direction: without the bump that init resumes,
|
|
133
|
+
* allocates a full replacement GPU stack nothing references, and re-publishes
|
|
134
|
+
* `ready` against a renderer that has already been torn down (#2465).
|
|
135
|
+
*
|
|
136
|
+
* The teardown `initOnce()` runs as part of its OWN re-init deliberately does
|
|
137
|
+
* NOT bump it — see `destroy()` vs `teardown()`. Bumping there would make
|
|
138
|
+
* every re-init invalidate itself, and nothing would ever become ready again.
|
|
139
|
+
*/
|
|
140
|
+
private initGeneration;
|
|
101
141
|
/**
|
|
102
142
|
* Set once the GPU device is lost for a non-intentional reason (driver
|
|
103
143
|
* reset / VRAM exhaustion — see `WebGPUDevice`). Every GPU resource is then
|
|
104
144
|
* dead, so `render()` becomes a no-op (it would only spew validation errors)
|
|
105
|
-
*
|
|
106
|
-
* `
|
|
145
|
+
* and the renderer stops reporting itself ready (`isReady()` goes false,
|
|
146
|
+
* `whenReady()` rejects) until the host re-initialises it. Consumers learn
|
|
147
|
+
* of this via `onDeviceLost` and typically respond by reloading the model.
|
|
107
148
|
*
|
|
108
149
|
* Two signals set it: the async `device.lost` promise (Chromium), and a
|
|
109
150
|
* frame throwing a `DOMException` out of `render()` (Safari 26.5, which
|
|
@@ -113,6 +154,29 @@ export declare class Renderer {
|
|
|
113
154
|
* device, and it must cost one frame, not the session.
|
|
114
155
|
*/
|
|
115
156
|
private deviceLost;
|
|
157
|
+
/**
|
|
158
|
+
* The lifecycle generation the latched loss belongs to (see
|
|
159
|
+
* `initGeneration`); null until the first loss, and never cleared
|
|
160
|
+
* afterwards. It is only ever read next to `deviceLost`, which is what
|
|
161
|
+
* makes a stale stamp harmless — and that pairing is required, not
|
|
162
|
+
* cosmetic: a loss that latched between `init()` bumping the generation and
|
|
163
|
+
* its queued body running is stamped with the CURRENT generation, and only
|
|
164
|
+
* the flag that body clears says the renderer has moved on.
|
|
165
|
+
*
|
|
166
|
+
* `whenReady()` rejects only while this still equals the CURRENT generation,
|
|
167
|
+
* which is what re-arms the wait the instant a host calls `init()` — before
|
|
168
|
+
* the queued body has had a chance to clear `deviceLost` itself. Without
|
|
169
|
+
* that, `renderer.init(); await renderer.whenReady();` — the recovery shape
|
|
170
|
+
* `init()` already revokes readiness synchronously for — would reject inside
|
|
171
|
+
* the microtask window on a renderer that is being brought back up.
|
|
172
|
+
*
|
|
173
|
+
* Scoping it here rather than clearing `deviceLost` in `init()` keeps the
|
|
174
|
+
* flag meaning exactly one thing everywhere else: `render()`, the pick path
|
|
175
|
+
* and `getGPUDevice()` must stay shut for the OLD device across that same
|
|
176
|
+
* window, and clearing early would let frames run against dead GPU objects
|
|
177
|
+
* (and, on Safari, re-latch and re-notify the loss they already reported).
|
|
178
|
+
*/
|
|
179
|
+
private deviceLostGeneration;
|
|
116
180
|
/** Retained so a listener registered AFTER the loss still learns of it. */
|
|
117
181
|
private deviceLostInfo;
|
|
118
182
|
private deviceLostListeners;
|
|
@@ -226,15 +290,51 @@ export declare class Renderer {
|
|
|
226
290
|
* the async WebGPU init resolves — should `await renderer.whenReady()`
|
|
227
291
|
* before `beginPointCloudStream`, which otherwise throws
|
|
228
292
|
* "Renderer not initialized".
|
|
293
|
+
*
|
|
294
|
+
* REJECTS (with an `Error` whose `name` is `RendererDestroyedError`) if
|
|
295
|
+
* `destroy()` runs while the caller is waiting, or if it already ran and no
|
|
296
|
+
* `init()` has been started since. It never resolves against a destroyed
|
|
297
|
+
* renderer — that is what this method exists to prevent — so the only
|
|
298
|
+
* alternative would be a promise that never settles, which suspends the
|
|
299
|
+
* caller's async frame permanently and takes everything the frame captured
|
|
300
|
+
* with it. The viewer reaches that state on an ordinary path: `Viewport`
|
|
301
|
+
* builds a NEW `Renderer` per mount and destroys the old one in its effect
|
|
302
|
+
* cleanup, so a `destroy()` there is FINAL for the instance a consumer
|
|
303
|
+
* captured — a point-cloud drop that straddles a layout swap or a
|
|
304
|
+
* StrictMode remount would otherwise hang mid-load, with no error, forever.
|
|
305
|
+
* Callers should handle the rejection as "the target went away", not as a
|
|
306
|
+
* load failure.
|
|
307
|
+
*
|
|
308
|
+
* It also REJECTS (`RendererDeviceLostError`) while the GPU device is lost.
|
|
309
|
+
* The device is what this method promises, and a lost one cannot serve the
|
|
310
|
+
* call the caller is waiting to make — `getGPUDevice()` returns null, so
|
|
311
|
+
* `beginPointCloudStream` throws "Renderer not initialized" the moment the
|
|
312
|
+
* wait resolves. The third outcome is the one `destroy()` already ruled out:
|
|
313
|
+
* parking a waiter that only a host-initiated `init()` could ever settle,
|
|
314
|
+
* and that the viewer's usual response to a loss (drop this renderer, build
|
|
315
|
+
* a new one) guarantees will never come. Unlike the destroyed case this is
|
|
316
|
+
* NOT final — a later `init()` on the same instance re-arms the wait
|
|
317
|
+
* synchronously, so "retry after re-init" is a contract callers can act on,
|
|
318
|
+
* which is why the two rejections carry different names.
|
|
229
319
|
*/
|
|
230
320
|
whenReady(): Promise<void>;
|
|
231
321
|
private markReady;
|
|
322
|
+
/**
|
|
323
|
+
* Fail every parked `whenReady()` waiter with `error`. Called by `destroy()`
|
|
324
|
+
* and by `handleDeviceLost()` — the two events after which nothing this
|
|
325
|
+
* instance does on its own can make the wait true. NOT by `teardown()`,
|
|
326
|
+
* whose waiters belong to the re-init running it and must survive to be
|
|
327
|
+
* flushed by it.
|
|
328
|
+
*/
|
|
329
|
+
private rejectReadyWaiters;
|
|
232
330
|
/**
|
|
233
331
|
* Subscribe to non-intentional GPU device loss (driver reset / VRAM
|
|
234
332
|
* exhaustion — NOT an intentional `destroy()`). Fired at most once per
|
|
235
|
-
* device. After it fires, `render()` is a no-op
|
|
236
|
-
*
|
|
237
|
-
*
|
|
333
|
+
* device. After it fires, `render()` is a no-op and the renderer reports
|
|
334
|
+
* itself un-ready (`isReady()` false, `whenReady()` rejecting with
|
|
335
|
+
* `RendererDeviceLostError`) until it is re-initialised, so the typical
|
|
336
|
+
* response is to dispose this renderer and reload the model. Returns an
|
|
337
|
+
* unsubscribe function.
|
|
238
338
|
*
|
|
239
339
|
* Camera and model state live on the CPU (JS) and survive device loss, so a
|
|
240
340
|
* reload restores the model at its current orientation — the loss is a GPU
|
|
@@ -773,7 +873,24 @@ export declare class Renderer {
|
|
|
773
873
|
*/
|
|
774
874
|
getPipeline(): RenderPipeline | null;
|
|
775
875
|
/**
|
|
776
|
-
* Check if renderer is fully initialized and ready to use
|
|
876
|
+
* Check if renderer is fully initialized and ready to use.
|
|
877
|
+
*
|
|
878
|
+
* `ready` is part of the test, not decoration: between `init()` being called
|
|
879
|
+
* and its queued body running, the device and pipeline still belong to the
|
|
880
|
+
* PREVIOUS init and are about to be destroyed, so the other two conditions
|
|
881
|
+
* alone would report a renderer that is on its way out as usable.
|
|
882
|
+
*
|
|
883
|
+
* So is the device-loss check. A lost device is never torn down —
|
|
884
|
+
* `WebGPUDevice.destroy()` is the only thing that nulls the handle and an
|
|
885
|
+
* involuntary loss (driver reset / VRAM exhaustion / GPU-process crash)
|
|
886
|
+
* never calls it — so `isInitialized()` stays true, the pipeline stays
|
|
887
|
+
* non-null, and `ready` stays set from the init that completed before the
|
|
888
|
+
* loss. All three conditions therefore still hold while `render()` is a
|
|
889
|
+
* no-op and `getGPUDevice()` returns null: the renderer would report itself
|
|
890
|
+
* usable through this third door alone. Unlike the two revocations above
|
|
891
|
+
* this one needs no generation scoping — an `init()` clears `ready`
|
|
892
|
+
* synchronously, so a latch left standing until the queued body clears it
|
|
893
|
+
* cannot make this method spuriously false in the meantime.
|
|
777
894
|
*/
|
|
778
895
|
isReady(): boolean;
|
|
779
896
|
/**
|
|
@@ -807,8 +924,37 @@ export declare class Renderer {
|
|
|
807
924
|
* post-processing buffers, section-plane renderers, and snap caches.
|
|
808
925
|
* After calling this method the renderer is no longer usable.
|
|
809
926
|
* Safe to call multiple times (idempotent).
|
|
927
|
+
*
|
|
928
|
+
* An `init()` still in flight is invalidated too. It is parked on
|
|
929
|
+
* `await device.init(...)`, and without the generation bump below it resumes
|
|
930
|
+
* after this returns, allocates a complete replacement GPU stack that nothing
|
|
931
|
+
* references, and re-publishes `ready` — resolving `whenReady()` waiters
|
|
932
|
+
* against a renderer the host has already torn down (#2465). The bump is what
|
|
933
|
+
* `initOnce()` re-checks after its await, and what makes `markReady()` refuse
|
|
934
|
+
* the stale completion.
|
|
935
|
+
*
|
|
936
|
+
* This is why the teardown itself lives in `teardown()`: `initOnce()` runs it
|
|
937
|
+
* on the PREVIOUS init's objects as part of its own re-init, and routing that
|
|
938
|
+
* through here would have every init invalidate its own generation, leaving
|
|
939
|
+
* `whenReady()` pending forever.
|
|
940
|
+
*
|
|
941
|
+
* Anyone parked in `whenReady()` is FAILED rather than left pending. Nothing
|
|
942
|
+
* after this call can make the wait true — the invalidation above is exactly
|
|
943
|
+
* what stops the in-flight init from publishing readiness, and a host that
|
|
944
|
+
* remounts builds a new `Renderer` rather than re-initialising this one — so
|
|
945
|
+
* leaving the promise unsettled suspends the caller's async frame for the
|
|
946
|
+
* lifetime of the page. `apps/viewer`'s point-cloud drop is one of those
|
|
947
|
+
* frames: it captured this instance before the teardown, and would stop
|
|
948
|
+
* mid-load with the spinner still up and no error to report. See
|
|
949
|
+
* `whenReady()` for the rejection contract.
|
|
810
950
|
*/
|
|
811
951
|
destroy(): void;
|
|
952
|
+
/**
|
|
953
|
+
* Release every GPU object this renderer owns, WITHOUT invalidating an
|
|
954
|
+
* in-flight init. Callers: the public `destroy()` (which invalidates first)
|
|
955
|
+
* and `initOnce()`, tearing down the previous init before building its own.
|
|
956
|
+
*/
|
|
957
|
+
private teardown;
|
|
812
958
|
/**
|
|
813
959
|
* Get the canvas element
|
|
814
960
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|