|
|
@ -70,30 +70,14 @@ export function PointPickSpaceParse(ptVcs: Vector3, view: Viewer, objectCol: Obj
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let edgeP = edgePts[i];
|
|
|
|
let edgeP = edgePts[i];
|
|
|
|
let selectLine = new SelectLine(view, mouseP, edgeP);
|
|
|
|
let selectLine = new SelectLine(view, mouseP, edgeP);
|
|
|
|
selectLine.Select(undefined, {
|
|
|
|
selectLine.Select(undefined, { filterTypes: [Board] });
|
|
|
|
filterFunction: (obj) =>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
if (obj.userData && obj.userData instanceof Board)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let br = obj.userData;
|
|
|
|
|
|
|
|
if (selectBoardCol.includes(br))
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//根据Orbit的规则,如果按X轴选择,则不选择层板
|
|
|
|
|
|
|
|
if (i % 2 === 0 && br.BoardType === BoardType.Layer)
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let brs = selectLine.SelectEntityList as Board[];
|
|
|
|
let brs = selectLine.SelectEntityList as Board[];
|
|
|
|
|
|
|
|
|
|
|
|
let compareFn = comparePoint(edgeSorts[i]);
|
|
|
|
let compareFn = comparePoint(edgeSorts[i]);
|
|
|
|
brs.sort((b1, b2) => compareFn(view.WorldToScreen(b1.MinPoint), view.WorldToScreen(b2.MinPoint)));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (brs.length > 0)
|
|
|
|
brs.sort((b1, b2) => compareFn(view.WorldToScreen(b1.MinPoint), view.WorldToScreen(b2.MinPoint)));
|
|
|
|
|
|
|
|
if (brs.length > 0 && selectBoardCol.indexOf(brs[0]) === -1)
|
|
|
|
selectBoardCol.push(brs[0]);
|
|
|
|
selectBoardCol.push(brs[0]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|