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 | 166 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 128 insertions(+), 38 deletions(-) diff --git a/static/js/app.js b/static/js/app.js index efbbbda..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,16 +33,17 @@ 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.queryTask(); + this.queryCrn(); + // this.modelMove(); + this.crnMove(); } this.initScene = function () { this.scene = new THREE.Scene(); @@ -58,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); @@ -75,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 ); @@ -104,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); @@ -124,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(); @@ -134,7 +156,7 @@ "posy.jpg", "negy.jpg", "posz.jpg", "negz.jpg" ]); - // this.scene.background = new THREE.Color( 0xf0f0f0 ); + this.scene.background = new THREE.Color( 0xf0f0f0 ); } this.removeObject = function (nameorid) { for (let i = 0; i < this.objects.length; i++) { @@ -159,7 +181,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 +189,38 @@ } 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) { + 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); + // } + // } + } } + + + + + + + + + @@ -225,7 +262,32 @@ // // } // } - this.firstTime = 0; + // 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); + } + } } } } @@ -274,6 +336,9 @@ .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 ); @@ -304,20 +369,45 @@ .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 ); }); } - 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.initStoreData = function () { - + 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.crnMove = function (object) { + for (let crnTask of this.crnTasks) { + crnTask.move(); + } } }, - }; -- Gitblit v1.9.1