#
whycq
2021-12-08 4336201eb607f90a0011efdfee3a3f5928f94e4b
static/js/app.js
@@ -29,6 +29,8 @@
         this.initLight();
         this.initFloor();
         this.initModel();
         // 取数据
         this.initStoreData();
      }
      this.animate = function () {
         requestAnimationFrame(this.animate.bind(this));
@@ -36,6 +38,7 @@
         this.renderer.render(this.scene, this.camera);
         this.stats.end();
         this.initStoreObjects(this);
         this.modelMove();
      }
      this.initScene = function () {
         this.scene = new THREE.Scene();
@@ -121,7 +124,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();
@@ -131,7 +134,7 @@
            "posy.jpg", "negy.jpg",
            "posz.jpg", "negz.jpg"
         ]);
         this.scene.background = new THREE.Color( 0xf0f0f0 );
         this.scene.background = new THREE.Color( 0x17c5dc );
      }
      this.removeObject = function (nameorid) {
         for (let i = 0; i < this.objects.length; i++) {
@@ -161,6 +164,79 @@
         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(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 (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.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 +273,12 @@
                  .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 );
                  }, null, null );
         });
            });
         new MTLLoader(manager)
            .setPath( '../static/model/obj/' )
            .load( '载货台.mtl', function ( materials ) {
@@ -212,7 +288,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,65 +303,17 @@
                  .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 );
                  }, 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.modelMove = function () {
                  }
               }
               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.initStoreData = function () {
      }
   },