@ifc-lite/renderer 1.49.1 → 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.
Files changed (141) hide show
  1. package/README.md +4 -0
  2. package/dist/camera-animation.d.ts.map +1 -1
  3. package/dist/camera-animation.js +37 -27
  4. package/dist/camera-animation.js.map +1 -1
  5. package/dist/camera-controls.d.ts +26 -15
  6. package/dist/camera-controls.d.ts.map +1 -1
  7. package/dist/camera-controls.js +32 -18
  8. package/dist/camera-controls.js.map +1 -1
  9. package/dist/camera-framing.d.ts +60 -21
  10. package/dist/camera-framing.d.ts.map +1 -1
  11. package/dist/camera-framing.js +168 -131
  12. package/dist/camera-framing.js.map +1 -1
  13. package/dist/camera-preset-view.d.ts +2 -2
  14. package/dist/camera-preset-view.d.ts.map +1 -1
  15. package/dist/camera-preset-view.js +52 -42
  16. package/dist/camera-preset-view.js.map +1 -1
  17. package/dist/camera.d.ts +50 -6
  18. package/dist/camera.d.ts.map +1 -1
  19. package/dist/camera.js +113 -13
  20. package/dist/camera.js.map +1 -1
  21. package/dist/device.d.ts +11 -0
  22. package/dist/device.d.ts.map +1 -1
  23. package/dist/device.js +71 -5
  24. package/dist/device.js.map +1 -1
  25. package/dist/federation-registry.d.ts.map +1 -1
  26. package/dist/federation-registry.js +19 -2
  27. package/dist/federation-registry.js.map +1 -1
  28. package/dist/frame-timing-cpu.d.ts +31 -0
  29. package/dist/frame-timing-cpu.d.ts.map +1 -0
  30. package/dist/frame-timing-cpu.js +25 -0
  31. package/dist/frame-timing-cpu.js.map +1 -0
  32. package/dist/frame-timing-gpu.d.ts +144 -0
  33. package/dist/frame-timing-gpu.d.ts.map +1 -0
  34. package/dist/frame-timing-gpu.js +176 -0
  35. package/dist/frame-timing-gpu.js.map +1 -0
  36. package/dist/frame-timing-stats.d.ts +100 -0
  37. package/dist/frame-timing-stats.d.ts.map +1 -0
  38. package/dist/frame-timing-stats.js +116 -0
  39. package/dist/frame-timing-stats.js.map +1 -0
  40. package/dist/frame-timing.d.ts +102 -0
  41. package/dist/frame-timing.d.ts.map +1 -0
  42. package/dist/frame-timing.js +112 -0
  43. package/dist/frame-timing.js.map +1 -0
  44. package/dist/index.d.ts +77 -59
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +272 -73
  47. package/dist/index.js.map +1 -1
  48. package/dist/instanced-override-color.d.ts +17 -0
  49. package/dist/instanced-override-color.d.ts.map +1 -0
  50. package/dist/instanced-override-color.js +22 -0
  51. package/dist/instanced-override-color.js.map +1 -0
  52. package/dist/instanced-render.d.ts +10 -0
  53. package/dist/instanced-render.d.ts.map +1 -1
  54. package/dist/instanced-render.js +13 -3
  55. package/dist/instanced-render.js.map +1 -1
  56. package/dist/lod-simplify.d.ts +0 -9
  57. package/dist/lod-simplify.d.ts.map +1 -1
  58. package/dist/lod-simplify.js +45 -7
  59. package/dist/lod-simplify.js.map +1 -1
  60. package/dist/pick-resolve.d.ts +125 -0
  61. package/dist/pick-resolve.d.ts.map +1 -0
  62. package/dist/pick-resolve.js +127 -0
  63. package/dist/pick-resolve.js.map +1 -0
  64. package/dist/picker.d.ts.map +1 -1
  65. package/dist/picker.js +20 -46
  66. package/dist/picker.js.map +1 -1
  67. package/dist/picking-manager.d.ts.map +1 -1
  68. package/dist/picking-manager.js +13 -1
  69. package/dist/picking-manager.js.map +1 -1
  70. package/dist/pipeline.d.ts +16 -0
  71. package/dist/pipeline.d.ts.map +1 -1
  72. package/dist/pipeline.js +89 -3
  73. package/dist/pipeline.js.map +1 -1
  74. package/dist/pointcloud/point-cloud-spatial-index.d.ts +81 -9
  75. package/dist/pointcloud/point-cloud-spatial-index.d.ts.map +1 -1
  76. package/dist/pointcloud/point-cloud-spatial-index.js +140 -29
  77. package/dist/pointcloud/point-cloud-spatial-index.js.map +1 -1
  78. package/dist/raycast-engine.d.ts +4 -4
  79. package/dist/raycast-engine.d.ts.map +1 -1
  80. package/dist/raycast-engine.js +10 -3
  81. package/dist/raycast-engine.js.map +1 -1
  82. package/dist/renderer-overlays.d.ts +3 -21
  83. package/dist/renderer-overlays.d.ts.map +1 -1
  84. package/dist/renderer-overlays.js +57 -85
  85. package/dist/renderer-overlays.js.map +1 -1
  86. package/dist/renderer-symbolic-overlays.d.ts +29 -2
  87. package/dist/renderer-symbolic-overlays.d.ts.map +1 -1
  88. package/dist/renderer-symbolic-overlays.js +61 -16
  89. package/dist/renderer-symbolic-overlays.js.map +1 -1
  90. package/dist/scene-contents.d.ts +132 -0
  91. package/dist/scene-contents.d.ts.map +1 -0
  92. package/dist/scene-contents.js +5 -0
  93. package/dist/scene-contents.js.map +1 -0
  94. package/dist/scene-raycaster.d.ts +14 -8
  95. package/dist/scene-raycaster.d.ts.map +1 -1
  96. package/dist/scene-raycaster.js +6 -2
  97. package/dist/scene-raycaster.js.map +1 -1
  98. package/dist/scene.d.ts.map +1 -1
  99. package/dist/scene.js +63 -12
  100. package/dist/scene.js.map +1 -1
  101. package/dist/section-2d-overlay.d.ts +52 -63
  102. package/dist/section-2d-overlay.d.ts.map +1 -1
  103. package/dist/section-2d-overlay.js +75 -133
  104. package/dist/section-2d-overlay.js.map +1 -1
  105. package/dist/section-plane.d.ts +11 -0
  106. package/dist/section-plane.d.ts.map +1 -1
  107. package/dist/section-plane.js.map +1 -1
  108. package/dist/shaders/main.wgsl.d.ts +1 -1
  109. package/dist/shaders/main.wgsl.d.ts.map +1 -1
  110. package/dist/shaders/main.wgsl.js +87 -4
  111. package/dist/shaders/main.wgsl.js.map +1 -1
  112. package/dist/shaders/section-2d-overlay.wgsl.d.ts +2 -2
  113. package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -1
  114. package/dist/shaders/section-2d-overlay.wgsl.js +2 -2
  115. package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -1
  116. package/dist/shaders/shadow.wgsl.d.ts +31 -0
  117. package/dist/shaders/shadow.wgsl.d.ts.map +1 -0
  118. package/dist/shaders/shadow.wgsl.js +141 -0
  119. package/dist/shaders/shadow.wgsl.js.map +1 -0
  120. package/dist/shadow-light-matrix.d.ts +106 -0
  121. package/dist/shadow-light-matrix.d.ts.map +1 -0
  122. package/dist/shadow-light-matrix.js +185 -0
  123. package/dist/shadow-light-matrix.js.map +1 -0
  124. package/dist/shadow-occluders.d.ts +106 -0
  125. package/dist/shadow-occluders.d.ts.map +1 -0
  126. package/dist/shadow-occluders.js +156 -0
  127. package/dist/shadow-occluders.js.map +1 -0
  128. package/dist/shadow-pass.d.ts +132 -0
  129. package/dist/shadow-pass.d.ts.map +1 -0
  130. package/dist/shadow-pass.js +342 -0
  131. package/dist/shadow-pass.js.map +1 -0
  132. package/dist/snap-detector.d.ts +10 -0
  133. package/dist/snap-detector.d.ts.map +1 -1
  134. package/dist/snap-detector.js.map +1 -1
  135. package/dist/symbolic-overlay-pipelines.d.ts +34 -0
  136. package/dist/symbolic-overlay-pipelines.d.ts.map +1 -1
  137. package/dist/symbolic-overlay-pipelines.js +31 -20
  138. package/dist/symbolic-overlay-pipelines.js.map +1 -1
  139. package/dist/types.d.ts +45 -19
  140. package/dist/types.d.ts.map +1 -1
  141. package/package.json +4 -4
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Frame/pass timing: mode selection and multi-frame aggregation (issue #2670
3
+ * perf-verdict gate). Pure — see `frame-timing-stats.ts` for the statistics
4
+ * primitives this builds on, and `frame-timing-gpu.ts` for the thin
5
+ * GPU-facing code that produces the raw samples consumed here.
6
+ *
7
+ * Timestamp queries (`GPUQuerySet` of type `'timestamp'`) require the
8
+ * `'timestamp-query'` adapter feature, which is NOT always available — this
9
+ * module's job is to decide, from a plain boolean feature flag, what mode to
10
+ * run in, and to turn raw per-pass nanosecond pairs into the millisecond
11
+ * statistics a caller reads. None of that requires a live device.
12
+ */
13
+ import { type DurationStats } from './frame-timing-stats.js';
14
+ /**
15
+ * How frame timing is actually running, after feature detection:
16
+ * - `'gpu-queries'` — real GPU timestamp queries (most accurate; includes
17
+ * time the CPU never sees, e.g. queued/overlapping work on the GPU).
18
+ * - `'cpu-fallback'` — wall-clock deltas around `render()` on the CPU side.
19
+ * Labelled explicitly wherever it is reported: it measures a DIFFERENT
20
+ * thing (CPU-observed frame cadence, inflated by anything that blocks the
21
+ * main thread) and must never be presented next to a GPU-queries number
22
+ * as if the two were comparable.
23
+ * - `'disabled'` — not measuring. The default; see `decideTimingMode`.
24
+ */
25
+ export type TimingMode = 'gpu-queries' | 'cpu-fallback' | 'disabled';
26
+ export interface TimingModeRequest {
27
+ /** Instrumentation is opt-in (see module doc on the renderer entry point). Defaults to not enabled by every caller in this codebase. */
28
+ enabled: boolean;
29
+ /** Whether the adapter this session got advertises the `'timestamp-query'` feature. */
30
+ hasTimestampQueryFeature: boolean;
31
+ /**
32
+ * When GPU queries are unavailable, fall back to CPU-side frame-delta
33
+ * timing instead of measuring nothing. Defaults to `true` when omitted —
34
+ * pass `false` for a caller that only ever wants labelled GPU numbers, or
35
+ * silence.
36
+ */
37
+ allowCpuFallback?: boolean;
38
+ }
39
+ /**
40
+ * Decides which timing mode to run in. Pure decision table:
41
+ *
42
+ * | enabled | hasTimestampQueryFeature | allowCpuFallback | → mode |
43
+ * |---------|--------------------------|------------------|-----------------|
44
+ * | false | * | * | disabled |
45
+ * | true | true | * | gpu-queries |
46
+ * | true | false | true (default) | cpu-fallback |
47
+ * | true | false | false | disabled |
48
+ *
49
+ * Never throws: an absent feature degrades to a labelled fallback (or to
50
+ * `disabled`), it never crashes the caller for asking.
51
+ */
52
+ export declare function decideTimingMode(request: TimingModeRequest): TimingMode;
53
+ /** One resolved GPU timestamp-query pair for a single pass within one frame. */
54
+ export interface PassTimingSample {
55
+ /** Caller-chosen label, e.g. `'shadow'`, `'main'`, `'sky'`. Passes sharing a label within one frame are summed (see `passDurationsMs`) — useful for e.g. multiple shadow cascades rendered as repeated passes under one logical name. */
56
+ label: string;
57
+ startNs: bigint;
58
+ endNs: bigint;
59
+ }
60
+ /**
61
+ * Per-pass durations (ms) for ONE frame, summed by label. A frame with two
62
+ * `'shadow'` passes and one `'main'` pass returns `{ shadow: <sum of both>,
63
+ * main: <its one duration> }` — the frame's per-pass breakdown, not a list
64
+ * of raw pairs.
65
+ */
66
+ export declare function passDurationsMs(samples: readonly PassTimingSample[]): Record<string, number>;
67
+ /**
68
+ * Total GPU time (ms) for one frame: the sum of every pass's duration.
69
+ * WebGPU passes on one queue do not overlap, so summing durations is the
70
+ * frame total — there is no separate "frame envelope" timestamp pair to
71
+ * reconcile against.
72
+ */
73
+ export declare function frameTotalMs(samples: readonly PassTimingSample[]): number;
74
+ /** Aggregated statistics across many recorded frames. */
75
+ export interface FrameTimingReport {
76
+ mode: TimingMode;
77
+ /** Statistics over each frame's total GPU (or CPU-fallback) time. */
78
+ frame: DurationStats;
79
+ /** Statistics over each pass label's per-frame duration, keyed by label. A label absent from a given frame simply contributes no sample to its stats that frame — it is not treated as a 0ms sample. */
80
+ passes: Record<string, DurationStats>;
81
+ /**
82
+ * Count of raw `(startNs, endNs)` pairs across every frame/pass where
83
+ * `endNs < startNs` — a GPU clock non-monotonicity (see `nsToMs`'s doc).
84
+ * Each such sample is clamped to a 0ms contribution in `frame`/`passes`
85
+ * above rather than dragging `min`/`mean` negative, but a clamped 0 reads
86
+ * identically to a genuine zero-duration pass unless this count is
87
+ * checked — surfaced explicitly here for the same reason `DurationStats`
88
+ * gives empty samples their own explicit shape instead of a silent `0`:
89
+ * this API does not report a number it cannot stand behind without also
90
+ * saying when it had to make one up.
91
+ */
92
+ invalidSampleCount: number;
93
+ }
94
+ /**
95
+ * Reduces a history of per-frame pass samples into a `FrameTimingReport`.
96
+ * `frames` is empty for a session where nothing was ever recorded (or the
97
+ * mode is `'disabled'`) — `computeDurationStats([])` already returns the
98
+ * explicit `count: 0` / all-`null` shape for that case, so no special
99
+ * handling is needed here beyond passing `mode` through.
100
+ */
101
+ export declare function aggregateFrameTimings(mode: TimingMode, frames: readonly (readonly PassTimingSample[])[]): FrameTimingReport;
102
+ //# sourceMappingURL=frame-timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-timing.d.ts","sourceRoot":"","sources":["../src/frame-timing.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAiD,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE5G;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,UAAU,CAAC;AAErE,MAAM,WAAW,iBAAiB;IAChC,wIAAwI;IACxI,OAAO,EAAE,OAAO,CAAC;IACjB,uFAAuF;IACvF,wBAAwB,EAAE,OAAO,CAAC;IAClC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAKvE;AAED,gFAAgF;AAChF,MAAM,WAAW,gBAAgB;IAC/B,yOAAyO;IACzO,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5F;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAMzE;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,qEAAqE;IACrE,KAAK,EAAE,aAAa,CAAC;IACrB,wMAAwM;IACxM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC;;;;;;;;;;OAUG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,SAAS,CAAC,SAAS,gBAAgB,EAAE,CAAC,EAAE,GAC/C,iBAAiB,CAiCnB"}
@@ -0,0 +1,112 @@
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
+ * Frame/pass timing: mode selection and multi-frame aggregation (issue #2670
6
+ * perf-verdict gate). Pure — see `frame-timing-stats.ts` for the statistics
7
+ * primitives this builds on, and `frame-timing-gpu.ts` for the thin
8
+ * GPU-facing code that produces the raw samples consumed here.
9
+ *
10
+ * Timestamp queries (`GPUQuerySet` of type `'timestamp'`) require the
11
+ * `'timestamp-query'` adapter feature, which is NOT always available — this
12
+ * module's job is to decide, from a plain boolean feature flag, what mode to
13
+ * run in, and to turn raw per-pass nanosecond pairs into the millisecond
14
+ * statistics a caller reads. None of that requires a live device.
15
+ */
16
+ import { computeDurationStats, nsToMs, isNegativeDelta } from './frame-timing-stats.js';
17
+ /**
18
+ * Decides which timing mode to run in. Pure decision table:
19
+ *
20
+ * | enabled | hasTimestampQueryFeature | allowCpuFallback | → mode |
21
+ * |---------|--------------------------|------------------|-----------------|
22
+ * | false | * | * | disabled |
23
+ * | true | true | * | gpu-queries |
24
+ * | true | false | true (default) | cpu-fallback |
25
+ * | true | false | false | disabled |
26
+ *
27
+ * Never throws: an absent feature degrades to a labelled fallback (or to
28
+ * `disabled`), it never crashes the caller for asking.
29
+ */
30
+ export function decideTimingMode(request) {
31
+ if (!request.enabled)
32
+ return 'disabled';
33
+ if (request.hasTimestampQueryFeature)
34
+ return 'gpu-queries';
35
+ const allowCpuFallback = request.allowCpuFallback ?? true;
36
+ return allowCpuFallback ? 'cpu-fallback' : 'disabled';
37
+ }
38
+ /**
39
+ * Per-pass durations (ms) for ONE frame, summed by label. A frame with two
40
+ * `'shadow'` passes and one `'main'` pass returns `{ shadow: <sum of both>,
41
+ * main: <its one duration> }` — the frame's per-pass breakdown, not a list
42
+ * of raw pairs.
43
+ */
44
+ export function passDurationsMs(samples) {
45
+ // Null-prototype: labels are caller-chosen free text, and on a plain `{}` the
46
+ // inherited `Object.prototype` names are live. `totals['__proto__'] = ms`
47
+ // invokes the prototype setter and is silently dropped (the pass vanishes),
48
+ // and `totals['constructor'] ?? 0` reads the inherited `Object` function, so
49
+ // `+ ms` string-concatenates instead of summing. A bare map has no inherited
50
+ // names, so every label is only ever a key.
51
+ const totals = Object.create(null);
52
+ for (const sample of samples) {
53
+ const ms = nsToMs(sample.startNs, sample.endNs);
54
+ totals[sample.label] = (totals[sample.label] ?? 0) + ms;
55
+ }
56
+ return totals;
57
+ }
58
+ /**
59
+ * Total GPU time (ms) for one frame: the sum of every pass's duration.
60
+ * WebGPU passes on one queue do not overlap, so summing durations is the
61
+ * frame total — there is no separate "frame envelope" timestamp pair to
62
+ * reconcile against.
63
+ */
64
+ export function frameTotalMs(samples) {
65
+ let total = 0;
66
+ for (const sample of samples) {
67
+ total += nsToMs(sample.startNs, sample.endNs);
68
+ }
69
+ return total;
70
+ }
71
+ /**
72
+ * Reduces a history of per-frame pass samples into a `FrameTimingReport`.
73
+ * `frames` is empty for a session where nothing was ever recorded (or the
74
+ * mode is `'disabled'`) — `computeDurationStats([])` already returns the
75
+ * explicit `count: 0` / all-`null` shape for that case, so no special
76
+ * handling is needed here beyond passing `mode` through.
77
+ */
78
+ export function aggregateFrameTimings(mode, frames) {
79
+ const frameDurations = frames.map((f) => frameTotalMs(f));
80
+ const perLabelDurations = new Map();
81
+ let invalidSampleCount = 0;
82
+ for (const frame of frames) {
83
+ const perLabel = passDurationsMs(frame);
84
+ for (const [label, ms] of Object.entries(perLabel)) {
85
+ const list = perLabelDurations.get(label);
86
+ if (list)
87
+ list.push(ms);
88
+ else
89
+ perLabelDurations.set(label, [ms]);
90
+ }
91
+ for (const sample of frame) {
92
+ if (isNegativeDelta(sample.startNs, sample.endNs))
93
+ invalidSampleCount++;
94
+ }
95
+ }
96
+ // Same null-prototype reason as `passDurationsMs` above, and it is a
97
+ // SEPARATE accumulator: `passes['__proto__'] = stats` on a plain object
98
+ // assigns the prototype (the value is an object, so the setter takes it) and
99
+ // creates no own key, dropping the label from the report even when
100
+ // `passDurationsMs` handed it over correctly.
101
+ const passes = Object.create(null);
102
+ for (const [label, durations] of perLabelDurations) {
103
+ passes[label] = computeDurationStats(durations);
104
+ }
105
+ return {
106
+ mode,
107
+ frame: computeDurationStats(frameDurations),
108
+ passes,
109
+ invalidSampleCount,
110
+ };
111
+ }
112
+ //# sourceMappingURL=frame-timing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame-timing.js","sourceRoot":"","sources":["../src/frame-timing.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,22 +5,23 @@ export { WebGPUDevice } from './device.js';
5
5
  export type { AdapterInfoSnapshot } from './device.js';
