IFClite TypeScript API
    Preparing search index...

    Interface InboundPayloads

    Payload types for each inbound command

    interface InboundPayloads {
        ADD_MODEL: { name?: string; url: string };
        CLEAR_SELECTION: void;
        FIT_TO_VIEW: { ids?: number[] };
        GET_MODEL_INFO: void;
        GET_PROPERTIES: { id: number };
        GET_SCREENSHOT: { height?: number; width?: number };
        HIDE: { ids: number[] };
        INIT: { config?: EmbedConfig; token?: string };
        ISOLATE: { ids: number[] };
        LOAD_MODEL: { url: string };
        LOAD_MODEL_BUFFER: ArrayBuffer;
        REMOVE_MODEL: { modelId: string };
        RESET_COLORS: void;
        SELECT: { ids: number[] };
        SELECT_BY_GUID: { guids: string[] };
        SET_CAMERA: { azimuth: number; elevation: number; zoom?: number };
        SET_COLORS: { colorMap: Record<string, [number, number, number, number]> };
        SET_SECTION: {
            axis?: SectionAxis;
            enabled?: boolean;
            flipped?: boolean;
            position?: number;
        };
        SET_THEME: { bg?: string; theme: "light"
        | "dark" };
        SET_TYPE_VISIBILITY: TypeVisibilityFlags;
        SET_VIEW: { preset: ViewPreset };
        SHOW: { ids: number[] };
        SHOW_ALL: void;
    }
    Index
    ADD_MODEL: { name?: string; url: string }
    CLEAR_SELECTION: void
    FIT_TO_VIEW: { ids?: number[] }
    GET_MODEL_INFO: void
    GET_PROPERTIES: { id: number }
    GET_SCREENSHOT: { height?: number; width?: number }
    HIDE: { ids: number[] }
    INIT: { config?: EmbedConfig; token?: string }
    ISOLATE: { ids: number[] }
    LOAD_MODEL: { url: string }
    LOAD_MODEL_BUFFER: ArrayBuffer
    REMOVE_MODEL: { modelId: string }
    RESET_COLORS: void
    SELECT: { ids: number[] }
    SELECT_BY_GUID: { guids: string[] }
    SET_CAMERA: { azimuth: number; elevation: number; zoom?: number }

    Absolute camera orientation in degrees: azimuth horizontal (normalized into 0-360), elevation from the horizon (clamped just inside ±90°, where the view matrix degenerates). The target and the orbit distance are kept — this rotates the camera, it does not reframe; use FIT_TO_VIEW for that.

    zoom is NOT applied. It has no defined meaning on this side (factor? distance? relative to what?), and the viewer deliberately ignores it rather than guessing — see #2934. Treat it as reserved.

    SET_COLORS: { colorMap: Record<string, [number, number, number, number]> }
    SET_SECTION: {
        axis?: SectionAxis;
        enabled?: boolean;
        flipped?: boolean;
        position?: number;
    }
    SET_THEME: { bg?: string; theme: "light" | "dark" }
    SET_TYPE_VISIBILITY: TypeVisibilityFlags
    SET_VIEW: { preset: ViewPreset }
    SHOW: { ids: number[] }
    SHOW_ALL: void