From 978aa05175a89b195b7af5c5641a2b93511932df Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 25 十二月 2021 10:34:49 +0800
Subject: [PATCH] #
---
static/js/object/StoreConvey.js | 121 +++++++++++++++++++++++++++-------------
1 files changed, 81 insertions(+), 40 deletions(-)
diff --git a/static/js/object/StoreConvey.js b/static/js/object/StoreConvey.js
index 2548bce..908cd44 100644
--- a/static/js/object/StoreConvey.js
+++ b/static/js/object/StoreConvey.js
@@ -2,55 +2,96 @@
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;
- }
+ }
+ });
+ 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));
+ })
+ });
}
- 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;
+ 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;
}
}
--
Gitblit v1.9.1