@geometra/renderer-three 0.2.0 → 1.3.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.
Files changed (39) hide show
  1. package/dist/host-css-coerce.d.ts +39 -0
  2. package/dist/host-css-coerce.d.ts.map +1 -0
  3. package/dist/host-css-coerce.js +69 -0
  4. package/dist/host-css-coerce.js.map +1 -0
  5. package/dist/host-layout-plain.d.ts +164 -0
  6. package/dist/host-layout-plain.d.ts.map +1 -0
  7. package/dist/host-layout-plain.js +255 -0
  8. package/dist/host-layout-plain.js.map +1 -0
  9. package/dist/index.d.ts +42 -5
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +41 -5
  12. package/dist/index.js.map +1 -1
  13. package/dist/layout-sync.d.ts +51 -0
  14. package/dist/layout-sync.d.ts.map +1 -0
  15. package/dist/layout-sync.js +59 -0
  16. package/dist/layout-sync.js.map +1 -0
  17. package/dist/scene3d-manager.d.ts +29 -0
  18. package/dist/scene3d-manager.d.ts.map +1 -0
  19. package/dist/scene3d-manager.js +339 -0
  20. package/dist/scene3d-manager.js.map +1 -0
  21. package/dist/split-host.d.ts +48 -9
  22. package/dist/split-host.d.ts.map +1 -1
  23. package/dist/split-host.js +74 -39
  24. package/dist/split-host.js.map +1 -1
  25. package/dist/stacked-host.d.ts +64 -14
  26. package/dist/stacked-host.d.ts.map +1 -1
  27. package/dist/stacked-host.js +77 -41
  28. package/dist/stacked-host.js.map +1 -1
  29. package/dist/three-scene-basics.d.ts +313 -2
  30. package/dist/three-scene-basics.d.ts.map +1 -1
  31. package/dist/three-scene-basics.js +418 -1
  32. package/dist/three-scene-basics.js.map +1 -1
  33. package/dist/utils.d.ts +156 -0
  34. package/dist/utils.d.ts.map +1 -1
  35. package/dist/utils.js +207 -6
  36. package/dist/utils.js.map +1 -1
  37. package/package.json +15 -18
  38. package/LICENSE +0 -21
  39. package/README.md +0 -111
