From d02bf6885c6706a927f841b28b1ca0fc640e0447 Mon Sep 17 00:00:00 2001 From: ChenX_AMD Date: Sun, 25 Feb 2018 22:01:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=82=B9=E9=80=89=20fix=20#I?= =?UTF-8?q?HYFW?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Editor/PointPick.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Editor/PointPick.ts b/src/Editor/PointPick.ts index d0038da2d..b267d3d96 100644 --- a/src/Editor/PointPick.ts +++ b/src/Editor/PointPick.ts @@ -34,7 +34,8 @@ export function PointPick(ptVcs: Vector3, view: Viewer | PreViewer, selectObject }, view.Camera); raycaster.ray.origin.sub(raycaster.ray.direction.clone().multiplyScalar(1e3)); - let selectList = []; + let pickObj: Object3D; + let minDis: number; for (let obj of selectObject.children) { if (IsNotRayCaster(obj)) @@ -46,10 +47,16 @@ export function PointPick(ptVcs: Vector3, view: Viewer | PreViewer, selectObject o.raycast(raycaster, intersects) }) if (intersects.length > 0) - selectList.push(obj); + if (!minDis || minDis > intersects[0].distance) + { + pickObj = obj; + minDis = intersects[0].distance + } } - if (selectList.length > 0) - return selectList; + if (pickObj) + return [pickObj]; + + let selectList = []; let pCenter = new THREE.Vector2(ptVcs.x, ptVcs.y); let selectSize = new THREE.Vector2(10, 10);