Files @ e2a1895cae7c
Branch filter:

Location: seniordesign-ui/GMap.NET.Core/GMap.NET/GSize.cs - annotation

mkanning@CL-ENS241-10.cedarville.edu
dynamic COM ports!
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619
65c134a3d619

namespace GMap.NET
{
   using System.Globalization;

   /// <summary>
   /// the size
   /// </summary>
   public struct GSize
   {
      public static readonly GSize Empty = new GSize();

      private long width;
      private long height;

      public GSize(GPoint pt)
      {
         width = pt.X;
         height = pt.Y;
      }

      public GSize(long width, long height)
      {
         this.width = width;
         this.height = height;
      }

      public static GSize operator +(GSize sz1, GSize sz2)
      {
         return Add(sz1, sz2);
      }

      public static GSize operator -(GSize sz1, GSize sz2)
      {
         return Subtract(sz1, sz2);
      }

      public static bool operator ==(GSize sz1, GSize sz2)
      {
         return sz1.Width == sz2.Width && sz1.Height == sz2.Height;
      }

      public static bool operator !=(GSize sz1, GSize sz2)
      {
         return !(sz1 == sz2);
      }

      public static explicit operator GPoint(GSize size)
      {
         return new GPoint(size.Width, size.Height);
      }

      public bool IsEmpty
      {
         get
         {
            return width == 0 && height == 0;
         }
      }

      public long Width
      {
         get
         {
            return width;
         }
         set
         {
            width = value;
         }
      }

      public long Height
      {
         get
         {
            return height;
         }
         set
         {
            height = value;
         }
      }

      public static GSize Add(GSize sz1, GSize sz2)
      {
         return new GSize(sz1.Width + sz2.Width, sz1.Height + sz2.Height);
      }

      public static GSize Subtract(GSize sz1, GSize sz2)
      {
         return new GSize(sz1.Width - sz2.Width, sz1.Height - sz2.Height);
      }

      public override bool Equals(object obj)
      {
         if(!(obj is GSize))
            return false;

         GSize comp = (GSize)obj;
         // Note value types can't have derived classes, so we don't need to
         //
         return (comp.width == this.width) &&
                   (comp.height == this.height);
      }

      public override int GetHashCode()
      {
         if(this.IsEmpty)
         {
            return 0;
         }
         return (Width.GetHashCode() ^ Height.GetHashCode());
      }

      public override string ToString()
      {
         return "{Width=" + width.ToString(CultureInfo.CurrentCulture) + ", Height=" + height.ToString(CultureInfo.CurrentCulture) + "}";
      }
   }
}