| | |
| | | import {StoreShelf} from './object/StoreShelf.js'; |
| | | import {StoreCrn} from './object/StoreCrn.js'; |
| | | import {StoreConvey} from './object/StoreConvey.js'; |
| | | |
| | | |
| | | import {StoreGoods} from './object/StoreGoods.js'; |
| | | import {StaTask} from './object/StaTask.js'; |
| | | |
| | | var APP = { |
| | | |
| | |
| | | this.firstTime = 1; |
| | | this.stats = null; |
| | | this.outlinePass = null; |
| | | this.goodTypes=[];//存储所有的库位类型 |
| | | this.crnTasks = [];// 堆垛机列表 |
| | | this.staTasks = [];// 输送线列表 |
| | | this.moveForward = false;//是否向前运行 |
| | | this.moveBackward = false;//是否向后运行 |
| | | this.moveLeft = false;//是否向左运行 |
| | |
| | | this.stats.end(); |
| | | this.queryCrn(); |
| | | this.crnMove(); |
| | | this.querySta(); |
| | | } |
| | | this.initScene = function () { |
| | | this.scene = new THREE.Scene(); |
| | |
| | | // this.renderer.toneMapping = THREE.CineonToneMapping; // 色调 |
| | | this.renderer.setSize(window.innerWidth, window.innerHeight); |
| | | this.renderer.setPixelRatio( window.devicePixelRatio ); |
| | | this.renderer.shadowMap.enabled = true; |
| | | // this.renderer.shadowMap.enabled = true; // 是否开启阴影 |
| | | this.renderer.shadowMap.type = THREE.BasicShadowMap; |
| | | this.dom = document.getElementById("container"); |
| | | this.dom.appendChild(this.renderer.domElement); |
| | |
| | | // 阴影聚光灯 |
| | | let pointLight = new THREE.SpotLight(0xFFFAFA,1); |
| | | pointLight.position.set(0, 1500, 2500); |
| | | pointLight.castShadow = true; |
| | | // pointLight.castShadow = true; // 是否开启阴影 |
| | | pointLight.shadow.camera.near = 2000; |
| | | pointLight.shadow.camera.far = 10000; |
| | | pointLight.shadow.mapSize.height = 200000; |
| | |
| | | this.scene.background = new THREE.Color( 0x333333 ); |
| | | } else { |
| | | const cubeTextureLoader = new THREE.CubeTextureLoader(); |
| | | cubeTextureLoader.setPath( '../static/img/skybox0/' ); |
| | | cubeTextureLoader.setPath( '../static/img/skybox/' ); |
| | | this.scene.background = cubeTextureLoader.load([ |
| | | "px.jpg", "nx.jpg", |
| | | "py.jpg", "ny.jpg", |
| | |
| | | this.composer.addPass( this.fxaaPass ); |
| | | } |
| | | this.initObjectSelect = function(){ |
| | | new ObjectSelect(this.scene, this.camera, this.outlinePass); |
| | | new ObjectSelect(this.scene, this.camera, this.outlinePass, this); |
| | | } |
| | | this.initPointLockControl = function(object){ |
| | | this.controls = new PointerLockControls( this.camera, document.body ); |
| | |
| | | this.initStoreObjects = function (object) { |
| | | if (this.firstTime === 1) { |
| | | if (Store3DData !== undefined && Store3DData !== null) { |
| | | for(var group of Store3DData.data.store.groups) { |
| | | for(let group of Store3DData.data.store.groups) { |
| | | new StoreCrn(group.crn, object); |
| | | for (var line of group.lines) { |
| | | for (let 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); |
| | | // } |
| | | // } |
| | | |
| | | object.addObject(shelf.mesh); |
| | | if (line.bins !== null) { |
| | | new StoreGoods(object, line.bins, shelf); |
| | | } |
| | | } |
| | | } |
| | | 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; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | this.crnMove = function (object) { |
| | | this.crnMove = function () { |
| | | for (let crnTask of this.crnTasks) { |
| | | crnTask.move(); |
| | | } |
| | | } |
| | | this.querySta = function () { |
| | | if (StaDatas !== null && this.firstTime === 0) { |
| | | for (let staData of StaDatas) { |
| | | let staTask = getArrVal(this.staTasks, "no", staData.no); |
| | | if (null == staTask) { |
| | | this.staTasks.push(new StaTask(staData, this)); |
| | | } else { |
| | | if(!staTask.run && !staTask.isDel) { |
| | | staTask.modify(staData); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 功能方法区 |
| | | this.changeStats = function () { |