diff --git a/src/Reactor/SyncDataReactor.ts b/src/Reactor/SyncDataReactor.ts index ec0594c43..a1dbee578 100644 --- a/src/Reactor/SyncDataReactor.ts +++ b/src/Reactor/SyncDataReactor.ts @@ -1,6 +1,6 @@ import { end } from "xaop"; import { AppendUserInfo, ConverRoomRoof2Data, ConverRoomUnderFloor2Data, Data, Entitys2Data } from "../Add-on/ExportData"; -import { app, ApplicationService } from "../ApplicationServices/Application"; +import { ApplicationService, app } from "../ApplicationServices/Application"; import { CommandNames } from "../Common/CommandNames"; import { Hole } from "../DatabaseServices/3DSolid/Hole"; import { CADObject } from "../DatabaseServices/CADObject"; @@ -12,6 +12,7 @@ import { HardwareCompositeEntity } from "../DatabaseServices/Hardware/HardwareCo import { RemoveObjectData } from "../DatabaseServices/RemoveObjectData"; import { RoomHolePolyline } from "../DatabaseServices/Room/Entity/Wall/Hole/RoomHolePolyline"; import { RoomWallBase } from "../DatabaseServices/Room/Entity/Wall/RoomWallBase"; +import { GetAllWalls } from "../DatabaseServices/Room/ParseService/RoomParseUtil"; import { RoomWallParse } from "../DatabaseServices/Room/ParseService/RoomWallParse"; import { userConfig } from "../Editor/UserConfig"; @@ -138,6 +139,8 @@ export class SyncDataReactor changeEntitys.add(app.Database.SunLight); changeEntitys.add(app.Database.HemisphereLight);//保证传递灯光参数 + let hasWall = false; + //添加关联的肉(保证肉能够更新绘制) const AddRelMeats = (e: Entity) => { @@ -176,6 +179,8 @@ export class SyncDataReactor } else if (e instanceof RoomWallBase) { + hasWall = true; + for (let ee of e.RelevancyHoles) { if (!ee?.Object || ee.IsErase) return; @@ -191,6 +196,12 @@ export class SyncDataReactor for (let e of changeEntitys) AddRelMeats(e); for (let e of createEntitys) AddRelMeats(e); + if (hasWall) + { + let walls = GetAllWalls(); + for (let wall of walls) changeEntitys.add(wall); + } + let d: IncrementData = { Add: Entitys2Data(createEntitys), Change: Entitys2Data(changeEntitys), Delete: Entitys2Data(deleteEntitys) }; //分裂实体删除原先旧的对象