From 3cb912e46af76301748b38c8f667adcaba959e8f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 11 十二月 2021 07:57:31 +0800
Subject: [PATCH] #

---
 static/js/app.js               |  101 +++++++++++++-------
 /dev/null                      |   64 ------------
 views/index.html               |    1 
 static/js/object/StoreShelf.js |  129 ++++++++++---------------
 4 files changed, 116 insertions(+), 179 deletions(-)

diff --git a/static/js/app.js b/static/js/app.js
index e8dedd1..5b4915f 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -29,15 +29,13 @@
 			this.initLight();
 			this.initFloor();
 			this.initModel();
-			// 鍙栨暟鎹�
-			this.initStoreData();
+			this.initStoreObjects(this);
 		}
 		this.animate = function () {
 			requestAnimationFrame(this.animate.bind(this));
 			this.stats.begin();
 			this.renderer.render(this.scene, this.camera);
 			this.stats.end();
-			this.initStoreObjects(this);
 			this.modelMove();
 		}
 		this.initScene = function () {
@@ -58,7 +56,7 @@
 			// this.camera.position.z = 600;
 			// //鐩告満鐨勬湞鍚�
 			// this.camera.lookAt(0, 0, 0);
-			this.camera.position.set( - 550, 670, 950 );
+			this.camera.position.set( - 550, 2070, 4550 );
 			this.camera.lookAt( this.scene.position );
 			//灏嗙浉鏈烘斁鍒板満鏅腑
 			this.scene.add(this.camera);
@@ -75,12 +73,29 @@
 			this.dom.appendChild( this.renderer.domElement );
 		}
 		this.initLight = function () {
+
+			//棣栧厛娣诲姞涓幆澧冨厜
+			let ambient = new THREE.AmbientLight(0xffffff, 1); //AmbientLight,褰卞搷鏁翠釜鍦烘櫙鐨勫厜婧�
+			ambient.position.set(0, 0, 0);
+			this.addObject(ambient);
+			//娣诲姞骞宠鍏�,骞宠鍏夌被浼间簬澶槼鍏�
+			let directionalLight = new THREE.DirectionalLight(0xffffff, 0.3);//妯℃嫙杩滃绫讳技澶槼鐨勫厜婧�
+			directionalLight.position.set(0, 200, 0);
+			this.addObject(directionalLight);
+			//璁剧疆鐐瑰厜婧�
+			let pointLight1 = new THREE.PointLight(0xffffff, 0.3);
+			pointLight1.position.set(-500, 200, 0);
+			this.addObject(pointLight1);
+			let pointLight2 = new THREE.PointLight(0xffffff, 0.3);
+			pointLight2.position.set(500, 200, 0);
+			this.addObject(pointLight2);
+
 			// ---
-			var bulbLight = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
-			bulbLight.position.set( 600, 600, 500 );
-			bulbLight.castShadow = true;
-			bulbLight.power = 100;
-			this.addObject(bulbLight);
+			// var bulbLight = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
+			// bulbLight.position.set( 600, 600, 500 );
+			// bulbLight.castShadow = true;
+			// bulbLight.power = 100;
+			// this.addObject(bulbLight);
 			// ---
 			// var bulbLight1 = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
 			// bulbLight1.position.set( -600, 600, 500 );
@@ -104,12 +119,12 @@
 			// hemiLight.intensity = 0.0001;
 			// this.addObject(hemiLight);
 
-			const ambientLight = new THREE.AmbientLight( 0xcccccc, 0.4 );
-			this.addObject( ambientLight );
-
-			const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.6 );
-			directionalLight.position.set( - 1, 1, 1 );
-			this.addObject( directionalLight );
+			// const ambientLight = new THREE.AmbientLight( 0xcccccc, 0.4 );
+			// this.addObject( ambientLight );
+			//
+			// const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.6 );
+			// directionalLight.position.set( - 1, 1, 1 );
+			// this.addObject( directionalLight );
 		}
 		this.initOrbitControl = function () {
 			this.orbitControl = new OrbitControls(this.camera, this.renderer.domElement);
@@ -134,7 +149,7 @@
 				"posy.jpg", "negy.jpg",
 				"posz.jpg", "negz.jpg"
 			]);
