From 1a0b6c69df8bafa8d9c612a5ea04a34be712001c Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 24 四月 2024 16:01:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/screen/components/screen-map-three/experience/camera.js | 38 +++++++++++++++++++++++++++-----------
1 files changed, 27 insertions(+), 11 deletions(-)
diff --git a/src/views/screen/components/screen-map-three/experience/camera.js b/src/views/screen/components/screen-map-three/experience/camera.js
index 8a541f2..fdf3223 100644
--- a/src/views/screen/components/screen-map-three/experience/camera.js
+++ b/src/views/screen/components/screen-map-three/experience/camera.js
@@ -1,4 +1,4 @@
-import {MathUtils} from 'three';
+import { MathUtils } from 'three';
import { PerspectiveCamera, CameraHelper } from 'three';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
@@ -6,17 +6,16 @@
export default class Camera {
constructor(experience) {
this.experience = experience;
- this.scene = this.experience.scene;
- this.canvas = this.experience.canvas;
- this.sizes = this.experience.sizes;
+ this.scene = experience.scene;
+ this.canvas = experience.canvas;
+ this.sizes = experience.sizes;
this.setInstance();
this.setOrbitControls();
-
}
// 璁剧疆閫忚鐩告満
setInstance() {
- this.instance = new PerspectiveCamera(45,this.sizes.width / this.sizes.height, 0.001, 90000000);
+ this.instance = new PerspectiveCamera(45, this.sizes.width / this.sizes.height, 0.1, 200);
this.instance.position.set(0, 45, 45);
this.scene.add(this.instance);
// const help = new CameraHelper(this.instance);
@@ -35,11 +34,7 @@
resize() {
// 閲嶆柊璁$畻姣斾緥
- this.cameraAspect = (this.sizes.width / this.sizes.height) * this.frustrum;
- this.instance.left = -this.cameraAspect / 2;
- this.instance.right = this.cameraAspect / 2;
- this.instance.top = this.frustrum / 2;
- this.instance.bottom = -this.frustrum / 2;
+ this.cameraAspect = this.sizes.width / this.sizes.height;
this.instance.updateProjectionMatrix();
}
@@ -47,4 +42,25 @@
update() {
this.controls.update();
}
+
+ destroy() {
+ this.disposeObject();
+ this.removeObject();
+ this.resetObject();
+ }
+
+ disposeObject() {
+ this.controls.dispose();
+ }
+
+ removeObject() {
+ this.scene.remove(this.instance);
+ }
+ resetObject() {
+ this.controls = null;
+ this.instance = null;
+ this.scene = null;
+ this.canvas = null;
+ this.sizes = null;
+ }
}
\ No newline at end of file
--
Gitblit v1.8.0