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

    Interface EffectiveAttrs

    interface EffectiveAttrs {
        opacity: number;
        absorption: number;
        gamma: number;
        intensity: number;
        offset: number;
        blending_mode: BlendingModeName | undefined;
        join: string | undefined;
        colormap: string | undefined;
        customLutBytes: Uint8Array<ArrayBufferLike> | undefined;
        layer_order: number | undefined;
    }
    Index
    opacity: number
    absorption: number

    Composed absorption coefficient κ (≥ 0; only read in volumetric mode).

    gamma: number
    intensity: number
    offset: number
    blending_mode: BlendingModeName | undefined

    undefined when no level of the chain set a mode (each consumer applies its own per-type default); otherwise canonical — a set value (even a malformed one) is run through normalizeBlendingMode.

    join: string | undefined

    Nearest ancestor (root-to-leaf) that sets join, undefined when no level of the chain does — which is what lets createLinesNode apply DEFAULT_LINE_JOIN. Left raw on purpose: the consumer validates.

    colormap: string | undefined

    Nearest ancestor (root-to-leaf) that sets colormap, undefined when no level of the chain does (the leaf renders its direct colours). Left raw: getColormapTexture owns the unknown-name fallback.

    Whether an inherited palette actually applies is the consumer's call and differs by geometry: points / lines / mesh gate on has_scalars (no scalar channel, no colormap), while a gsplats leaf is always colormap-capable — its amplitude IS the scalar — so an ancestor-authored palette overrides even per-splat colours there. That matches the Layers panel's imperative fan-out (layer-apply.ts::applyColormap), so the authored and interactive routes agree.

    customLutBytes: Uint8Array<ArrayBufferLike> | undefined

    The custom LUT bytes belonging to whichever node supplied colormap; undefined when that node declared no 'custom' palette.

    layer_order: number | undefined

    Nearest ancestor (root-to-leaf) that sets layer_order; undefined when no level of the chain does. The undefined is load-bearing — see the ComposableAttrs field.