From 5558da2487fc367badb01a9feb4c9e0e9ffa76f3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 17 十二月 2021 13:14:28 +0800
Subject: [PATCH] #

---
 static/js/object/StoreShelf.js |   60 +++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 45 insertions(+), 15 deletions(-)

diff --git a/static/js/object/StoreShelf.js b/static/js/object/StoreShelf.js
index 3d093b3..63262ba 100644
--- a/static/js/object/StoreShelf.js
+++ b/static/js/object/StoreShelf.js
@@ -1,3 +1,5 @@
+import * as BufferGeometryUtils from '../utils/BufferGeometryUtils.js';
+
 function StoreShelf(option) {
     this.binLength = option.binLength||50;//搴撲綅闀垮害
     this.binWidth = option.binWidth||50;//搴撲綅瀹�
@@ -16,7 +18,7 @@
     let shelfMat = new THREE.MeshLambertMaterial({
         color: 0x175EC0,
         transparent: true,
-        opacity: .2
+        opacity: .6
     });//瀹氫箟鏀灦鍜屾墭鐩樼殑鏉愯川
     //瀹氫箟涓�涓粍鍚堜綋
     let group = new THREE.Group();
@@ -40,29 +42,57 @@
     //鍙充晶鏀灦鏌辩殑X杞村畾浣�
     let rightPositionX=this.positionX+this.binLength/2 - this.rackLengh;    // 缂╄繘鏀灦闀垮害
 
+    let geometries = [];
+    let transform = new THREE.Object3D();
     // 鍒濆鍖栨敮鏋舵ā鍨�
     for(let i=0;i<=this.binZNum;i++) {
-        let leftRack = rackObject.clone();
-        let positionZ = - ( this.positionZ + i*this.binWidth );
-        leftRack.position.set(leftPositionX,positionY,positionZ);
-        leftRack.updateMatrix();
-        group.add(leftRack);
+        // let leftRack = rackObject.clone();
+        // let positionZ = - ( this.positionZ + i*this.binWidth );
+        // leftRack.position.set(leftPositionX,positionY,positionZ);
+        // leftRack.updateMatrix();
+        // group.add(leftRack);
+        //
+        // let rightRack = rackObject.clone();
+        // rightRack.position.set(rightPositionX,positionY,positionZ);
+        // rightRack.updateMatrix();
+        // group.add(rightRack);
 
-        let rightRack = rackObject.clone();
-        rightRack.position.set(rightPositionX,positionY,positionZ);
-        rightRack.updateMatrix();
-        group.add(rightRack);
+        let positionZ = - ( this.positionZ + i*this.binWidth );
+        // -----
+        let leftClone = rackBoxGeometry.clone();
+        transform.position.set(leftPositionX,positionY,positionZ);
+        transform.updateMatrix();
+        leftClone.applyMatrix4(transform.matrix);
+        geometries.push(leftClone);
+
+        let rightClone = rackBoxGeometry.clone();
+        transform.position.set(rightPositionX,positionY,positionZ);
+        transform.updateMatrix();
+        rightClone.applyMatrix4(transform.matrix);
+        geometries.push(rightClone);
     }
     // 鍒濆鍖栨墭鏉挎ā鍨�
     for(let i = 0;i < this.binZNum;i++) {
         for (let j = 0;j <= this.binYNum;j++) {
-            let plane = planeObject.clone();
+            // let plane = planeObject.clone();
+            // let positionY= this.positionY + this.bottomHight + j*this.binHeight + 1;
+            // let positionZ= - ( this.positionZ + i * this.binWidth + this.binWidth/2 );
+            // plane.position.set(this.positionX-this.rackLengh/2,positionY,positionZ);
+            // plane.updateMatrix();
+            // group.add(plane);
+
+            let clone = planeBoxGeometry.clone();
             let positionY= this.positionY + this.bottomHight + j*this.binHeight + 1;
             let positionZ= - ( this.positionZ + i * this.binWidth + this.binWidth/2 );
-            plane.position.set(this.positionX-this.rackLengh/2,positionY,positionZ);
-            plane.updateMatrix();
-            group.add(plane);
+            transform.position.set(this.positionX-this.rackLengh/2,positionY,positionZ);
+            transform.updateMatrix();
+            clone.applyMatrix4(transform.matrix);
+            geometries.push(clone);
         }
     }
-    return group;
+
+    let mergedGeometry = BufferGeometryUtils.mergeBufferGeometries(geometries);
+    return  new THREE.Mesh(mergedGeometry, shelfMat);
 }
+
+export {StoreShelf}

--
Gitblit v1.9.1