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

    Packed GSplats data ready for GPU upload (from gsplats/projection.ts).

    Carries arrays only — the splat count M travels as the positional count argument of updateGeometry, matching the points/lines adapters (whose payloads' own count fields are pipeline metadata the pool never reads).

    interface PackedGSplatsData {
        centers3D: Float32Array;
        amplitudes: Float32Array;
        choleskyFactors: Float32Array;
        colors: Float32Array;
        colorComponents?: 3 | 4;
        labelIndices?: Uint32Array<ArrayBufferLike>;
        bounds?: GSplatsProjectionBounds;
    }
    Index
    centers3D: Float32Array
    amplitudes: Float32Array
    choleskyFactors: Float32Array

    M * 6, row-major [L00, L10, L11, L20, L21, L22] per splat

    colors: Float32Array
    colorComponents?: 3 | 4

    Components per color item: 3 (RGB) or 4 (RGBA). Absent means 3.

    labelIndices?: Uint32Array<ArrayBufferLike>

    Precomputed cull metadata from the projection's fused scan (AABB of centers3D + max Cholesky row norm). When present, updateGeometry skips its two O(N) main-thread scans (mirrors the points adapter's data.metadata.bounds fast path); absent ⇒ scan fallback.