From b964aee331c311b8030da7920d05e0eb634c5881 Mon Sep 17 00:00:00 2001 From: Ps <376313736@qq.com> Date: Tue, 15 Aug 2023 16:24:46 +0800 Subject: [PATCH] =?UTF-8?q?BoundingInfo=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExtensionMethod/Entity/BoundingInfo.cs | 12 ++++++++---- .../ExtensionMethod/Entity/EntityBoundingInfo.cs | 3 +-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/BoundingInfo.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/BoundingInfo.cs index bf10c2e..146cd90 100644 --- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/BoundingInfo.cs +++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/BoundingInfo.cs @@ -90,19 +90,23 @@ public struct BoundingInfo #endregion /// - /// 高 + /// 高 y增量 /// - public readonly double Height => Math.Abs(MaxX - MinX); + public readonly double Height => MaxY > MinY ? MaxY - MinY : 0; /// - /// 宽 + /// 宽 x增量 /// - public readonly double Width => Math.Abs(MaxY - MinY); + public readonly double Width => MaxX > MinX ? MaxX - MinX : 0; /// /// 面积 /// public readonly double Area => Height * Width; + /// + /// 是否有效 + /// + public readonly bool IsEffective => MinX <= MaxX; /// /// 3D包围盒 diff --git a/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityBoundingInfo.cs b/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityBoundingInfo.cs index 43c4f31..53628f3 100644 --- a/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityBoundingInfo.cs +++ b/src/CAD/IFox.CAD.Shared/ExtensionMethod/Entity/EntityBoundingInfo.cs @@ -98,7 +98,6 @@ static void GetBlockBox(this Entity en, ref Extents3d ext, ref Matrix3d mat) if (block.BlockTableRecord.GetObject() is BlockTableRecord btr) foreach (ObjectId id in btr) { - id.GetObject(); if (id.GetObject() is Entity ent1) { if (ent1.Visible != true) @@ -233,7 +232,7 @@ public static Point3d[] GetMTextBoxCorners(this MText mtext) { if (ent is BlockReference block) { - Extents3d blockExt = default; + Extents3d blockExt = new Extents3d(); var mat = Matrix3d.Identity; block!.GetBlockBox(ref blockExt, ref mat); if (blockExt.IsEmptyExt()) -- Gitee