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(); } }