|
|
|
@ -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);
|
|
|
|
|
for (let cu of cus)
|
|
|
|
|
{
|
|
|
|
|
cu.OCSNoClone.extractBasis(xAxis, yAxis, zAxis);
|
|
|
|
|
zAxis.multiplyScalar(-1);
|
|
|
|
|
let startPoint = pl.StartPoint;
|
|
|
|
|
let endPoint = pl.EndPoint;
|
|
|
|
|
let startPoint = cu.StartPoint;
|
|
|
|
|
let endPoint = cu.EndPoint;
|
|
|
|
|
|
|
|
|
|
pl.WriteAllObjectRecord();
|
|
|
|
|
pl.OCS = new Matrix4().makeBasis(xAxis, yAxis, zAxis).setPosition(pl.Position);
|
|
|
|
|
if (pl instanceof Line)
|
|
|
|
|
cu.WriteAllObjectRecord();
|
|
|
|
|
cu.OCS = new Matrix4().makeBasis(xAxis, yAxis, zAxis).setPosition(cu.Position);
|
|
|
|
|
if (cu instanceof Line)
|
|
|
|
|
{
|
|
|
|
|
pl.StartPoint = startPoint;
|
|
|
|
|
pl.EndPoint = endPoint;
|
|
|
|
|
cu.StartPoint = startPoint;
|
|
|
|
|
cu.EndPoint = endPoint;
|
|
|
|
|
}
|
|
|
|
|
cu.Update();
|
|
|
|
|
}
|
|
|
|
|
pl.Update();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|