6
6
  export { RenderPipeline } from './pipeline.js';
7
7
  export { Camera } from './camera.js';
8
+ export type { SceneContents } from './scene-contents.js';
8
9
  export type { ProjectionMode } from './camera-state.js';
10
+ export type { InteractionMode } from './camera-controls.js';
9
11
  export { pickFitPolicy } from './camera-fit-policy.js';
10
12
  export type { FitPolicy, FitPolicyKind, Bounds3, PickFitPolicyOptions } from './camera-fit-policy.js';
11
- export { Scene } from './scene.js';
12
13
  export { Picker } from './picker.js';
13
14
  export { MathUtils } from './math.js';
14
15
  export { viewBasis } from './math.js';
15
16
  export { SectionPlaneRenderer } from './section-plane.js';
16
- export { Section2DOverlayRenderer } from './section-2d-overlay.js';
17
17
  export { SymbolicFillPipeline, SymbolicTextPipeline, type SymbolicFillInput, type SymbolicTextInput, } from './symbolic-overlay-pipelines.js';
18
18
  export { SymbolicTextAtlas } from './symbolic-text-atlas.js';
19
19
  export { DEFAULT_CAP_STYLE, HATCH_PATTERN_IDS } from './section-cap-style.js';
20
20
  export type { SectionCapStyle, HatchPatternId } from './section-cap-style.js';
