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