import { Line, Mesh } from 'three'; import { AGV_FORWARD } from './material.agv'; export declare abstract class VaultMap { /** * 初始化画布 * 缩放比例 * 初始化threejs */ abstract init(): any; /** * 加载地图库位信息 */ abstract loadLocation(forceRealTime?: boolean): any; /** * 重新加载库位信息 * 当修改库位信息后调用 */ abstract reloadLocation(): any; /** * 开始实时获取AGV和笼车信息 * 1、 第一次从数据库中拉取数据 * 2、 后续定时从缓存中拉取数据 * 3、 开启实时模式的前提是 金库地图已经初始化,并且没有正在执行中的实时任务 */ abstract startRealTime(): any; abstract zoom(num: any): any; /** * 该方法每次确保只有一个元素(位置/AGV/笼车)被高亮显示 * highlight和multiHighlight方法彼此不会相互影响 * @param targetNo * @param targetType */ abstract highlight(targetNo: any, targetType: any): any; abstract clearHighlight(): any; /** * 将id指定的位置高亮显示 * 该方法不影响其他已经高亮显示的位置 * @param id * @param color */ abstract incrementalHighlight(id: string, color: number): any; /** * 将数组中指定为位置高亮显示 * @param idArray 位置ID数组 * @param color 高亮显示的颜色 */ abstract multiHighlight(idArray: Array, color: number): any; /** * 清空高亮显示的位置信息 * 如果不传递参数 则所有通过incrementalHighlight和multiHighlight高亮的位置都将恢复默认样式 * @param toClearArray 可选 将要被清空高亮显示的位置ID数组 */ abstract clearMultiHighlight(toClearArray?: Array): any; } export interface LocationDTO { locationNo: string; areaNo: string; x: string; y: string; rms_x: string; rms_y: string; type: number; status: number; width?: number; height?: number; mesh?: Mesh; } export interface AGVDTO { agvNo: string; forward: AGV_FORWARD; location: { x: number; y: number; }; path: Array<{ x: number; y: number; }>; locationIndex?: any; status?: number; x?: number; y?: number; rotationZ?: number; route?: Array<{ x: number; y: number; }>; rotate: { from: number; to: number; }; mesh?: Mesh; line?: Line; } export interface HandcartDTO { handCartNo: string; lineNo: string; lineName: string; location: { x: number; y: number; }; type?: number; shelfType: number; status: number; x?: number; y?: number; route?: Array<{ x: number; y: number; }>; mesh?: Mesh; }