magic-pixels
    Preparing search index...

    Type Alias DracoDecoderModule

    Minimal structural interface for a Draco decoder module: the result of createDecoderModule() from the draco3d npm package, or the DracoDecoderModule global of the CDN build. magic-pixels never imports or bundles Draco; the caller passes an initialized module in. Attribute data is read through the module's Emscripten heap (_malloc, the HEAP* views), the same low-level path three.js's GLTFLoader uses, because it is the only Draco API that supports every glTF component type - the Get*ForAllPoints wrappers only cover floats. Every field here is inlined (rather than named and exported separately) since none of it is meant to be used on its own.

    type DracoDecoderModule = {
        Decoder: new () => {
            DecodeBufferToMesh(
                buffer: { Init(data: Uint8Array, length: number): void },
                mesh: { num_faces(): number; num_points(): number },
            ): { error_msg(): string; ok(): boolean };
            GetAttributeByUniqueId(
                mesh: { num_faces(): number; num_points(): number },
                uniqueId: number,
            ): object;
            GetAttributeDataArrayForAllPoints(
                mesh: { num_faces(): number; num_points(): number },
                attribute: object,
                dataType: number,
                byteLength: number,
                outPointer: number,
            ): boolean;
            GetEncodedGeometryType(
                buffer: { Init(data: Uint8Array, length: number): void },
            ): number;
            GetTrianglesUInt16Array(
                mesh: { num_faces(): number; num_points(): number },
                byteLength: number,
                outPointer: number,
            ): boolean;
            GetTrianglesUInt32Array(
                mesh: { num_faces(): number; num_points(): number },
                byteLength: number,
                outPointer: number,
            ): boolean;
        };
        DecoderBuffer: new () => { Init(data: Uint8Array, length: number): void };
        DT_FLOAT32: number;
        DT_INT16: number;
        DT_INT8: number;
        DT_UINT16: number;
        DT_UINT32: number;
        DT_UINT8: number;
        HEAP16: Int16Array;
        HEAP8: Int8Array;
        HEAPF32: Float32Array;
        HEAPU16: Uint16Array;
        HEAPU32: Uint32Array;
        HEAPU8: Uint8Array;
        Mesh: new () => { num_faces(): number; num_points(): number };
        TRIANGULAR_MESH: number;
        _free(pointer: number): void;
        _malloc(bytes: number): number;
        destroy(object: unknown): void;
    }
    Index
    Decoder: new () => {
        DecodeBufferToMesh(
            buffer: { Init(data: Uint8Array, length: number): void },
            mesh: { num_faces(): number; num_points(): number },
        ): { error_msg(): string; ok(): boolean };
        GetAttributeByUniqueId(
            mesh: { num_faces(): number; num_points(): number },
            uniqueId: number,
        ): object;
        GetAttributeDataArrayForAllPoints(
            mesh: { num_faces(): number; num_points(): number },
            attribute: object,
            dataType: number,
            byteLength: number,
            outPointer: number,
        ): boolean;
        GetEncodedGeometryType(
            buffer: { Init(data: Uint8Array, length: number): void },
        ): number;
        GetTrianglesUInt16Array(
            mesh: { num_faces(): number; num_points(): number },
            byteLength: number,
            outPointer: number,
        ): boolean;
        GetTrianglesUInt32Array(
            mesh: { num_faces(): number; num_points(): number },
            byteLength: number,
            outPointer: number,
        ): boolean;
    }
    DecoderBuffer: new () => { Init(data: Uint8Array, length: number): void }
    DT_FLOAT32: number
    DT_INT16: number
    DT_INT8: number
    DT_UINT16: number
    DT_UINT32: number
    DT_UINT8: number
    HEAP16: Int16Array
    HEAP8: Int8Array
    HEAPF32: Float32Array
    HEAPU16: Uint16Array
    HEAPU32: Uint32Array
    HEAPU8: Uint8Array
    Mesh: new () => { num_faces(): number; num_points(): number }
    TRIANGULAR_MESH: number