From 1d91186a6cc9a4241cea01ee8d30a8b093a1d82d Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期四, 16 十二月 2021 13:49:00 +0800 Subject: [PATCH] # --- static/js/object/CrnTask.js | 128 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 113 insertions(+), 15 deletions(-) diff --git a/static/js/object/CrnTask.js b/static/js/object/CrnTask.js index ed48490..d42e511 100644 --- a/static/js/object/CrnTask.js +++ b/static/js/object/CrnTask.js @@ -22,6 +22,10 @@ that.forkPos = -1; that.crnBody = null; + that.crnLoad = null; + that.crnFork = null; + + let curves = []; that.curve = null; that.progress = 0; @@ -35,7 +39,9 @@ that.position = crnData.position; that.forkPos = crnData.forkPos; - that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body") + that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body"); + that.crnLoad = getArrVal(object.objects, "name", that.crnNo + "-load"); + that.crnFork = getArrVal(object.objects, "name", that.crnNo + "-fork"); }; init(); @@ -46,6 +52,7 @@ if (JSON.stringify(crnData.position) === JSON.stringify(that.position)) { return; } + that.run = true; // 涓婁竴娆� that.preBay = that.bay; that.preLev = that.lev; @@ -62,26 +69,117 @@ that.z = crnData.position.z; that.position = crnData.position; that.forkPos = crnData.forkPos; + // create Route ------------------------------------------------ - that.curve = new Route([that.prePosition, that.position]); // body + + // 鍫嗗灈鏈哄弶鐗� 浼稿弶 + if (that.prePosition.x !== that.position.x) { + curves.push({ + start: false, + progress: 0, + part: 'fork', + route: new Route([ + { + x: that.prePosition.x, + y: that.crnFork.position.y, + z: that.crnFork.position.z + }, + { + x: that.position.x, + y: that.crnFork.position.y, + z: that.crnFork.position.z + } + ]) + }) + } + + // 鍫嗗灈鏈鸿浇璐у彴鍜屽弶鐗� 绉诲姩 + if (that.prePosition.z !== that.position.z || that.prePosition.y !== that.position.y) { + curves.push({ + start: false, + progress: 0, + part: 'load', + route: new Route([ + { + x: that.crnLoad.position.x, + y: that.prePosition.y, + z: that.prePosition.z + }, + { + x: that.crnLoad.position.x, + y: that.position.y, + z: that.position.z + } + ]) + }) + } + + // 鍫嗗灈鏈烘湰浣撹繍鍔ㄨ建杩� + if (that.prePosition.z !== that.position.z && false) { + curves.push({ + start: false, + progress: 0, + part: 'body', + route: new Route([ + { + x: that.crnBody.position.x, + y: that.crnBody.position.y, + z: that.prePosition.z + }, + { + x: that.crnBody.position.x, + y: that.crnBody.position.y, + z: that.position.z + } + ]) + }) + } + curves[0].start = true; + + console.log(curves); // new Route(); // load - // console.log(bodyRoute); - console.log("pre" + JSON.stringify(that.prePosition)); - console.log(JSON.stringify(that.position)); - that.run = true; + // console.log(that.curve); + // console.log("pre" + JSON.stringify(that.prePosition)); + // console.log(JSON.stringify(that.position)); + } } - that.move = function (object) { - if (that.curve) { - that.progress += 0.001; - if (that.progress>1.0) { - that.curve = null; - } else { - let point = that.curve.getPoint(that.progress); - if(point && point.x){ - that.crnBody.position.set(point.x,point.y,point.z); + that.move = function () { + if (curves.length > 0) { + for (let i = 0; i < curves.length ; i++) { + if (curves[i].start) { + curves[i].progress += 0.01; + if (curves[i].progress > 1.0) { + curves[i].start = false; + if (i !== curves.length - 1) { + curves[i+1].start = true; + } else { + curves = []; + that.run = false; + } + } else { + let point = curves[i].route.getPoint(curves[i].progress); + console.log(point) + if ( point && point.x ) { + switch (curves[i].part) { + case 'body': + that.crnBody.position.set(point.x, point.y, point.z); + break + case 'load': + that.crnBody.position.z = point.z; + that.crnLoad.position.set(point.x, point.y, point.z); + that.crnFork.position.set(point.x, point.y, point.z); + break + case 'fork': + that.crnFork.position.set(point.x, point.y, point.z); + break + default: + break + } + } + } } } } -- Gitblit v1.9.1