| import {MTLLoader} from "../lib/MTLLoader.js"; | 
| import {OBJLoader} from "../lib/OBJLoader.js"; | 
|   | 
| const xOffset = -1735; | 
| const yOffset = -289; | 
| const zOffset = -480; | 
|   | 
| const xOffset0 = -1735; | 
| const yOffset0 = -117; | 
| const zOffset0 = -480; | 
|   | 
| const xOffset1 = -1735; | 
| const yOffset1 = -116; | 
| const zOffset1 = -475; | 
|   | 
| function StoreCrn(option, object) { | 
|     let that = this; | 
|     this.crnBodyLength = option.crnBody.length||50;//库位长度 | 
|     this.crnBodyWidth = option.crnBody.width||50;//库位宽 | 
|     this.crnBodyHeight = option.crnBody.height||500;//库位高 | 
|     this.crnLoadLength = option.crnLoad.length||60;//库位长度 | 
|     this.crnLoadWidth = option.crnLoad.width||60;//库位宽 | 
|     this.crnLoadHeight = option.crnLoad.height||40;//库位高 | 
|     this.crnForkLength = option.crnFork.length||50;//库位长度 | 
|     this.crnForkWidth = option.crnFork.width||20;//库位宽 | 
|     this.crnForkHeight = option.crnFork.height||30;//库位高 | 
|   | 
|     const manager = new THREE.LoadingManager(); | 
|     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 ( obj ) { | 
|                     obj.traverse (function (child) { | 
|                         child.castShadow = true; | 
|                         // child.receiveShadow = true; | 
|                         if (child instanceof THREE.Mesh) { | 
|                             child.material = new THREE.MeshLambertMaterial({ | 
|                                 color: 0xCD6839 | 
|                             }); | 
|                         } | 
|                     }); | 
|   | 
|                     obj.scale.set(0.03, 0.03, 0.03); | 
|                     obj.rotateY(- Math.PI / 2); | 
|                     obj.name = option.crnNo + "-body"; | 
|                     obj.position.x = option.crnBody.position.x + xOffset; | 
|                     obj.position.y = option.crnBody.position.y + that.crnBodyHeight/2 + yOffset; | 
|                     obj.position.z = option.crnBody.position.z - that.crnBodyWidth/2 + zOffset; | 
|                     obj.userData['crnBodyLength'] = that.crnBodyLength; | 
|                     obj.userData['crnBodyWidth'] = that.crnBodyWidth; | 
|                     obj.userData['crnBodyHeight'] = that.crnBodyHeight; | 
|                     object.addObject( obj ); | 
|                 }, 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 ( obj ) { | 
|                     obj.traverse (function (child) { | 
|                         if (child instanceof THREE.Mesh) { | 
|                             child.castShadow = true; | 
|                             // child.receiveShadow = true; | 
|                             child.material = new THREE.MeshLambertMaterial({ | 
|                                 color: 0xD2691E | 
|                             }); | 
|                         } | 
|                     }); | 
|   | 
|                     obj.scale.set(0.03, 0.03, 0.03); | 
|                     obj.rotateY(- Math.PI / 2); | 
|                     obj.name = option.crnNo + "-load"; | 
|                     obj.position.x = option.crnLoad.position.x + xOffset0; | 
|                     obj.position.y = option.crnLoad.position.y + that.crnLoadHeight/2 + yOffset0; | 
|                     obj.position.z = option.crnLoad.position.z - that.crnLoadWidth/2 + 5 + zOffset0; | 
|                     obj.userData['crnLoadLength'] = that.crnLoadLength; | 
|                     obj.userData['crnLoadWidth'] = that.crnLoadWidth; | 
|                     obj.userData['crnLoadHeight'] = that.crnLoadHeight; | 
|                     object.addObject( obj ); | 
|                 }, 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 ( obj ) { | 
|                     obj.traverse (function (child) { | 
|                         if (child instanceof THREE.Mesh) { | 
|                             child.castShadow = true; | 
|                             // child.receiveShadow = true; | 
|                             child.material = new THREE.MeshLambertMaterial({ | 
|                                 color: 0x363636 | 
|                             }); | 
|                         } | 
|                     }); | 
|   | 
|                     obj.scale.set(0.03, 0.03, 0.03); | 
|                     obj.rotateY(- Math.PI / 2); | 
|                     obj.name = option.crnNo + "-fork"; | 
|                     obj.position.x = option.crnFork.position.x + xOffset1; | 
|                     obj.position.y = option.crnFork.position.y + that.crnLoadHeight/2 + yOffset1; | 
|                     obj.position.z = option.crnFork.position.z - that.crnLoadWidth/2 + zOffset1; | 
|                     obj.userData['crnForkLength'] = that.crnForkLength; | 
|                     obj.userData['crnForkWidth'] = that.crnForkWidth; | 
|                     obj.userData['crnForkHeight'] = that.crnForkHeight; | 
|                     object.addObject( obj ); | 
|                 }, null, null ); | 
|         }); | 
|   | 
| } | 
|   | 
| export {StoreCrn} |