@react-three/fiber 10.0.0-alpha.0 → 10.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +498 -80
- package/dist/index.d.cts +199 -23
- package/dist/index.d.mts +199 -23
- package/dist/index.d.ts +199 -23
- package/dist/index.mjs +499 -83
- package/dist/legacy.cjs +494 -79
- package/dist/legacy.d.cts +200 -22
- package/dist/legacy.d.mts +200 -22
- package/dist/legacy.d.ts +200 -22
- package/dist/legacy.mjs +494 -81
- package/dist/webgpu/index.cjs +586 -145
- package/dist/webgpu/index.d.cts +244 -36
- package/dist/webgpu/index.d.mts +244 -36
- package/dist/webgpu/index.d.ts +244 -36
- package/dist/webgpu/index.mjs +586 -147
- package/package.json +1 -1
package/dist/legacy.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as THREE$1 from 'three';
|
|
2
|
-
import { Color as Color$1, ColorRepresentation, Euler as Euler$1, Layers as Layers$1, Raycaster, Intersection as Intersection$1, Vector2 as Vector2$1, Vector3 as Vector3$1, Vector4 as Vector4$1, Quaternion as Quaternion$1, Matrix3 as Matrix3$1, Matrix4 as Matrix4$1, Object3D, Texture as Texture$1, OrthographicCamera } from 'three';
|
|
2
|
+
import { WebGLRenderTarget, Color as Color$1, ColorRepresentation, RenderTargetOptions as RenderTargetOptions$1, Euler as Euler$1, Layers as Layers$1, Raycaster, Intersection as Intersection$1, Vector2 as Vector2$1, Vector3 as Vector3$1, Vector4 as Vector4$1, Quaternion as Quaternion$1, Matrix3 as Matrix3$1, Matrix4 as Matrix4$1, Object3D, Texture as Texture$1, Frustum, OrthographicCamera } from 'three';
|
|
3
3
|
import * as React$1 from 'react';
|
|
4
4
|
import { ReactNode, Component, RefObject, JSX } from 'react';
|
|
5
5
|
import { StoreApi } from 'zustand';
|
|
@@ -43,11 +43,15 @@ declare const WebGPURenderer: {
|
|
|
43
43
|
new (): {};
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
+
declare const RenderTarget: any;
|
|
47
|
+
|
|
46
48
|
var THREE = /*#__PURE__*/_mergeNamespaces({
|
|
47
49
|
__proto__: null,
|
|
48
50
|
Inspector: Inspector,
|
|
49
51
|
R3F_BUILD_LEGACY: R3F_BUILD_LEGACY,
|
|
50
52
|
R3F_BUILD_WEBGPU: R3F_BUILD_WEBGPU,
|
|
53
|
+
RenderTarget: RenderTarget,
|
|
54
|
+
RenderTargetCompat: WebGLRenderTarget,
|
|
51
55
|
WebGPURenderer: WebGPURenderer
|
|
52
56
|
}, [THREE$1]);
|
|
53
57
|
|
|
@@ -186,6 +190,14 @@ interface EventHandlers {
|
|
|
186
190
|
onPointerCancel?: (event: ThreeEvent<PointerEvent>) => void
|
|
187
191
|
onWheel?: (event: ThreeEvent<WheelEvent>) => void
|
|
188
192
|
onLostPointerCapture?: (event: ThreeEvent<PointerEvent>) => void
|
|
193
|
+
|
|
194
|
+
//* Visibility Events --------------------------------
|
|
195
|
+
/** Fires when object enters/exits camera frustum. Receives true when in view, false when out. */
|
|
196
|
+
onFramed?: (inView: boolean) => void
|
|
197
|
+
/** Fires when object occlusion state changes (WebGPU only, requires occlusionTest=true on object) */
|
|
198
|
+
onOccluded?: (occluded: boolean) => void
|
|
199
|
+
/** Fires when combined visibility changes (frustum + occlusion + visible prop) */
|
|
200
|
+
onVisible?: (visible: boolean) => void
|
|
189
201
|
}
|
|
190
202
|
|
|
191
203
|
type FilterFunction = (items: THREE$1.Intersection[], state: RootState) => THREE$1.Intersection[]
|
|
@@ -217,6 +229,17 @@ interface EventManager<TTarget> {
|
|
|
217
229
|
interface PointerCaptureTarget {
|
|
218
230
|
intersection: Intersection
|
|
219
231
|
target: Element
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
//* Visibility System Types =====================================
|
|
235
|
+
|
|
236
|
+
/** Entry in the visibility registry for tracking object visibility state */
|
|
237
|
+
interface VisibilityEntry {
|
|
238
|
+
object: THREE$1.Object3D
|
|
239
|
+
handlers: Pick<EventHandlers, 'onFramed' | 'onOccluded' | 'onVisible'>
|
|
240
|
+
lastFramedState: boolean | null
|
|
241
|
+
lastOccludedState: boolean | null
|
|
242
|
+
lastVisibleState: boolean | null
|
|
220
243
|
}
|
|
221
244
|
|
|
222
245
|
//* Scheduler Types (useFrame) ==============================
|
|
@@ -263,9 +286,9 @@ interface AddPhaseOptions {
|
|
|
263
286
|
// Frame State --------------------------------
|
|
264
287
|
|
|
265
288
|
/**
|
|
266
|
-
*
|
|
289
|
+
* Timing-only state for independent/outside mode (no RootState)
|
|
267
290
|
*/
|
|
268
|
-
interface
|
|
291
|
+
interface FrameTimingState {
|
|
269
292
|
/** High-resolution timestamp from RAF (ms) */
|
|
270
293
|
time: number
|
|
271
294
|
/** Time since last frame in seconds (for legacy compatibility with THREE.Clock) */
|
|
@@ -276,9 +299,26 @@ interface FrameNextState extends RootState {
|
|
|
276
299
|
frame: number
|
|
277
300
|
}
|
|
278
301
|
|
|
302
|
+
/**
|
|
303
|
+
* State passed to useFrame callbacks (extends RootState with timing)
|
|
304
|
+
*/
|
|
305
|
+
interface FrameNextState extends RootState, FrameTimingState {}
|
|
306
|
+
|
|
279
307
|
/** Alias for FrameNextState */
|
|
280
308
|
type FrameState = FrameNextState
|
|
281
309
|
|
|
310
|
+
// Root Options --------------------------------
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Options for registerRoot
|
|
314
|
+
*/
|
|
315
|
+
interface RootOptions {
|
|
316
|
+
/** State provider for callbacks. Optional in independent mode. */
|
|
317
|
+
getState?: () => any
|
|
318
|
+
/** Error handler for job errors. Falls back to console.error if not provided. */
|
|
319
|
+
onError?: (error: Error) => void
|
|
320
|
+
}
|
|
321
|
+
|
|
282
322
|
// Callback Types --------------------------------
|
|
283
323
|
|
|
284
324
|
/**
|
|
@@ -332,13 +372,17 @@ interface SchedulerApi {
|
|
|
332
372
|
//* Root Management --------------------------------
|
|
333
373
|
|
|
334
374
|
/** Register a root (Canvas) with the scheduler. Returns unsubscribe function. */
|
|
335
|
-
registerRoot(id: string,
|
|
375
|
+
registerRoot(id: string, options?: RootOptions): () => void
|
|
336
376
|
/** Unregister a root */
|
|
337
377
|
unregisterRoot(id: string): void
|
|
338
378
|
/** Generate a unique root ID */
|
|
339
379
|
generateRootId(): string
|
|
340
380
|
/** Get the number of registered roots */
|
|
341
381
|
getRootCount(): number
|
|
382
|
+
/** Check if any root is registered and ready */
|
|
383
|
+
readonly isReady: boolean
|
|
384
|
+
/** Subscribe to root-ready event. Fires immediately if already ready. Returns unsubscribe. */
|
|
385
|
+
onRootReady(callback: () => void): () => void
|
|
342
386
|
|
|
343
387
|
//* Job Registration --------------------------------
|
|
344
388
|
|
|
@@ -397,6 +441,8 @@ interface SchedulerApi {
|
|
|
397
441
|
readonly isRunning: boolean
|
|
398
442
|
/** Get/set the frameloop mode ('always', 'demand', 'never') */
|
|
399
443
|
frameloop: Frameloop
|
|
444
|
+
/** Independent mode - runs without Canvas, callbacks receive timing-only state */
|
|
445
|
+
independent: boolean
|
|
400
446
|
|
|
401
447
|
//* Manual Stepping --------------------------------
|
|
402
448
|
|
|
@@ -474,6 +520,16 @@ interface InternalState {
|
|
|
474
520
|
initialClick: [x: number, y: number]
|
|
475
521
|
initialHits: THREE$1.Object3D[]
|
|
476
522
|
lastEvent: React$1.RefObject<DomEvent | null>
|
|
523
|
+
/** Visibility event registry (onFramed, onOccluded, onVisible) */
|
|
524
|
+
visibilityRegistry: Map<string, VisibilityEntry>
|
|
525
|
+
/** Whether occlusion queries are enabled (WebGPU only) */
|
|
526
|
+
occlusionEnabled: boolean
|
|
527
|
+
/** Reference to the invisible occlusion observer mesh */
|
|
528
|
+
occlusionObserver: THREE$1.Mesh | null
|
|
529
|
+
/** Cached occlusion results from render pass - keyed by Object3D */
|
|
530
|
+
occlusionCache: Map<THREE$1.Object3D, boolean | null>
|
|
531
|
+
/** Internal helper group for R3F system objects (occlusion observer, etc.) */
|
|
532
|
+
helperGroup: THREE$1.Group | null
|
|
477
533
|
active: boolean
|
|
478
534
|
priority: number
|
|
479
535
|
frames: number
|
|
@@ -511,6 +567,10 @@ interface RootState {
|
|
|
511
567
|
|
|
512
568
|
/** Default camera */
|
|
513
569
|
camera: ThreeCamera
|
|
570
|
+
/** Camera frustum for visibility checks - auto-updated each frame when autoUpdateFrustum is true */
|
|
571
|
+
frustum: THREE$1.Frustum
|
|
572
|
+
/** Whether to automatically update the frustum each frame (default: true) */
|
|
573
|
+
autoUpdateFrustum: boolean
|
|
514
574
|
/** Default scene (may be overridden in portals to point to the portal container) */
|
|
515
575
|
scene: THREE$1.Scene
|
|
516
576
|
/** The actual root THREE.Scene - always points to the true scene, even inside portals */
|
|
@@ -712,6 +772,14 @@ interface RenderProps<TCanvas extends HTMLCanvasElement | OffscreenCanvas$1> {
|
|
|
712
772
|
onDragOverMissed?: (event: DragEvent) => void
|
|
713
773
|
/** Response for drop events that have missed any target */
|
|
714
774
|
onDropMissed?: (event: DragEvent) => void
|
|
775
|
+
/** Whether to automatically update the frustum each frame (default: true) */
|
|
776
|
+
autoUpdateFrustum?: boolean
|
|
777
|
+
/**
|
|
778
|
+
* Enable WebGPU occlusion queries for onOccluded/onVisible events.
|
|
779
|
+
* Auto-enabled when any object uses onOccluded or onVisible handlers.
|
|
780
|
+
* Only works with WebGPU renderer - WebGL will log a warning.
|
|
781
|
+
*/
|
|
782
|
+
occlusion?: boolean
|
|
715
783
|
}
|
|
716
784
|
|
|
717
785
|
//* Reconciler Root ==============================
|
|
@@ -894,6 +962,11 @@ interface WebGLShadowConfig {
|
|
|
894
962
|
shadows?: boolean | 'basic' | 'percentage' | 'soft' | 'variance' | Partial<THREE$1.WebGLShadowMap>
|
|
895
963
|
}
|
|
896
964
|
|
|
965
|
+
//* RenderTarget Types ==============================
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
type RenderTargetOptions = RenderTargetOptions$1
|
|
969
|
+
|
|
897
970
|
//* Global Types ==============================
|
|
898
971
|
|
|
899
972
|
declare global {
|
|
@@ -912,6 +985,15 @@ declare global {
|
|
|
912
985
|
*/
|
|
913
986
|
type UniformStore = Record<string, UniformNode | UniformRecord>
|
|
914
987
|
|
|
988
|
+
/**
|
|
989
|
+
* Helper to safely access a uniform node from the store.
|
|
990
|
+
* Use this when accessing state.uniforms to get proper typing.
|
|
991
|
+
* @example
|
|
992
|
+
* const uTime = uniforms.uTime as UniformNode<number>
|
|
993
|
+
* const uColor = uniforms.uColor as UniformNode<import('three/webgpu').Color>
|
|
994
|
+
*/
|
|
995
|
+
type GetUniform<T = unknown> = UniformNode<T>
|
|
996
|
+
|
|
915
997
|
/**
|
|
916
998
|
* Acceptable input values for useUniforms - raw values that get converted to UniformNodes
|
|
917
999
|
* Supports: primitives, Three.js types, plain objects (converted to vectors), and UniformNodes
|
|
@@ -1010,6 +1092,10 @@ declare global {
|
|
|
1010
1092
|
}
|
|
1011
1093
|
}
|
|
1012
1094
|
|
|
1095
|
+
//* useFrameNext Types ==============================
|
|
1096
|
+
|
|
1097
|
+
|
|
1098
|
+
|
|
1013
1099
|
//* Global Type Declarations ==============================
|
|
1014
1100
|
|
|
1015
1101
|
declare global {
|
|
@@ -1101,8 +1187,8 @@ declare global {
|
|
|
1101
1187
|
interface RootEntry {
|
|
1102
1188
|
/** Unique identifier for this root */
|
|
1103
1189
|
id: string
|
|
1104
|
-
/** Function to get the root's current state */
|
|
1105
|
-
getState: () =>
|
|
1190
|
+
/** Function to get the root's current state. Returns any to support independent mode. */
|
|
1191
|
+
getState: () => any
|
|
1106
1192
|
/** Map of job IDs to Job objects */
|
|
1107
1193
|
jobs: Map<string, Job>
|
|
1108
1194
|
/** Cached sorted job list for execution order */
|
|
@@ -1294,7 +1380,9 @@ declare namespace useLoader {
|
|
|
1294
1380
|
* - Demand mode support via invalidate()
|
|
1295
1381
|
*/
|
|
1296
1382
|
declare class Scheduler {
|
|
1297
|
-
private static
|
|
1383
|
+
private static readonly INSTANCE_KEY;
|
|
1384
|
+
private static get instance();
|
|
1385
|
+
private static set instance(value);
|
|
1298
1386
|
/**
|
|
1299
1387
|
* Get the global scheduler instance (creates if doesn't exist).
|
|
1300
1388
|
* Uses HMR data to preserve instance across hot reloads.
|
|
@@ -1320,19 +1408,25 @@ declare class Scheduler {
|
|
|
1320
1408
|
private jobStateListeners;
|
|
1321
1409
|
private pendingFrames;
|
|
1322
1410
|
private _frameloop;
|
|
1411
|
+
private _independent;
|
|
1412
|
+
private errorHandler;
|
|
1413
|
+
private rootReadyCallbacks;
|
|
1323
1414
|
get phases(): string[];
|
|
1324
1415
|
get frameloop(): Frameloop;
|
|
1325
1416
|
set frameloop(mode: Frameloop);
|
|
1326
1417
|
get isRunning(): boolean;
|
|
1418
|
+
get isReady(): boolean;
|
|
1419
|
+
get independent(): boolean;
|
|
1420
|
+
set independent(value: boolean);
|
|
1327
1421
|
constructor();
|
|
1328
1422
|
/**
|
|
1329
1423
|
* Register a root (Canvas) with the scheduler.
|
|
1330
1424
|
* The first root to register starts the RAF loop (if frameloop='always').
|
|
1331
1425
|
* @param {string} id - Unique identifier for this root
|
|
1332
|
-
* @param {
|
|
1426
|
+
* @param {RootOptions} [options] - Optional configuration with getState and onError callbacks
|
|
1333
1427
|
* @returns {() => void} Unsubscribe function to remove this root
|
|
1334
1428
|
*/
|
|
1335
|
-
registerRoot(id: string,
|
|
1429
|
+
registerRoot(id: string, options?: RootOptions): () => void;
|
|
1336
1430
|
/**
|
|
1337
1431
|
* Unregister a root from the scheduler.
|
|
1338
1432
|
* Cleans up all job state listeners for this root's jobs.
|
|
@@ -1341,6 +1435,34 @@ declare class Scheduler {
|
|
|
1341
1435
|
* @returns {void}
|
|
1342
1436
|
*/
|
|
1343
1437
|
unregisterRoot(id: string): void;
|
|
1438
|
+
/**
|
|
1439
|
+
* Subscribe to be notified when a root becomes available.
|
|
1440
|
+
* Fires immediately if a root already exists.
|
|
1441
|
+
* @param {() => void} callback - Function called when first root registers
|
|
1442
|
+
* @returns {() => void} Unsubscribe function
|
|
1443
|
+
*/
|
|
1444
|
+
onRootReady(callback: () => void): () => void;
|
|
1445
|
+
/**
|
|
1446
|
+
* Notify all registered root-ready callbacks.
|
|
1447
|
+
* Called when the first root registers.
|
|
1448
|
+
* @returns {void}
|
|
1449
|
+
* @private
|
|
1450
|
+
*/
|
|
1451
|
+
private notifyRootReady;
|
|
1452
|
+
/**
|
|
1453
|
+
* Ensure a default root exists for independent mode.
|
|
1454
|
+
* Creates a minimal root with no state provider.
|
|
1455
|
+
* @returns {void}
|
|
1456
|
+
* @private
|
|
1457
|
+
*/
|
|
1458
|
+
private ensureDefaultRoot;
|
|
1459
|
+
/**
|
|
1460
|
+
* Trigger error handling for job errors.
|
|
1461
|
+
* Uses the bound error handler if available, otherwise logs to console.
|
|
1462
|
+
* @param {Error} error - The error to handle
|
|
1463
|
+
* @returns {void}
|
|
1464
|
+
*/
|
|
1465
|
+
triggerError(error: Error): void;
|
|
1344
1466
|
/**
|
|
1345
1467
|
* Add a named phase to the scheduler's execution order.
|
|
1346
1468
|
* Marks all roots for rebuild to incorporate the new phase.
|
|
@@ -1549,7 +1671,7 @@ declare class Scheduler {
|
|
|
1549
1671
|
/**
|
|
1550
1672
|
* Execute all jobs for a single root in sorted order.
|
|
1551
1673
|
* Rebuilds sorted job list if needed, then dispatches each job.
|
|
1552
|
-
* Errors are caught and propagated
|
|
1674
|
+
* Errors are caught and propagated via triggerError.
|
|
1553
1675
|
* @param {RootEntry} root - The root entry to tick
|
|
1554
1676
|
* @param {number} timestamp - RAF timestamp in milliseconds
|
|
1555
1677
|
* @param {number} delta - Time since last frame in seconds
|
|
@@ -1612,6 +1734,11 @@ declare const getScheduler: () => Scheduler;
|
|
|
1612
1734
|
/**
|
|
1613
1735
|
* Frame hook with phase-based ordering, priority, and FPS throttling.
|
|
1614
1736
|
*
|
|
1737
|
+
* Works both inside and outside Canvas context:
|
|
1738
|
+
* - Inside Canvas: Full RootState (gl, scene, camera, etc.)
|
|
1739
|
+
* - Outside Canvas (waiting mode): Waits for Canvas to mount, then gets full state
|
|
1740
|
+
* - Outside Canvas (independent mode): Fires immediately with timing-only state
|
|
1741
|
+
*
|
|
1615
1742
|
* Returns a controls object for manual stepping, pausing, and resuming.
|
|
1616
1743
|
*
|
|
1617
1744
|
* @param callback - Function called each frame with (state, delta). Optional if you only need scheduler access.
|
|
@@ -1627,18 +1754,16 @@ declare const getScheduler: () => Scheduler;
|
|
|
1627
1754
|
* useFrame((state, delta) => { ... }, { phase: 'physics' })
|
|
1628
1755
|
*
|
|
1629
1756
|
* @example
|
|
1630
|
-
* //
|
|
1631
|
-
*
|
|
1632
|
-
*
|
|
1633
|
-
*
|
|
1634
|
-
*
|
|
1635
|
-
* controls.resume() // Resume this job
|
|
1757
|
+
* // Outside Canvas - waits for Canvas to mount
|
|
1758
|
+
* function UI() {
|
|
1759
|
+
* useFrame((state, delta) => { syncUI(state.camera) });
|
|
1760
|
+
* return <button>...</button>;
|
|
1761
|
+
* }
|
|
1636
1762
|
*
|
|
1637
1763
|
* @example
|
|
1638
|
-
* //
|
|
1639
|
-
*
|
|
1640
|
-
*
|
|
1641
|
-
* stepAll() // Advance all useFrame jobs
|
|
1764
|
+
* // Independent mode - no Canvas needed
|
|
1765
|
+
* getScheduler().independent = true;
|
|
1766
|
+
* useFrame((state, delta) => { updateGame(delta) });
|
|
1642
1767
|
*
|
|
1643
1768
|
* @example
|
|
1644
1769
|
* // Scheduler-only access (no callback)
|
|
@@ -1772,6 +1897,39 @@ interface UseTexturesReturn {
|
|
|
1772
1897
|
*/
|
|
1773
1898
|
declare function useTextures(): UseTexturesReturn;
|
|
1774
1899
|
|
|
1900
|
+
/**
|
|
1901
|
+
* Creates a render target compatible with the current renderer.
|
|
1902
|
+
*
|
|
1903
|
+
* - Legacy build: Returns WebGLRenderTarget
|
|
1904
|
+
* - WebGPU build: Returns RenderTarget
|
|
1905
|
+
* - Default build: Returns whichever matches the active renderer
|
|
1906
|
+
*
|
|
1907
|
+
* @param width - Target width (defaults to canvas width)
|
|
1908
|
+
* @param height - Target height (defaults to canvas height)
|
|
1909
|
+
* @param options - Three.js RenderTarget options
|
|
1910
|
+
*
|
|
1911
|
+
* @example
|
|
1912
|
+
* ```tsx
|
|
1913
|
+
* function PortalScene() {
|
|
1914
|
+
* const fbo = useRenderTarget(512, 512, { depthBuffer: true })
|
|
1915
|
+
*
|
|
1916
|
+
* useFrame(({ renderer, scene, camera }) => {
|
|
1917
|
+
* renderer.setRenderTarget(fbo)
|
|
1918
|
+
* renderer.render(scene, camera)
|
|
1919
|
+
* renderer.setRenderTarget(null)
|
|
1920
|
+
* })
|
|
1921
|
+
*
|
|
1922
|
+
* return (
|
|
1923
|
+
* <mesh>
|
|
1924
|
+
* <planeGeometry />
|
|
1925
|
+
* <meshBasicMaterial map={fbo.texture} />
|
|
1926
|
+
* </mesh>
|
|
1927
|
+
* )
|
|
1928
|
+
* }
|
|
1929
|
+
* ```
|
|
1930
|
+
*/
|
|
1931
|
+
declare function useRenderTarget(width?: number, height?: number, options?: RenderTargetOptions): RenderTarget<THREE$1.Texture<unknown>>;
|
|
1932
|
+
|
|
1775
1933
|
/**
|
|
1776
1934
|
* Returns the R3F Canvas' Zustand store. Useful for [transient updates](https://github.com/pmndrs/zustand#transient-updates-for-often-occurring-state-changes).
|
|
1777
1935
|
* @see https://docs.pmnd.rs/react-three-fiber/api/hooks#usestore
|
|
@@ -3306,6 +3464,26 @@ declare function getUuidPrefix(uuid: string): string;
|
|
|
3306
3464
|
* @param size - Current viewport size
|
|
3307
3465
|
*/
|
|
3308
3466
|
declare function updateCamera(camera: ThreeCamera, size: Size): void;
|
|
3467
|
+
/**
|
|
3468
|
+
* Updates a frustum from a camera's projection and world matrices.
|
|
3469
|
+
* If no target frustum is provided, creates and returns a new one.
|
|
3470
|
+
*
|
|
3471
|
+
* @param camera - Camera to extract frustum from
|
|
3472
|
+
* @param frustum - Optional existing frustum to update (creates new if not provided)
|
|
3473
|
+
* @returns The updated or newly created frustum
|
|
3474
|
+
*
|
|
3475
|
+
* @example
|
|
3476
|
+
* // Create new frustum
|
|
3477
|
+
* const frustum = updateFrustum(camera)
|
|
3478
|
+
*
|
|
3479
|
+
* // Update existing frustum (no allocation)
|
|
3480
|
+
* updateFrustum(camera, existingFrustum)
|
|
3481
|
+
*
|
|
3482
|
+
* // Use for visibility checks
|
|
3483
|
+
* if (frustum.containsPoint(point)) { ... }
|
|
3484
|
+
* if (frustum.intersectsObject(mesh)) { ... }
|
|
3485
|
+
*/
|
|
3486
|
+
declare function updateFrustum(camera: ThreeCamera, frustum?: Frustum): Frustum;
|
|
3309
3487
|
|
|
3310
3488
|
declare const is: {
|
|
3311
3489
|
obj: (a: any) => boolean;
|
|
@@ -3343,5 +3521,5 @@ declare const hasConstructor: (object: unknown) => object is {
|
|
|
3343
3521
|
*/
|
|
3344
3522
|
declare function Canvas(props: CanvasProps): react_jsx_runtime.JSX.Element;
|
|
3345
3523
|
|
|
3346
|
-
export { Block, Canvas, ErrorBoundary, IsObject, R3F_BUILD_LEGACY, R3F_BUILD_WEBGPU, REACT_INTERNAL_PROPS, RESERVED_PROPS, three_d as ReactThreeFiber, Scheduler, Texture, _roots, act, addAfterEffect, addEffect, addTail, advance, applyProps, attach, buildGraph, calculateDpr, context, createEvents, createPointerEvents, createPortal, createRoot, createStore, detach, diffProps, dispose, createPointerEvents as events, extend, findInitialRoot, flushSync, getInstanceProps, getRootState, getScheduler, getUuidPrefix, hasConstructor, invalidate, invalidateInstance, is, isColorRepresentation, isCopyable, isObject3D, isOrthographicCamera, isRef, isRenderer, isTexture, isVectorLike, prepare, reconciler, removeInteractivity, resolve, unmountComponentAtNode, updateCamera, useBridge, useFrame, useGraph, useInstanceHandle, useIsomorphicLayoutEffect, useLoader, useMutableCallback, useStore, useTexture, useTextures, useThree };
|
|
3347
|
-
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BaseRendererProps, Bridge, Camera, CameraProps, CanvasProps, Catalogue, Color, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, Frameloop, GLProps, GLTFLike, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, Properties, Quaternion, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, Renderer, RendererFactory, RendererProps, Root, RootState, RootStore, SchedulerApi, SetBlock, Size, Subscription, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager };
|
|
3524
|
+
export { Block, Canvas, ErrorBoundary, IsObject, R3F_BUILD_LEGACY, R3F_BUILD_WEBGPU, REACT_INTERNAL_PROPS, RESERVED_PROPS, three_d as ReactThreeFiber, Scheduler, Texture, _roots, act, addAfterEffect, addEffect, addTail, advance, applyProps, attach, buildGraph, calculateDpr, context, createEvents, createPointerEvents, createPortal, createRoot, createStore, detach, diffProps, dispose, createPointerEvents as events, extend, findInitialRoot, flushSync, getInstanceProps, getRootState, getScheduler, getUuidPrefix, hasConstructor, invalidate, invalidateInstance, is, isColorRepresentation, isCopyable, isObject3D, isOrthographicCamera, isRef, isRenderer, isTexture, isVectorLike, prepare, reconciler, removeInteractivity, resolve, unmountComponentAtNode, updateCamera, updateFrustum, useBridge, useFrame, useGraph, useInstanceHandle, useIsomorphicLayoutEffect, useLoader, useMutableCallback, useRenderTarget, useStore, useTexture, useTextures, useThree };
|
|
3525
|
+
export type { Act, AddPhaseOptions, Args, ArgsProp, AttachFnType, AttachType, BaseRendererProps, Bridge, Camera, CameraProps, CanvasProps, Catalogue, Color, ComputeFunction, ConstructorRepresentation, DefaultGLProps, DefaultRendererProps, Disposable, DomEvent, Dpr, ElementProps, EquConfig, Euler, EventHandlers, EventManager, EventProps, Events, Extensions, FilterFunction, FrameCallback, FrameControls, FrameNextCallback, FrameNextControls, FrameNextState, FrameState, FrameTimingState, Frameloop, GLProps, GLTFLike, GlobalEffectType, GlobalRenderCallback, HostConfig, InferLoadResult, InjectState, InputLike, Instance, InstanceProps, InternalState, Intersection, IntersectionEvent, IsAllOptional, IsOptional, Layers, LoaderInstance, LoaderLike, LoaderResult, MappedTextureType, MathProps, MathRepresentation, MathType, MathTypes, Matrix3, Matrix4, Mutable, MutableOrReadonlyParameters, NonFunctionKeys, ObjectMap, OffscreenCanvas$1 as OffscreenCanvas, Overwrite, Performance, PointerCaptureTarget, Properties, Quaternion, RaycastableRepresentation, ReactProps, ReconcilerRoot, RenderCallback, RenderProps, RenderTargetOptions, Renderer, RendererFactory, RendererProps, Root, RootOptions, RootState, RootStore, SchedulerApi, SetBlock, Size, Subscription, TextureEntry, ThreeCamera, ThreeElement, ThreeElements, ThreeElementsImpl, ThreeEvent, ThreeExports, ThreeToJSXElements, UnblockProps, UseFrameNextOptions, UseFrameOptions, UseTextureOptions, UseTexturesReturn, Vector2, Vector3, Vector4, VectorRepresentation, Viewport, VisibilityEntry, WebGLDefaultProps, WebGLProps, WebGLShadowConfig, XRManager };
|