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

---
 static/js/app.js |  320 +++++++++++++++++++++++++----------------------------
 1 files changed, 152 insertions(+), 168 deletions(-)

diff --git a/static/js/app.js b/static/js/app.js
index 5b4915f..1763d19 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -2,6 +2,9 @@
 import Stats from './lib/stats.module.js';
 import {MTLLoader} from './lib/MTLLoader.js';
 import {OBJLoader} from './lib/OBJLoader.js';
+import {StoreShelf} from './object/StoreShelf.js';
+import {StoreCrn} from './object/StoreCrn.js';
+import { Sky } from './object/Sky.js';
 
 var APP = {
 
@@ -14,6 +17,9 @@
 		this.firstTime = 1;
 		this.stats = null;
 		this.goodTypes=[];//瀛樺偍鎵�鏈夌殑搴撲綅绫诲瀷
+		this.crnTasks = [];// 鍫嗗灈鏈哄垪琛�
+		this.time = 0;//鏍囪鍫嗗灈鏈鸿繍琛岀殑鏃堕棿
+		this.progress = 0;
 
 		this.start = function () {
 			this.initMain();
@@ -27,6 +33,7 @@
 			this.initBackground();
 			this.initStats();
 			this.initLight();
+			this.initReSize(this);
 			this.initFloor();
 			this.initModel();
 			this.initStoreObjects(this);
@@ -36,7 +43,8 @@
 			this.stats.begin();
 			this.renderer.render(this.scene, this.camera);
 			this.stats.end();
-			this.modelMove();
+			this.queryCrn();
+			this.crnMove();
 		}
 		this.initScene = function () {
 			this.scene = new THREE.Scene();
@@ -56,21 +64,28 @@
 			// this.camera.position.z = 600;
 			// //鐩告満鐨勬湞鍚�
 			// this.camera.lookAt(0, 0, 0);
-			this.camera.position.set( - 550, 2070, 4550 );
+			this.camera.position.set( - 350, 1070, 1550 );
 			this.camera.lookAt( this.scene.position );
 			//灏嗙浉鏈烘斁鍒板満鏅腑
 			this.scene.add(this.camera);
 		}
 		this.initRenderer = function () {
 			this.renderer = new THREE.WebGLRenderer();
-			// this.renderer.physicallyCorrectLights = true;
+
+			// this.renderer.outputEncoding = THREE.sRGBEncoding;
+			// this.renderer.toneMapping = THREE.ACESFilmicToneMapping;
+			// this.renderer.toneMappingExposure = 0.5;
+
 			// this.renderer.outputEncoding = THREE.sRGBEncoding;
 			// this.renderer.shadowMap.enabled = true;
 			// this.renderer.toneMapping = THREE.ReinhardToneMapping;
+			//
 			this.renderer.setPixelRatio( window.devicePixelRatio );
 			this.renderer.setSize( window.innerWidth, window.innerHeight );
 			this.dom = document.getElementById("container");
 			this.dom.appendChild( this.renderer.domElement );
+
+
 		}
 		this.initLight = function () {
 
@@ -90,41 +105,21 @@
 			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 bulbLight1 = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
-			// bulbLight1.position.set( -600, 600, 500 );
-			// bulbLight1.castShadow = true;
-			// bulbLight1.power = 100;
-			// this.addObject(bulbLight1);
-			// // ---
-			// var bulbLight2 = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
-			// bulbLight2.position.set( 600, 600, -500 );
-			// bulbLight2.castShadow = true;
-			// bulbLight2.power = 100;
-			// this.addObject(bulbLight2);
-			// // ---
-			// var bulbLight3 = new THREE.PointLight( 0xffee88, 1, 2000, 2 );
-			// bulbLight3.position.set( -600, 600, -500 );
-			// bulbLight3.castShadow = true;
-			// bulbLight3.power = 100;
-			// this.addObject(bulbLight3);
-			// // ---
-			// var hemiLight = new THREE.HemisphereLight( 0xddeeff, 0x0f0e0d, 0.02 );
-			// hemiLight.intensity = 0.0001;
-			// this.addObject(hemiLight);
-
-			// const ambientLight = new THREE.AmbientLight( 0xcccccc, 0.4 );
-			// this.addObject( ambientLight );
+			// const bulbGeometry = new THREE.SphereGeometry( 0.02, 16, 8 );
+			// var bulbLight = new THREE.PointLight( 0xffee88, 1, 100, 2 );
 			//
-			// const directionalLight = new THREE.DirectionalLight( 0xffffff, 0.6 );
-			// directionalLight.position.set( - 1, 1, 1 );
-			// this.addObject( directionalLight );
+			// var bulbMat = new THREE.MeshStandardMaterial( {
+			// 	emissive: 0xffffee,
+			// 	emissiveIntensity: 1,
+			// 	color: 0x000000
+			// } );
+			// bulbLight.add( new THREE.Mesh( bulbGeometry, bulbMat ) );
+			// bulbLight.position.set( -500, 22, 0 );
+			// bulbLight.castShadow = true;
+			// this.addObject( bulbLight );
+			//
+			// var hemiLight = new THREE.HemisphereLight( 0xddeeff, 0x0f0e0d, 0.02 );
+			// this.addObject( hemiLight );
 		}
 		this.initOrbitControl = function () {
 			this.orbitControl = new OrbitControls(this.camera, this.renderer.domElement);
@@ -142,14 +137,45 @@
 			// this.dom.appendChild( this.stats.dom );
 		}
 		this.initBackground = function () {
-			const cubeTextureLoader = new THREE.CubeTextureLoader();
-			cubeTextureLoader.setPath( '../static/img/background/' );
-			this.scene.background = cubeTextureLoader.load([
-				"posx.jpg", "negx.jpg",
-				"posy.jpg", "negy.jpg",
-				"posz.jpg", "negz.jpg"
-			]);
+			// const cubeTextureLoader = new THREE.CubeTextureLoader();
+			// cubeTextureLoader.setPath( '../static/img/skybox/' );
+			// this.scene.background = cubeTextureLoader.load([
+			// 	"px.jpg", "nx.jpg",
+			// 	"py.jpg", "ny.jpg",
+			// 	"pz.jpg", "nz.jpg"
+			// ]);
 			this.scene.background = new THREE.Color( 0xf0f0f0 );
+
+			// 澶槼
+			// let sky = new Sky();
+			// sky.scale.setScalar( 450000 );
+			// this.addObject( sky );
+			// let sun = new THREE.Vector3();
+			// const effectController = {
+			// 	turbidity: 10,
+			// 	rayleigh: 3,
+			// 	mieCoefficient: 0.005,
+			// 	mieDirectionalG: 0.7,
+			// 	elevation: 2,
+			// 	azimuth: 180,
+			// 	exposure: this.renderer.toneMappingExposure
+			// };
+			// const uniforms = sky.material.uniforms;
+			// uniforms[ 'turbidity' ].value = effectController.turbidity;
+			// uniforms[ 'rayleigh' ].value = effectController.rayleigh;
+			// uniforms[ 'mieCoefficient' ].value = effectController.mieCoefficient;
+			// uniforms[ 'mieDirectionalG' ].value = effectController.mieDirectionalG;
+			// const phi = THREE.MathUtils.degToRad( 90 - effectController.elevation );
+			// const theta = THREE.MathUtils.degToRad( effectController.azimuth );
+			// sun.setFromSphericalCoords( 1, phi, theta );
+			// uniforms[ 'sunPosition' ].value.copy( sun );
+		}
+		this.initReSize = function(object){
+			window.addEventListener('resize', function () {
+				object.camera.aspect = window.innerWidth / window.innerHeight;
+				object.camera.updateProjectionMatrix();
+				object.renderer.setSize(window.innerWidth, window.innerHeight);
+			}, false);
 		}
 		this.removeObject = function (nameorid) {
 			for (let i = 0; i < this.objects.length; i++) {
@@ -172,19 +198,23 @@
 			// plane.position.y = - 200;
 			// plane.receiveShadow = true;
 			// this.addObject(plane);
-			//
+
 			// const helper = new THREE.PolarGridHelper( 2000, 100 );
+
 			const helper = new THREE.GridHelper( 8000, 300 );
 			helper.position.y = - 0;
 			helper.material.opacity = 0.25;
 			helper.material.transparent = true;
 			this.addObject( helper );
+
+			// this.addObject(new Floor({position: {}}))
 		}
 		this.initStoreObjects = function (object) {
 			if (this.firstTime === 1) {
 				initStore();
 				if (Store3DData !== null) {
 					for(var group of Store3DData.data.store.groups) {
+						new StoreCrn(group.crn, object);
 						for (var line of group.lines) {
 							let shelf = new StoreShelf(line);
 							object.addObject(shelf);
@@ -204,57 +234,21 @@
 
 						}
 					}
-
-
-
-
-
-
-
-
-
-
-
-
-
-					//鏄剧ず浠撳簱鍖哄煙
-					// for (let i = 0; i < Store3DData.Areas.length; i++) {
-					// 	let optionArea = Store3DData.Areas[i];
-					// 	let area = new StoreArea(optionArea);
-					// 	object.addObject(area);
-					// 	//鏄剧ず浠撳簱
-					// 	for (let j = 0; j < optionArea.Stores.length; j++) {
-					// 		let optionStore = optionArea.Stores[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 = CommonFunction.transPosition(optionGroup.Position, optionStore.Position);
-					// 			let shelf = new StoreShelf(optionGroup);
-					// 			let group=new StoreGroup(optionGroup,1);
-					// 			object.addObject(shelf);
-					// 			// object.addObject(group);
-					// 			//鏄剧ず搴撲綅涓婄殑璐х墿
-					// 			for (let m = 0; m < optionGroup.Bins.length; m++) {
-					// 			    let optionBin = optionGroup.Bins[m];
-					// 			    let existGoods=this.getExistedGoodType(optionBin.State);
-					// 			    let storeGoods = new StoreGoods(optionGroup, optionBin);
-					// 			    if(existGoods==null) {
-					// 			        let goods=storeGoods.create();
-					// 			        object.addObject(goods);
-					// 			        this.goodTypes.push({type: optionBin.State, object: goods});
-					// 			    } else {
-					// 			        let goods= storeGoods.clone(existGoods);
-					// 			        object.addObject(goods);
-					// 			    }
-					// 			}
-					// 		}
-					//
-					// 	}
-					// }
-					this.firstTime = 0;
+				}
+			}
+		}
+		this.queryCrn = function () {
+			if (CrnDatas !== null) {
+				for (let crnData of CrnDatas) {
+					let crnTask = getArrVal(this.crnTasks, "crnNo", crnData.crnNo);
+					if (null == crnTask) {
+						this.crnTasks.push(new CrnTask(crnData, this));
+					} else {
+						if(!crnTask.run) {
+							// console.log(2)
+							crnTask.modify(crnData);
+						}
+					}
 				}
 			}
 		}
@@ -269,84 +263,74 @@
 		}
 		this.initModel = function () {
 			let that = this;
-			// let object;
-			// const onProgress = function ( xhr ) {
-			// 	if ( xhr.lengthComputable ) {
-			// 		const percentComplete = xhr.loaded / xhr.total * 100;
-			// 		console.log( Math.round( percentComplete, 2 ) + '% downloaded' );
-			// 	}
-			// };
-			// const onError = function () { };
-			// function loadModel() {
-			// 	object.traverse( function ( child ) {
-			// 		if ( child.isMesh ) child.material.map = texture;
-			// 	} );
-			// 	object.position.y = 195;
-			// 	that.addObject( object );
-			// }
-			// const manager = new THREE.LoadingManager(loadModel);
-			// const textureLoader = new THREE.TextureLoader( manager );
-			// const texture = textureLoader.load( '../static/model/obj/uv_grid_opengl.jpg' );
-			// const loader = new OBJLoader( manager );
-			// loader.load( '../static/model/obj/AGV.obj', function ( obj ) {
-			// 	object = obj;
-			// }, onProgress, onError );
 			const manager = new THREE.LoadingManager();
 			// manager.addHandler( /\.dds$/i, new DDSLoader() );
-			new MTLLoader(manager)
-				.setPath( '../static/model/obj/' )
-				.load( '璐у弶.mtl', function ( materials ) {
-					materials.preload();
-					new OBJLoader( manager )
-						.setMaterials( materials )
-						.setPath( '../static/model/obj/' )
-						.load( '璐у弶.obj', function ( object ) {
-							// 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 );
-						}, null, null );
-				});
-			new MTLLoader(manager)
-				.setPath( '../static/model/obj/' )
-				.load( '杞借揣鍙�.mtl', function ( materials ) {
-					materials.preload();
-					new OBJLoader( manager )
-						.setMaterials( materials )
-						.setPath( '../static/model/obj/' )
-						.load( '杞借揣鍙�.obj', function ( object ) {
-							object.position.z = -500;
-							object.position.x = -2060;
-							object.scale.set(0.025, 0.025, 0.025);
-							object.rotateY(- Math.PI / 2)
-							that.addObject( object );
-						}, null, null );
-				});
-			new MTLLoader(manager)
-				.setPath( '../static/model/obj/' )
-				.load( '鍫嗗灈鏈烘湰浣�.mtl', function ( materials ) {
-					materials.preload();
-					new OBJLoader( manager )
-						.setMaterials( materials )
-						.setPath( '../static/model/obj/' )
-						.load( '鍫嗗灈鏈烘湰浣�.obj', function ( object ) {
-							object.position.z = -500;
-							object.position.x = -2060;
-							object.scale.set(0.025, 0.025, 0.025);
-							object.rotateY(- Math.PI / 2)
-							that.addObject( object );
-						}, null, null );
-				});
+			// new MTLLoader(manager)
+			// 	.setPath( '../static/model/obj/' )
+			// 	.load( '璐у弶.mtl', function ( materials ) {
+			// 		materials.preload();
+			// 		new OBJLoader( manager )
+			// 			.setMaterials( materials )
+			// 			.setPath( '../static/model/obj/' )
+			// 			.load( '璐у弶.obj', function ( object ) {
+			// 				object.position.z = -480;
+			// 				object.position.x = -1735;
+			// 				object.scale.set(0.03, 0.03, 0.03);
+			// 				object.rotateY(- Math.PI / 2)
+			// 				that.addObject( object );
+			// 			}, null, null );
+			// 	});
+			// new MTLLoader(manager)
+			// 	.setPath( '../static/model/obj/' )
+			// 	.load( '杞借揣鍙�.mtl', function ( materials ) {
+			// 		materials.preload();
+			// 		new OBJLoader( manager )
+			// 			.setMaterials( materials )
+			// 			.setPath( '../static/model/obj/' )
+			// 			.load( '杞借揣鍙�.obj', function ( object ) {
+			// 				object.position.z = -480;
+			// 				object.position.x = -1735;
+			// 				object.scale.set(0.03, 0.03, 0.03);
+			// 				object.rotateY(- Math.PI / 2)
+			// 				that.addObject( object );
+			// 			}, null, null );
+			// 	});
+			// new MTLLoader(manager)
+			// 	.setPath( '../static/model/obj/' )
+			// 	.load( '鍫嗗灈鏈烘湰浣�.mtl', function ( materials ) {
+			// 		materials.preload();
+			// 		new OBJLoader( manager )
+			// 			.setMaterials( materials )
+			// 			.setPath( '../static/model/obj/' )
+			// 			.load( '鍫嗗灈鏈烘湰浣�.obj', function ( object ) {
+			// 				object.position.z = -480;
+			// 				object.position.x = -1735;
+			// 				// object.position.z = 0;
+			// 				// object.position.x = 0;
+			// 				// object.position.y = 0;
+			// 				object.scale.set(0.03, 0.03, 0.03);
+			// 				object.rotateY(- Math.PI / 2)
+			// 				that.addObject( object );
+			// 			}, null, null );
+			// 	});
 		}
-		this.modelMove = function () {
+		this.initModelMove = function () {
+			console.log(this.crnTasks)
+			// for (var wrkMast of this.wrkTasks) {
+			// 	this.crnBody = getArrVal(this.objects, "name", wrkMast.crnNo + "-body");
+			// 	// 鍙栬揣鐐瑰畾浣�
+			// 	let sourceLocPosition = getBinPosition(wrkMast.sourceLocNo);
+			// 	let points = [new THREE.Vector3(this.crnBody.position.x, this.crnBody.position.y, this.crnBody.position.z), sourceLocPosition];
+			// 	this.curve = new Route(points);
+			// }
 
+		}
+		this.crnMove = function (object) {
+			for (let crnTask of this.crnTasks) {
+				crnTask.move();
+			}
 		}
 	},
-
 
 };
 

--
Gitblit v1.9.1