import { Type } from "class-transformer"; import { ConfigManager } from "src/assets/babylon/controller/config-manager"; import { ModelData } from "../model-data/model-data"; import { TransformData } from "../transform-data"; import { MarkProperty } from "./mark-property"; /** * 标绘数据 */ export class MarkData extends ModelData { /** * 名称类型,标志其具体是什么 */ type: MarkType = MarkType.SYA; /** * 所属标签的tag */ tagPos: MarkTagPos = MarkTagPos.Disaster; /** * 标记的类型划分 * 包括:人、车、物、虚拟物、特效 */ markKindType: MarkKindType = MarkKindType.Persion; /** * 图标地址 */ iconURL: string; /** * 所属建筑 */ belongtoBuildingId: string; /** * 属性 */ @Type(() => MarkProperty) property: MarkProperty; /** * 子节点信息(用于保存子节点变换信息,完成举臂等功能) */ @Type(() => ChildNodeData) childrenNodeData: ChildNodeData[] = []; /** * 水枪特效强度 */ waterPower: number = 20; constructor(id: string, type: MarkType, tagPos: MarkTagPos, markKindType: MarkKindType, iconURL: string, resPath: string, resName: string, taskType: MarkTask, isModel: boolean) { super(id, ConfigManager.getMarkName(type), resPath, resName, undefined, isModel) this.name = ConfigManager.getMarkName(type); this.type = type; this.tagPos = tagPos; this.markKindType = markKindType; this.iconURL = iconURL; let defaultTask: string = undefined; if (type == MarkType.WZ) { defaultTask = "文字信息"; } this.property = new MarkProperty(taskType, undefined, undefined, defaultTask); } } /** * 子节点数据 */ export class ChildNodeData { /** * 子节点名称 */ name: string; /** * 变换信息 */ @Type(() => TransformData) transformData: TransformData = new TransformData(); } /** * 所属标签的tag */ export enum MarkTagPos { /** * 灾情 */ Disaster = "Disaster", /** * 消防力量 */ FireFighting = "FireFighting", /** * 联动力量 */ Linkage = "Linkage", /** * 内部力量 */ Inside = "Inside", /** * 标绘工具 */ Tool = "Tool", } /** * 标绘的分类类型 */ export enum MarkKindType { /** * 人 */ Persion = "Persion", /** * 车 */ Car = "Car", /** * 物品 */ Goods = "Goods", /** * 虚拟物,如: 箭头、文字标记类 */ Virtual = "Virtual", /** * 特效 */ Effect = "Effect", } /** * 标绘的名称类型 * 每个标会类型id */ export enum MarkType { //============灾情设定=============== /** * 伤员A */ SYA = "SYA", /** * 伤员B */ SYB = "SYB", /** * 伤员C */ SYC = "SYC", /** * 伤员D */ SYD = "SYD", /** * 知情人 */ ZQR = "ZQR", /** * 危险品 */ WXP = "WXP", /** * 杂物堆 */ ZWD = "ZWD", /** * 破拆点 */ PCD = "PCD", /** * 火 */ H = "H", /** * 突破火 */ TPH = "TPH", /** * 室内火 */ SNH = "SNH", /** * 烟雾A */ YWA = "YWA", /** * 烟雾B */ YWB = "YWB", /** * 烟雾C */ YWC = "YWC", //==================消防力量================ /** * 灭火服 */ MHF = "MHF", /** * 救援服 */ JYF = "JYF", /** * 隔热服 */ GRF = "GRF", /** * 防化服 */ FHF = "FHF", /** * 避火服 */ BHF = "BHF", /** * 义务消防员 */ YWXFY = "YWXFY", /** * 安全哨 */ AQS = "AQS", /** * 摩托车 */ MTC = "MTC", /** * 巡逻车 */ XLC = "XLC", /** * 水罐车 */ SGC = "SGC", /** * 泡沫车 */ PMC = "PMC", /** * 高喷车 */ GPC = "GPC", /** * 登高平台车 */ DGPTC = "DGPTC", /** * 云梯车 */ YTC = "YTC", /** * 抢险救援车 */ QXJYC = "QXJYC", /** * 器材车 */ QCC = "QCC", /** * 照明车 */ ZMC = "ZMC", /** * 破拆车 */ PCC = "PCC", /** * 排烟车 */ PYC = "PYC", /** * 指挥车 */ ZHC = "ZHC", /** * 高层供水车 */ GCGSC = "GCGSC", /** * 空气呼吸充气车 */ KQHXCQC = "KQHXCQC", //================联动力量=================== /** * 公安 */ GA = "GA", /** * 交警 */ JJ = "JJ", /** * 医生 */ YS = "YS", /** * 抢修人员 */ QXRY = "QXRY", /** * 救护车 */ JHC = "JHC", /** * 警车 */ JC = "JC", /** * 电力抢修车 */ DLQXC = "DLQXC", /** * 燃气抢修车 */ RQQXC = "RQQXC", /** * 供水抢修车 */ GSQXC = "GSQXC", /** * 环保检测车 */ HBJCC = "HBJCC", /** * 交通运输车 */ JTYSC = "JTYSC", /** * 卫生防疫车 */ WSFYC = "WSFYC", /** * 应急通信车 */ YJTXC = "YJTXC", /** * 轿车 */ JCA = "JCA", /** * 轿车 */ JCB = "JCB", /** * 轿车 */ JCC = "JCC", //===============内部力量================= /** * 董事长 */ DSZ = "DSZ", /** * 经理 */ JL = "JL", /** * 副总 */ FZ = "FZ", /** * 秘书 */ MS = "MS", /** * 总监 */ ZJ = "ZJ", /** * 主管 */ ZG = "ZG", /** * 组长 */ ZZ = "ZZ", /** * 前台 */ QT = "QT", /** * 设计师 */ SJS = "SJS", /** * 程序员 */ CXY = "CXY", /** * 职员 */ ZYA = "ZYA", /** * 职员 */ ZYB = "ZYB", /** * 技工 */ JG = "JG", /** * 保安 */ BA = "BA", //===================标绘工具=================== /** * 警戒线 */ JJX = "JJX", /** * 水带 */ SD = "SD", /** * 进攻路线 */ JGLX = "JGLX", /** * 撤退 */ CT = "CT", /** * 指挥部 */ ZHB = "ZHB", /** * 6米拉梯 */ LT6 = "LT6", /** * 15米拉梯 */ LT15 = "LT15", /** * 分水器 */ FSQ = "FSQ", /** * 手抬泵 */ STB = "STB", /** * 水炮 */ SP = "SP", /** * 文字 */ WZ = "WZ", /** * 集结区 */ JJQ = "JJQ", /** * 区域设定 */ QYSDA = "QYSDA", /** * 区域设定 */ QYSDB = "QYSDB", } /** * 标记的任务类型 */ export enum MarkTask { /** * 无任务(不打开任务界面) */ None, /** * 未知(打开界面,但没有任务列表) */ Unknown, /** * 人员 */ Person, /** * 车辆 */ Car, /** * 水炮 */ WaterMonitor }