!319 z方向及其他方向一次性合并

Merge pull request !319 from 肖诗雅/zJoin
pull/319/MERGE
ChenX 5 years ago committed by Gitee
parent f25552cbd4
commit 594c33cd52

@ -11,7 +11,7 @@ import { Polyline } from "../DatabaseServices/Polyline";
import { Command } from "../Editor/CommandMachine";
import { PromptStatus } from "../Editor/PromptResult";
import { FuzzDirection } from "../Geometry/FuzzVector";
import { ptToString } from "../Geometry/GeUtils";
import { ptToString, comparePoint } from "../Geometry/GeUtils";
import { PlaneExt } from "../Geometry/Plane";
export class Command_Join implements Command
@ -214,29 +214,30 @@ export class Command_Join implements Command
}
private JoinSameTypeBrs(brs: Board[])
{
while (brs.length > 0)
let sortFn = comparePoint("xyz");
//排序 使横向合并优先
brs.sort((a, b) =>
{
return sortFn(a.MinPoint, b.MinPoint);
});
while (brs.length > 1)
{
let br = brs.shift();//取第一个
while (brs.length > 0)
//剩余的 无法合并的板件
let remBrs = brs.filter(b =>
{
//剩余的 无法合并的板件
let remBrs = brs.filter(b =>
let isSuccess = br.Join(b);
if (isSuccess)
{
let isSuccess = br.Join(b);
if (isSuccess)
{
b.Erase();
return false;
}
return true;
});
b.Erase();
return false;
}
return true;
});
if (remBrs.length === brs.length)
break;//退出循环.下一个
else
brs = remBrs; //更新为剩下的板件列表
}
if (remBrs.length !== brs.length)
remBrs.push(br);//将合并成功的板件推回尾部
brs = remBrs;//更新
}
}
}

Loading…
Cancel
Save