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.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(0.5, 1, 1); child.material = new THREE.MeshLambertMaterial({ color: 0x8B8378 }); } }); 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); child.material = new THREE.MeshLambertMaterial({ color: 0x8B8378 }); } }); transportList.map(item => { that.object.addObject(customize(obj.clone(), item)); }) }); } function customize(clone, info) { let positionX = info.position.x || 0; let positionY = info.position.y || 0; let positionZ = info.position.z || 0; let rotateY = info.rotateY || 0; clone.position.x = 0 + positionX; clone.position.y = 0 + positionY; clone.position.z = 0 + positionZ; clone.rotateY(rotateY); if (info.traverse !== undefined) { let traverse = info.traverse; clone.traverse (function (child) { if (child instanceof THREE.Mesh) { // 拉伸 if (traverse.scale !== undefined) { let scaleX = traverse.scale.x || 1; let scaleY = traverse.scale.y || 1; let scaleZ = traverse.scale.z || 1; child.scale.set(scaleX, scaleY, scaleZ); } // 颜色 if (traverse.color !== undefined) { child.material = new THREE.MeshLambertMaterial({ color: traverse.color }); } } }); } return clone; } } export {StoreConvey}