From ad5302fb18775d4b9a6222aa1a4ac121f1d1a59d Mon Sep 17 00:00:00 2001 From: cx Date: Thu, 29 Jun 2017 23:29:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E6=97=A0=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81.=20=20=20=20=E5=88=86=E7=A6=BB=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E5=99=A8=E6=8E=A7=E5=88=B6=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {src/GraphicsSystem => sample}/CameraUtil.ts | 0 .../OrbitControls.ts | 0 src/Common/KeyEnum.ts | 7 ++++ src/Editor/CameraControls.ts | 34 +++------------ src/Editor/DebugDatUi.ts | 18 ++++---- src/Editor/SelectControls.ts | 41 +++++++++++++++++++ src/GraphicsSystem/Camera.ts | 4 -- 7 files changed, 62 insertions(+), 42 deletions(-) rename {src/GraphicsSystem => sample}/CameraUtil.ts (100%) rename {src/GraphicsSystem => sample}/OrbitControls.ts (100%) create mode 100644 src/Common/KeyEnum.ts create mode 100644 src/Editor/SelectControls.ts diff --git a/src/GraphicsSystem/CameraUtil.ts b/sample/CameraUtil.ts similarity index 100% rename from src/GraphicsSystem/CameraUtil.ts rename to sample/CameraUtil.ts diff --git a/src/GraphicsSystem/OrbitControls.ts b/sample/OrbitControls.ts similarity index 100% rename from src/GraphicsSystem/OrbitControls.ts rename to sample/OrbitControls.ts diff --git a/src/Common/KeyEnum.ts b/src/Common/KeyEnum.ts new file mode 100644 index 000000000..be65c0e5e --- /dev/null +++ b/src/Common/KeyEnum.ts @@ -0,0 +1,7 @@ +//鼠标类型 +export enum MouseKey +{ + Left = 0, + Middle = 1, + Right = 2, +} diff --git a/src/Editor/CameraControls.ts b/src/Editor/CameraControls.ts index 749e73a05..ee204afda 100644 --- a/src/Editor/CameraControls.ts +++ b/src/Editor/CameraControls.ts @@ -4,6 +4,7 @@ import { Viewer } from '../GraphicsSystem/Viewer'; import { ed, MouseMove } from '../ApplicationServices/Application'; import { PlaneExt } from '../Geometry/Plane'; import { Line3 } from 'three'; +import { MouseKey } from '../Common/KeyEnum'; //控制类型 enum CameraControlsEnabled @@ -20,12 +21,6 @@ enum State } -enum ButtonKey -{ - Left = 0, - Middle = 1, - Right = 2, -} export class CameraControls { @@ -71,11 +66,11 @@ export class CameraControls onMouseDown = (event: MouseEvent) => { event.preventDefault(); - let key: ButtonKey = event.button; + let key: MouseKey = event.button; this.m_StartChickPoint.set(event.offsetX, event.offsetY, 0); switch (key) { - case ButtonKey.Left: + case MouseKey.Left: { if (!this.m_SelectIng) { @@ -86,30 +81,11 @@ export class CameraControls else { ed.m_SelectCss.Hide() - - // let subVec = new THREE.Vector3(event.clientX - event.offsetX, event.clientY - event.offsetY, 0) - // let startPt = new THREE.Vector3(Math.min(ed.m_SelectCss.start.x, ed.m_SelectCss.end.x), - // Math.max(ed.m_SelectCss.start.y, ed.m_SelectCss.end.y), - // 0 - // ) - // let endPt = new THREE.Vector3(Math.max(ed.m_SelectCss.start.x, ed.m_SelectCss.end.x), - // Math.min(ed.m_SelectCss.start.y, ed.m_SelectCss.end.y), - // 0 - // ) - // startPt.sub(subVec) - // endPt.sub(subVec) - // this.m_Viewer.ScreenToWorld(startPt) - // this.m_Viewer.ScreenToWorld(endPt) - - // ed.SelectWindow(startPt, endPt) - - // let line = new Line(startPt, endPt) - // db.appendEntity(line) } this.m_SelectIng = !this.m_SelectIng; break; } - case ButtonKey.Middle: + case MouseKey.Middle: { if (this["Shift"]) { @@ -121,7 +97,7 @@ export class CameraControls } break; } - case ButtonKey.Right: + case MouseKey.Right: { break; } diff --git a/src/Editor/DebugDatUi.ts b/src/Editor/DebugDatUi.ts index 622d02c52..0689e65a6 100644 --- a/src/Editor/DebugDatUi.ts +++ b/src/Editor/DebugDatUi.ts @@ -40,15 +40,15 @@ export class DebugDatUi var func = (value: any) => { - let ent: Entity = ApplicationService.Application.m_Database.m_EntityCollection[0]; - if (ent instanceof Line) - { - ent.setStartPoint(new THREE.Vector3(this.linex, this.liney, this.linez)); - ApplicationService.Application.m_Viewer.m_bIsChange = true; - } - let ent2: Entity = ApplicationService.Application.m_Database.m_EntityCollection[1]; - ent2.m_ThreeObj.position.setX(value); - ent2.m_ThreeObj.position.set(this.linex, this.liney, this.linez); + // let ent: Entity = ApplicationService.Application.m_Database.m_EntityCollection[0]; + // if (ent instanceof Line) + // { + // ent.setStartPoint(new THREE.Vector3(this.linex, this.liney, this.linez)); + // ApplicationService.Application.m_Viewer.m_bIsChange = true; + // } + // let ent2: Entity = ApplicationService.Application.m_Database.m_EntityCollection[1]; + // ent2.m_ThreeObj.position.setX(value); + // ent2.m_ThreeObj.position.set(this.linex, this.liney, this.linez); } var yCtrl = this.m_Ctrl_UI.add(this, "liney") var zCtrl = this.m_Ctrl_UI.add(this, "linez") diff --git a/src/Editor/SelectControls.ts b/src/Editor/SelectControls.ts new file mode 100644 index 000000000..e4893e763 --- /dev/null +++ b/src/Editor/SelectControls.ts @@ -0,0 +1,41 @@ +import { Viewer } from '../GraphicsSystem/Viewer'; + + + +export class SelectControls +{ + m_Viewer: Viewer + m_SelectIng: boolean = false; + constructor(ed: Viewer) + { + this.m_Viewer = ed; + } + RegisterEvent() + { + if (this.m_Viewer) + { + let el = this.m_Viewer.m_HtmlElement; + el.addEventListener("click", this.onMouseClick, false) + el.addEventListener("mousemove", this.onMouseMove, false) + } + } + onMouseClick = () => + { + this.m_SelectIng = !this.m_SelectIng; + + if (!this.m_SelectIng) + { + // ed.m_SelectCss.SetStart(event.clientX, event.clientY) + // ed.m_SelectCss.SetEnd(event.clientX, event.clientY) + // ed.m_SelectCss.Show() + } + else + { + // ed.m_SelectCss.Hide() + } + } + onMouseMove = () => + { + // ed.m_SelectCss.SetEnd(event.clientX, event.clientY) + } +} \ No newline at end of file diff --git a/src/GraphicsSystem/Camera.ts b/src/GraphicsSystem/Camera.ts index b4e068530..fe7419b2d 100644 --- a/src/GraphicsSystem/Camera.ts +++ b/src/GraphicsSystem/Camera.ts @@ -6,7 +6,6 @@ import { Viewer } from "./Viewer"; import { Line, Solid3d } from "../DatabaseServices/Entity"; import { CoordinateSystem } from '../Geometry/CoordinateSystem'; import { OBB } from '../Geometry/OBB/obb'; -// import { UiManage } from '../UI/UIManage'; import { PlaneExt } from '../Geometry/Plane'; import { Line3 } from 'three'; import { ed, db, MouseMove } from '../ApplicationServices/Application'; @@ -70,6 +69,3 @@ export class Camera } } } - - -