#
luxiaotao1123
2021-12-25 6809123d3ed5cce20bfd8bebf150f606ddb5ed35
static/js/object/StoreConvey.js
@@ -2,57 +2,56 @@
import {OBJLoader} from "../lib/OBJLoader.js";
import * as THREE from '../three.module.js';
function StoreConvey(object) {
function StoreConvey(object, data) {
    let that = this;
    that.no = 0;
    that.objectType = null;
    that.position = null;
    that.data = null;
    that.object = null;
    let chainList = [];
    let rollerList = [];
    let transportList = [];
    let init = function () {
        that.no = object.no;
        that.objectType = object.objectType;
        that.position = object.position;
        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();
    that.create = function (scene) {
        switch (that.objectType) {
            case "chain":
                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
                            });
                        }
    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
                    });
                    obj.position.x = 0 + that.position.x;
                    obj.position.y = 0 + that.position.y;
                    obj.position.z = 0 + that.position.z;
                    scene.addObject( obj );
                    scene.conveyTypes.push({type: that.objectType, object: obj});
                } );
                break;
            case "roller":
                break;
            case "transport":
                break;
            default:
                break;
        }
                }
            });
            for (let k=0;k<chainList.length;k++) {
                let clone = obj.clone();
                clone.position.x = 0 + chainList[k].position.x;
                clone.position.y = 0 + chainList[k].position.y;
                clone.position.z = 0 + chainList[k].position.z;
                that.object.addObject( clone );
            }
        });
    }
    this.clone = function (param) {
        let goods=param.clone();
        goods.position.set(this.positionX,this.positionY,this.positionZ);
        goods.uuid=this.no;
        goods.name=this.name;
        goods.type="StoreGoods";
        return goods;
    }
}
export {StoreConvey}