From cc6d5f5fb6bbb23e88a95752a6e5265323d1c7d9 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期五, 17 十二月 2021 09:00:03 +0800 Subject: [PATCH] # --- static/js/app.js | 252 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 185 insertions(+), 67 deletions(-) diff --git a/static/js/app.js b/static/js/app.js index 70f8577..d21848e 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -14,6 +14,10 @@ this.firstTime = 1; this.stats = null; this.goodTypes=[];//瀛樺偍鎵�鏈夌殑搴撲綅绫诲瀷 + this.wrkTasks = [];// 浠诲姟鍒楄〃 + this.crnTasks = [];// 鍫嗗灈鏈哄垪琛� + this.time = 0;//鏍囪鍫嗗灈鏈鸿繍琛岀殑鏃堕棿 + this.progress = 0; this.start = function () { this.initMain(); @@ -29,13 +33,17 @@ this.initLight(); this.initFloor(); this.initModel(); + 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.queryTask(); + this.queryCrn(); + // this.modelMove(); + this.crnMove(); } this.initScene = function () { this.scene = new THREE.Scene(); @@ -55,7 +63,7 @@ // this.camera.position.z = 600; // //鐩告満鐨勬湞鍚� // this.camera.lookAt(0, 0, 0); - this.camera.position.set( - 550, 670, 950 ); + this.camera.position.set( - 350, 1070, 1550 ); this.camera.lookAt( this.scene.position ); //灏嗙浉鏈烘斁鍒板満鏅腑 this.scene.add(this.camera); @@ -72,12 +80,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 ); @@ -101,12 +126,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); @@ -121,7 +146,7 @@ } this.initStats = function () { this.stats = new Stats(); - this.dom.appendChild( this.stats.dom ); + // this.dom.appendChild( this.stats.dom ); } this.initBackground = function () { const cubeTextureLoader = new THREE.CubeTextureLoader(); @@ -156,11 +181,124 @@ // 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; this.addObject( helper ); + } + 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); + //鏄剧ず搴撲綅涓婄殑璐х墿 + // 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); + // } + // } + + } + } + + + + + + + + + + + + + + //鏄剧ず浠撳簱鍖哄煙 + // 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.queryTask = function () { + if (TaskDatas !== null) { + for (let TaskData of TaskDatas) { + let wrkTask = getArrVal(this.wrkTasks, "wrkNo", TaskData.wrkNo); + if (null == wrkTask) { + this.wrkTasks.push(TaskData); + } + } + } + } + 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); + } + } + } + } + } + this.getExistedGoodType=function(state){ + for (let i=0;i<this.goodTypes.length;i++) { + let type=this.goodTypes[i]; + if(type.type===state) { + return type.object; + } + } + return null; } this.initModel = function () { let that = this; @@ -197,12 +335,15 @@ .setPath( '../static/model/obj/' ) .load( '璐у弶.obj', function ( object ) { object.position.z = -500; - object.position.x = -1560; + 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 ) { @@ -212,7 +353,7 @@ .setPath( '../static/model/obj/' ) .load( '杞借揣鍙�.obj', function ( object ) { object.position.z = -500; - object.position.x = -1560; + object.position.x = -2060; object.scale.set(0.025, 0.025, 0.025); object.rotateY(- Math.PI / 2) that.addObject( object ); @@ -227,69 +368,46 @@ .setPath( '../static/model/obj/' ) .load( '鍫嗗灈鏈烘湰浣�.obj', function ( object ) { object.position.z = -500; - object.position.x = -1560; + 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 ); }); } - this.initStoreObjects = function (object) { - if (this.firstTime === 1) { - if (Store3DData !== null) { - //鏄剧ず浠撳簱鍖哄煙 - 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.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.modelMove = function () { + if (this.curve) { + this.progress += 0.001; + if (this.progress>1.0) { + this.curve = null; + } else { + let point = this.curve.getPoint(this.progress); + if(point&&point.x){ + this.crnBody.position.set(point.x,point.y,point.z); } - this.firstTime = 0; } } } - this.getExistedGoodType=function(state){ - for (let i=0;i<this.goodTypes.length;i++) { - let type=this.goodTypes[i]; - if(type.type===state) { - return type.object; - } + this.crnMove = function (object) { + for (let crnTask of this.crnTasks) { + crnTask.move(); } - return null; - } }, - }; -- Gitblit v1.9.1