-
Notifications
You must be signed in to change notification settings - Fork 4
/
PointF.cs
136 lines (100 loc) · 2.87 KB
/
PointF.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#if PocketPC
using System.Globalization;
using System;
using System.Drawing;
namespace GeoFramework
{
/// <summary>
/// Represents a coordinate with single precision.
/// </summary>
public struct PointF : IEquatable<PointF>, IFormattable
{
private float _x;
private float _y;
#region Fields
public static PointF Empty = new PointF(0, 0);
#endregion
#region Constructors
public PointF(float x, float y)
{
this._x = x;
this._y = y;
}
#endregion
#region Public Properties
public float X
{
get { return this._x; }
set { this._x = value; }
}
public float Y
{
get { return this._y; }
set { this._y = value; }
}
public bool IsEmpty
{
get { return this.Equals(PointF.Empty); }
}
#endregion
#region Public Methods
public Point ToPoint()
{
return new Point((int)_x, (int)_y);
}
#endregion
#region Static Methods
public static PointF FromSize(Size size)
{
return new PointF(size.Width, size.Height);
}
public static PointF FromSize(SizeF size)
{
return new PointF(size.Width, size.Height);
}
#endregion
#region Operators
public static bool operator ==(PointF left, PointF right)
{
return left.Equals(right);
}
public static bool operator !=(PointF left, PointF right)
{
return !left.Equals(right);
}
#endregion
#region Overrides
public override bool Equals(object obj)
{
if (obj is PointF)
return Equals((PointF)obj);
return false;
}
public override int GetHashCode()
{
return _x.GetHashCode() ^ _y.GetHashCode();
}
public override string ToString()
{
return ToString("G", CultureInfo.CurrentCulture);
}
#endregion
#region IEquatable<PointF> Members
public bool Equals(PointF other)
{
return _x.Equals(other.X)
&& _y.Equals(other.Y);
}
#endregion
#region IFormattable Members
public string ToString(string format, IFormatProvider formatProvider)
{
CultureInfo culture = (CultureInfo)formatProvider;
return _x.ToString(format, formatProvider)
+ culture.TextInfo.ListSeparator
+ " " + _y.ToString(format, formatProvider);
}
#endregion
}
}
#endif