From ce49fdd43a76a380ed782e882280d7d1c32dee79 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 18 二月 2022 15:59:08 +0800
Subject: [PATCH] #
---
static/js/object/StoreCrn.js | 142 ++++++++++++++++++++++++++++++++++++----------
1 files changed, 110 insertions(+), 32 deletions(-)
diff --git a/static/js/object/StoreCrn.js b/static/js/object/StoreCrn.js
index e37d9eb..e0d70f9 100644
--- a/static/js/object/StoreCrn.js
+++ b/static/js/object/StoreCrn.js
@@ -1,44 +1,122 @@
+import {MTLLoader} from "../lib/MTLLoader.js";
+import {OBJLoader} from "../lib/OBJLoader.js";
+
+const xOffset = -1735;
+const yOffset = -289;
+const zOffset = -480;
+
+const xOffset0 = -1735;
+const yOffset0 = -117;
+const zOffset0 = -480;
+
+const xOffset1 = -1735;
+const yOffset1 = -116;
+const zOffset1 = -475;
+
function StoreCrn(option, object) {
- console.log(option);
+ let that = this;
this.crnBodyLength = option.crnBody.length||50;//搴撲綅闀垮害
this.crnBodyWidth = option.crnBody.width||50;//搴撲綅瀹�
this.crnBodyHeight = option.crnBody.height||500;//搴撲綅楂�
this.crnLoadLength = option.crnLoad.length||60;//搴撲綅闀垮害
this.crnLoadWidth = option.crnLoad.width||60;//搴撲綅瀹�
this.crnLoadHeight = option.crnLoad.height||40;//搴撲綅楂�
- this.crnForkLength = option.crnFork.length||80;//搴撲綅闀垮害
+ this.crnForkLength = option.crnFork.length||50;//搴撲綅闀垮害
this.crnForkWidth = option.crnFork.width||20;//搴撲綅瀹�
this.crnForkHeight = option.crnFork.height||30;//搴撲綅楂�
- // 绔嬫煴
- var a = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnBodyLength, this.crnBodyHeight, this.crnBodyWidth), new THREE.MeshBasicMaterial({
- color: 0xff0000,
- transparent: true,
- opacity: .3
- }))
- a.position.x = option.crnBody.position.x;
- a.position.y = option.crnBody.position.y + this.crnBodyHeight/2;
- a.position.z = option.crnBody.position.z - this.crnBodyWidth/2;
- object.addObject(a);
- // 杞借揣鍙�
- var b = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnLoadLength, this.crnLoadHeight, this.crnLoadWidth), new THREE.MeshBasicMaterial({
- color: 0x00ff00,
- transparent: true,
- opacity: .5
- }))
- b.position.x = option.crnLoad.position.x;
- b.position.y = option.crnLoad.position.y + this.crnLoadHeight/2;
- b.position.z = option.crnLoad.position.z - this.crnLoadWidth/2 + 5;
- object.addObject(b);
- // 鍙夌墮
- var c = new THREE.Mesh(new THREE.BoxBufferGeometry(this.crnForkLength, this.crnForkWidth, this.crnForkHeight), new THREE.MeshBasicMaterial({
- color: 0xff00ff,
- transparent: true,
- opacity: 1
- }))
- c.position.x = option.crnFork.position.x;
- c.position.y = option.crnFork.position.y + this.crnLoadHeight/2;
- c.position.z = option.crnFork.position.z - this.crnLoadWidth/2;
- object.addObject(c);
+ const manager = new THREE.LoadingManager();
+ 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 ) {
+ obj.traverse (function (child) {
+ child.castShadow = true;
+ // child.receiveShadow = true;
+ if (child instanceof THREE.Mesh) {
+ child.material = new THREE.MeshLambertMaterial({
+ color: 0xCD6839
+ });
+ }
+ });
+
+ obj.scale.set(0.03, 0.03, 0.03);
+ obj.rotateY(- Math.PI / 2);
+ obj.name = option.crnNo + "-body";
+ obj.position.x = option.crnBody.position.x + xOffset;
+ obj.position.y = option.crnBody.position.y + that.crnBodyHeight/2 + yOffset;
+ obj.position.z = option.crnBody.position.z - that.crnBodyWidth/2 + zOffset;
+ obj.userData['crnBodyLength'] = that.crnBodyLength;
+ obj.userData['crnBodyWidth'] = that.crnBodyWidth;
+ obj.userData['crnBodyHeight'] = that.crnBodyHeight;
+ object.addObject( obj );
+ }, null, 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 ) {
+ obj.traverse (function (child) {
+ if (child instanceof THREE.Mesh) {
+ child.castShadow = true;
+ // child.receiveShadow = true;
+ child.material = new THREE.MeshLambertMaterial({
+ color: 0xD2691E
+ });
+ }
+ });
+
+ obj.scale.set(0.03, 0.03, 0.03);
+ obj.rotateY(- Math.PI / 2);
+ obj.name = option.crnNo + "-load";
+ obj.position.x = option.crnLoad.position.x + xOffset0;
+ obj.position.y = option.crnLoad.position.y + that.crnLoadHeight/2 + yOffset0;
+ obj.position.z = option.crnLoad.position.z - that.crnLoadWidth/2 + 5 + zOffset0;
+ obj.userData['crnLoadLength'] = that.crnLoadLength;
+ obj.userData['crnLoadWidth'] = that.crnLoadWidth;
+ obj.userData['crnLoadHeight'] = that.crnLoadHeight;
+ object.addObject( obj );
+ }, null, 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 ) {
+ obj.traverse (function (child) {
+ if (child instanceof THREE.Mesh) {
+ child.castShadow = true;
+ // child.receiveShadow = true;
+ child.material = new THREE.MeshLambertMaterial({
+ color: 0x363636
+ });
+ }
+ });
+
+ obj.scale.set(0.03, 0.03, 0.03);
+ obj.rotateY(- Math.PI / 2);
+ obj.name = option.crnNo + "-fork";
+ obj.position.x = option.crnFork.position.x + xOffset1;
+ obj.position.y = option.crnFork.position.y + that.crnLoadHeight/2 + yOffset1;
+ obj.position.z = option.crnFork.position.z - that.crnLoadWidth/2 + zOffset1;
+ obj.userData['crnForkLength'] = that.crnForkLength;
+ obj.userData['crnForkWidth'] = that.crnForkWidth;
+ obj.userData['crnForkHeight'] = that.crnForkHeight;
+ object.addObject( obj );
+ }, null, null );
+ });
}
+
+export {StoreCrn}
--
Gitblit v1.9.1