| | |
| | | import {MTLLoader} from './lib/MTLLoader.js'; |
| | | import {OBJLoader} from './lib/OBJLoader.js'; |
| | | import {StoreShelf} from './object/StoreShelf.js'; |
| | | import {StoreCrn} from './object/StoreCrn.js'; |
| | | |
| | | var APP = { |
| | | |
| | |
| | | this.stats.begin(); |
| | | this.renderer.render(this.scene, this.camera); |
| | | this.stats.end(); |
| | | // this.queryTask(); |
| | | this.queryCrn(); |
| | | // this.modelMove(); |
| | | this.crnMove(); |
| | | } |
| | | this.initScene = function () { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //显示仓库区域 |
| | | // 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.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.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 = -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.initModelMove = function () { |
| | | console.log(this.crnTasks) |
| | |
| | | // 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.crnMove = function (object) { |
| | | for (let crnTask of this.crnTasks) { |