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