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