xulisong 6 лет назад
Родитель
Сommit
33da87db28

+ 23 - 22
MBI/SAGA.GplotRelationComputerManage/SpaceRelation/ComputerSpaceItem.cs

@@ -29,14 +29,14 @@ namespace SAGA.GplotRelationComputerManage
             this.Space = space;
             this.BimId = space.GetBimId();
             var mySegments = space.GetBoundarySegments(new SpatialElementBoundaryOptions());
-            OriginCurves = new List<Curve>();
-            var seg = mySegments.FirstOrDefault();
-            if (seg != null)
-            {
-                this.OriginCurves = seg.Select(s => s.GetCurve()).ToList();
+            //OriginCurves = new List<Curve>();
+            //var seg = mySegments.FirstOrDefault();
+            //if (seg != null)
+            //{
+            //    this.OriginCurves = seg.Select(s => s.GetCurve()).ToList();
             
-            }
-            this.ZeroCurves = TransfomCurvesToZero(OriginCurves);
+            //}
+            //this.ZeroCurves = TransfomCurvesToZero(OriginCurves);
             Annular = InitAnnular(mySegments);
 
         }
@@ -46,7 +46,7 @@ namespace SAGA.GplotRelationComputerManage
         /// <summary>
         /// 轮廓环形
         /// </summary>
-        public Annular Annular { get; set; }
+        public Annular Annular { get;private set; }
 
         private Annular InitAnnular(IList<IList<BoundarySegment>> segmentsList)
         {
@@ -106,14 +106,14 @@ namespace SAGA.GplotRelationComputerManage
         /// 空间功能类型
         /// </summary>
         public string FuncType { get; set; }
-        /// <summary>
-        /// 原始边框
-        /// </summary>
-        public List<Curve> OriginCurves { get; set; }
-        /// <summary>
-        /// 投影边框
-        /// </summary>
-        public List<Curve> ZeroCurves { get; set; }
+        ///// <summary>
+        ///// 原始边框
+        ///// </summary>
+        //public List<Curve> OriginCurves { get; set; }
+        ///// <summary>
+        ///// 投影边框
+        ///// </summary>
+        //public List<Curve> ZeroCurves { get; set; }
         /// <summary>
         /// 标志是否被处理
         /// </summary>
@@ -126,18 +126,19 @@ namespace SAGA.GplotRelationComputerManage
         {
             get
             {
+                if (Annular == null)
+                {
+                    return new Outline(XYZ.Zero, XYZ.Zero);
+                }
                 if (m_Box == null)
                 {
                     List<double> listX = new List<double>();
                     List<double> listY = new List<double>();
-                    ZeroCurves.ForEach(c =>
-                    {
-                        var listXYZ = new List<XYZ>(c.Tessellate());
-                        listXYZ.ForEach(xyz =>
-                        {
+                    Annular.OutPolygon.Points.ToList().ForEach(xyz =>
+                         {
+                      
                             listX.Add(xyz.X);
                             listY.Add(xyz.Y);
-                        });
                     });
                     var tupleX = GetMaxMin(listX);
                     var tupleY = GetMaxMin(listY);

+ 5 - 4
MBI/SAGA.GplotRelationComputerManage/SpaceRelation/FloorSpaceItems.cs

@@ -571,16 +571,17 @@ namespace SAGA.GplotRelationComputerManage
         /// <returns></returns>
         public AdjanceElementType JudgeUpAdjancentSpace(ComputerSpaceItem aFSpace, ComputerSpaceItem bSpace)
         {
-            AdjanceElementType result = AdjanceElementType.None;         
-            if (!aFSpace.Box.Intersects(bSpace.Box, 0))
+            AdjanceElementType result = AdjanceElementType.None;
+
+            if (aFSpace.Annular == null || bSpace.Annular == null)
             {
                 return result;
             }
-
-            if (aFSpace.Annular == null || bSpace.Annular == null)
+            if (!aFSpace.Box.Intersects(bSpace.Box, 0))
             {
                 return result;
             }
+
             //if (ClosedIntersect(aFSpace.ZeroCurves, bSpace.ZeroCurves))
             if (PolygonUtil.IsIntersection(aFSpace.Annular, bSpace.Annular))
             {