修复:点选空间时,透过选到虚拟空间

pull/1474/head
ChenX 4 years ago
parent fec57be561
commit eef957ff27

@ -60,7 +60,9 @@ export function PointPickOneObject(
ptVcs: Vector3,
view: IViewer,
filter?: Filter,
selectObjects: Object3D[] = view.Scene.children): Object3D
selectObjects: Object3D[] = view.Scene.children,
useSelectBox = true
): Object3D | undefined
{
let raycaster = GenerateRaycaster(ptVcs, view);
@ -68,6 +70,8 @@ export function PointPickOneObject(
if (intersection && intersection.object)
return intersection.object;
if (!useSelectBox) return;
let pCenter = new Vector2(ptVcs.x, ptVcs.y);
let selectSize = new Vector2(userConfig.cursorSize.SquareSize, userConfig.cursorSize.SquareSize);
let minPt = pCenter.clone().sub(selectSize);

@ -176,14 +176,15 @@ export class PointSelectSpace
let view = app.Viewer;
let vcs = app.Editor.MouseCtrl._CurMousePointVCS;
let visualBoxPick = PointPickOneObject(vcs, view, { filterFunction: (o, e) => FilterVisualSpaceBox(e) });
let visibleObjects = view.VisibleObjects;
let visualBoxPick = PointPickOneObject(vcs, view, { filterFunction: (o, e) => FilterVisualSpaceBox(e) }, visibleObjects, false);
if (visualBoxPick)
{
this.PointParseVisualSpace(GetEntity(visualBoxPick) as VisualSpaceBox);
return;
}
let ptSelect = new PointSelectBoards(vcs, view, view.VisibleObjects);
let ptSelect = new PointSelectBoards(vcs, view, visibleObjects);
if (ptSelect.SelectBoards.length === 0 && !isDynamic)
app.Editor.Prompt("请选择有效的板件,或者周围没有效板件");

@ -506,7 +506,10 @@ export class Viewer
return renderObjects;
let renderList = this.Renderer.renderLists.get(this.Scene, this.Camera);
return [...renderList.transparent.map(o => o.object), ...renderList.opaque.map(o => o.object)];
let objects = renderList.transparent.map(o => o.object);
for (let o of renderList.opaque)
objects.push(o.object);
return objects;
}
get VisibleEntitys(): Entity[]

Loading…
Cancel
Save