|
|
|
@ -21,17 +21,12 @@ export async function UpdateRelevanceWallHole(ents: CADObject[])
|
|
|
|
|
if (updated.has(wall)) return;
|
|
|
|
|
updated.add(wall);//避免重入
|
|
|
|
|
|
|
|
|
|
if (wall.IsErase)
|
|
|
|
|
{
|
|
|
|
|
for (let hole of wall.RelevancyHoles)
|
|
|
|
|
hole.Object.Erase();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//先更新洞,因为洞可能会修复位置
|
|
|
|
|
for (let holeId of wall.RelevancyHoles)//更新关联的洞
|
|
|
|
|
{
|
|
|
|
|
let hole = holeId.Object;
|
|
|
|
|
if (wall.IsErase)
|
|
|
|
|
hole.Erase();
|
|
|
|
|
UpdateHole(hole);//这里如果只更新洞,那么有可能关联的其他的墙会逃逸
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -111,6 +106,8 @@ function UpdateWallHolesDataAndUpdateDraw(wall: RoomWallBase)
|
|
|
|
|
*/
|
|
|
|
|
function UpdateHoleFakerWallsAndUpdateDraw(hole: RoomHolePolyline)
|
|
|
|
|
{
|
|
|
|
|
if (hole.IsErase) return;
|
|
|
|
|
|
|
|
|
|
let fakerWalls = hole.RelevancyWalls.map(w => w.Object.Clone());
|
|
|
|
|
|
|
|
|
|
let pts = hole.Points;
|
|
|
|
|