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

@ -13,7 +13,7 @@ import { EditViewSettingStore } from "./EditViewport";
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 sName: [string, boolean][] = [["左视图", false], ["概念", false]];
}

@ -434,6 +434,8 @@ export class OneKeyLayout implements Command
case "门":
case "门板":
return "door";
case "标注":
return "dim";
}
};
@ -473,7 +475,7 @@ export class OneKeyLayout implements Command
dir: new Vector3(),
position: info.box.min.clone().sub(basePt),
renderType: RenderType.Print,
isHideDoor: [],
hideEntitys: [],
};
let box = info.box.clone();
@ -507,10 +509,9 @@ export class OneKeyLayout implements Command
let pos = text.Position.setZ(0);
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);
this._cacheRect.add(text);
break;
}
}
vpInfos.push(vpInfo);

Loading…
Cancel
Save