Live camera accessor — a GETTER, not a captured reference: the
ortho-mode toggle REPLACES the scene manager's camera object, and a
value captured at init would keep sorting from the abandoned
perspective camera's frozen pose (the lod-group-registry
getCamera precedent).
OptionalrequestReprocess?: () => voidForce a full view reprocess (SceneLoader.updateView({})) — used by
the blending-mode-switch hook, see noteDepthSortBlendingModeSwitch.
OptionalisLoadInProgress?: () => booleanTrue while a view-update sweep is in flight (the same signal the refinement loop consults). The per-frame scheduler skips dispatching camera-motion re-sorts during loads — the pending commit will sort from the then-current pose anyway.
OptionalgetProfiler?: () => UpdateProfiler | nullUpdate-profiler accessor for the 'Depth Sort' monitor line: each SortWorker dispatch opens a detached pass whose duration is the dispatch→applied round-trip latency.
OptionalgetDisplayDims?: () => readonly number[] | nullLive displayed-dimension indices. A partition's serialized BSP axis is a
CENTER-COLUMN index, while the painter's-order traversal works in display
space (x/y/z = displayDims[0..2]); the two coincide only for [0, 1, 2].
Injected rather than read from sceneDimsManager directly because
rendering/ must not depend on scene/ (layer-rendering-no-upward) —
the same inversion as getCamera above.
Wire the camera accessor + frame-request + reprocess callbacks. Called once at app init (the commit path has none of these — the scene loader deliberately owns no camera state). Safe to call again on renderer swap.