From 4f3d7a63887afa4746840b92893443558d99c04c Mon Sep 17 00:00:00 2001 From: ChenX Date: Thu, 31 May 2018 10:48:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E7=9B=B8=E6=9C=BA=E4=BD=93=E9=AA=8C,=E6=89=A9?= =?UTF-8?q?=E5=A4=A7=E7=9B=B8=E6=9C=BA=E8=8C=83=E5=9B=B4,=E5=B9=B6?= =?UTF-8?q?=E4=B8=94=E9=99=90=E5=AE=9A=E7=94=A8=E6=88=B7=E7=9A=84=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E8=8C=83=E5=9B=B4,=E9=81=BF=E5=85=8D=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E5=90=8E=E7=89=A9=E4=BD=93=E8=BF=87=E5=B0=8F=E8=80=8C?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E6=89=BE=E4=B8=8D=E5=88=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/CameraUpdate.d.ts | 2 ++ dist/CameraUpdate.js | 8 +++++--- dist/CameraUpdate.js.map | 2 +- src/CameraUpdate.ts | 9 ++++++--- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/dist/CameraUpdate.d.ts b/dist/CameraUpdate.d.ts index 7dbaa9c..070566b 100644 --- a/dist/CameraUpdate.d.ts +++ b/dist/CameraUpdate.d.ts @@ -18,6 +18,8 @@ export declare class CameraUpdate { private m_Target; private m_Direction; private m_Orbit; + m_MinViewHeight: number; + m_MaxViewHeight: number; constructor(); readonly Aspect: number; readonly Camera: THREE.Camera; diff --git a/dist/CameraUpdate.js b/dist/CameraUpdate.js index c8dd126..0442d06 100644 --- a/dist/CameraUpdate.js +++ b/dist/CameraUpdate.js @@ -24,7 +24,9 @@ class CameraUpdate { this.m_Direction = new THREE.Vector3(0, 0, -1); //观察的轨道. this.m_Orbit = new Orbit_1.Orbit(); - this.m_CameraArray.set(THREE.OrthographicCamera, new THREE.OrthographicCamera(-2, 2, 2, -2, -100000, 100000)); + this.m_MinViewHeight = 10; + this.m_MaxViewHeight = 3e4; + this.m_CameraArray.set(THREE.OrthographicCamera, new THREE.OrthographicCamera(-2, 2, 2, -2, -1e6, 1e6)); this.m_CameraArray.set(THREE.PerspectiveCamera, new THREE.PerspectiveCamera(50, 1, 0.01, 10000)); this.m_CurCamera = this.m_CameraArray.get(THREE.OrthographicCamera); this.m_Orbit.UpdateRoValue(this.m_Direction); @@ -41,7 +43,7 @@ class CameraUpdate { return this.m_ViewHeight; } set ViewHeight(height) { - this.m_ViewHeight = THREE.Math.clamp(height, 1e-8, 1e8); + this.m_ViewHeight = THREE.Math.clamp(height, this.m_MinViewHeight, this.m_MaxViewHeight); } SetSize(width, height) { this.m_Width = width; @@ -84,7 +86,7 @@ class CameraUpdate { Zoom(scale, scaleCenter) { if (this.Camera instanceof THREE.OrthographicCamera) { this.ViewHeight *= scale; - if (scaleCenter) { + if (scaleCenter && this.m_ViewHeight < this.m_MaxViewHeight) { this.m_Target.sub(scaleCenter); this.m_Target.multiplyScalar(scale); this.m_Target.add(scaleCenter); diff --git a/dist/CameraUpdate.js.map b/dist/CameraUpdate.js.map index 18f587d..a0c4e5e 100644 --- a/dist/CameraUpdate.js.map +++ b/dist/CameraUpdate.js.map @@ -1 +1 @@ -{"version":3,"file":"CameraUpdate.js","sourceRoot":"","sources":["../src/CameraUpdate.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"CameraUpdate.js","sourceRoot":"","sources":["../src/CameraUpdate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/CameraUpdate.ts b/src/CameraUpdate.ts index acbed35..17017f7 100644 --- a/src/CameraUpdate.ts +++ b/src/CameraUpdate.ts @@ -30,10 +30,13 @@ export class CameraUpdate //观察的轨道. private m_Orbit: Orbit = new Orbit(); + m_MinViewHeight = 10; + m_MaxViewHeight = 3e4; + constructor() { this.m_CameraArray.set(THREE.OrthographicCamera, new THREE.OrthographicCamera(-2, 2, 2, -2, - -100000, 100000)); + -1e6, 1e6)); this.m_CameraArray.set(THREE.PerspectiveCamera, new THREE.PerspectiveCamera(50, 1, 0.01, 10000)); @@ -60,7 +63,7 @@ export class CameraUpdate } set ViewHeight(height) { - this.m_ViewHeight = THREE.Math.clamp(height, 1e-8, 1e8); + this.m_ViewHeight = THREE.Math.clamp(height, this.m_MinViewHeight, this.m_MaxViewHeight); } SetSize(width: number, height: number) @@ -114,7 +117,7 @@ export class CameraUpdate if (this.Camera instanceof THREE.OrthographicCamera) { this.ViewHeight *= scale; - if (scaleCenter) + if (scaleCenter && this.m_ViewHeight < this.m_MaxViewHeight) { this.m_Target.sub(scaleCenter); this.m_Target.multiplyScalar(scale);