1/* 2 * Copyright 2001-2009, Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _POINT_H 6#define _POINT_H 7 8 9#include <SupportDefs.h> 10 11 12class BRect; 13 14 15class BPoint { 16public: 17 float x; 18 float y; 19 20 BPoint(); 21 BPoint(float x, float y); 22 BPoint(const BPoint& p); 23 24 BPoint& operator=(const BPoint& other); 25 void Set(float x, float y); 26 27 void ConstrainTo(BRect rect); 28 void PrintToStream() const; 29 30 BPoint operator-() const; 31 BPoint operator+(const BPoint& other) const; 32 BPoint operator-(const BPoint& other) const; 33 BPoint& operator+=(const BPoint& other); 34 BPoint& operator-=(const BPoint& other); 35 36 bool operator!=(const BPoint& other) const; 37 bool operator==(const BPoint& other) const; 38}; 39 40 41extern const BPoint B_ORIGIN; 42 // returns (0, 0) 43 44 45inline 46BPoint::BPoint() 47 : 48 x(0.0f), 49 y(0.0f) 50{ 51} 52 53 54inline 55BPoint::BPoint(float x, float y) 56 : 57 x(x), 58 y(y) 59{ 60} 61 62 63inline 64BPoint::BPoint(const BPoint& other) 65 : 66 x(other.x), 67 y(other.y) 68{ 69} 70 71 72inline BPoint& 73BPoint::operator=(const BPoint& other) 74{ 75 x = other.x; 76 y = other.y; 77 return *this; 78} 79 80 81inline void 82BPoint::Set(float x, float y) 83{ 84 this->x = x; 85 this->y = y; 86} 87 88#endif // _POINT_H 89