Luxar Viewer API Documentation - v2026.10.19
    Preparing search index...

    What the wiring reads live each frame. Every accessor is called, never captured.

    interface DensityGuardWiringDeps {
        configEnabled: boolean;
        option: boolean | undefined;
        config: DensityGuardConfig;
        capOverride?: number;
        energyComp: boolean;
        getViewContext?: () => ViewContext;
        sceneManager: {
            scene: Object3D<Object3DEventMap> | null;
            camera: Camera | null;
            renderer: { domElement: { width: number; height: number } } | null;
        };
        registerMaterial(material: Material): void;
        setRefinementDensityProvider(
            provider: ProjectedDensityProvider | null,
            caps: DensityGateCaps,
        ): void;
        getDefaultLoader(): | { resumeDensityDeferredRefinement(): number }
        | null
        | undefined;
        getAdaptiveDpr(): { notifyContentChanged(): void } | null | undefined;
        requestRender(): void;
        invalidatePickBuffer?(): void;
        tracker?: ProjectedDensityTracker;
        guard?: DensityGuard;
    }
    Index
    configEnabled: boolean

    config.densityGuard.enabled.

    option: boolean | undefined

    LuxarAppOptions.densityGuard (?noDensityGuard → false).

    capOverride?: number

    LuxarAppOptions.densityCap (?densityCap=N): session-only override of the blendable cap, followed by BOTH consumers (ladder + rung gate).

    energyComp: boolean

    The ?noLodEnergy flag, passed through to applyLodFade.

    getViewContext?: () => ViewContext

    The frame's shared camera snapshot (the tracker builds its own without it).

    sceneManager: {
        scene: Object3D<Object3DEventMap> | null;
        camera: Camera | null;
        renderer: { domElement: { width: number; height: number } } | null;
    }

    The walk's live sources, read on every frame (the app passes its SceneManager; layer mode a getter-backed view over its own root, the host camera and the host drawing buffer).

    The app uses module singletons; layers pass their own instances.

    guard?: DensityGuard
    • The default loader, read per frame (a dataset switch replaces it).

      Returns { resumeDensityDeferredRefinement(): number } | null | undefined

    • The adaptive-DPR controller, read per frame (constructed after this wiring).

      Returns { notifyContentChanged(): void } | null | undefined

    • Invalidate the cached pick buffer (PickingSystem.markDirty of the current dataset's picking system, when there is one). A keep step changes which elements are pickable, and a still camera dirties nothing else.

      Returns void