Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...
    • Apply the zarr-side viewer_config (camera position/target/up, background color) onto the scene + camera + controls.

      Behavior is identical to the inline implementation in SceneManager.applyZarrViewerConfig:

      • position: assigned directly to camera.position if present.
      • target_node takes precedence over an explicit target — resolves the named node's center via resolveTargetNodeCenter and feeds it to controls.setTarget(...). Logs a warning if the name doesn't resolve. Falls through to the explicit target only when target_node is absent.
      • up: applied via camera.up.set(...) followed by camera.lookAt(controls.getFocusTarget()) so reinitialize() (which reads quaternion, not camera.up) picks up the author's roll.
      • If any of {position, target, target_node, up} were applied: camera.updateMatrixWorld(true) then controls.reinitialize() then controls.update().
      • background color: assigned directly to scene.background.

      Parameters

      Returns { positionApplied: boolean; appliedUp: Vector3 | null }

      positionApplied — true when an explicit camera position was applied; the caller uses this to suppress auto-framing. (Author target alone does NOT suppress auto-framing — a target without a position means the author wants the orbit pivot set but still wants a sensible distance.) appliedUp — the author's up vector when one was applied (null otherwise); the caller stores it as the scene up so camera fits/resets square to the AUTHOR's horizon instead of world +Y.