修复:渲染器在同步模式下,如果修改了墙体,自动同步所有的墙体

pull/2329/head
ChenX 1 year ago
parent 102214170c
commit 605cb5de47

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

Loading…
Cancel
Save