import {MTLLoader} from "../lib/MTLLoader.js";
|
import {OBJLoader} from "../lib/OBJLoader.js";
|
import * as THREE from '../three.module.js';
|
|
function StoreConvey(object, data) {
|
let that = this;
|
that.data = null;
|
that.object = null;
|
|
let chainList = [];
|
let rollerList = [];
|
let transportList = [];
|
|
let init = function () {
|
that.data = data;
|
that.object = object;
|
for (let i=0;i<that.data.length;i++) {
|
let conveyObj = that.data[i];
|
switch (conveyObj.objectType) {
|
case "chain":
|
chainList.push(conveyObj);
|
break;
|
case "roller":
|
rollerList.push(conveyObj);
|
break;
|
case "transport":
|
transportList.push(conveyObj);
|
break;
|
default:
|
break;
|
}
|
}
|
};
|
init();
|
|
this.load = function () {
|
new THREE.ObjectLoader().load( "../static/model/json/链条输送机.json", function (obj) {
|
obj.traverse (function (child) {
|
if (child instanceof THREE.Mesh) {
|
child.scale.set(1, 1, 1.8);
|
child.material = new THREE.MeshLambertMaterial({
|
color: 0xAAAAAA
|
});
|
}
|
});
|
chainList.map(item => {
|
that.object.addObject(customize(obj.clone(), item));
|
})
|
});
|
new THREE.ObjectLoader().load( "../static/model/json/辊筒输送机.json", function (obj) {
|
obj.traverse (function (child) {
|
if (child instanceof THREE.Mesh) {
|
child.scale.set(1, 1, 1.8);
|
child.material = new THREE.MeshLambertMaterial({
|
color: 0xAAAAAA
|
});
|
}
|
});
|
rollerList.map(item => {
|
that.object.addObject(customize(obj.clone(), item));
|
})
|
});
|
new THREE.ObjectLoader().load( "../static/model/json/顶升移栽.json", function (obj) {
|
obj.traverse (function (child) {
|
if (child instanceof THREE.Mesh) {
|
child.scale.set(1, 1, 1.8);
|
child.material = new THREE.MeshLambertMaterial({
|
color: 0xAAAAAA
|
});
|
}
|
});
|
transportList.map(item => {
|
that.object.addObject(customize(obj.clone(), item));
|
})
|
});
|
}
|
|
function customize(clone, info) {
|
clone.position.x = 0 + info.position.x;
|
clone.position.y = 0 + info.position.y;
|
clone.position.z = 0 + info.position.z;
|
clone.rotateY(info.rotateY);
|
if (info.traverse !== undefined) {
|
let traverse = info.traverse;
|
clone.traverse (function (child) {
|
if (child instanceof THREE.Mesh) {
|
child.scale.set(traverse.scale.x, traverse.scale.y, traverse.scale.z);
|
child.material = new THREE.MeshLambertMaterial({
|
color: traverse.color
|
});
|
}
|
});
|
}
|
return clone;
|
}
|
|
}
|
|
export {StoreConvey}
|