26 #ifndef _BOARD_POINT_H_
27 #define _BOARD_POINT_H_
64 Point(
double x,
double y ):x(x),y(y) { }
72 inline void get(
double &
x,
double &
y )
const;
159 inline double norm()
const;
177 operator-(
const Point & a,
const Point & b )
179 return Point( a.x - b.x, a.y - b.y );
183 operator*(
const Point & a,
const Point & b )
185 return a.x * b.x + a.y * b.y;
189 operator*(
const Point & p,
double s )
191 return Point( p.x * s, p.y * s );
195 operator*(
double s,
const Point & p )
197 return Point( s * p.x, s * p.y );
201 operator/(
const Point & p,
double s )
203 return Point( p.x / s, p.y / s );
239 operator==(
const Point & a,
const Point & b )
241 return ( a.
x == b.
x ) && ( a.
y == b.
y ) ;
245 operator!=(
const Point & a,
const Point & b )
247 return ( a.x != b.x ) || ( a.y != b.y ) ;
263 return Point(*this).rotate( angle );
278 return Point(*this).rotate( angle, center );
284 return sqrt(
x*
x +
y*
y );
295 operator<<( std::ostream & out,
const Point & p )
297 return out <<
"Point(" << p.
x <<
"," << p.
y <<
")";
Point operator-() const
Definition: Point.h:288
Point & rotate(double angle)
Definition: Point.h:251
Point(const Point &other)
Definition: Point.h:56
Struct representing a 2D point.
Definition: Point.h:38
Point(double x, double y)
Definition: Point.h:64
Point rotated(double angle) const
Definition: Point.h:261
double x
Definition: Point.h:39
Point & operator+=(const Point &other)
Definition: Point.h:207
Point & operator*=(double s)
Definition: Point.h:223
double norm() const
Definition: Point.h:282
Point & operator-=(const Point &other)
Definition: Point.h:215
Point & operator/=(double s)
Definition: Point.h:231
double y
Definition: Point.h:40
Point()
Definition: Point.h:48
void get(double &x, double &y) const
Definition: Point.h:164