From 6140ccf86919eff697c4757ec2cc153e233033b1 Mon Sep 17 00:00:00 2001 From: liteng <930372551@qq.com> Date: Thu, 14 Feb 2019 19:41:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E8=B4=9D=E5=A1=9E=E5=B0=94?= =?UTF-8?q?=E6=9B=B2=E7=BA=BF=E5=8F=82=E6=95=B0=E4=BC=98=E5=8C=96=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../line/QuadraticBezierCurveComponent.js | 30 ++++++++++--------- .../src/object/line/QuadraticBezierCurve.js | 14 +++++---- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/ShadowEditor.Web/src/component/line/QuadraticBezierCurveComponent.js b/ShadowEditor.Web/src/component/line/QuadraticBezierCurveComponent.js index a5996367..0e1dc9a9 100644 --- a/ShadowEditor.Web/src/component/line/QuadraticBezierCurveComponent.js +++ b/ShadowEditor.Web/src/component/line/QuadraticBezierCurveComponent.js @@ -135,15 +135,17 @@ QuadraticBezierCurveComponent.prototype.updateUI = function () { var v2y = UI.get('v2y', this.id); var v2z = UI.get('v2z', this.id); - v0x.setValue(this.selected.userData.v0.x); - v0y.setValue(this.selected.userData.v0.y); - v0z.setValue(this.selected.userData.v0.z); - v1x.setValue(this.selected.userData.v1.x); - v1y.setValue(this.selected.userData.v1.y); - v1z.setValue(this.selected.userData.v1.z); - v2x.setValue(this.selected.userData.v2.x); - v2y.setValue(this.selected.userData.v2.y); - v2z.setValue(this.selected.userData.v2.z); + var points = this.selected.userData.points; + + v0x.setValue(points[0].x); + v0y.setValue(points[0].y); + v0z.setValue(points[0].z); + v1x.setValue(points[1].x); + v1y.setValue(points[1].y); + v1z.setValue(points[1].z); + v2x.setValue(points[2].x); + v2y.setValue(points[2].y); + v2z.setValue(points[2].z); }; QuadraticBezierCurveComponent.prototype.onChange = function () { @@ -157,11 +159,11 @@ QuadraticBezierCurveComponent.prototype.onChange = function () { var v2y = UI.get('v2y', this.id); var v2z = UI.get('v2z', this.id); - Object.assign(this.selected.userData, { - v0: new THREE.Vector3(v0x.getValue(), v0y.getValue(), v0z.getValue()), - v1: new THREE.Vector3(v1x.getValue(), v1y.getValue(), v1z.getValue()), - v2: new THREE.Vector3(v2x.getValue(), v2y.getValue(), v2z.getValue()), - }); + this.selected.userData.points = [ + new THREE.Vector3(v0x.getValue(), v0y.getValue(), v0z.getValue()), + new THREE.Vector3(v1x.getValue(), v1y.getValue(), v1z.getValue()), + new THREE.Vector3(v2x.getValue(), v2y.getValue(), v2z.getValue()) + ]; this.selected.update(); diff --git a/ShadowEditor.Web/src/object/line/QuadraticBezierCurve.js b/ShadowEditor.Web/src/object/line/QuadraticBezierCurve.js index 3de0f27d..24f76485 100644 --- a/ShadowEditor.Web/src/object/line/QuadraticBezierCurve.js +++ b/ShadowEditor.Web/src/object/line/QuadraticBezierCurve.js @@ -21,9 +21,11 @@ function QuadraticBezierCurve(options = {}) { Object.assign(this.userData, { type: 'QuadraticBezierCurve', - v0: new THREE.Vector3(-10, 0, 0), - v1: new THREE.Vector3(20, 15, 0), - v2: new THREE.Vector3(10, 0, 0) + points: options.points || [ + new THREE.Vector3(-10, 0, 0), + new THREE.Vector3(20, 15, 0), + new THREE.Vector3(10, 0, 0) + ] }); this.update(); @@ -34,9 +36,9 @@ QuadraticBezierCurve.prototype.constructor = QuadraticBezierCurve; QuadraticBezierCurve.prototype.update = function () { var curve = new THREE.QuadraticBezierCurve3( - this.userData.v0, - this.userData.v1, - this.userData.v2 + this.userData.points[0], + this.userData.points[1], + this.userData.points[2] ); var position = this.geometry.attributes.position;