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

    A pooled THREE geometry, plus the metadata the pool needs to decide reuse, eviction, and frame accounting.

    (The former attributeTypes?: PointsAttributeTypes dtype snapshot is gone: points moved to the fixed 3-texel texture layout, so any pooled points geometry fits any points node — dtype normalization happens at upload time, not in the buffer layout.)

    interface PooledBuffer {
        geometry:
            | BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>
            | InstancedBufferGeometry;
        capacity: number;
        type: "points" | "lines" | "gsplats";
        inUse: boolean;
        lastUsedFrame: number;
    }
    Index
    geometry:
        | BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>
        | InstancedBufferGeometry
    capacity: number
    type: "points" | "lines" | "gsplats"

    PooledGeometryType, NOT GeometryTypeName: only POOLED geometry types have buffers here (see pooled in types/geometry-capabilities). A type rendered from a plain BufferGeometry — mesh — never reaches the pool, so do not widen this to the geometry vocabulary when a geometry type is added. Keyed off the shared union rather than spelled out, so adding a POOLED type is a compile error while adding a non-pooled one correctly requires no change here.

    inUse: boolean
    lastUsedFrame: number