#
luxiaotao1123
2024-11-04 7f70cb15d035f0c233b9e62b9e43aa985317c908
zy-acs-flow/src/map/insight/shelf/ShelfThree.js
@@ -87,7 +87,7 @@
        // this.renderer.shadowMap.type = THREE.BasicShadowMap;    // 最低阴影
        // renderer.toneMapping = THREE.ReinhardToneMapping;
        renderer.toneMapping = THREE.ACESFilmicToneMapping;
        renderer.setPixelRatio(window.devicePixelRatio);
        renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
        renderer.setSize(this.getFullWidth(), this.getFullHeight());
        this.dom?.appendChild(renderer.domElement);
        return renderer;
@@ -207,12 +207,13 @@
            height * cameraPosScale,
            height * cameraPosScale
        );
        this.controls.target = new THREE.Vector3(0, maxHeight * 0.53, 0);
        this.controls.target = new THREE.Vector3(0, maxHeight * 0.5, 0);
    }
    destroy = () => {
        cancelAnimationFrame(this.animationFrame);
        window.removeEventListener('resize', this.resizeHandler);
        this.dom?.removeEventListener("click", this.handleClickEvent);
        if (this.scene) {
            while (this.scene.children.length > 0) {
                this.removeEntity(this.scene.children[0]);
@@ -222,8 +223,13 @@
        if (this.renderer) {
            this.renderer.dispose();
            this.renderer.forceContextLoss();
            this.renderer.context = null;
            this.renderer.domElement = null;
            if (this.dom && this.renderer.domElement && this.dom.contains(this.renderer.domElement)) {
                try {
                    this.dom.removeChild(this.renderer.domElement);
                } catch (error) {
                    console.warn('Failed to remove renderer.domElement:', error);
                }
            }
            this.renderer = null;
        }
        if (this.composer) {
@@ -238,12 +244,16 @@
            this.controls.dispose();
            this.controls = null;
        }
        this.dom?.removeEventListener("click", this.handleClickEvent);
        if (this.stats && this.stats.domElement && this.dom.contains(this.stats.domElement)) {
            try {
                this.dom.removeChild(this.stats.domElement);
            } catch (error) {
                console.warn('Failed to remove stats.domElement:', error);
            }
        }
        this.camera = null;
        this.objects = [];
        while (this.dom?.firstChild) {
            this.dom.removeChild(this.dom.firstChild);
        }
    }
    removeEntity = (object) => {