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

Loading…
Cancel
Save