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

    Interface GSplatsUserData

    User data attached to THREE.Mesh for GSplats in scene.

    GSplats use THREE.Mesh with InstancedBufferGeometry for rendering oriented quads that are ray-integrated in the fragment shader.

    Enables runtime type checking and provides access to loader/metadata. Note: Dimension info is NOT stored here - it's only at the Scene level.

    interface GSplatsUserData {
        nodeType: "gsplats";
        loader: GSplatsDataLoader;
        attrs: GSplatsMetadata;
        visibleSplatCount?: number;
        requestedElementCount?: number;
        droppedElementCount?: number;
        loadedViewVersion?: number;
        committedTruncate?: number;
        gpuPrefixIntact?: boolean;
        pickId?: number;
        labelIndices?: Uint32Array<ArrayBufferLike>;
        labelVocabulary?: readonly GSplatLabelEntry[];
    }
    Index
    nodeType: "gsplats"

    Node type identifier for runtime type checking

    Data loader instance

    Zarr group attributes

    visibleSplatCount?: number

    Currently visible splat count after nD slicing (updated on view change)

    requestedElementCount?: number

    Elements requested by the latest successful commit, before the GPU capacity clamp.

    droppedElementCount?: number

    Elements omitted by the latest successful commit's GPU capacity clamp.

    loadedViewVersion?: number

    The SceneLoader._updateVersion this mesh's committed geometry was loaded for. Written by commitGSplatsGeometry on every commit and read by the LOD registry (lod-group-registry.ts) to decide whether a level is fresh for the current view (slice/displayDims) version — distinct from ready (geometry committed), since a re-slice overwrites geometry in place without changing readiness. undefined ⇒ never committed ⇒ treated as stale (the registry falls back to a coarser fresh level, never blank).

    committedTruncate?: number

    The uTruncate value baked into the splat texels currently on the GPU (depth-sorting Phase 4 Stage 2, the append fast path). truncate is a material uniform, NOT part of the loader's view state, so a change to it is invisible to the prefix-lineage / view-equality checks. The append gate requires committedTruncate === readTruncate(mesh) so an append never leaves a prefix rendered under the old truncate while the suffix uses the new one. undefined ⇒ never committed ⇒ append rejected.

    gpuPrefixIntact?: boolean

    True when the GPU splat buffers hold the exact texels of the last commit — i.e. the append fast path may skip re-uploading the prefix. Cleared to false by NodeFactory.rebuildAfterContextRestore after a WebGL context loss (the CPU mirror survives but the GPU buffers are gone), which forces the next commit to a full rewrite. Re-enabled by every full commit.

    pickId?: number

    Pick ID assigned by PickingSystem for GPU picking (undefined if picking disabled)

    labelIndices?: Uint32Array<ArrayBufferLike>

    Visible storage-slot categorical channel used by shader controls and picking.

    labelVocabulary?: readonly GSplatLabelEntry[]

    Compact categorical vocabulary paired with labelIndices.