IFClite TypeScript API
    Preparing search index...

    Interface CompressedSource

    The wire/consructor shape: compressed blocks plus their offset index.

    interface CompressedSource {
        blocks: Uint8Array;
        blockSize: number;
        contentKey: string;
        index: Uint32Array;
        storedMask: Uint8Array;
        totalLength: number;
    }

    Hierarchy (View Summary)

    Index
    blocks: Uint8Array

    All compressed blocks, concatenated.

    blockSize: number
    contentKey: string

    FNV-1a over the whole source.

    Computed HERE, during the same pass, not lazily like the contiguous accessor's. A blocked source cannot hash itself without inflating everything, so the key has to be taken while the bytes are still contiguous -- which is why the blocked arm of IfcSourceTransfer declares it required rather than nullable.

    index: Uint32Array

    blocks offsets, length blockCount + 1. Block i occupies [index[i], index[i + 1]), so the last entry is blocks.byteLength.

    storedMask: Uint8Array

    One byte per block: 1 = stored verbatim, 0 = deflated. Incompressible blocks (already-compressed payloads embedded in a STEP file) would otherwise grow, and a store that can grow is not one you can gate on size.

    totalLength: number

    Logical length of the original source.