!1676 增强:图框编辑增加隐藏标注选项

pull/1672/MERGE
林三 3 years ago committed by ChenX
parent da10ab135b
commit cd0696b1c6

@ -3,6 +3,7 @@ import { Vector3 } from "three";
import { app } from "../ApplicationServices/Application"; import { app } from "../ApplicationServices/Application";
import { Sleep } from "../Common/Sleep"; import { Sleep } from "../Common/Sleep";
import { Hole } from "../DatabaseServices/3DSolid/Hole"; import { Hole } from "../DatabaseServices/3DSolid/Hole";
import { Dimension } from "../DatabaseServices/Dimension/Dimension";
import { Board } from "../DatabaseServices/Entity/Board"; import { Board } from "../DatabaseServices/Entity/Board";
import { Entity } from "../DatabaseServices/Entity/Entity"; import { Entity } from "../DatabaseServices/Entity/Entity";
import { HardwareCompositeEntity } from "../DatabaseServices/Hardware/HardwareCompositeEntity"; import { HardwareCompositeEntity } from "../DatabaseServices/Hardware/HardwareCompositeEntity";
@ -149,13 +150,14 @@ export class Draw4Viewport implements Command
/** /**
* id * id
* @param ens * @param ens
* @returns ids//不含孔的所有实体, doorIds//门板, noDoorIds//非门板 } * @returns ids//不含孔的所有实体, doorIds//门板, noDoorIds//非门板, dimIds//标注 }
*/ */
export function GetEntityIds(ens: Entity[]) export function GetEntityIds(ens: Entity[])
{ {
let ids: ObjectId[] = []; let ids: ObjectId[] = [];
let noDoorIds: ObjectId[] = []; let noDoorIds: ObjectId[] = [];
let doorIds: ObjectId[] = []; let doorIds: ObjectId[] = [];
let dimIds: ObjectId[] = [];
for (let en of ens) for (let en of ens)
{ {
if (!(en instanceof Hole)) if (!(en instanceof Hole))
@ -180,11 +182,13 @@ export function GetEntityIds(ens: Entity[])
continue; continue;
} }
} }
else if (en instanceof Dimension)
dimIds.push(en.Id);
noDoorIds.push(en.Id); noDoorIds.push(en.Id);
} }
} }
return { ids, doorIds, noDoorIds }; return { ids, doorIds, noDoorIds, dimIds };
} }
export function Get4Viewport(p1: Vector3, p2: Vector3, ens: Entity[], view: number[], wire: string[], isHideDoor = false) export function Get4Viewport(p1: Vector3, p2: Vector3, ens: Entity[], view: number[], wire: string[], isHideDoor = false)
@ -393,12 +397,12 @@ export interface ICustomViewportInfo
width: number; width: number;
height: number; height: number;
position: Vector3; position: Vector3;
isHideDoor: string[]; hideEntitys: string[];
} }
export function DrawCustomViewports(infos: ICustomViewportInfo[], ens: Entity[]) export function DrawCustomViewports(infos: ICustomViewportInfo[], ens: Entity[])
{ {
let { ids, doorIds } = GetEntityIds(ens); let { ids, doorIds, dimIds } = GetEntityIds(ens);
let vps: ViewportEntity[] = []; let vps: ViewportEntity[] = [];
for (let info of infos) for (let info of infos)
{ {
@ -406,11 +410,13 @@ export function DrawCustomViewports(infos: ICustomViewportInfo[], ens: Entity[])
vp.camera.LookAt(info.dir); vp.camera.LookAt(info.dir);
vp.Position = info.position; vp.Position = info.position;
vp.RenderType = info.renderType; vp.RenderType = info.renderType;
if (info.isHideDoor) if (info.hideEntitys)
for (let t of info.isHideDoor) for (let t of info.hideEntitys)
{ {
if (t === "door") if (t === "door")
vp.AppendHideObjects(doorIds); vp.AppendHideObjects(doorIds);
if (t === "dim")
vp.AppendHideObjects(dimIds);
} }
vp.AppendShowObjects(ids); vp.AppendShowObjects(ids);
vps.push(vp); vps.push(vp);

@ -13,7 +13,7 @@ import { EditViewSettingStore } from "./EditViewport";
export class EditFrameStore export class EditFrameStore
{ {
@observable hName: [string, boolean][] = [["隐藏门板", false]]; @observable hName: [string, boolean][] = [["隐藏门板", false], ["隐藏标注", false]];
@observable cName: [string, boolean][] = [["房间名", false], ["柜名", false], ["板材名", false], ["材料", false], ["颜色", false], ["页码", false]]; @observable cName: [string, boolean][] = [["房间名", false], ["柜名", false], ["板材名", false], ["材料", false], ["颜色", false], ["页码", false]];
@observable sName: [string, boolean][] = [["左视图", false], ["概念", false]]; @observable sName: [string, boolean][] = [["左视图", false], ["概念", false]];
} }

@ -434,6 +434,8 @@ export class OneKeyLayout implements Command
case "门": case "门":
case "门板": case "门板":
return "door"; return "door";
case "标注":
return "dim";
} }
}; };
@ -473,7 +475,7 @@ export class OneKeyLayout implements Command
dir: new Vector3(), dir: new Vector3(),
position: info.box.min.clone().sub(basePt), position: info.box.min.clone().sub(basePt),
renderType: RenderType.Print, renderType: RenderType.Print,
isHideDoor: [], hideEntitys: [],
}; };
let box = info.box.clone(); let box = info.box.clone();
@ -507,10 +509,9 @@ export class OneKeyLayout implements Command
let pos = text.Position.setZ(0); let pos = text.Position.setZ(0);
if (!useCache.has(text) && box.containsPoint(pos)) if (!useCache.has(text) && box.containsPoint(pos))
{ {
vpInfo.isHideDoor.push(GetHideBoard(text.TextString.slice(5))); vpInfo.hideEntitys.push(GetHideBoard(text.TextString.slice(5)));
useCache.add(text); useCache.add(text);
this._cacheRect.add(text); this._cacheRect.add(text);
break;
} }
} }
vpInfos.push(vpInfo); vpInfos.push(vpInfo);

Loading…
Cancel
Save