From e5dd4a8a584bbb2a7f22605ea413d530eb165dd6 Mon Sep 17 00:00:00 2001 From: DYH <1742647821@qq.com> Date: Sat, 15 Apr 2023 14:47:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E6=93=8D=E4=BD=9C=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E9=87=8C=E8=87=AA=E5=8A=A8=E5=88=87=E6=8D=A2=E8=AF=BB?= =?UTF-8?q?=E5=86=99=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExtensionMethod/Entity/EntityEx.cs | 39 ++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityEx.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityEx.cs index 9186a1c..d0de5ca 100644 --- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityEx.cs +++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityEx.cs @@ -6,7 +6,7 @@ /// public static class EntityEx { - + #region 实体线性变换 @@ -18,7 +18,10 @@ public static class EntityEx /// 目标点 public static void Move(this Entity ent, Point3d from, Point3d to) { - ent.TransformBy(Matrix3d.Displacement(to - from)); + using (ent.ForWrite()) + { + ent.TransformBy(Matrix3d.Displacement(to - from)); + } } /// @@ -29,7 +32,10 @@ public static void Move(this Entity ent, Point3d from, Point3d to) /// 缩放比例 public static void Scale(this Entity ent, Point3d center, double scaleValue) { - ent.TransformBy(Matrix3d.Scaling(scaleValue, center)); + using (ent.ForWrite()) + { + ent.TransformBy(Matrix3d.Scaling(scaleValue, center)); + } } /// @@ -41,7 +47,10 @@ public static void Scale(this Entity ent, Point3d center, double scaleValue) /// 旋转平面的法向矢量 public static void Rotation(this Entity ent, Point3d center, double angle, Vector3d normal) { - ent.TransformBy(Matrix3d.Rotation(angle, normal, center)); + using (ent.ForWrite()) + { + ent.TransformBy(Matrix3d.Rotation(angle, normal, center)); + } } /// @@ -52,7 +61,10 @@ public static void Rotation(this Entity ent, Point3d center, double angle, Vecto /// 转角,弧度制,正数为顺时针 public static void Rotation(this Entity ent, Point3d center, double angle) { - ent.TransformBy(Matrix3d.Rotation(angle, Vector3d.ZAxis.TransformBy(ent.Ecs), center)); + using (ent.ForWrite()) + { + ent.TransformBy(Matrix3d.Rotation(angle, Vector3d.ZAxis.TransformBy(ent.Ecs), center)); + } } /// @@ -63,7 +75,10 @@ public static void Rotation(this Entity ent, Point3d center, double angle) /// 对称轴终点 public static void Mirror(this Entity ent, Point3d startPoint, Point3d endPoint) { - ent.TransformBy(Matrix3d.Mirroring(new Line3d(startPoint, endPoint))); + using (ent.ForWrite()) + { + ent.TransformBy(Matrix3d.Mirroring(new Line3d(startPoint, endPoint))); + } } /// @@ -73,7 +88,10 @@ public static void Mirror(this Entity ent, Point3d startPoint, Point3d endPoint) /// 对称平面 public static void Mirror(this Entity ent, Plane plane) { - ent.TransformBy(Matrix3d.Mirroring(plane)); + using (ent.ForWrite()) + { + ent.TransformBy(Matrix3d.Mirroring(plane)); + } } /// @@ -83,7 +101,10 @@ public static void Mirror(this Entity ent, Plane plane) /// 对称点 public static void Mirror(this Entity ent, Point3d basePoint) { - ent.TransformBy(Matrix3d.Mirroring(basePoint)); + using (ent.ForWrite()) + { + ent.TransformBy(Matrix3d.Mirroring(basePoint)); + } } #endregion @@ -106,7 +127,7 @@ public static Extents3d GetExtents(this IEnumerable ents) } #endregion - + /// /// 获取图元包围盒 -- Gitee