source: Include/Classes/System/Drawing/Point.ab@ 166

Last change on this file since 166 was 166, checked in by イグトランス (egtra), 17 years ago

GetHashCodeを実装

File size: 3.0 KB
Line 
1' Classes/System/Drawing/Point.ab
2
3#ifndef __SYSTEM_DRAWING_POINT_AB__
4#define __SYSTEM_DRAWING_POINT_AB__
5
6#include <Classes/System/Drawing/PointF.ab>
7#include <Classes/System/Drawing/Size.ab>
8#include <Classes/System/Drawing/SizeF.ab>
9
10Class Point
11Public
12 Sub Point()
13 x = 0
14 y = 0
15 End Sub
16
17 Sub Point(initX As Long, initY As Long)
18 x = initX
19 y = initY
20 End Sub
21
22 Sub Point(ByRef pt As Point)
23 x = pt.x
24 y = pt.y
25 End Sub
26
27 Sub Point(ByRef sz As Size)
28 x = sz.Width
29 y = sz.Height
30 End Sub
31
32 Sub Point(dw As DWord)
33 x = LOWORD(dw)
34 y = HIWORD(dw)
35 End Sub
36
37 Function X() As Long
38 Return x
39 End Function
40
41 Sub X(newX As Long)
42 x = newX
43 End Sub
44
45 Function Y() As Long
46 Return y
47 End Function
48
49 Sub Y(newY As Long)
50 y = newY
51 End Sub
52
53 Function IsEmpty() As Boolean
54 If x = 0 And y = 0 Then
55 Return _System_TRUE
56 Else
57 Return _System_FALSE
58 End If
59 End Function
60
61 Sub Operator = (ByRef pt As Point)
62 x = pt.x
63 y = pt.y
64 End Sub
65
66 Function Operator + (pt As Point) As Point
67 Return Add(This, pt)
68 End Function
69
70 Function Operator + (sz As Size) As Point
71 Return Add(This, sz)
72 End Function
73
74 Function Operator - (pt As Point) As Point
75 Return Substract(This, pt)
76 End Function
77
78 Function Operator - (sz As Size) As Point
79 Return Substract(This, sz)
80 End Function
81
82 Function Operator == (sz As Point) As Boolean
83 Return Equals(sz)
84 End Function
85
86 Function Operator <> (sz As Point) As Boolean
87 Return Not Equals(sz)
88 End Function
89
90 Static Function Add(pt1 As Point, pt2 As Point) As Point
91 Dim ret As Point(pt1.x + pt2.x, pt1.y + pt2.y)
92 Return ret
93 End Function
94
95 Static Function Add(pt As Point, sz As Size) As Point
96 Dim ret As Point(pt.x + sz.Width, pt.y + sz.Height)
97 Return ret
98 End Function
99
100 Function Offset(pt As Point) As Point
101 Dim ret As Point(x + pt.x, y + pt.y)
102 Return ret
103 End Function
104
105 Sub Offset(dx As Long, dy As Long)
106 x += dx
107 y += dy
108 End Sub
109
110 Static Function Substract(pt1 As Point, pt2 As Point) As Point
111 Dim ret As Point(pt1.x - pt2.x, pt1.y - pt2.y)
112 Return ret
113 End Function
114
115 Static Function Substract(pt As Point, sz As Size) As Point
116 Dim ret As Point(pt.x - sz.Width, pt.y - sz.Height)
117 Return ret
118 End Function
119
120 Function Equals(pt As Point) As Boolean
121 If x = pt.x And y = pt.y Then
122 Equals = _System_TRUE
123 Else
124 Equals = _System_FALSE
125 End If
126 End Function
127
128 Override Function GetHashCode() As Long
129 Return x Xor _System_BSwap(y As DWord)
130 End Function
131
132 Static Function Ceiling(ptf As PointF) As Point
133 Dim pt As Size(Math.Ceiling(ptf.width), Math.Ceiling(ptf.height))
134 Return pt
135 End Function
136
137 Static Function Round(ptf As PointF) As Point
138 Dim pt As Point(Math.Round(ptf.width), Math.Round(ptf.height))
139 Return pt
140 End Function
141
142 Static Function Truncate(ptf As PointF) As Point
143 Dim pt As Point(Math.Truncate(ptf.width), Math.Truncate(ptf.height))
144 Return pt
145 End Function
146
147Private
148 x As Long
149 y As Long
150End Class
151
152#endif '__SYSTEM_DRAWING_POINT_AB__
Note: See TracBrowser for help on using the repository browser.