@@ -1 +1 @@
1
- {"version":3,"file":"stacked-host.js","sourceRoot":"","sources":["../src/stacked-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stacked-host.js","sourceRoot":"","sources":["../src/stacked-host.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,12 @@
1
1
  import * as THREE from 'three';
2
+ import type { WebGLRendererParameters } from 'three';
3
+ import { type PlainGeometraThreeViewSizingState } from './utils.js';
4
+ /** Scene, camera, and clock bundle returned by {@link createGeometraThreeSceneBasics}. */
5
+ export interface GeometraThreeSceneBasics {
6
+ scene: THREE.Scene;
7
+ camera: THREE.PerspectiveCamera;
8
+ clock: THREE.Clock;
9
+ }
2
10
  /** Options shared by split/stacked hosts and {@link createGeometraThreeSceneBasics}. */
3
11
  export interface GeometraThreeSceneBasicsOptions {
4
12
  /** Clear color for the Three.js scene. Default: `0x000000`. */
@@ -12,16 +20,319 @@ export interface GeometraThreeSceneBasicsOptions {
12
20
  /** Initial camera position. Default: `(0, 0, 5)`. */
13
21
  cameraPosition?: THREE.Vector3Tuple;
14
22
  }
23
+ /**
24
+ * Scene and camera defaults shared by {@link createThreeGeometraSplitHost},
25
+ * {@link createThreeGeometraStackedHost}, and {@link createGeometraThreeSceneBasics}.
26
+ * Use in headless or custom renderer setups so numbers stay aligned with those hosts
27
+ * without copying literals from the README.
28
+ */
29
+ export declare const GEOMETRA_THREE_HOST_SCENE_DEFAULTS: Required<GeometraThreeSceneBasicsOptions>;
30
+ /**
31
+ * Fully merged and coerced {@link GeometraThreeSceneBasicsOptions} using the same rules as
32
+ * {@link createGeometraThreeSceneBasics} (and split/stacked hosts).
33
+ *
34
+ * Use when you need host-aligned numbers for logging, tests, or agent-side protocol payloads without
35
+ * constructing a {@link THREE.Scene} or {@link THREE.PerspectiveCamera}.
36
+ */
37
+ export declare function resolveGeometraThreeSceneBasicsOptions(options?: GeometraThreeSceneBasicsOptions): Required<GeometraThreeSceneBasicsOptions>;
38
+ /**
39
+ * Host-aligned scene/camera numbers in a JSON-friendly shape: clear color as a single **sRGB hex**
40
+ * integer (`0xRRGGBB`), same as {@link THREE.Color#getHex}.
41
+ *
42
+ * Use for logs, tests, or agent-side payloads where {@link GeometraThreeSceneBasicsOptions.threeBackground}
43
+ * may be a string or other {@link THREE.ColorRepresentation} but you need a stable numeric field for
44
+ * `JSON.stringify`.
45
+ */
46
+ export interface PlainGeometraThreeSceneBasicsOptions {
47
+ threeBackgroundHex: number;
48
+ cameraFov: number;
49
+ cameraNear: number;
50
+ cameraFar: number;
51
+ cameraPosition: THREE.Vector3Tuple;
52
+ }
53
+ /**
54
+ * Same coercion as {@link resolveGeometraThreeSceneBasicsOptions}, plus a hex background for stable JSON.
55
+ */
56
+ export declare function toPlainGeometraThreeSceneBasicsOptions(options?: GeometraThreeSceneBasicsOptions): PlainGeometraThreeSceneBasicsOptions;
57
+ /**
58
+ * Build {@link GeometraThreeSceneBasics} from {@link PlainGeometraThreeSceneBasicsOptions} (for example
59
+ * `JSON.parse` of logs, tests, or agent payloads). Maps `threeBackgroundHex` to {@link GeometraThreeSceneBasicsOptions.threeBackground}
60
+ * and forwards camera fields through {@link createGeometraThreeSceneBasics}, so invalid numbers get the same
61
+ * coercion as split/stacked hosts and {@link toPlainGeometraThreeSceneBasicsOptions} output round-trips when
62
+ * re-applied here.
63
+ */
64
+ export declare function createGeometraThreeSceneBasicsFromPlain(plain: PlainGeometraThreeSceneBasicsOptions): GeometraThreeSceneBasics;
65
+ /**
66
+ * Single JSON-friendly object combining {@link PlainGeometraThreeViewSizingState} and
67
+ * {@link PlainGeometraThreeSceneBasicsOptions} with the same coercion rules as
68
+ * {@link toPlainGeometraThreeViewSizingState} and {@link toPlainGeometraThreeSceneBasicsOptions}.
69
+ *
70
+ * Use for logs, tests, or agent-side payloads when you want viewport + scene numbers in one
71
+ * `JSON.stringify` without calling both helpers separately.
72
+ */
73
+ export type PlainGeometraThreeHostSnapshot = PlainGeometraThreeViewSizingState & PlainGeometraThreeSceneBasicsOptions;
74
+ /**
75
+ * Narrow `unknown` (e.g. `JSON.parse`) to {@link PlainGeometraThreeSceneBasicsOptions} — the scene/camera
76
+ * fields from {@link toPlainGeometraThreeSceneBasicsOptions} without viewport sizing. Extra keys are allowed.
77
+ * Pair with {@link isPlainGeometraThreeViewSizingState} when you need both slices before merging or calling
78
+ * {@link createGeometraThreeSceneBasicsFromPlain}.
79
+ */
80
+ export declare function isPlainGeometraThreeSceneBasicsOptions(value: unknown): value is PlainGeometraThreeSceneBasicsOptions;
81
+ /**
82
+ * Narrow `unknown` (e.g. `JSON.parse`) to {@link PlainGeometraThreeHostSnapshot} when the object matches
83
+ * the shape from {@link toPlainGeometraThreeHostSnapshot} / {@link toPlainGeometraThreeHostSnapshotHeadless} /
84
+ * {@link toPlainGeometraThreeHostSnapshotFromViewSizing}. Extra keys (e.g. hybrid layout fields) are allowed.
85
+ * Composite payloads use {@link isPlainGeometraThreeSplitHostSnapshot} / {@link isPlainGeometraThreeStackedHostSnapshot}.
86
+ */
87
+ export declare function isPlainGeometraThreeHostSnapshot(value: unknown): value is PlainGeometraThreeHostSnapshot;
88
+ /**
89
+ * Merge host-aligned viewport sizing and scene/camera plain fields for stable JSON.
90
+ *
91
+ * @see PlainGeometraThreeHostSnapshot
92
+ */
93
+ export declare function toPlainGeometraThreeHostSnapshot(cssWidth: number, cssHeight: number, rawDevicePixelRatio: number, maxDevicePixelRatio?: number, sceneBasicsOptions?: GeometraThreeSceneBasicsOptions): PlainGeometraThreeHostSnapshot;
94
+ /**
95
+ * Same plain snapshot as {@link toPlainGeometraThreeHostSnapshot} with raw device pixel ratio **1** —
96
+ * the baseline after `win.devicePixelRatio || 1` when the ratio is missing, and the same raw input as
97
+ * {@link resolveHeadlessHostDevicePixelRatio} when you only apply an optional cap.
98
+ *
99
+ * Viewport fields match {@link toPlainGeometraThreeViewSizingStateHeadless}; for sizing-only JSON, call
100
+ * that helper directly.
101
+ *
102
+ * For headless GL, Node, tests, or agent payloads without a browser `window`, call this instead of
103
+ * passing a literal `1` as `rawDevicePixelRatio` everywhere.
104
+ */
105
+ export declare function toPlainGeometraThreeHostSnapshotHeadless(cssWidth: number, cssHeight: number, maxDevicePixelRatio?: number, sceneBasicsOptions?: GeometraThreeSceneBasicsOptions): PlainGeometraThreeHostSnapshot;
106
+ /**
107
+ * Merge an existing {@link PlainGeometraThreeViewSizingState} (from {@link toPlainGeometraThreeViewSizingState}
108
+ * or your own pipeline) with {@link toPlainGeometraThreeSceneBasicsOptions} into one
109
+ * {@link PlainGeometraThreeHostSnapshot}.
110
+ *
111
+ * Use in headless loops, tests, or agent payloads when layout/DPR sizing is computed once and scene/camera
112
+ * options are added later, without re-running {@link toPlainGeometraThreeViewSizingState}.
113
+ */
114
+ export declare function toPlainGeometraThreeHostSnapshotFromViewSizing(sizing: PlainGeometraThreeViewSizingState, sceneBasicsOptions?: GeometraThreeSceneBasicsOptions): PlainGeometraThreeHostSnapshot;
115
+ /**
116
+ * Combine an existing {@link PlainGeometraThreeViewSizingState} with an already-plain scene slice
117
+ * {@link PlainGeometraThreeSceneBasicsOptions} (for example after {@link isPlainGeometraThreeViewSizingState}
118
+ * and {@link isPlainGeometraThreeSceneBasicsOptions}) into one {@link PlainGeometraThreeHostSnapshot}.
119
+ *
120
+ * Same object shape as {@link toPlainGeometraThreeHostSnapshotFromViewSizing} when `scene` is the output of
121
+ * {@link toPlainGeometraThreeSceneBasicsOptions}, but skips a redundant {@link THREE.Color} round-trip when
122
+ * the scene fields are already JSON-stable.
123
+ */
124
+ export declare function mergePlainGeometraThreeHostSnapshot(sizing: PlainGeometraThreeViewSizingState, scene: PlainGeometraThreeSceneBasicsOptions): PlainGeometraThreeHostSnapshot;
125
+ /**
126
+ * `WebGLRenderer` constructor options (excluding `canvas`) used by
127
+ * {@link createThreeGeometraSplitHost} and {@link createThreeGeometraStackedHost}.
128
+ *
129
+ * Typed as {@link WebGLRendererParameters} minus `canvas` so custom renderers stay compatible with
130
+ * Three’s constructor surface when you extend or mirror these flags.
131
+ *
132
+ * Spread into your own `new WebGLRenderer({ canvas, ...GEOMETRA_HOST_WEBGL_RENDERER_OPTIONS })` when
133
+ * you manage the renderer (headless GL, offscreen canvas, tests) so flags stay aligned with those hosts.
134
+ */
135
+ export declare const GEOMETRA_HOST_WEBGL_RENDERER_OPTIONS: {
136
+ readonly antialias: true;
137
+ readonly alpha: false;
138
+ };
139
+ /**
140
+ * Full {@link WebGLRendererParameters} for `new WebGLRenderer(...)`, with the same flags as
141
+ * {@link createThreeGeometraSplitHost} and {@link createThreeGeometraStackedHost} plus your `canvas`.
142
+ *
143
+ * Use in headless GL, offscreen canvas, or custom hosts so constructor input stays aligned with
144
+ * those packages without copying {@link GEOMETRA_HOST_WEBGL_RENDERER_OPTIONS} at every call site.
145
+ */
146
+ export declare function createGeometraHostWebGLRendererParams(canvas: NonNullable<WebGLRendererParameters['canvas']>): WebGLRendererParameters;
147
+ /**
148
+ * `new WebGLRenderer(createGeometraHostWebGLRendererParams(canvas))` with the same flags as
149
+ * {@link createThreeGeometraSplitHost} and {@link createThreeGeometraStackedHost}.
150
+ *
151
+ * Use in the browser or any environment where Three can create a GL context (offscreen canvas,
152
+ * custom hosts). Prefer {@link createGeometraHostWebGLRendererParams} when you need to spread
153
+ * into a larger parameter object.
154
+ */
155
+ export declare function createGeometraThreeWebGLRenderer(canvas: NonNullable<WebGLRendererParameters['canvas']>): THREE.WebGLRenderer;
15
156
  /**
16
157
  * Create a scene, perspective camera, and clock with the same defaults as
17
158
  * {@link createThreeGeometraSplitHost} and {@link createThreeGeometraStackedHost}.
18
159
  *
19
160
  * Use this when you want Three.js state aligned with those hosts but manage your own
20
161
  * `WebGLRenderer` (for example headless GL, offscreen canvas, or custom render targets).
162
+ *
163
+ * Non-finite or invalid perspective settings fall back to {@link GEOMETRA_THREE_HOST_SCENE_DEFAULTS}
164
+ * (or `far = max(default far, near × 2)` when the default far is not past a coerced near plane).
165
+ *
166
+ * @returns A {@link GeometraThreeSceneBasics} value aligned with split/stacked host defaults.
167
+ */
168
+ export declare function createGeometraThreeSceneBasics(options?: GeometraThreeSceneBasicsOptions): GeometraThreeSceneBasics;
169
+ /** {@link createGeometraThreeSceneBasics} plus a host-aligned {@link THREE.WebGLRenderer} on the same canvas. */
170
+ export type GeometraThreeWebGLWithSceneBasics = GeometraThreeSceneBasics & {
171
+ renderer: THREE.WebGLRenderer;
172
+ };
173
+ /**
174
+ * Create a {@link THREE.WebGLRenderer} and {@link GeometraThreeSceneBasics} in one call, using the same
175
+ * constructor flags and scene defaults as {@link createThreeGeometraSplitHost} and
176
+ * {@link createThreeGeometraStackedHost}.
177
+ *
178
+ * Equivalent to {@link createGeometraThreeWebGLRenderer} on `canvas` plus
179
+ * {@link createGeometraThreeSceneBasics} with the same `options` — useful for offscreen canvas, custom hosts, or
180
+ * agent-side bootstrap where you want parity without duplicating the two factories.
181
+ *
182
+ * Requires a WebGL-capable environment (same as `new WebGLRenderer(...)`).
183
+ */
184
+ export declare function createGeometraThreeWebGLWithSceneBasics(canvas: NonNullable<WebGLRendererParameters['canvas']>, options?: GeometraThreeSceneBasicsOptions): GeometraThreeWebGLWithSceneBasics;
185
+ /**
186
+ * Same host-aligned renderer + scene bundle as {@link createGeometraThreeWebGLWithSceneBasics}, but scene and
187
+ * camera are built from {@link PlainGeometraThreeSceneBasicsOptions} (for example `JSON.parse` of logs, tests,
188
+ * or agent payloads) via {@link createGeometraThreeSceneBasicsFromPlain}, so invalid fields get the same coercion
189
+ * as split/stacked hosts without manually mapping `threeBackgroundHex` into {@link GeometraThreeSceneBasicsOptions}.
190
+ *
191
+ * Requires a WebGL-capable environment (same as `new WebGLRenderer(...)`).
21
192
  */
22
- export declare function createGeometraThreeSceneBasics(options?: GeometraThreeSceneBasicsOptions): {
193
+ export declare function createGeometraThreeWebGLWithSceneBasicsFromPlain(canvas: NonNullable<WebGLRendererParameters['canvas']>, plain: PlainGeometraThreeSceneBasicsOptions): GeometraThreeWebGLWithSceneBasics;
194
+ /**
195
+ * Tear down the {@link THREE.WebGLRenderer} from {@link createGeometraThreeWebGLWithSceneBasics}
196
+ * (or any bundle that shares the same `renderer` reference).
197
+ *
198
+ * When `clock` is passed (for example the same bundle from {@link createGeometraThreeWebGLWithSceneBasics}),
199
+ * calls {@link THREE.Clock.stop} before {@link THREE.WebGLRenderer.dispose} so `getDelta` / `elapsedTime`
200
+ * do not keep advancing after teardown in headless ticks or agent loops.
201
+ *
202
+ * Calls {@link THREE.WebGLRenderer.dispose}; it does not traverse the scene or dispose meshes,
203
+ * materials, or textures — keep that cleanup in app code or a future helper if you need it.
204
+ *
205
+ * Registers the renderer so {@link tickGeometraThreeWebGLWithSceneBasicsFrame} skips a subsequent
206
+ * `render` when teardown runs inside `onFrame`, matching split/stacked hosts after {@link ThreeRuntimeContext.destroy}.
207
+ */
208
+ export declare function disposeGeometraThreeWebGLWithSceneBasics(bundle: Pick<GeometraThreeWebGLWithSceneBasics, 'renderer'> & Partial<Pick<GeometraThreeWebGLWithSceneBasics, 'clock'>>): void;
209
+ /**
210
+ * Resize renderer and camera from {@link createGeometraThreeWebGLWithSceneBasics} using the same CSS layout,
211
+ * {@link resolveHostDevicePixelRatio} capping, and {@link resizeGeometraThreePerspectiveView} path as
212
+ * {@link createThreeGeometraSplitHost} and {@link createThreeGeometraStackedHost}.
213
+ *
214
+ * Use in headless GL, offscreen canvas, or custom hosts when you already hold the bundle and a layout size
215
+ * (e.g. from your own layout pass). Pass `rawDevicePixelRatio` from `window.devicePixelRatio` in the browser
216
+ * or `1` when there is no window.
217
+ *
218
+ * Equivalent to calling {@link resizeGeometraThreePerspectiveView} on `bundle.renderer` and `bundle.camera` with
219
+ * `resolveHostDevicePixelRatio(rawDevicePixelRatio, maxDevicePixelRatio)`.
220
+ */
221
+ export declare function resizeGeometraThreeWebGLWithSceneBasicsView(bundle: Pick<GeometraThreeWebGLWithSceneBasics, 'renderer' | 'camera'>, cssWidth: number, cssHeight: number, rawDevicePixelRatio: number, maxDevicePixelRatio?: number): void;
222
+ /**
223
+ * Same as {@link resizeGeometraThreeWebGLWithSceneBasicsView} with raw device pixel ratio fixed at **1** —
224
+ * parity with {@link resolveHeadlessHostDevicePixelRatio} and {@link toPlainGeometraThreeHostSnapshotHeadless}
225
+ * for headless GL, Node, tests, or agent loops without a browser `window`.
226
+ */
227
+ export declare function resizeGeometraThreeWebGLWithSceneBasicsViewHeadless(bundle: Pick<GeometraThreeWebGLWithSceneBasics, 'renderer' | 'camera'>, cssWidth: number, cssHeight: number, maxDevicePixelRatio?: number): void;
228
+ /**
229
+ * Resize from {@link PlainGeometraThreeViewSizingState} using `layoutWidth`, `layoutHeight`, and
230
+ * `effectiveDevicePixelRatio` — equivalent to
231
+ * {@link resizeGeometraThreeWebGLWithSceneBasicsView} with those dimensions and the same effective ratio
232
+ * the plain helpers compute from raw DPR and optional cap.
233
+ *
234
+ * Accepts any object with those fields, including a full {@link PlainGeometraThreeHostSnapshot} or composite
235
+ * split/stacked snapshot (extra keys ignored). Use when logs, tests, or agents already validated viewport JSON
236
+ * via {@link isPlainGeometraThreeHostSnapshot} and should not re-derive {@link resolveHostDevicePixelRatio}
237
+ * from partial inputs.
238
+ */
239
+ export declare function resizeGeometraThreeWebGLWithSceneBasicsViewFromPlainViewSizing(bundle: Pick<GeometraThreeWebGLWithSceneBasics, 'renderer' | 'camera'>, sizing: PlainGeometraThreeViewSizingState): void;
240
+ /**
241
+ * One `renderer.render(scene, camera)` pass for a {@link GeometraThreeWebGLWithSceneBasics} bundle.
242
+ *
243
+ * Use in headless GL, tests, or agent-style loops after
244
+ * {@link resizeGeometraThreeWebGLWithSceneBasicsView} (or your own sizing) so a single frame matches
245
+ * the same scene/camera/renderer wiring as {@link createThreeGeometraSplitHost} /
246
+ * {@link createThreeGeometraStackedHost} without duplicating the render call.
247
+ *
248
+ * No-ops when the same `renderer` was already passed to {@link disposeGeometraThreeWebGLWithSceneBasics}
249
+ * — same skip-after-dispose registration as {@link tickGeometraThreeWebGLWithSceneBasicsFrame}.
250
+ */
251
+ export declare function renderGeometraThreeWebGLWithSceneBasicsFrame(bundle: Pick<GeometraThreeWebGLWithSceneBasics, 'renderer' | 'scene' | 'camera'>): void;
252
+ /**
253
+ * Context passed to `onFrame` in {@link tickGeometraThreeWebGLWithSceneBasicsFrame}: the bundle’s renderer,
254
+ * scene, camera, and clock plus `delta` / `elapsed` from the same {@link THREE.Clock} read the hosts use
255
+ * before `onThreeFrame`.
256
+ */
257
+ export interface GeometraThreeWebGLWithSceneBasicsTickContext {
258
+ renderer: THREE.WebGLRenderer;
23
259
  scene: THREE.Scene;
24
260
  camera: THREE.PerspectiveCamera;
25
261
  clock: THREE.Clock;
26
- };
262
+ delta: number;
263
+ elapsed: number;
264
+ }
265
+ /**
266
+ * Same per-frame ordering as {@link createThreeGeometraSplitHost} and {@link createThreeGeometraStackedHost}:
267
+ * `clock.getDelta()` / `elapsedTime`, optional callback, then `renderer.render`.
268
+ *
269
+ * If `onFrame` returns **`false`**, `renderer.render` is skipped and this function returns **`false`** —
270
+ * parity with {@link ThreeGeometraSplitHostOptions.onThreeFrame} / stacked host `onThreeFrame` returning `false`.
271
+ * If `onFrame` calls {@link disposeGeometraThreeWebGLWithSceneBasics} on the same bundle (same idea as
272
+ * {@link ThreeRuntimeContext.destroy} in browser hosts), `render` is skipped and this returns **`false`** even when
273
+ * the callback does not return `false`. `undefined` and other return values still render when the renderer was not
274
+ * disposed through that helper, and the function returns **`true`** when `render` runs.
275
+ *
276
+ * If `onFrame` **throws**, the error propagates and `renderer.render` is not called — same ordering as browser
277
+ * hosts, which run the frame callback before `render`.
278
+ *
279
+ * Use in headless GL, tests, or agent loops when you want {@link THREE.Clock} timing parity with those hosts
280
+ * without duplicating the loop body. Omit the callback to match a tick that only advances the clock and renders.
281
+ *
282
+ * @returns `true` if `renderer.render` ran, `false` if `onFrame` returned `false` (draw skipped).
283
+ */
284
+ export declare function tickGeometraThreeWebGLWithSceneBasicsFrame(bundle: GeometraThreeWebGLWithSceneBasics, onFrame?: (ctx: GeometraThreeWebGLWithSceneBasicsTickContext) => void | boolean): boolean;
285
+ /**
286
+ * One-step frame: {@link resizeGeometraThreeWebGLWithSceneBasicsView}, then
287
+ * {@link tickGeometraThreeWebGLWithSceneBasicsFrame} — same as calling those two in sequence (resize
288
+ * before `clock.getDelta()` / `onFrame` / `render`).
289
+ *
290
+ * Use when you have an explicit raw device pixel ratio (for example `window.devicePixelRatio || 1` from a
291
+ * provided `window`, or a simulated value in tests and agent loops) and want the same resize + frame
292
+ * ordering as {@link createThreeGeometraSplitHost} / {@link createThreeGeometraStackedHost} without inlining
293
+ * both calls.
294
+ *
295
+ * For raw DPR **1** without repeating that literal, prefer {@link resizeTickGeometraThreeWebGLWithSceneBasicsHeadless}.
296
+ *
297
+ * @returns Same boolean as {@link tickGeometraThreeWebGLWithSceneBasicsFrame}.
298
+ */
299
+ export declare function resizeTickGeometraThreeWebGLWithSceneBasics(bundle: GeometraThreeWebGLWithSceneBasics, cssWidth: number, cssHeight: number, rawDevicePixelRatio: number, maxDevicePixelRatio?: number, onFrame?: (ctx: GeometraThreeWebGLWithSceneBasicsTickContext) => void | boolean): boolean;
300
+ /**
301
+ * Headless one-step frame: {@link resizeGeometraThreeWebGLWithSceneBasicsViewHeadless}, then
302
+ * {@link tickGeometraThreeWebGLWithSceneBasicsFrame} — same as calling those two in sequence (resize
303
+ * before `clock.getDelta()` / `onFrame` / `render`).
304
+ *
305
+ * Equivalent to {@link resizeTickGeometraThreeWebGLWithSceneBasics} with `rawDevicePixelRatio` **1** and
306
+ * the same optional `maxDevicePixelRatio` / `onFrame` arguments.
307
+ *
308
+ * For Node, headless WebGL, tests, or agent loops that need buffer + camera sync on every tick with raw
309
+ * DPR **1** and the same optional cap as the browser hosts, without repeating the pair at every call site.
310
+ *
311
+ * @returns Same boolean as {@link tickGeometraThreeWebGLWithSceneBasicsFrame}.
312
+ */
313
+ export declare function resizeTickGeometraThreeWebGLWithSceneBasicsHeadless(bundle: GeometraThreeWebGLWithSceneBasics, cssWidth: number, cssHeight: number, maxDevicePixelRatio?: number, onFrame?: (ctx: GeometraThreeWebGLWithSceneBasicsTickContext) => void | boolean): boolean;
314
+ /**
315
+ * Resize from {@link PlainGeometraThreeViewSizingState}, then {@link tickGeometraThreeWebGLWithSceneBasicsFrame} —
316
+ * same as calling those two in sequence (resize before `clock.getDelta()` / `onFrame` / `render`).
317
+ *
318
+ * Use in headless GL, tests, or agent loops when viewport JSON is already validated (for example with
319
+ * {@link isPlainGeometraThreeHostSnapshot}) and you want the same one-step flow as
320
+ * {@link resizeTickGeometraThreeWebGLWithSceneBasics} without re-supplying raw DPR and `maxDevicePixelRatio` on
321
+ * every tick.
322
+ *
323
+ * @returns Same boolean as {@link tickGeometraThreeWebGLWithSceneBasicsFrame}.
324
+ */
325
+ export declare function resizeTickGeometraThreeWebGLWithSceneBasicsFromPlainViewSizing(bundle: GeometraThreeWebGLWithSceneBasics, sizing: PlainGeometraThreeViewSizingState, onFrame?: (ctx: GeometraThreeWebGLWithSceneBasicsTickContext) => void | boolean): boolean;
326
+ /**
327
+ * Same as {@link resizeTickGeometraThreeWebGLWithSceneBasicsFromPlainViewSizing} but takes a full
328
+ * {@link PlainGeometraThreeHostSnapshot} (viewport + scene plain fields) — for example from
329
+ * {@link toPlainGeometraThreeHostSnapshot}, {@link toPlainGeometraThreeHostSnapshotHeadless},
330
+ * {@link toPlainGeometraThreeHostSnapshotFromViewSizing}, or composite split/stacked snapshots that
331
+ * include those keys. Only the {@link PlainGeometraThreeViewSizingState} slice is read for resize;
332
+ * extra fields (scene/camera hex, hybrid layout) are ignored here but often live on the same object
333
+ * you already validated with {@link isPlainGeometraThreeHostSnapshot}.
334
+ *
335
+ * @returns Same boolean as {@link tickGeometraThreeWebGLWithSceneBasicsFrame}.
336
+ */
337
+ export declare function resizeTickGeometraThreeWebGLWithSceneBasicsFromPlainHostSnapshot(bundle: GeometraThreeWebGLWithSceneBasics, snapshot: PlainGeometraThreeHostSnapshot, onFrame?: (ctx: GeometraThreeWebGLWithSceneBasicsTickContext) => void | boolean): boolean;
27
338
  //# sourceMappingURL=three-scene-basics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"three-scene-basics.d.ts","sourceRoot":"","sources":["../src/three-scene-basics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,wFAAwF;AACxF,MAAM,WAAW,+BAA+B;IAC9C,+DAA+D;IAC/D,eAAe,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAA;IAC3C,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,cAAc,CAAC,EAAE,KAAK,CAAC,YAAY,CAAA;CACpC;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,+BAAoC,GAC5C;IACD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;IAClB,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAA;IAC/B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAA;CACnB,CAkBA"}
1
+ {"version":3,"file":"three-scene-basics.d.ts","sourceRoot":"","sources":["../src/three-scene-basics.ts"],"names":[],"mappings":"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"}