变更:不再开图时分析墙洞关联关系

pull/1903/MERGE
ChenX 2 years ago
parent e076758c2b
commit 1a2b85f438

@ -8,6 +8,7 @@ import { RoomWallPlaceLHoleHelper } from "./RoomWallPlaceLHoleHelper";
/**
* []
*
* RoomWallParse,RoomWallParse
*/

@ -18,7 +18,6 @@ import { Database } from '../DatabaseServices/Database';
import { Board } from '../DatabaseServices/Entity/Board';
import { Entity } from '../DatabaseServices/Entity/Entity';
import { RoomHolePolyline } from '../DatabaseServices/Room/Entity/Wall/Hole/RoomHolePolyline';
import { RoomWallRelevancyHoleParse } from '../DatabaseServices/Room/ParseService/Hole/RoomWallRelevancyHoleParse';
import { RoomParse } from '../DatabaseServices/Room/ParseService/RoomParseUtil';
import { DisposeTextShapeCache } from '../DatabaseServices/Text/Text';
import { ViewportEntity } from '../DatabaseServices/ViewportEntity';
@ -27,6 +26,7 @@ import { GenerateRaycaster } from '../Editor/PointPick';
import { userConfig } from '../Editor/UserConfig';
import { equaln, equalv3, GetBox, GetBoxArr, isIntersect, isPerpendicularityTo, ZAxis, ZeroVec } from '../Geometry/GeUtils';
import { PlaneExt } from '../Geometry/Plane';
import { UpdateHoleFakerWallsAndUpdateDraw, UpdateWallHolesDataAndUpdateDraw } from '../Reactor/RoomHoleReactor';
import { DownPanelStore } from '../UI/Store/DownPanelStore';
import { LightStore } from '../UI/Store/RightPanelStore/LightStore';
import { CameraType, CameraUpdate } from './CameraUpdate';
@ -652,8 +652,10 @@ export class Viewer
let pre = Date.now();
let room = new RoomParse(false, undefined, true).Parse();
for (let wall of room.walls) UpdateWallHolesDataAndUpdateDraw(wall);
let holes = app.Database.ModelSpace.Entitys.filter(e => e instanceof RoomHolePolyline) as RoomHolePolyline[];
new RoomWallRelevancyHoleParse().Parse(holes, room.walls);
for (let hole of holes) UpdateHoleFakerWallsAndUpdateDraw(hole);
// new RoomWallRelevancyHoleParse().Parse(holes, room.walls); //保持了墙和洞的关联关系,所以不再需要这个
for (let index = 0; index < db.ModelSpace.Entitys.length; index++)
{

@ -5,7 +5,7 @@ import { RoomWallBase } from "../DatabaseServices/Room/Entity/Wall/RoomWallBase"
import { CreateGetCurveParam } from "../DatabaseServices/Room/ParseService/GetCurveParam";
import { RoomWallParse } from "../DatabaseServices/Room/ParseService/RoomWallParse";
import { CurveMap } from "../Geometry/CurveMap";
import { equalv3 } from "../Geometry/GeUtils";
import { equalv2 } from "../Geometry/GeUtils";
/**
@ -110,7 +110,7 @@ export function UpdateWallHolesDataAndUpdateDraw(wall: RoomWallBase)
*
* ,
*/
function UpdateHoleFakerWallsAndUpdateDraw(hole: RoomHolePolyline)
export function UpdateHoleFakerWallsAndUpdateDraw(hole: RoomHolePolyline)
{
if (hole.IsErase) return;
@ -197,7 +197,7 @@ function UpdateHoleFakerWallsAndUpdateDraw(hole: RoomHolePolyline)
if (!r1.isReverse) fakerWalls[0].Reverse();
if (r2.isReverse) fakerWalls[1].Reverse();
if (!equalv3(v.position, pts[1], 1e-4))//拐角点不再对齐
if (!equalv2(v.position, pts[1], 1e-4))//拐角点不再对齐
{
let length1 = pts[0].distanceTo(pts[1]);
let length2 = pts[1].distanceTo(pts[2]);
@ -301,7 +301,7 @@ function UpdateHoleFakerWallsAndUpdateDraw(hole: RoomHolePolyline)
if (!updateHole)
{
if (!equalv3(v1.position, pts[1], 1e-4) || !equalv3(v2.position, pts[2], 1e-4))
if (!equalv2(v1.position, pts[1], 1e-4) || !equalv2(v2.position, pts[2], 1e-4))
updateHole = true;
}
}

Loading…
Cancel
Save