Beispiel #1
0
        // 20111014
        public Extent2D GetExtent()
        {
            Extent2D result = Extent2D.Null;

            points.ForEach(p => result.AddPoint(p));
            return(result);
        }
Beispiel #2
0
        public static double CoincidenceEvaluation(Extent2D ext1, Extent2D ext2) // newly 20130402
        {
            double dist    = ext1.Center.DistTo(ext2.Center);
            double minArea = Math.Min(ext1.Area, ext2.Area);

            return(dist * dist / minArea);
        }
Beispiel #3
0
        public bool IsCrossedBy(Extent2D extents)
        {
            //Point2D p1 = new Point2D(min.x, max.y);
            //Point2D p2 = new Point2D(max.x, min.y);
            //return extents.IsPointIn(p1) || extents.IsPointIn(p2) || extents.IsPointIn(min) || extents.IsPointIn(max) || IsExtentsIn(extents) || extents.IsExtentsIn(this);

            Extent2D sum = this + extents;

            return((sum.XRange <= this.XRange + extents.XRange) && (sum.YRange <= this.YRange + extents.YRange));
        }
Beispiel #4
0
 // 20111014
 public void Add(Extent2D ext)
 {
     if (this.IsNull)
     {
         min    = ext.min;
         max    = ext.max;
         IsNull = ext.IsNull;
     }
     else
     {
         if (ext.IsNull)
         {
             return;
         }
         min = new Point2D(Math.Min(min.X, ext.min.X), Math.Min(min.Y, ext.min.Y));
         max = new Point2D(Math.Max(max.X, ext.max.X), Math.Max(max.Y, ext.max.Y));
     }
 }
Beispiel #5
0
 public bool IsCoveredBy(Extent2D extents) // newly 20130328
 {
     return(extents.min.X >= min.X && extents.min.Y >= min.Y && extents.max.X <= max.X && extents.max.Y <= max.Y);
 }
Beispiel #6
0
 public bool IsExtentsIn(Extent2D extents)
 {
     return(extents.min.X >= min.X && extents.min.Y >= min.Y && extents.max.X <= max.X && extents.max.Y <= max.Y);
 }