From 76d1a595c4094b3066d82153f8de775b0ae7598c Mon Sep 17 00:00:00 2001 From: ChenX Date: Mon, 27 Dec 2021 10:14:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=E7=9F=A9=E9=98=B5=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Add-on/MoveAxis.ts | 4 ++-- src/Editor/TranstrolControl/ParsePlacePos.ts | 6 ++---- src/Editor/TranstrolControl/TransformServices.ts | 7 ++----- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/Add-on/MoveAxis.ts b/src/Add-on/MoveAxis.ts index 91266b1fe..938f38518 100644 --- a/src/Add-on/MoveAxis.ts +++ b/src/Add-on/MoveAxis.ts @@ -23,7 +23,7 @@ export class MoveX implements Command let x = new Vector3().setFromMatrixColumn(ents[0].OCSNoClone, 0); let pos = ents[0].Position; - let cloneEnts = ents.map(e => { let clone = JigUtils.Draw(e); e.DrawObject.visible = false; return clone; }); + let jigEnts = ents.map(e => { let clone = JigUtils.Draw(e); e.DrawObject.visible = false; return clone; }); let xscale = x.clone().multiplyScalar(1e6); let jigLine = new Line(pos.clone().add(xscale), pos.clone().sub(xscale)); @@ -66,7 +66,7 @@ export class MoveX implements Command for (let i = 0; i < ents.length; i++) { let pree = ents[i]; - let e = cloneEnts[i]; + let e = jigEnts[i]; e.OCSNoClone.copy(pree.OCSNoClone); e.ApplyMatrix(moveMtx); } diff --git a/src/Editor/TranstrolControl/ParsePlacePos.ts b/src/Editor/TranstrolControl/ParsePlacePos.ts index de7e6200e..674785609 100644 --- a/src/Editor/TranstrolControl/ParsePlacePos.ts +++ b/src/Editor/TranstrolControl/ParsePlacePos.ts @@ -80,8 +80,7 @@ export class ParsePlacePos mtx.setPosition(moveVector); } - this._Entity.OCSNoClone.copy(mtx); - this._Entity.Update(UpdateDraw.Matrix); + this._Entity.ApplyMatrix(this._Entity.OCSInv.premultiply(mtx)); } else //在不平的平面上 { @@ -173,8 +172,7 @@ export class ParsePlacePos mtx.setPosition(moveVector); } - this._Entity.OCSNoClone.copy(mtx); - this._Entity.Update(UpdateDraw.Matrix); + this._Entity.ApplyMatrix(this._Entity.OCSInv.premultiply(mtx)); } private GetRayObjects() diff --git a/src/Editor/TranstrolControl/TransformServices.ts b/src/Editor/TranstrolControl/TransformServices.ts index 572914b14..68f9c7b1f 100644 --- a/src/Editor/TranstrolControl/TransformServices.ts +++ b/src/Editor/TranstrolControl/TransformServices.ts @@ -7,7 +7,6 @@ import { DisposeThreeObj } from '../../Common/Dispose'; import { InputState } from '../../Common/InputState'; import { KeyCode, MouseKey } from '../../Common/KeyEnum'; import { MakeRotateMatrix4, MakeScaleMatrix, matrixScale } from '../../Common/Matrix4Utils'; -import { UpdateDraw } from '../../Common/Status'; import { BlockTableRecord } from '../../DatabaseServices/BlockTableRecord'; import { CommandHistoryRecord } from '../../DatabaseServices/CommandHistoryRecord'; import { Curve } from '../../DatabaseServices/Entity/Curve'; @@ -465,16 +464,14 @@ export class TransformServicess implements EditorService { let pree = this._Ents[0]; let e = pree.Clone(); - e.OCSNoClone.copy(jigEns[0].OCSNoClone); - e.Update(UpdateDraw.Matrix); + e.ApplyMatrix(e.OCSInv.premultiply(jigEns[0].OCSNoClone)); let btr = pree.Owner.Object as BlockTableRecord; btr.Append(e); } else { this._Ents[0].WriteAllObjectRecord(); - this._Ents[0].OCSNoClone.copy(jigEns[0].OCSNoClone); - this._Ents[0].Update(UpdateDraw.Matrix); + this._Ents[0].ApplyMatrix(this._Ents[0].OCSInv.premultiply(jigEns[0].OCSNoClone)); } }