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}