From 3c6bdb6f439ff7af04765259fd6a91b6d201d095 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 19 六月 2025 17:12:25 +0800
Subject: [PATCH] 工单,数据中心用户查看数据的权限,合同考核每日,以及导出每日和按月

---
 src/views/screen/components/screen-map-three/experience/index.js |   70 +++++++++++++++++++++++++++++++---
 1 files changed, 63 insertions(+), 7 deletions(-)

diff --git a/src/views/screen/components/screen-map-three/experience/index.js b/src/views/screen/components/screen-map-three/experience/index.js
index 85dc8ca..df12788 100644
--- a/src/views/screen/components/screen-map-three/experience/index.js
+++ b/src/views/screen/components/screen-map-three/experience/index.js
@@ -1,9 +1,10 @@
-import { Scene,GridHelper } from 'three';
-
+import { Scene, GridHelper, AxesHelper } from 'three';
+import Stats from "three/examples/jsm/libs/stats.module";
 
 import World from "./world/world";
 import Camera from "./camera";
 import Renderer from "./renderer";
+import CSSRenderer from './cssRenderer';
 
 // 宸ュ叿绫�
 import Sizes from "./utils/sizes";
@@ -12,18 +13,25 @@
 export default class Experience {
   constructor(canvas) {
     this.canvas = canvas;
-    this.sizes = new Sizes();
+    this.container = canvas.parentElement;
+    this.sizes = new Sizes(this.canvas);
     this.time = new Time();
     this.scene = new Scene();
     this.camera = new Camera(this);
     this.renderer = new Renderer(this);
+    this.cssRenderer = new CSSRenderer(this);
     this.world = new World(this);
 
-    const size = 10;
-    const divisions = 10;
+    // const size = 100;
+    // const divisions = 100;
 
-    const gridHelper = new GridHelper(size, divisions);
-    this.scene.add(gridHelper);
+    // const gridHelper = new GridHelper(size, divisions);
+    // this.scene.add(gridHelper);
+
+    // this.stats = new Stats();
+    // document.querySelector('.map-container').appendChild(this.stats.dom);
+
+
 
     // 甯�
     this.time.on('tick', () => {
@@ -35,5 +43,53 @@
     this.camera.update();
     this.world.update();
     this.renderer.update();
+    this.cssRenderer.update();
+    // this.stats.update();
+  }
+
+  /**
+   * 閿�姣佸満鏅�
+   */
+  destroy() {
+    this.disposeObject();
+    this.resetObject();
+  }
+
+  disposeObject() {
+    this.time.destroy();
+    this.world.destroy();
+    this.camera.destroy();
+    this.renderer.destroy();
+    this.cssRenderer.destroy();
+    this.scene.traverse((child) => {
+      if (child.material) {
+        // 鍙兘瀛樺湪鏉愯川涓烘暟缁勭殑鎯呭喌
+        if (child.material instanceof Array) {
+          child.material.forEach((item) => item.dispose());
+        } else {
+          child.material.dispose();
+          if (child.material.map) {
+            child.material.map.dispose();
+          }
+        }
+      }
+      if (child.geometry) {
+        child.geometry.dispose();
+        child.geometry.attributes = null; // 杩欎簺灞炴�у寘鎷琾osition, normal, uv绛夌瓑
+      }
+      child = null;
+    });
+  }
+
+  resetObject() {
+    this.world = null;
+    this.camera = null;
+    this.renderer = null;
+    this.cssRenderer = null;
+    this.scene = null;
+    this.canvas = null;
+    this.container = null;
+    this.time = null;
+    this.sizes = null;
   }
 }
\ No newline at end of file

--
Gitblit v1.8.0