From 173a8c329ac743625ba958ff8e5462e67308110b Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 18 三月 2022 13:11:29 +0800
Subject: [PATCH] #
---
static/js/object/StoreConvey.js | 216 ++++++++++++++++++++++++++---------------------------
1 files changed, 106 insertions(+), 110 deletions(-)
diff --git a/static/js/object/StoreConvey.js b/static/js/object/StoreConvey.js
index 1a61301..5228fab 100644
--- a/static/js/object/StoreConvey.js
+++ b/static/js/object/StoreConvey.js
@@ -1,126 +1,122 @@
import {MTLLoader} from "../lib/MTLLoader.js";
import {OBJLoader} from "../lib/OBJLoader.js";
-import {Color} from "../three.module.js";
+import * as THREE from '../three.module.js';
-const xOffset = -1658;
-const yOffset = -553;
-const zOffset = -1800;
+function StoreConvey(object, data) {
+ let that = this;
+ that.data = null;
+ that.object = null;
-const xOffset0 = -1407;
-const yOffset0 = 0;
-const zOffset0 = 490;
+ let chainList = [];
+ let rollerList = [];
+ let transportList = [];
-function StoreConvey(object) {
+ 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();
- const manager = new THREE.LoadingManager();
-
- let chain = 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 ) {
- chain = obj;
- chain.scale.set(0.03, 0.03, 0.025);
- chain.rotateY( -Math.PI / 2);
- chain.traverse (function (child) {
- if (child instanceof THREE.Mesh) {
- child.material = new THREE.MeshLambertMaterial({
- color: 0xF5F5F5
- });
- }
+ this.load = function () {
+ new THREE.ObjectLoader().load( "../static/model/json/chainConvey.json", function (obj) {
+ obj.traverse (function (child) {
+ if (child instanceof THREE.Mesh) {
+ child.scale.set(1, 1, 1.6);
+ child.material = new THREE.MeshPhysicalMaterial({
+ color: 0x444444
});
-
- for (let i = 0; i<24; i++) {
- let clone = chain.clone();
- // roller.name = option.crnNo + "-body";
- let offset = 0;
- if (i % 2 === 0) {
- offset = 90;
- }
- clone.position.x = xOffset0 + 56 + offset + Math.floor(i/2)*230;
- console.log(clone.position.x)
- clone.position.y = yOffset0;
- clone.position.z = zOffset0 + 39;
- object.addObject( clone );
+ if (child.name === "Box034" || child.name === "Box035") {
+ child.material = new THREE.MeshPhysicalMaterial({
+ color: 0x1C1C1C
+ });
}
+ child.castShadow = true;
+ // child.receiveShadow = true;
+ }
+ });
- for (let i = 0; i<24; i++) {
- let clone = chain.clone();
- // roller.name = option.crnNo + "-body";
- let offset = 0;
- if (i % 2 === 0) {
- offset = 90;
- }
- clone.position.x = xOffset0 + 56 + offset + Math.floor(i/2)*230;
- console.log(clone.position.x)
- clone.position.y = yOffset0;
- clone.position.z = zOffset0 + 39 + 82;
- object.addObject( clone );
- }
-
- for (let i = 0; i<24; i++) {
- var clone = chain.clone();
- // roller.name = option.crnNo + "-body";
- let offset = 0;
- if (i % 2 === 0) {
- offset = 90;
- }
- clone.position.x = xOffset0 + 56 + offset + Math.floor(i/2)*230;
- console.log(clone.position.x)
- clone.position.y = yOffset0 + 310;
- clone.position.z = zOffset0 + 39;
- object.addObject( clone );
- }
-
- for (let i = 0; i<24; i++) {
- let clone = chain.clone();
- // roller.name = option.crnNo + "-body";
- let offset = 0;
- if (i % 2 === 0) {
- offset = 90;
- }
- clone.position.x = xOffset0 + 56 + offset + Math.floor(i/2)*230;
- console.log(clone.position.x)
- clone.position.y = yOffset0 + 310;
- clone.position.z = zOffset0 + 39 + 82;
- object.addObject( clone );
- }
-
- }, null, null );
+ chainList.map(item => {
+ that.object.addObject(customize(obj.clone(), item));
+ })
});
-
- let roller = null;
- new MTLLoader(manager)
- .setPath( '../static/model/obj/' )
- .load( '123.mtl', function ( materials ) {
- materials.preload();
- new OBJLoader( manager )
- .setMaterials( materials )
- .setPath( '../static/model/obj/' )
- .load( '123.obj', function ( obj ) {
- roller = obj;
- roller.traverse (function (child) {
- if (child instanceof THREE.Mesh) {
- child.material = new THREE.MeshLambertMaterial({
- color: 0xCD6839
- });
- }
+ new THREE.ObjectLoader().load( "../static/model/json/rollerConvey.json", function (obj) {
+ obj.traverse (function (child) {
+ if (child instanceof THREE.Mesh) {
+ child.scale.set(0.5, 1, 1);
+ child.material = new THREE.MeshPhysicalMaterial({
+ color: 0x444444
});
+ child.castShadow = true;
+ // child.receiveShadow = true;
+ }
+ });
+ rollerList.map(item => {
+ that.object.addObject(customize(obj.clone(), item));
+ })
+ });
+ new THREE.ObjectLoader().load( "../static/model/json/transportConvey.json", function (obj) {
+ obj.traverse (function (child) {
+ if (child instanceof THREE.Mesh) {
+ child.scale.set(1, 1, 1);
+ child.material = new THREE.MeshPhysicalMaterial({
+ color: 0x444444
+ });
+ }
+ });
+ transportList.map(item => {
+ that.object.addObject(customize(obj.clone(), item));
+ })
+ });
+ }
- roller.scale.set(1000, 1000, 1000);
- roller.rotateY(- Math.PI / 2);
- // roller.name = option.crnNo + "-body";
- roller.position.x = xOffset;
- roller.position.y = yOffset;
- roller.position.z = zOffset;
- // object.addObject( roller );
+ 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;
- }, null, null );
- });
+ 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;
+ }
}
--
Gitblit v1.9.1