Luxar Viewer API Documentation - v2026.10.19
    Preparing search index...
    • Concatenate the per-element colours of a ladder, the policy all three emissive geometries share: when ANY rung carries colours the result carries them, and a rung that does not is filled with white (full scale for the dtype; an RGBA ladder's alpha fills opaque, the per-element-opacity identity). null when no rung has colours. Dtype and layout (3 = RGB, 4 = RGBA) come from the first coloured rung; a rung that disagrees is malformed data and throws, naming the level. Zero-row rungs abstain.

      Every coloured rung is first checked against its OWN declared layout (assertColorLayout): an RGBA buffer that omits colorComponents (default 3) agrees with an RGB ladder and fits the allocation, so the cross-rung compare alone would copy it at stride 3 and mis-stride every element after it.

      Type Parameters

      • P

      Parameters

      • parts: readonly P[]
      • get: (
            p: P,
        ) => {
            colors: ConcatColorArray | null | undefined;
            components: number | undefined;
        }
      • countOf: (p: P) => number
      • label: string

        Caller name for the error messages.

      Returns { colors: ConcatColorArray; colorComponents: 3 | 4 } | null