From 241e843aab85dd1c3f8eae5dc29102efb4dc05a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B8=89?= <940119273@qq.com> Date: Tue, 8 Aug 2023 02:14:04 +0000 Subject: [PATCH] =?UTF-8?q?!2348=20=E4=BC=98=E5=8C=96:=E7=BF=BB=E8=BD=AC?= =?UTF-8?q?=E6=9B=B2=E7=BA=BF=E7=9F=A9=E9=98=B5=E5=91=BD=E4=BB=A4=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Common/CommandFlipZMatrix.ts | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/Common/CommandFlipZMatrix.ts b/src/Common/CommandFlipZMatrix.ts index 47849ffc1..ed97e21fa 100644 --- a/src/Common/CommandFlipZMatrix.ts +++ b/src/Common/CommandFlipZMatrix.ts @@ -13,25 +13,28 @@ export class Command_FlipZMatrix implements Command { async exec() { - let enRes = await app.Editor.GetEntity({ Filter: { filterTypes: [Arc, Circle, Polyline, Line] } }); + let enRes = await app.Editor.GetSelection({ Filter: { filterTypes: [Arc, Circle, Polyline, Line] } }); if (enRes.Status !== PromptStatus.OK) return; - let pl = enRes.Entity as Curve; + let cus = enRes.SelectSet.SelectEntityList as Curve[]; let xAxis = new Vector3(); let yAxis = new Vector3(); let zAxis = new Vector3(); - pl.OCSNoClone.extractBasis(xAxis, yAxis, zAxis); - zAxis.multiplyScalar(-1); - let startPoint = pl.StartPoint; - let endPoint = pl.EndPoint; - - pl.WriteAllObjectRecord(); - pl.OCS = new Matrix4().makeBasis(xAxis, yAxis, zAxis).setPosition(pl.Position); - if (pl instanceof Line) + for (let cu of cus) { - pl.StartPoint = startPoint; - pl.EndPoint = endPoint; + cu.OCSNoClone.extractBasis(xAxis, yAxis, zAxis); + zAxis.multiplyScalar(-1); + let startPoint = cu.StartPoint; + let endPoint = cu.EndPoint; + + cu.WriteAllObjectRecord(); + cu.OCS = new Matrix4().makeBasis(xAxis, yAxis, zAxis).setPosition(cu.Position); + if (cu instanceof Line) + { + cu.StartPoint = startPoint; + cu.EndPoint = endPoint; + } + cu.Update(); } - pl.Update(); } }