21
21
  export { planeBasis, nearestCardinalAxis } from './section-plane-basis.js';
22
22
  export type { PlaneBasis, Vec3Tuple } from './section-plane-basis.js';
23
- export type { Section2DOverlayOptions, Section2DOverlayCapStyle, CutPolygon2D, DrawingLine2D } from './section-2d-overlay.js';
23
+ export type { Section2DOverlayOptions, Section2DOverlayCapStyle, CutPolygon2D, DrawingLine2D, LineOverlayChannel } from './section-2d-overlay.js';
24
+ export { LINE_OVERLAY_CHANNELS } from './section-2d-overlay.js';
24
25
  export { Raycaster } from './raycaster.js';
25
26
  export { SnapDetector, SnapType } from './snap-detector.js';
26
27
  export { BVH } from './bvh.js';
@@ -31,7 +32,6 @@ export { resolveEnvironment, deriveSkyGradient, packEnvironmentUniforms, ENVIRON
31
32
  export type { LightingEnvironment, ResolvedEnvironment, SkyGradient, Vec3Color } from './environment.js';
32
33
  export type { Ray, Vec3, Intersection } from './raycaster.js';
33
34
  export type { SnapTarget, SnapOptions, EdgeLockInput, MagneticSnapResult } from './snap-detector.js';
34
- export { PickingManager } from './picking-manager.js';
35
35
  export type { PointPickProvider } from './picking-manager.js';
36
36
  export { resolveContributionThresholdPx, projectedAabbRadiusPx } from './contribution-cull.js';
37
37
  export type { ContributionCullOptions, CullCameraState } from './contribution-cull.js';
@@ -47,6 +47,13 @@ export { isEntityVisible } from './entity-visibility.js';
47
47
  export { DEFAULT_GHOST_ALPHA, OPAQUE_ALPHA_CUTOFF } from './overlay-routing.js';
48
48
  export { VisibilityEpochTracker } from './visibility-epoch.js';
49
49
  export type { FrameStats, ResidentGpuBytes } from './render-stats.js';
50
+ export { decideTimingMode, passDurationsMs, frameTotalMs, aggregateFrameTimings } from './frame-timing.js';
51
+ export type { TimingMode, TimingModeRequest, PassTimingSample, FrameTimingReport } from './frame-timing.js';
52
+ export { computeDurationStats, nsToMs, isNegativeDelta } from './frame-timing-stats.js';
53
+ export type { DurationStats } from './frame-timing-stats.js';
54
+ export { GpuFrameTimingRecorder, hasTimestampQueryFeature } from './frame-timing-gpu.js';
55
+ export { createCpuFrameTicker } from './frame-timing-cpu.js';
56
+ export type { CpuFrameTicker } from './frame-timing-cpu.js';
50
57
  export { RaycastEngine } from './raycast-engine.js';
51
58
  export type { RenderDegradationInfo } from './render-degradation.js';
52
59
  export { PointPicker, decodePickSample } from './point-picker.js';
@@ -59,13 +66,13 @@ export type { PointCloudChunkInput, PointCloudNode, PointCloudNodeMeta, } from '
59
66
  import { type AdapterInfoSnapshot } from './device.js';
60
67
  import { RenderPipeline } from './pipeline.js';
61
68
  import { Camera } from './camera.js';
62
- import { Scene } from './scene.js';
69
+ import type { SceneContents } from './scene-contents.js';
63
70
  import type { MeshData } from '@ifc-lite/geometry';
64
71
  import type { RenderOptions, PickOptions, PickResult, Mesh } from './types.js';
65
- import type { CutPolygon2D, DrawingLine2D } from './section-2d-overlay.js';
72
+ import type { CutPolygon2D, DrawingLine2D, LineOverlayChannel } from './section-2d-overlay.js';
66
73
  import type { SymbolicFillInput, SymbolicTextInput } from './symbolic-overlay-pipelines.js';
67
- import { Raycaster, type Intersection } from './raycaster.js';
68
- import { SnapDetector, type SnapTarget, type SnapOptions, type EdgeLockInput, type MagneticSnapResult } from './snap-detector.js';
74
+ import type { Intersection } from './raycaster.js';
75
+ import type { SnapTarget, SnapOptions, EdgeLockInput, MagneticSnapResult } from './snap-detector.js';
69
76
  import { type RenderDegradationInfo } from './render-degradation.js';
70
77
  import type { FrameStats } from './render-stats.js';
71
78
  import type { PointCloudAsset } from '@ifc-lite/geometry';
@@ -91,6 +98,9 @@ export declare class Renderer {
91
98
  private readonly interactionEffects;
92
99
  private edlPass;
93
100
  private skyPass;
101
+ private shadowPass;
102
+ private shadowsWired;
103
+ private shadowScratch;
94
104
  private edlOptions;
95
105
  private pointCloudRenderer;
96
106
  /**
@@ -513,6 +523,31 @@ export declare class Renderer {
513
523
  z: number;
514
524
  };
515
525
  }): void;
526
+ /**
527
+ * The batched occluders the sun shadow pass should cast, filtered to the same
528
+ * visibility the colour pass draws (#2670, Phase 2b). Without filtering every
529
+ * batch casts. With hide/isolate active a fully-hidden batch is dropped and a
530
+ * partially-hidden OPAQUE batch casts only its visible subset via the SAME
531
+ * cached partial sub-batch the colour pass renders (shared cache key
532
+ * `${colorKey}:${id}` + `_partialBatchEpoch`), so no extra clone memory and no
533
+ * phantom shadow from an individually-hidden element in a shared batch.
534
+ *
535
+ * Transparent (glass-like) partially-hidden parents are left to the collector's
536
+ * material-alpha filter — they don't cast at all, so building a visible subset
537
+ * for them would waste a clone (and diverge from the colour pass's promotion
538
+ * split keys). Fully-visible transparent batches pass through unchanged and the
539
+ * collector drops them.
540
+ */
541
+ private shadowOccluderBatches;
542
+ /**
543
+ * Keep a shadow occluder batch resident so it does not thin out silently on
544
+ * large models under the GPU residency budget (#2670 review). The depth pass
545
+ * reads these batches' buffers, but that read did not count as usage, so an
546
+ * up-sun occluder outside the colour frustum aged into an eviction candidate.
547
+ * Transparent batches never cast (the collector's alpha filter), so their
548
+ * residency is irrelevant here.
549
+ */
550
+ private noteShadowOccluderResidency;
516
551
  /**
517
552
  * Create a GPU Mesh from MeshData (lazy creation for selection highlighting)
518
553
  * This is called on-demand when a mesh is selected, avoiding 2x buffer creation during streaming
@@ -692,14 +727,6 @@ export declare class Renderer {
692
727
  * Invalidate BVH cache (call when geometry changes)
693
728
  */
694
729
  invalidateBVHCache(): void;
695
- /**
696
- * Get the raycaster instance (for advanced usage)
697
- */
698
- getRaycaster(): Raycaster;
699
- /**
700
- * Get the snap detector instance (for advanced usage)
701
- */
702
- getSnapDetector(): SnapDetector;
703
730
  /**
704
731
  * Clear all caches (call when geometry changes)
705
732
  */
@@ -726,7 +753,8 @@ export declare class Renderer {
726
753
  */
727
754
  resize(width: number, height: number): void;
728
755
  getCamera(): Camera;
729
- getScene(): Scene;
756
+ /** MEASURED external surface, not the 4400-line `Scene`: widening `SceneContents` is a published-API decision, not a detail — see `scene-contents.ts`. */
757
+ getScene(): SceneContents;
730
758
  /**
731
759
  * Upload 2D section drawing data for 3D overlay rendering.
732
760
  *
@@ -764,48 +792,31 @@ export declare class Renderer {
764
792
  */
765
793
  setOverlayLineColor(color: readonly [number, number, number, number]): void;
766
794
  /**
767
- * Upload pre-lifted 3D line-list vertices for the standalone annotation
768
- * overlay. Each segment is `[x1, y1, z1, x2, y2, z2]` in world space.
769
- * The overlay is drawn regardless of whether a section plane is active.
770
- * Pass an empty Float32Array to clear.
771
- */
772
- uploadAnnotationLines3D(vertices: Float32Array): void;
773
- /**
774
- * Clear the standalone annotation line overlay.
775
- */
776
- clearAnnotationLines3D(): void;
777
- /**
778
- * Upload IfcAlignment centerline segments as a flat [x,y,z,x,y,z,...]
779
- * line-list in world space. Rendered as thin lines (not a ribbon mesh)
780
- * to match IfcGrid / IfcAnnotation. Pass an empty Float32Array to clear.
781
- */
782
- uploadAlignmentLines3D(vertices: Float32Array): void;
783
- /** Clear the alignment centerline overlay. */
784
- clearAlignmentLines3D(): void;
785
- /**
786
- * Upload structural-grid (IfcGridAxis) segments as a flat [x,y,z,x,y,z,...]
787
- * line-list in world space (issue #967). Rendered as thin lines, mirroring
788
- * the alignment overlay. Pass an empty Float32Array to clear.
795
+ * Set one standalone 3D line overlay, or clear it by passing `null`.
789
796
  *
790
- * Unlike alignment, grids do NOT expand model bounds: they're behind a
791
- * visibility toggle, so toggling them on must not reframe the camera (and
792
- * grid axes routinely extend past the model envelope).
793
- */
794
- uploadGridLines3D(vertices: Float32Array): void;
795
- /** Clear the structural-grid overlay. */
796
- clearGridLines3D(): void;
797
- /**
798
- * Upload the DXF reference-layer's line paths as a flat
799
- * [x,y,z,x,y,z,...] line-list in world space (issue #2043, follow-up to
800
- * the 2D-only DXF underlay from #1782/#1929). Mirrors
801
- * `uploadGridLines3D`: a dedicated buffer so 3D DXF visibility is
802
- * independent of the 2D underlay's own toggle, and does NOT expand
803
- * model bounds/reframe the camera on upload it's behind its own
804
- * visibility toggle, like grid axes. Pass an empty Float32Array to clear.
797
+ * `vertices` is a flat world-space line-list `[x1,y1,z1, x2,y2,z2, …]`,
798
+ * one segment per six floats. The vertices are already lifted to world
799
+ * space, so these overlays draw whether or not a section plane is active.
800
+ * A trailing partial segment is dropped rather than rejecting the array.
801
+ * An empty array clears too, but `null` skips building the pipelines.
802
+ *
803
+ * Every channel is an independent buffer with its own visibility, so
804
+ * setting one leaves the other three untouched. All four share the colour
805
+ * set by {@link setOverlayLineColor}; label colour is per-text via
806
+ * `SymbolicTextInput.color` on `uploadAnnotationTexts3D`.
807
+ *
808
+ * The channels differ in exactly one way whether they grow the scene
809
+ * bounds. `annotation` (#653) and `alignment` DO: a file holding only them
810
+ * has no IfcProduct meshes to frame, so Home / fit-to-view would have
811
+ * nothing to aim at and the near/far range would clip the lines away.
812
+ * `grid` (IfcGridAxis, #967) and `dxf` (the DXF reference layer, #2043) do
813
+ * NOT: they are reference layers that routinely extend past the model
814
+ * envelope, so growing the bounds would reframe the camera whenever one
815
+ * was ticked on. The rule is "does this content DEFINE the model's
816
+ * extent", NOT "is it behind a visibility toggle" — annotations sit behind
817
+ * `ifcAnnotationsVisible` too.
805
818
  */
806
- uploadDxfLines3D(vertices: Float32Array): void;
807
- /** Clear the 3D DXF reference-layer overlay. */
808
- clearDxfLines3D(): void;
819
+ setLineOverlay(channel: LineOverlayChannel, vertices: Float32Array | null): void;
809
820
  /**
810
821
  * Show (or clear) the clash-overlap box: the wireframe AABB of a focused
811
822
  * clash, drawn in `color` so the overlap region reads as a distinct third
@@ -857,7 +868,10 @@ export declare class Renderer {
857
868
  */
858
869
  hasSection2DOverlay(): boolean;
859
870
  /**
860
- * Get render pipeline (for batching)
871
+ * Get render pipeline (for batching). DELIBERATELY NOT NARROWED, unlike
872
+ * `getScene()`: the measurement found ZERO external
873
+ * `RenderPipeline` members — all 12 call sites pass the handle straight
874
+ * back into a `SceneContents` upload method typed for the real class.
861
875
  */
862
876
  getPipeline(): RenderPipeline | null;
863
877
  /**
@@ -895,7 +909,11 @@ export declare class Renderer {
895
909
  *
896
910
  * Returning null instead routes into the `if (!device) return` check that
897
911
  * every call site already has, so a lost device degrades to "stop
898
- * uploading" rather than an uncaught throw. See `isDeviceLost()` /
912
+ * uploading" rather than an uncaught throw.
913
+ *
914
+ * DELIBERATELY NOT NARROWED, unlike `getScene()`: the one external
915
+ * `GPUDevice` member measured is `queue`; every other call site
916
+ * hands the device back to a `SceneContents` method. See `isDeviceLost()` /
899
917
  * `onDeviceLost()` for the recovery contract.
900
918
  */
901
919
  getGPUDevice(): GPUDevice | null;
@@ -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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"}