From bacbb1df8676a27e4b53d3852eca8cb1c67c0ca8 Mon Sep 17 00:00:00 2001 From: cx Date: Thu, 23 Nov 2017 19:47:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=BE=E5=8F=96=E5=AF=B9=E8=B1=A1=E5=BE=97?= =?UTF-8?q?=E5=88=B0=E4=BA=86=E4=BF=AE=E6=94=B9=20=E5=AF=B9=E5=A4=B9?= =?UTF-8?q?=E7=82=B9=E7=BB=84=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Editor/SelectBox.ts | 9 ++++++--- src/Editor/SelectControls.ts | 10 +++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/Editor/SelectBox.ts b/src/Editor/SelectBox.ts index 7f0715c66..51b72c04e 100644 --- a/src/Editor/SelectBox.ts +++ b/src/Editor/SelectBox.ts @@ -1,8 +1,9 @@ -import { SelectSetBase, SelectType } from './SelectSet'; import * as THREE from 'three'; -import { Viewer } from '../GraphicsSystem/Viewer'; import * as verb from 'verb-nurbs-web'; -import { fail } from 'mobx-state-tree/dist/utils'; + +import { GripScene } from '../GraphicsSystem/GripScene'; +import { Viewer } from '../GraphicsSystem/Viewer'; +import { SelectSetBase, SelectType } from './SelectSet'; /** * 矩形选区 @@ -78,6 +79,8 @@ export class SelectBox extends SelectSetBase for (let obj of this.m_Viewer.m_Scene.children) { + if (obj instanceof GripScene) + continue; if (obj.hasOwnProperty("geometry")) { if (this.m_Frustom.intersectsObject(obj) && CheckFunction(obj)) diff --git a/src/Editor/SelectControls.ts b/src/Editor/SelectControls.ts index a1a0f6d84..ee28028b6 100644 --- a/src/Editor/SelectControls.ts +++ b/src/Editor/SelectControls.ts @@ -3,6 +3,7 @@ import { end } from 'xaop'; import { app } from '../ApplicationServices/Application'; import { KeyBoard, MouseKey } from '../Common/KeyEnum'; +import { GripScene } from '../GraphicsSystem/GripScene'; import { Viewer } from '../GraphicsSystem/Viewer'; import { SelectMarquee } from '../UI/JsPlugin/SelectMarquee'; import { Editor } from './Editor'; @@ -53,14 +54,13 @@ export class SelectControls raycaster.ray.origin.sub(raycaster.ray.direction.clone().multiplyScalar(1e3)); let intersectObjects = raycaster.intersectObjects(this.m_Viewer.m_Scene.children); - if (intersectObjects.length > 0) + for (let interItem of intersectObjects) { - let obj = intersectObjects[0].object; - if (!(obj instanceof THREE.Line || obj instanceof THREE.Points)) - { + let obj = interItem.object; + if (!(obj instanceof THREE.Line || obj instanceof GripScene)) return obj; - } } + let pCenter = new THREE.Vector2(pt.x, pt.y); let selectSize = new THREE.Vector2(10, 10); let minPt = pCenter.clone().sub(selectSize);