-			this.scene.background = new THREE.Color( 0x17c5dc );
+			this.scene.background = new THREE.Color( 0xf0f0f0 );
 		}
 		this.removeObject = function (nameorid) {
 			for (let i = 0; i < this.objects.length; i++) {
@@ -159,7 +174,7 @@
 			// this.addObject(plane);
 			//
 			// const helper = new THREE.PolarGridHelper( 2000, 100 );
-			const helper = new THREE.GridHelper( 5000, 300 );
+			const helper = new THREE.GridHelper( 8000, 300 );
 			helper.position.y = - 0;
 			helper.material.opacity = 0.25;
 			helper.material.transparent = true;
@@ -167,23 +182,37 @@
 		}
 		this.initStoreObjects = function (object) {
 			if (this.firstTime === 1) {
-				// initStore();
+				initStore();
 				if (Store3DData !== null) {
-					for(let i = 0;i<Store3DData.data.length;i++){
-						let optionArea = Store3DData.data[i];
-						let area = new Store3DData(optionArea);
-						object.addObject(area);
-						for (let j = 0; j<optionArea.store.length;j++){
-							let optionStore = optionArea[j];
-							optionStore.position=CommonFunction.transPosition(optionStore.position,optionArea.position)
-							let store =new Store(optionStore);
-							object.addObject(store);
-							for (let k = 0; k < optionStore.groups.length;k++){
-								let optionGroup = optionStore.groups[k];
-								optionGroup.position
-							}
+					for(var group of Store3DData.data.store.groups) {
+						for (var line of group.lines) {
+							let shelf = new StoreShelf(line);
+							object.addObject(shelf);
+							//鏄剧ず搴撲綅涓婄殑璐х墿
+							// for (var bin of line.bins) {
+							// 	let existGoods=this.getExistedGoodType(bin.State);
+							// 	let storeGoods = new StoreGoods(optionGroup, bin);
+							// 	if(existGoods==null) {
+							// 		let goods=storeGoods.create();
+							// 		object.addObject(goods);
+							// 		this.goodTypes.push({type: bin.State, object: goods});
+							// 	} else {
+							// 		let goods= storeGoods.clone(existGoods);
+							// 		object.addObject(goods);
+							// 	}
+							// }
+
 						}
 					}
+
+
+
+
+
+
+
+
+
 
 
 
@@ -272,8 +301,11 @@
 						.setMaterials( materials )
 						.setPath( '../static/model/obj/' )
 						.load( '璐у弶.obj', function ( object ) {
-							object.position.z = -500;
-							object.position.x = -2060;
+							// object.position.z = -500;
+							// object.position.x = -2060;
+							object.position.z = 0;
+							object.position.x = 0;
+							object.position.y = 0;
 							object.scale.set(0.025, 0.025, 0.025);
 							object.rotateY(- Math.PI / 2)
 							that.addObject( object );
@@ -311,9 +343,6 @@
 				});
 		}
 		this.modelMove = function () {
-
-		}
-		this.initStoreData = function () {
 
 		}
 	},
diff --git a/static/js/object/StoreShelf.js b/static/js/object/StoreShelf.js
index d5d039a..3591c4a 100644
--- a/static/js/object/StoreShelf.js
+++ b/static/js/object/StoreShelf.js
@@ -1,93 +1,64 @@
-function StoreShelf(option) {
-    this.binLength = option.BinLength||50;//搴撲綅闀垮害
-    this.binWidth = option.BinWidth||50;//搴撲綅瀹�
-    this.binHeight = option.BinHeight||50;//搴撲綅楂�
-    this.binXNum = option.BinXNum||1;//搴撲綅X杞存柟鍚戝簱浣嶆暟閲�
-    this.binZNum = option.BinZNum||10;//搴撲綅Z杞存柟鍚戝簱浣嶆暟閲�
-    this.binYNum = option.BinYNum||10;//搴撲綅Y杞村簱浣嶆暟閲�
-    this.bottomHight = option.BottomHeight||20;//搴曞眰楂樺害锛屽簳灞�
-    this.positionX = option.Position.X||0;//搴撲綅浣嶇疆
-    this.positionY = option.Position.Y||0;//搴撲綅浣嶇疆
-    this.positionZ = option.Position.Z||0;//搴撲綅浣嶇疆
+function StoreShelf0(option) {
+    this.binLength = option.binLength||50;//搴撲綅闀垮害
+    this.binWidth = option.binWidth||50;//搴撲綅瀹�
+    this.binHeight = option.binHeight||50;//搴撲綅楂�
+    this.binXNum = option.binXNum||1;//搴撲綅X杞存柟鍚戝簱浣嶆暟閲�
+    this.binZNum = option.binZNum||10;//搴撲綅Z杞存柟鍚戝簱浣嶆暟閲�
+    this.binYNum = option.binYNum||10;//搴撲綅Y杞村簱浣嶆暟閲�
+    this.bottomHight = option.bottomHeight||20;//搴曞眰楂樺害锛屽簳灞�
+    this.positionX = option.position.x||0;//搴撲綅浣嶇疆
+    this.positionY = option.position.y||0;//搴撲綅浣嶇疆
+    this.positionZ = option.position.z||0;//搴撲綅浣嶇疆
     this.rackLengh = 3;//鏀灦鐨勯暱搴︼紝榛樿璁惧姩涓�3
     this.rackWidth = 3;//鏀灦鐨勫搴︼紝榛樿璁惧畾涓�3
-    this.intervalRackNum=2;//闂撮殧澶氬皯搴撲綅鏈変竴涓富鏀灦
 
-    // let binHolderPlane=new THREE.BoxGeometry(this.binLength,2,this.binWidth);//瀹氫箟涓�涓窡搴撲綅闀垮鐩稿悓鐨勫嚑浣曚綋锛屼綔涓烘墭鐩�
+    // 鏉愯川
+    let shelfMat = new THREE.MeshLambertMaterial({color:0x175EC0});//瀹氫箟鏀灦鍜屾墭鐩樼殑鏉愯川
+    //瀹氫箟涓�涓粍鍚堜綋
+    let group = new THREE.Group();
 
-    //瀹氫箟鏀灦鍜屾墭鐩樼殑鏉愯川
-    let shlefMat = new THREE.MeshPhysicalMaterial({
-        color:0xff0000,
-        // 鏉愯川鍍忛噾灞炵殑绋嬪害. 闈為噾灞炴潗鏂欙紝濡傛湪鏉愭垨鐭虫潗锛屼娇鐢�0.0锛岄噾灞炰娇鐢�1.0锛屼腑闂存病鏈夛紙閫氬父锛�.
-        // 榛樿 0.5. 0.0鍒�1.0涔嬮棿鐨勫�煎彲鐢ㄤ簬鐢熼攬鐨勯噾灞炲瑙�
-        metalness: 1.0,
-        // 鏉愭枡鐨勭矖绯欑▼搴�. 0.0琛ㄧず骞虫粦鐨勯暅闈㈠弽灏勶紝1.0琛ㄧず瀹屽叏婕弽灏�. 榛樿 0.5
-        roughness: 0.6,
-        // 璁剧疆鐜璐村浘
-        // 鍙嶅皠绋嬪害, 浠� 0.0 鍒�1.0.榛樿0.5.
-        // 杩欐ā鎷熶簡闈為噾灞炴潗鏂欑殑鍙嶅皠鐜囥�� 褰搈etalness涓�1.0鏃舵棤鏁�
-        // reflectivity: 0.5,
-    })
-
-    let group = new THREE.Group();//瀹氫箟涓�涓粍鍚堜綋
-    //鍚堝苟妯″瀷锛屽垯浣跨敤merge鏂规硶鍚堝苟
-    let combineGeometry = new THREE.BufferGeometry();
-    /*
-     鏀灦鐨勯珮=鏈�搴曞眰鐨勯珮搴�+(搴撲綅鏁�-1)*搴撲綅鐨勯珮搴�
-     */
+    // 璐ф灦鎬婚珮
     let shelfHeight=this.bottomHight+(this.binYNum-1)*this.binHeight;
-    /*
-     鏀灦鐨勫=搴撲綅鏁颁箻浠ュ簱浣嶇殑瀹藉害
-     */
+    // 璐ф灦鎬诲
     let shelfWidth=this.binZNum*this.binWidth;
-    let rackBoxGeometry=new THREE.BoxGeometry(this.rackLengh,shelfHeight,this.rackWidth);//瀹氫箟涓�涓敮鏋剁綉鏍�
-    let rackObject=new THREE.Mesh( rackBoxGeometry, shlefMat, 0 );
+    // 鏀灦妯″瀷 + 鏉愯川
+    let rackBoxGeometry=new THREE.BoxGeometry(this.rackLengh,shelfHeight,this.rackWidth);
+    let rackObject=new THREE.Mesh(rackBoxGeometry, shelfMat, 0);
+    // 鎵樻澘妯″瀷 + 鏉愯川
+    let planeBoxGeometry = new THREE.BoxGeometry(this.binLength, 2, this.binWidth+this.rackWidth);  // 瑕嗙洊澶氫竴鏍规敮鏋跺搴�
+    let planeObject=new THREE.Mesh(planeBoxGeometry, shelfMat, 0);
 
-    let plane = new THREE.BoxGeometry(this.binLength, 2, this.binWidth);
-    let holderObject = new THREE.Mesh(plane, shlefMat,0);
+    // Y杞村畾浣�
+    let positionY = this.positionY + shelfHeight / 2;
 
-    let leftPositionX=this.positionX-this.binLength/2+this.rackLengh/2;//宸︿晶鏀灦鏌辩殑X杞存潯鐮�
-    let rightPositionX=this.positionX+this.binLength/2-this.rackLengh/2;//鍙充晶鏀灦鏌辩殑X杞存潯鐮�
+    //宸︿晶鏀灦鏌辩殑X杞村畾浣�
+    let leftPositionX=this.positionX-this.binLength/2;
+    //鍙充晶鏀灦鏌辩殑X杞村畾浣�
+    let rightPositionX=this.positionX+this.binLength/2 - this.rackLengh;    // 缂╄繘鏀灦闀垮害
 
+    // 鍒濆鍖栨敮鏋舵ā鍨�
+    for(let i=0;i<=this.binZNum;i++) {
+        let leftRack = rackObject.clone();
+        let positionZ = this.positionZ - shelfWidth/2 + i*this.binWidth;
+        leftRack.position.set(leftPositionX,positionY,positionZ);
+        leftRack.updateMatrix();
+        group.add(leftRack);
 
-    let positionY=this.positionY-this.binHeight/2;//鏀灦鏌辩殑Y杞村潗鏍�
-
-    for(let i=0;i<this.binZNum+this.intervalRackNum;i++) {
-        let isRack=i%this.intervalRackNum;
-        if(isRack===0) {
-            let PositionZ=this.positionZ-shelfWidth/2+i*this.binWidth+this.rackWidth/2;
-            if(i>=this.binZNum) {
-                PositionZ=PositionZ-this.rackWidth;
-            }
-
-            let leftRack=rackObject.clone();
-            group.add(leftRack);
-            leftRack.position.set(leftPositionX,positionY,PositionZ);
-            leftRack.updateMatrix();
-            combineGeometry.merge(leftRack.geometry, leftRack.matrix);
-            let rightRack=rackObject.clone();
-            group.add(rightRack);
-            rightRack.position.set(rightPositionX,positionY,PositionZ);
-            rightRack.updateMatrix();
-            combineGeometry.merge(rightRack.geometry, rightRack.matrix);
+        let rightRack = rackObject.clone();
+        rightRack.position.set(rightPositionX,positionY,positionZ);
+        rightRack.updateMatrix();
+        group.add(rightRack);
+    }
+    // 鍒濆鍖栨墭鏉挎ā鍨�
+    for(let i = 0;i < this.binZNum;i++) {
+        for (let j = 0;j < this.binYNum;j++) {
+            let plane = planeObject.clone();
+            let positionY= this.positionY + this.bottomHight + j*this.binHeight + 1;
+            let positionZ= this.positionZ - shelfWidth/2 + i * this.binWidth + this.binWidth/2;
+            plane.position.set(this.positionX-this.rackLengh/2,positionY,positionZ);
+            plane.updateMatrix();
+            group.add(plane);
         }
     }
-    //鍒涘缓鎵樻澘
-    for(let i=0;i<this.binZNum;i++) {
-        for (let j = 0; j < this.binYNum; j++) {
-
-            let positionY=this.positionY-this.binHeight/2-shelfHeight/2+this.bottomHight+j*this.binHeight;
-            let positionZ=this.positionZ-shelfWidth/2+this.binWidth/2 + i * this.binWidth
-            let holderObj= holderObject.clone();
-            group.add(holderObj);
-            holderObj.position.set(this.positionX,positionY,positionZ);
-            holderObj.updateMatrix();
-            combineGeometry.merge(holderObj.geometry, holderObj.matrix);
-        }
-    }
-    let shelf= new THREE.Mesh(combineGeometry, shlefMat);
-    shelf.uuid=option.No;
-    shelf.name=option.Name;
-    shelf.type="StoreShelf";
     return group;
 }
diff --git a/static/js/object/StoreShelf0.js b/static/js/object/StoreShelf0.js
deleted file mode 100644
index 3591c4a..0000000
--- a/static/js/object/StoreShelf0.js
+++ /dev/null
@@ -1,64 +0,0 @@
-function StoreShelf0(option) {
-    this.binLength = option.binLength||50;//搴撲綅闀垮害
-    this.binWidth = option.binWidth||50;//搴撲綅瀹�
-    this.binHeight = option.binHeight||50;//搴撲綅楂�
-    this.binXNum = option.binXNum||1;//搴撲綅X杞存柟鍚戝簱浣嶆暟閲�
-    this.binZNum = option.binZNum||10;//搴撲綅Z杞存柟鍚戝簱浣嶆暟閲�
-    this.binYNum = option.binYNum||10;//搴撲綅Y杞村簱浣嶆暟閲�
-    this.bottomHight = option.bottomHeight||20;//搴曞眰楂樺害锛屽簳灞�
-    this.positionX = option.position.x||0;//搴撲綅浣嶇疆
-    this.positionY = option.position.y||0;//搴撲綅浣嶇疆
-    this.positionZ = option.position.z||0;//搴撲綅浣嶇疆
-    this.rackLengh = 3;//鏀灦鐨勯暱搴︼紝榛樿璁惧姩涓�3
-    this.rackWidth = 3;//鏀灦鐨勫搴︼紝榛樿璁惧畾涓�3
-
-    // 鏉愯川
-    let shelfMat = new THREE.MeshLambertMaterial({color:0x175EC0});//瀹氫箟鏀灦鍜屾墭鐩樼殑鏉愯川
-    //瀹氫箟涓�涓粍鍚堜綋
-    let group = new THREE.Group();
-
-    // 璐ф灦鎬婚珮
-    let shelfHeight=this.bottomHight+(this.binYNum-1)*this.binHeight;
-    // 璐ф灦鎬诲
-    let shelfWidth=this.binZNum*this.binWidth;
-    // 鏀灦妯″瀷 + 鏉愯川
-    let rackBoxGeometry=new THREE.BoxGeometry(this.rackLengh,shelfHeight,this.rackWidth);
-    let rackObject=new THREE.Mesh(rackBoxGeometry, shelfMat, 0);
-    // 鎵樻澘妯″瀷 + 鏉愯川
-    let planeBoxGeometry = new THREE.BoxGeometry(this.binLength, 2, this.binWidth+this.rackWidth);  // 瑕嗙洊澶氫竴鏍规敮鏋跺搴�
-    let planeObject=new THREE.Mesh(planeBoxGeometry, shelfMat, 0);
-
-    // Y杞村畾浣�
-    let positionY = this.positionY + shelfHeight / 2;
-
-    //宸︿晶鏀灦鏌辩殑X杞村畾浣�
-    let leftPositionX=this.positionX-this.binLength/2;
-    //鍙充晶鏀灦鏌辩殑X杞村畾浣�
-    let rightPositionX=this.positionX+this.binLength/2 - this.rackLengh;    // 缂╄繘鏀灦闀垮害
-
-    // 鍒濆鍖栨敮鏋舵ā鍨�
-    for(let i=0;i<=this.binZNum;i++) {
-        let leftRack = rackObject.clone();
-        let positionZ = this.positionZ - shelfWidth/2 + 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);
-    }
-    // 鍒濆鍖栨墭鏉挎ā鍨�
-    for(let i = 0;i < this.binZNum;i++) {
-        for (let j = 0;j < this.binYNum;j++) {
-            let plane = planeObject.clone();
-            let positionY= this.positionY + this.bottomHight + j*this.binHeight + 1;
-            let positionZ= this.positionZ - shelfWidth/2 + i * this.binWidth + this.binWidth/2;
-            plane.position.set(this.positionX-this.rackLengh/2,positionY,positionZ);
-            plane.updateMatrix();
-            group.add(plane);
-        }
-    }
-    return group;
-}
diff --git a/views/index.html b/views/index.html
index ca60737..7abb321 100644
--- a/views/index.html
+++ b/views/index.html
@@ -18,6 +18,7 @@
 				display: block;
 			}
 			#sidebar{
+				display: none;
 				/*瀹氫綅*/
 				position: absolute;
 				top: 50%;

--
Gitblit v1.9.1