xref: /haiku/src/servers/app/IntPoint.h (revision 3cb015b1ee509d69c643506e8ff573808c86dcfc)
1 /*
2  * Copyright 2001-2006, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  *
5  * Authors:
6  *		Frans van Nispen
7  *		Stephan Aßmus <superstippi@gmx.de>
8  */
9 
10 #ifndef	INT_POINT_H
11 #define	INT_POINT_H
12 
13 #include <Point.h>
14 
15 class IntRect;
16 
17 class IntPoint {
18  public:
19 			int32				x;
20 			int32				y;
21 
22 								IntPoint();
23 								IntPoint(int32 X, int32 Y);
24 								IntPoint(const IntPoint& p);
25 								IntPoint(const BPoint& p);
26 
27 			IntPoint&			operator=(const IntPoint& p);
28 			void				Set(int32 x, int32 y);
29 
30 			void				ConstrainTo(const IntRect& r);
31 			void				PrintToStream() const;
32 
33 			IntPoint			operator+(const IntPoint& p) const;
34 			IntPoint			operator-(const IntPoint& p) const;
35 			IntPoint&			operator+=(const IntPoint& p);
36 			IntPoint&			operator-=(const IntPoint& p);
37 
38 			bool				operator!=(const IntPoint& p) const;
39 			bool				operator==(const IntPoint& p) const;
40 
41 			// conversion to BPoint
42 								operator BPoint() const
43 									{ return BPoint((float)x, (float)y); }
44 };
45 
46 
47 inline
48 IntPoint::IntPoint()
49 	: x(0),
50 	  y(0)
51 {
52 }
53 
54 
55 inline
56 IntPoint::IntPoint(int32 x, int32 y)
57 	: x(x),
58 	  y(y)
59 {
60 }
61 
62 
63 inline
64 IntPoint::IntPoint(const IntPoint& p)
65 	: x(p.x),
66 	  y(p.y)
67 {
68 }
69 
70 
71 inline
72 IntPoint::IntPoint(const BPoint& p)
73 	: x((int32)p.x),
74 	  y((int32)p.y)
75 {
76 }
77 
78 
79 inline IntPoint&
80 IntPoint::operator=(const IntPoint& from)
81 {
82 	x = from.x;
83 	y = from.y;
84 	return *this;
85 }
86 
87 
88 inline void
89 IntPoint::Set(int32 x, int32 y)
90 {
91 	this->x = x;
92 	this->y = y;
93 }
94 
95 #endif	// INT_POINT_H
96