import { BasePlugin } from '../BasePlugin'; export interface ItemType { category_name: string; category_cn: string; index: number; derived_id: string; longitude: number; latitude: number; fov: number; width: number; height: number; position: { start: number[]; end: number[]; rotation: number[]; }; mask_color: number[]; visible_viewpoint: { [key: string]: Record; }; } export interface MaskType { derived_id: string; index: number; object_mask_url: string; } export type PluginData = { data_list: ItemType[]; object_mask_list: MaskType[]; }; export type ServerData = { data_list: ItemType[]; object_mask_list: MaskType[]; }; /** 插件配置 */ export interface Config { } /** 插件初始化参数 */ export interface Params { config?: Partial; initialState?: Partial; } /** 插件状态 */ export interface State extends BasePlugin.State { /** 插件是否启用 */ enabled: boolean; /** 插件整体是否可见 */ visible: boolean; /** 插件模式 */ mode: 'mask' | 'box'; /** 选中ID */ selectedId: string | null; /** 全选 */ selectAll: boolean; } /** 插件事件 */ export interface EventMap extends BasePlugin.EventMap { }