import {MTLLoader} from "../lib/MTLLoader.js";
|
import {OBJLoader} from "../lib/OBJLoader.js";
|
import {Color} from "../three.module.js";
|
|
const xOffset = -1735;
|
const yOffset = -289;
|
const zOffset = -480;
|
|
const xOffset0 = -1735;
|
const yOffset0 = -108;
|
const zOffset0 = -480;
|
|
const xOffset1 = -1735;
|
const yOffset1 = -107;
|
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;//库位高
|
|
// 立柱
|
// var a = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnBodyLength, this.crnBodyHeight, this.crnBodyWidth), new THREE.MeshBasicMaterial({
|
// color: 0xff0000,
|
// transparent: true,
|
// opacity: .3
|
// }))
|
// a.name = option.crnNo + "-body";
|
// a.position.x = option.crnBody.position.x;
|
// a.position.y = option.crnBody.position.y + this.crnBodyHeight/2;
|
// a.position.z = option.crnBody.position.z - this.crnBodyWidth/2;
|
// object.addObject(a);
|
// 载货台
|
// var b = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnLoadLength, this.crnLoadHeight, this.crnLoadWidth), new THREE.MeshBasicMaterial({
|
// color: 0x00ff00,
|
// transparent: true,
|
// opacity: .5
|
// }))
|
// b.name = option.crnNo + "-load";
|
// b.position.x = option.crnLoad.position.x;
|
// b.position.y = option.crnLoad.position.y + this.crnLoadHeight/2;
|
// b.position.z = option.crnLoad.position.z - this.crnLoadWidth/2 + 5;
|
// object.addObject(b);
|
// 叉牙
|
// var c = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnForkLength, this.crnForkWidth, this.crnForkHeight), new THREE.MeshBasicMaterial({
|
// color: 0xff00ff,
|
// transparent: true,
|
// opacity: 1
|
// }))
|
// c.name = option.crnNo + "-fork";
|
// c.position.x = option.crnFork.position.x;
|
// c.position.y = option.crnFork.position.y + this.crnLoadHeight/2;
|
// c.position.z = option.crnFork.position.z - this.crnLoadWidth/2;
|
// object.addObject(c);
|
|
|
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) {
|
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;
|
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.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;
|
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.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;
|
object.addObject( obj );
|
}, null, null );
|
});
|
|
}
|
|
export {StoreCrn}
|