@ifc-lite/renderer 1.50.0 → 2.0.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/README.md +4 -0
- package/dist/camera-animation.d.ts.map +1 -1
- package/dist/camera-animation.js +37 -27
- package/dist/camera-animation.js.map +1 -1
- package/dist/camera-controls.d.ts +26 -15
- package/dist/camera-controls.d.ts.map +1 -1
- package/dist/camera-controls.js +32 -18
- package/dist/camera-controls.js.map +1 -1
- package/dist/camera-framing.d.ts +60 -21
- package/dist/camera-framing.d.ts.map +1 -1
- package/dist/camera-framing.js +168 -131
- package/dist/camera-framing.js.map +1 -1
- package/dist/camera-preset-view.d.ts +2 -2
- package/dist/camera-preset-view.d.ts.map +1 -1
- package/dist/camera-preset-view.js +52 -42
- package/dist/camera-preset-view.js.map +1 -1
- package/dist/camera.d.ts +26 -6
- package/dist/camera.d.ts.map +1 -1
- package/dist/camera.js +41 -12
- package/dist/camera.js.map +1 -1
- package/dist/federation-registry.d.ts.map +1 -1
- package/dist/federation-registry.js +19 -2
- package/dist/federation-registry.js.map +1 -1
- package/dist/index.d.ts +42 -59
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -73
- package/dist/index.js.map +1 -1
- package/dist/instanced-override-color.d.ts +17 -0
- package/dist/instanced-override-color.d.ts.map +1 -0
- package/dist/instanced-override-color.js +22 -0
- package/dist/instanced-override-color.js.map +1 -0
- package/dist/instanced-render.d.ts +10 -0
- package/dist/instanced-render.d.ts.map +1 -1
- package/dist/instanced-render.js +13 -3
- package/dist/instanced-render.js.map +1 -1
- package/dist/pick-resolve.d.ts +125 -0
- package/dist/pick-resolve.d.ts.map +1 -0
- package/dist/pick-resolve.js +127 -0
- package/dist/pick-resolve.js.map +1 -0
- package/dist/picker.d.ts.map +1 -1
- package/dist/picker.js +20 -46
- package/dist/picker.js.map +1 -1
- package/dist/picking-manager.d.ts.map +1 -1
- package/dist/picking-manager.js +13 -1
- package/dist/picking-manager.js.map +1 -1
- package/dist/raycast-engine.d.ts +4 -4
- package/dist/raycast-engine.d.ts.map +1 -1
- package/dist/raycast-engine.js.map +1 -1
- package/dist/renderer-overlays.d.ts +3 -21
- package/dist/renderer-overlays.d.ts.map +1 -1
- package/dist/renderer-overlays.js +57 -85
- package/dist/renderer-overlays.js.map +1 -1
- package/dist/renderer-symbolic-overlays.d.ts +29 -2
- package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
- package/dist/renderer-symbolic-overlays.js +61 -16
- package/dist/renderer-symbolic-overlays.js.map +1 -1
- package/dist/scene-contents.d.ts +132 -0
- package/dist/scene-contents.d.ts.map +1 -0
- package/dist/scene-contents.js +5 -0
- package/dist/scene-contents.js.map +1 -0
- package/dist/scene-raycaster.d.ts +14 -8
- package/dist/scene-raycaster.d.ts.map +1 -1
- package/dist/scene-raycaster.js +6 -2
- package/dist/scene-raycaster.js.map +1 -1
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +21 -7
- package/dist/scene.js.map +1 -1
- package/dist/section-2d-overlay.d.ts +52 -63
- package/dist/section-2d-overlay.d.ts.map +1 -1
- package/dist/section-2d-overlay.js +69 -130
- package/dist/section-2d-overlay.js.map +1 -1
- package/dist/shaders/section-2d-overlay.wgsl.d.ts +2 -2
- package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
- package/dist/shaders/section-2d-overlay.wgsl.js +2 -2
- package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
- package/dist/symbolic-overlay-pipelines.d.ts +11 -12
- package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
- package/dist/symbolic-overlay-pipelines.js +7 -12
- package/dist/symbolic-overlay-pipelines.js.map +1 -1
- package/dist/types.d.ts +5 -19
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
import { type CutPolygon2D, type DrawingLine2D, type SectionAxis, type SectionCustomPlane } from './section-2d-lift.js';
|
|
2
2
|
export type { CutPolygon2D, DrawingLine2D, SectionCustomPlane } from './section-2d-lift.js';
|
|
3
|
+
/**
|
|
4
|
+
* The standalone world-space line overlays, in draw order.
|
|
5
|
+
*
|
|
6
|
+
* Each channel is an independent vertex buffer sharing one line pipeline and one shared overlay
|
|
7
|
+
* colour; only the buffer read and the uniform slot bound distinguish them — naming them makes a
|
|
8
|
+
* fifth channel five table rows, not eight methods. Four of five refuse to compile if skipped;
|
|
9
|
+
* the fifth, `SECTION_2D_UNIFORM_SLOT_COUNT`, derives from `SECTION_2D_UNIFORM_SLOT_INDEX`, so
|
|
10
|
+
* the buffer follows it automatically (#3342 was a hand-written count, one short).
|
|
11
|
+
*
|
|
12
|
+
* Not enforced: each draw site binding its OWN slot. A test pins the index dense, but a channel
|
|
13
|
+
* reusing an existing slot constant passes it while two sites overwrite each other's `lineColor`
|
|
14
|
+
* (#2456).
|
|
15
|
+
*
|
|
16
|
+
* Clash box/contact lines are deliberately NOT a channel: they draw in their own colour via
|
|
17
|
+
* `setClashOverlapBox` / `setClashContactLines`.
|
|
18
|
+
*/
|
|
19
|
+
export declare const LINE_OVERLAY_CHANNELS: readonly ["annotation", "alignment", "grid", "dxf"];
|
|
20
|
+
/** One of {@link LINE_OVERLAY_CHANNELS}. */
|
|
21
|
+
export type LineOverlayChannel = (typeof LINE_OVERLAY_CHANNELS)[number];
|
|
3
22
|
export interface Section2DOverlayCapStyle {
|
|
4
23
|
fillColor: [number, number, number, number];
|
|
5
24
|
strokeColor: [number, number, number, number];
|
|
@@ -60,10 +79,19 @@ export declare class Section2DOverlayRenderer {
|
|
|
60
79
|
private fillIndexCount;
|
|
61
80
|
private lineVertexBuffer;
|
|
62
81
|
private lineVertexCount;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
82
|
+
/**
|
|
83
|
+
* One world-space vertex buffer per {@link LineOverlayChannel}, each on its
|
|
84
|
+
* own uniform slot.
|
|
85
|
+
*
|
|
86
|
+
* Four `WorldLineBuffer`s, not one: the four draws are encoded into a single
|
|
87
|
+
* pass and `queue.writeBuffer` lands before the pass runs, so a shared buffer
|
|
88
|
+
* or a shared uniform slot would give all four whatever the last write said.
|
|
89
|
+
* Keying them by channel unifies the LOOKUP, which is all that was ever
|
|
90
|
+
* duplicated; the buffers stay separate because their independence is what
|
|
91
|
+
* makes annotation (#653), alignment, grid (#967) and DXF (#2043) visibility
|
|
92
|
+
* toggle independently.
|
|
93
|
+
*/
|
|
94
|
+
private readonly lineOverlays;
|
|
67
95
|
private clashBoxLines;
|
|
68
96
|
private clashBoxLineColor;
|
|
69
97
|
constructor(device: GPUDevice, format: GPUTextureFormat, sampleCount?: number);
|
|
@@ -71,7 +99,7 @@ export declare class Section2DOverlayRenderer {
|
|
|
71
99
|
/**
|
|
72
100
|
* The shared line-pipeline resources a WorldLineBuffer borrows for a draw.
|
|
73
101
|
* Returns null before `init()` has produced them (or after `dispose()`), so
|
|
74
|
-
* every
|
|
102
|
+
* every line draw bails on the same condition it always did.
|
|
75
103
|
*/
|
|
76
104
|
private lineResources;
|
|
77
105
|
/**
|
|
@@ -100,67 +128,25 @@ export declare class Section2DOverlayRenderer {
|
|
|
100
128
|
*/
|
|
101
129
|
setOverlayLineColor(color: readonly [number, number, number, number]): void;
|
|
102
130
|
/**
|
|
103
|
-
*
|
|
104
|
-
* annotation overlay. Each segment is `[x1, y1, z1, x2, y2, z2]` in world
|
|
105
|
-
* space. The buffer is independent of the section cut's line buffer and
|
|
106
|
-
* is drawn regardless of `sectionPlane.enabled`.
|
|
131
|
+
* Set one standalone world-space line overlay, or clear it with `null`.
|
|
107
132
|
*
|
|
108
|
-
*
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
*
|
|
115
|
-
* as the section cut outlines (vertex format: 3 floats per vertex, line-list
|
|
116
|
-
* topology) but reads from a separate vertex buffer. The pipeline's
|
|
117
|
-
* `planeOffset` uniform is zeroed so vertices render at their authored
|
|
118
|
-
* world position.
|
|
119
|
-
*/
|
|
120
|
-
drawAnnotationLines3D(pass: GPURenderPassEncoder, viewProj: Float32Array): void;
|
|
121
|
-
/**
|
|
122
|
-
* Upload a flat Float32Array of 3D line-list vertices for the alignment
|
|
123
|
-
* centerline overlay. Same format/pipeline as the annotation lines, kept in
|
|
124
|
-
* a separate buffer so alignment visibility is independent.
|
|
125
|
-
* Pass an empty array (or omit) to clear.
|
|
126
|
-
*/
|
|
127
|
-
uploadAlignmentLines3D(vertices: Float32Array): void;
|
|
128
|
-
clearAlignmentLines3D(): void;
|
|
129
|
-
hasAlignmentLines3D(): boolean;
|
|
130
|
-
/**
|
|
131
|
-
* Draw the alignment centerline overlay. Identical pipeline/uniform setup as
|
|
132
|
-
* `drawAnnotationLines3D`, reading from the separate alignment buffer.
|
|
133
|
-
*/
|
|
134
|
-
drawAlignmentLines3D(pass: GPURenderPassEncoder, viewProj: Float32Array): void;
|
|
135
|
-
/**
|
|
136
|
-
* Upload structural-grid (IfcGridAxis) segments as a flat
|
|
137
|
-
* `[x,y,z, x,y,z, …]` line-list in world space (issue #967). Mirrors
|
|
138
|
-
* `uploadAlignmentLines3D` with a separate buffer so grid visibility is
|
|
139
|
-
* independent. Pass an empty array (or omit) to clear.
|
|
140
|
-
*/
|
|
141
|
-
uploadGridLines3D(vertices: Float32Array): void;
|
|
142
|
-
clearGridLines3D(): void;
|
|
143
|
-
hasGridLines3D(): boolean;
|
|
144
|
-
/**
|
|
145
|
-
* Draw the structural-grid overlay. Identical pipeline/uniform setup as
|
|
146
|
-
* `drawAlignmentLines3D`, reading from the separate grid buffer.
|
|
147
|
-
*/
|
|
148
|
-
drawGridLines3D(pass: GPURenderPassEncoder, viewProj: Float32Array): void;
|
|
149
|
-
/**
|
|
150
|
-
* Upload the DXF reference-layer's line paths as a flat `[x,y,z, x,y,z, …]`
|
|
151
|
-
* line-list in world space (issue #2043). Mirrors `uploadGridLines3D` with
|
|
152
|
-
* a separate buffer so 3D DXF visibility is independent of the 2D
|
|
153
|
-
* underlay and the other overlays above. Pass an empty array (or omit)
|
|
154
|
-
* to clear.
|
|
133
|
+
* `vertices` is a flat line-list, `[x1,y1,z1, x2,y2,z2, …]`, already in world
|
|
134
|
+
* space: unlike the section-cut outline these do not ride the section plane,
|
|
135
|
+
* so they draw regardless of `sectionPlane.enabled`. A short array clears too.
|
|
136
|
+
*
|
|
137
|
+
* Every channel gets its own buffer and its own uniform slot, so setting one
|
|
138
|
+
* leaves the other three exactly as they were — that independence is the
|
|
139
|
+
* whole point of having channels rather than one merged buffer.
|
|
155
140
|
*/
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
141
|
+
setLineOverlay(channel: LineOverlayChannel, vertices: Float32Array | null): void;
|
|
142
|
+
/** Whether `channel` currently holds at least one whole segment. */
|
|
143
|
+
hasLineOverlay(channel: LineOverlayChannel): boolean;
|
|
159
144
|
/**
|
|
160
|
-
* Draw the
|
|
161
|
-
*
|
|
145
|
+
* Draw one channel with the shared line pipeline and the shared overlay
|
|
146
|
+
* colour, binding that channel's own uniform slot. No-ops when the channel is
|
|
147
|
+
* empty or the pipeline could not be built.
|
|
162
148
|
*/
|
|
163
|
-
|
|
149
|
+
drawLineOverlay(pass: GPURenderPassEncoder, viewProj: Float32Array, channel: LineOverlayChannel): void;
|
|
164
150
|
/** Colour for the clash-overlap box (its own, not the shared overlay colour). */
|
|
165
151
|
setClashBoxLineColor(color: readonly [number, number, number, number]): void;
|
|
166
152
|
/**
|
|
@@ -187,7 +173,10 @@ export declare class Section2DOverlayRenderer {
|
|
|
187
173
|
* Every family's buffer must be released here. The clash box (#1277) was the
|
|
188
174
|
* sixth family added and was missing from this list, leaking its vertex
|
|
189
175
|
* buffer on every teardown — `section-2d-overlay-lifecycle.test.ts` now counts
|
|
190
|
-
* destroys against uploads so a seventh family cannot repeat it.
|
|
176
|
+
* destroys against uploads so a seventh family cannot repeat it. The four
|
|
177
|
+
* `LINE_OVERLAY_CHANNELS` are released by iterating the channel list, so a
|
|
178
|
+
* fifth channel is covered here the moment it joins that list; the clash box
|
|
179
|
+
* is named separately because it is not a channel.
|
|
191
180
|
*/
|
|
192
181
|
dispose(): void;
|
|
193
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-overlay.d.ts","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"section-2d-overlay.d.ts","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,9 @@
|
|
|
15
15
|
* vertex buffer to `section-2d-line-buffer.ts`. What is left is one nullable,
|
|
16
16
|
* `init()`-created / `dispose()`-destroyed GPU object (two pipelines, one
|
|
17
17
|
* bind-group layout, one bind group, one uniform buffer holding a 160-byte
|
|
18
|
-
* record per draw site) plus
|
|
19
|
-
*
|
|
18
|
+
* record per draw site) plus the published API over it: one
|
|
19
|
+
* `setLineOverlay`/`hasLineOverlay`/`drawLineOverlay` trio covering every
|
|
20
|
+
* standalone line channel, and the section cut's own upload/draw. Splitting that
|
|
20
21
|
* further means giving those shared resources a second owner, which is the cut
|
|
21
22
|
* #2456 explicitly refuses. Do not "fix" the line count by doing it.
|
|
22
23
|
*/
|
|
@@ -24,6 +25,23 @@ import { PIPELINE_CONSTANTS } from './constants.js';
|
|
|
24
25
|
import { SECTION_2D_CAP_FILL_WGSL, SECTION_2D_OVERLAY_LINE_WGSL, SECTION_2D_UNIFORM_BYTES, SECTION_2D_UNIFORM_FLOATS, SECTION_2D_UNIFORM_SLOTS, SECTION_2D_UNIFORM_SLOT_COUNT, SECTION_2D_UNIFORM_SLOT_INDEX, sectionUniformSlotStride, } from './shaders/section-2d-overlay.wgsl.js';
|
|
25
26
|
import { buildCapFillGeometry, buildDrawingOutlineVertices, createSectionLift, } from './section-2d-lift.js';
|
|
26
27
|
import { WorldLineBuffer, } from './section-2d-line-buffer.js';
|
|
28
|
+
/**
|
|
29
|
+
* The standalone world-space line overlays, in draw order.
|
|
30
|
+
*
|
|
31
|
+
* Each channel is an independent vertex buffer sharing one line pipeline and one shared overlay
|
|
32
|
+
* colour; only the buffer read and the uniform slot bound distinguish them — naming them makes a
|
|
33
|
+
* fifth channel five table rows, not eight methods. Four of five refuse to compile if skipped;
|
|
34
|
+
* the fifth, `SECTION_2D_UNIFORM_SLOT_COUNT`, derives from `SECTION_2D_UNIFORM_SLOT_INDEX`, so
|
|
35
|
+
* the buffer follows it automatically (#3342 was a hand-written count, one short).
|
|
36
|
+
*
|
|
37
|
+
* Not enforced: each draw site binding its OWN slot. A test pins the index dense, but a channel
|
|
38
|
+
* reusing an existing slot constant passes it while two sites overwrite each other's `lineColor`
|
|
39
|
+
* (#2456).
|
|
40
|
+
*
|
|
41
|
+
* Clash box/contact lines are deliberately NOT a channel: they draw in their own colour via
|
|
42
|
+
* `setClashOverlapBox` / `setClashContactLines`.
|
|
43
|
+
*/
|
|
44
|
+
export const LINE_OVERLAY_CHANNELS = ['annotation', 'alignment', 'grid', 'dxf'];
|
|
27
45
|
export class Section2DOverlayRenderer {
|
|
28
46
|
device;
|
|
29
47
|
fillPipeline = null;
|
|
@@ -49,28 +67,24 @@ export class Section2DOverlayRenderer {
|
|
|
49
67
|
fillIndexCount = 0;
|
|
50
68
|
lineVertexBuffer = null;
|
|
51
69
|
lineVertexCount = 0;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
// above, but reuses the same line pipeline + shared overlay colour —
|
|
71
|
-
// mirrors the grid overlay exactly. Line paths only (walls/boundaries);
|
|
72
|
-
// DXF fills/text are not lifted to 3D in this iteration.
|
|
73
|
-
dxfLines = new WorldLineBuffer(SECTION_2D_UNIFORM_SLOT_INDEX.dxf);
|
|
70
|
+
/**
|
|
71
|
+
* One world-space vertex buffer per {@link LineOverlayChannel}, each on its
|
|
72
|
+
* own uniform slot.
|
|
73
|
+
*
|
|
74
|
+
* Four `WorldLineBuffer`s, not one: the four draws are encoded into a single
|
|
75
|
+
* pass and `queue.writeBuffer` lands before the pass runs, so a shared buffer
|
|
76
|
+
* or a shared uniform slot would give all four whatever the last write said.
|
|
77
|
+
* Keying them by channel unifies the LOOKUP, which is all that was ever
|
|
78
|
+
* duplicated; the buffers stay separate because their independence is what
|
|
79
|
+
* makes annotation (#653), alignment, grid (#967) and DXF (#2043) visibility
|
|
80
|
+
* toggle independently.
|
|
81
|
+
*/
|
|
82
|
+
lineOverlays = {
|
|
83
|
+
annotation: new WorldLineBuffer(SECTION_2D_UNIFORM_SLOT_INDEX.annotation),
|
|
84
|
+
alignment: new WorldLineBuffer(SECTION_2D_UNIFORM_SLOT_INDEX.alignment),
|
|
85
|
+
grid: new WorldLineBuffer(SECTION_2D_UNIFORM_SLOT_INDEX.grid),
|
|
86
|
+
dxf: new WorldLineBuffer(SECTION_2D_UNIFORM_SLOT_INDEX.dxf),
|
|
87
|
+
};
|
|
74
88
|
// Standalone 3D clash-overlap-box overlay (#1277): the wireframe AABB of a
|
|
75
89
|
// focused clash, drawn in its OWN distinct colour (not the shared overlay
|
|
76
90
|
// line colour) so the overlap region reads as a third colour next to the two
|
|
@@ -242,7 +256,7 @@ export class Section2DOverlayRenderer {
|
|
|
242
256
|
/**
|
|
243
257
|
* The shared line-pipeline resources a WorldLineBuffer borrows for a draw.
|
|
244
258
|
* Returns null before `init()` has produced them (or after `dispose()`), so
|
|
245
|
-
* every
|
|
259
|
+
* every line draw bails on the same condition it always did.
|
|
246
260
|
*/
|
|
247
261
|
lineResources() {
|
|
248
262
|
if (!this.linePipeline || !this.uniformBuffer || !this.bindGroup)
|
|
@@ -325,118 +339,42 @@ export class Section2DOverlayRenderer {
|
|
|
325
339
|
this.overlayLineColor = color;
|
|
326
340
|
}
|
|
327
341
|
/**
|
|
328
|
-
*
|
|
329
|
-
* annotation overlay. Each segment is `[x1, y1, z1, x2, y2, z2]` in world
|
|
330
|
-
* space. The buffer is independent of the section cut's line buffer and
|
|
331
|
-
* is drawn regardless of `sectionPlane.enabled`.
|
|
342
|
+
* Set one standalone world-space line overlay, or clear it with `null`.
|
|
332
343
|
*
|
|
333
|
-
*
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
this.annotationLines.clear();
|
|
341
|
-
}
|
|
342
|
-
hasAnnotationLines3D() {
|
|
343
|
-
return this.annotationLines.has();
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Draw the standalone annotation line overlay. Uses the same line pipeline
|
|
347
|
-
* as the section cut outlines (vertex format: 3 floats per vertex, line-list
|
|
348
|
-
* topology) but reads from a separate vertex buffer. The pipeline's
|
|
349
|
-
* `planeOffset` uniform is zeroed so vertices render at their authored
|
|
350
|
-
* world position.
|
|
351
|
-
*/
|
|
352
|
-
drawAnnotationLines3D(pass, viewProj) {
|
|
353
|
-
this.init();
|
|
354
|
-
const resources = this.lineResources();
|
|
355
|
-
if (!resources)
|
|
356
|
-
return;
|
|
357
|
-
this.annotationLines.draw(pass, resources, viewProj, this.overlayLineColor);
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* Upload a flat Float32Array of 3D line-list vertices for the alignment
|
|
361
|
-
* centerline overlay. Same format/pipeline as the annotation lines, kept in
|
|
362
|
-
* a separate buffer so alignment visibility is independent.
|
|
363
|
-
* Pass an empty array (or omit) to clear.
|
|
364
|
-
*/
|
|
365
|
-
uploadAlignmentLines3D(vertices) {
|
|
366
|
-
this.init();
|
|
367
|
-
this.alignmentLines.upload(this.device, vertices);
|
|
368
|
-
}
|
|
369
|
-
clearAlignmentLines3D() {
|
|
370
|
-
this.alignmentLines.clear();
|
|
371
|
-
}
|
|
372
|
-
hasAlignmentLines3D() {
|
|
373
|
-
return this.alignmentLines.has();
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Draw the alignment centerline overlay. Identical pipeline/uniform setup as
|
|
377
|
-
* `drawAnnotationLines3D`, reading from the separate alignment buffer.
|
|
378
|
-
*/
|
|
379
|
-
drawAlignmentLines3D(pass, viewProj) {
|
|
380
|
-
this.init();
|
|
381
|
-
const resources = this.lineResources();
|
|
382
|
-
if (!resources)
|
|
383
|
-
return;
|
|
384
|
-
this.alignmentLines.draw(pass, resources, viewProj, this.overlayLineColor);
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* Upload structural-grid (IfcGridAxis) segments as a flat
|
|
388
|
-
* `[x,y,z, x,y,z, …]` line-list in world space (issue #967). Mirrors
|
|
389
|
-
* `uploadAlignmentLines3D` with a separate buffer so grid visibility is
|
|
390
|
-
* independent. Pass an empty array (or omit) to clear.
|
|
391
|
-
*/
|
|
392
|
-
uploadGridLines3D(vertices) {
|
|
393
|
-
this.init();
|
|
394
|
-
this.gridLines.upload(this.device, vertices);
|
|
395
|
-
}
|
|
396
|
-
clearGridLines3D() {
|
|
397
|
-
this.gridLines.clear();
|
|
398
|
-
}
|
|
399
|
-
hasGridLines3D() {
|
|
400
|
-
return this.gridLines.has();
|
|
401
|
-
}
|
|
402
|
-
/**
|
|
403
|
-
* Draw the structural-grid overlay. Identical pipeline/uniform setup as
|
|
404
|
-
* `drawAlignmentLines3D`, reading from the separate grid buffer.
|
|
344
|
+
* `vertices` is a flat line-list, `[x1,y1,z1, x2,y2,z2, …]`, already in world
|
|
345
|
+
* space: unlike the section-cut outline these do not ride the section plane,
|
|
346
|
+
* so they draw regardless of `sectionPlane.enabled`. A short array clears too.
|
|
347
|
+
*
|
|
348
|
+
* Every channel gets its own buffer and its own uniform slot, so setting one
|
|
349
|
+
* leaves the other three exactly as they were — that independence is the
|
|
350
|
+
* whole point of having channels rather than one merged buffer.
|
|
405
351
|
*/
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
352
|
+
setLineOverlay(channel, vertices) {
|
|
353
|
+
if (vertices === null) {
|
|
354
|
+
// Deliberately no `init()`: clearing destroys a buffer that only an
|
|
355
|
+
// upload could have created, so a clear before first use must not be
|
|
356
|
+
// what brings the pipeline into existence.
|
|
357
|
+
this.lineOverlays[channel].clear();
|
|
410
358
|
return;
|
|
411
|
-
|
|
412
|
-
}
|
|
413
|
-
/**
|
|
414
|
-
* Upload the DXF reference-layer's line paths as a flat `[x,y,z, x,y,z, …]`
|
|
415
|
-
* line-list in world space (issue #2043). Mirrors `uploadGridLines3D` with
|
|
416
|
-
* a separate buffer so 3D DXF visibility is independent of the 2D
|
|
417
|
-
* underlay and the other overlays above. Pass an empty array (or omit)
|
|
418
|
-
* to clear.
|
|
419
|
-
*/
|
|
420
|
-
uploadDxfLines3D(vertices) {
|
|
359
|
+
}
|
|
421
360
|
this.init();
|
|
422
|
-
this.
|
|
423
|
-
}
|
|
424
|
-
clearDxfLines3D() {
|
|
425
|
-
this.dxfLines.clear();
|
|
361
|
+
this.lineOverlays[channel].upload(this.device, vertices);
|
|
426
362
|
}
|
|
427
|
-
|
|
428
|
-
|
|
363
|
+
/** Whether `channel` currently holds at least one whole segment. */
|
|
364
|
+
hasLineOverlay(channel) {
|
|
365
|
+
return this.lineOverlays[channel].has();
|
|
429
366
|
}
|
|
430
367
|
/**
|
|
431
|
-
* Draw the
|
|
432
|
-
*
|
|
368
|
+
* Draw one channel with the shared line pipeline and the shared overlay
|
|
369
|
+
* colour, binding that channel's own uniform slot. No-ops when the channel is
|
|
370
|
+
* empty or the pipeline could not be built.
|
|
433
371
|
*/
|
|
434
|
-
|
|
372
|
+
drawLineOverlay(pass, viewProj, channel) {
|
|
435
373
|
this.init();
|
|
436
374
|
const resources = this.lineResources();
|
|
437
375
|
if (!resources)
|
|
438
376
|
return;
|
|
439
|
-
this.
|
|
377
|
+
this.lineOverlays[channel].draw(pass, resources, viewProj, this.overlayLineColor);
|
|
440
378
|
}
|
|
441
379
|
/** Colour for the clash-overlap box (its own, not the shared overlay colour). */
|
|
442
380
|
setClashBoxLineColor(color) {
|
|
@@ -566,14 +504,15 @@ export class Section2DOverlayRenderer {
|
|
|
566
504
|
* Every family's buffer must be released here. The clash box (#1277) was the
|
|
567
505
|
* sixth family added and was missing from this list, leaking its vertex
|
|
568
506
|
* buffer on every teardown — `section-2d-overlay-lifecycle.test.ts` now counts
|
|
569
|
-
* destroys against uploads so a seventh family cannot repeat it.
|
|
507
|
+
* destroys against uploads so a seventh family cannot repeat it. The four
|
|
508
|
+
* `LINE_OVERLAY_CHANNELS` are released by iterating the channel list, so a
|
|
509
|
+
* fifth channel is covered here the moment it joins that list; the clash box
|
|
510
|
+
* is named separately because it is not a channel.
|
|
570
511
|
*/
|
|
571
512
|
dispose() {
|
|
572
513
|
this.clearGeometry();
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
this.clearGridLines3D();
|
|
576
|
-
this.clearDxfLines3D();
|
|
514
|
+
for (const channel of LINE_OVERLAY_CHANNELS)
|
|
515
|
+
this.lineOverlays[channel].clear();
|
|
577
516
|
this.clearClashBoxLines3D();
|
|
578
517
|
if (this.uniformBuffer) {
|
|
579
518
|
this.uniformBuffer.destroy();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-overlay.js","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"section-2d-overlay.js","sourceRoot":"","sources":["../src/section-2d-overlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,8 +71,8 @@ export declare const SECTION_2D_UNIFORM_SLOT_INDEX: {
|
|
|
71
71
|
readonly dxf: 4;
|
|
72
72
|
readonly clashBox: 5;
|
|
73
73
|
};
|
|
74
|
-
/** How many uniform records the shared buffer holds. */
|
|
75
|
-
export declare const SECTION_2D_UNIFORM_SLOT_COUNT
|
|
74
|
+
/** How many uniform records the shared buffer holds — one per entry above. */
|
|
75
|
+
export declare const SECTION_2D_UNIFORM_SLOT_COUNT: number;
|
|
76
76
|
/**
|
|
77
77
|
* Byte stride between uniform slots for `device`.
|
|
78
78
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-overlay.wgsl.d.ts","sourceRoot":"","sources":["../../src/shaders/section-2d-overlay.wgsl.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;IACnC,+CAA+C;;IAE/C,+CAA+C;;IAE/C,+CAA+C;;IAE/C,gDAAgD;;IAEhD,gFAAgF;;IAEhF,oEAAoE;;IAEpE,mFAAmF;;CAE3E,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,QAAgC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,6BAA6B;IACxC,6EAA6E;;;;;;;CAOrE,CAAC;AAEX,
|
|
1
|
+
{"version":3,"file":"section-2d-overlay.wgsl.d.ts","sourceRoot":"","sources":["../../src/shaders/section-2d-overlay.wgsl.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;IACnC,+CAA+C;;IAE/C,+CAA+C;;IAE/C,+CAA+C;;IAE/C,gDAAgD;;IAEhD,gFAAgF;;IAEhF,oEAAoE;;IAEpE,mFAAmF;;CAE3E,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,QAAgC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,6BAA6B;IACxC,6EAA6E;;;;;;;CAOrE,CAAC;AAEX,8EAA8E;AAC9E,eAAO,MAAM,6BAA6B,QAAoD,CAAC;AAE/F;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAIlE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,ojLAwH9B,CAAC;AAER;;;GAGG;AACH,eAAO,MAAM,4BAA4B,0lEAoDlC,CAAC"}
|
|
@@ -74,8 +74,8 @@ export const SECTION_2D_UNIFORM_SLOT_INDEX = {
|
|
|
74
74
|
dxf: 4,
|
|
75
75
|
clashBox: 5,
|
|
76
76
|
};
|
|
77
|
-
/** How many uniform records the shared buffer holds. */
|
|
78
|
-
export const SECTION_2D_UNIFORM_SLOT_COUNT =
|
|
77
|
+
/** How many uniform records the shared buffer holds — one per entry above. */
|
|
78
|
+
export const SECTION_2D_UNIFORM_SLOT_COUNT = Object.keys(SECTION_2D_UNIFORM_SLOT_INDEX).length;
|
|
79
79
|
/**
|
|
80
80
|
* Byte stride between uniform slots for `device`.
|
|
81
81
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section-2d-overlay.wgsl.js","sourceRoot":"","sources":["../../src/shaders/section-2d-overlay.wgsl.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,+CAA+C;IAC/C,QAAQ,EAAE,CAAC;IACX,+CAA+C;IAC/C,WAAW,EAAE,EAAE;IACf,+CAA+C;IAC/C,YAAY,EAAE,EAAE;IAChB,gDAAgD;IAChD,cAAc,EAAE,EAAE;IAClB,gFAAgF;IAChF,MAAM,EAAE,EAAE;IACV,oEAAoE;IACpE,OAAO,EAAE,EAAE;IACX,mFAAmF;IACnF,SAAS,EAAE,EAAE;CACL,CAAC;AAEX,uEAAuE;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,GAAG,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,6EAA6E;IAC7E,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;CACH,CAAC;AAEX,
|
|
1
|
+
{"version":3,"file":"section-2d-overlay.wgsl.js","sourceRoot":"","sources":["../../src/shaders/section-2d-overlay.wgsl.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,+CAA+C;IAC/C,QAAQ,EAAE,CAAC;IACX,+CAA+C;IAC/C,WAAW,EAAE,EAAE;IACf,+CAA+C;IAC/C,YAAY,EAAE,EAAE;IAChB,gDAAgD;IAChD,cAAc,EAAE,EAAE;IAClB,gFAAgF;IAChF,MAAM,EAAE,EAAE;IACV,oEAAoE;IACpE,OAAO,EAAE,EAAE;IACX,mFAAmF;IACnF,SAAS,EAAE,EAAE;CACL,CAAC;AAEX,uEAAuE;AACvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,GAAG,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,6EAA6E;IAC7E,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;CACH,CAAC;AAEX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,MAAM,CAAC;AAE/F;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,+BAA+B,IAAI,GAAG,CAAC;IACxE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAC3D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwH5C,CAAC;AAER;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDhD,CAAC"}
|
|
@@ -18,6 +18,8 @@ export interface SymbolicFillInput {
|
|
|
18
18
|
worldY: number;
|
|
19
19
|
/** Straight-alpha RGBA in [0..1]. The shader premultiplies. */
|
|
20
20
|
color: [number, number, number, number];
|
|
21
|
+
/** Does this fill DEFINE the model's extent? Default true; see `uploadFills` (#3359). */
|
|
22
|
+
definesExtent?: boolean;
|
|
21
23
|
}
|
|
22
24
|
export interface SymbolicTextInput {
|
|
23
25
|
worldPos: [number, number, number];
|
|
@@ -47,6 +49,8 @@ export interface SymbolicTextInput {
|
|
|
47
49
|
* disappear behind the character.
|
|
48
50
|
*/
|
|
49
51
|
targetPx?: number;
|
|
52
|
+
/** Does this label DEFINE the model's extent? Default true; see `uploadTexts` (#3359). */
|
|
53
|
+
definesExtent?: boolean;
|
|
50
54
|
}
|
|
51
55
|
export declare class SymbolicFillPipeline {
|
|
52
56
|
private readonly device;
|
|
@@ -125,18 +129,13 @@ export declare class SymbolicTextPipeline {
|
|
|
125
129
|
* first token decides vertical, the second decides horizontal, matching
|
|
126
130
|
* the row-then-column order every compound value in the enum uses.
|
|
127
131
|
*
|
|
128
|
-
* Vertical
|
|
129
|
-
* value like "center"
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* "left" → 0 (default per IFC)
|
|
136
|
-
* "middle" / "center" → -0.5
|
|
137
|
-
* "right" → -1
|
|
138
|
-
*
|
|
139
|
-
* Unknown / empty values fall back to ("bottom", "left").
|
|
132
|
+
* Vertical comes from the first token, horizontal from the second, or from
|
|
133
|
+
* the whole string for a single-token value like "center": top 0, middle
|
|
134
|
+
* -0.5, bottom -1 (the IFC default) vertically; left 0 (the IFC default),
|
|
135
|
+
* middle/center -0.5, right -1 horizontally. Unknown or empty falls back to
|
|
136
|
+
* ("bottom", "left"). The if/else below is the same table, which is why this
|
|
137
|
+
* is prose: the file sits exactly on its module-size budget, and two
|
|
138
|
+
* documented public fields cost the four lines this paragraph gives back.
|
|
140
139
|
*/
|
|
141
140
|
export declare function parseBoxAlignment(s: string): {
|
|
142
141
|
horizontal: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbolic-overlay-pipelines.d.ts","sourceRoot":"","sources":["../src/symbolic-overlay-pipelines.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAgC7D,MAAM,WAAW,iBAAiB;IAChC,mEAAmE;IACnE,MAAM,EAAE,YAAY,CAAC;IACrB,uEAAuE;IACvE,YAAY,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"symbolic-overlay-pipelines.d.ts","sourceRoot":"","sources":["../src/symbolic-overlay-pipelines.ts"],"names":[],"mappings":"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"}
|
|
@@ -587,18 +587,13 @@ export class SymbolicTextPipeline {
|
|
|
587
587
|
* first token decides vertical, the second decides horizontal, matching
|
|
588
588
|
* the row-then-column order every compound value in the enum uses.
|
|
589
589
|
*
|
|
590
|
-
* Vertical
|
|
591
|
-
* value like "center"
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
*
|
|
596
|
-
*
|
|
597
|
-
* "left" → 0 (default per IFC)
|
|
598
|
-
* "middle" / "center" → -0.5
|
|
599
|
-
* "right" → -1
|
|
600
|
-
*
|
|
601
|
-
* Unknown / empty values fall back to ("bottom", "left").
|
|
590
|
+
* Vertical comes from the first token, horizontal from the second, or from
|
|
591
|
+
* the whole string for a single-token value like "center": top 0, middle
|
|
592
|
+
* -0.5, bottom -1 (the IFC default) vertically; left 0 (the IFC default),
|
|
593
|
+
* middle/center -0.5, right -1 horizontally. Unknown or empty falls back to
|
|
594
|
+
* ("bottom", "left"). The if/else below is the same table, which is why this
|
|
595
|
+
* is prose: the file sits exactly on its module-size budget, and two
|
|
596
|
+
* documented public fields cost the four lines this paragraph gives back.
|
|
602
597
|
*/
|
|
603
598
|
export function parseBoxAlignment(s) {
|
|
604
599
|
const norm = s.toLowerCase().trim();
|