26 #ifndef _BOARD_POINT_H_
27 #define _BOARD_POINT_H_
65 Point(
double x,
double y ):x(x),y(y) { }
73 inline void get(
double &
x,
double &
y )
const;
167 inline double norm()
const;
195 inline bool isInf()
const;
197 static Point Infinity;
215 operator-(
const Point & a,
const Point & b )
217 return Point( a.x - b.x, a.y - b.y );
221 operator*(
const Point & a,
const Point & b )
223 return a.x * b.x + a.y * b.y;
227 operator*(
const Point & p,
double s )
229 return Point( p.x * s, p.y * s );
233 operator*(
double s,
const Point & p )
235 return Point( s * p.x, s * p.y );
239 operator/(
const Point & p,
double s )
241 return Point( p.x / s, p.y / s );
277 operator==(
const Point & a,
const Point & b )
279 return ( a.
x == b.
x ) && ( a.
y == b.
y ) ;
283 operator!=(
const Point & a,
const Point & b )
285 return ( a.x != b.x ) || ( a.y != b.y ) ;
301 return Point(*this).rotate( angle );
316 return Point(*this).rotate( angle, center );
328 return std::sqrt(
x*
x +
y*
y );
334 return (*
this) /
norm();
349 return std::atan2(
y,
x );
355 return (*
this) == Point::Infinity;
367 std::ostream & operator<<( std::ostream & out,
const LibBoard::Point & p );
bool isInf() const
Definition: Point.h:353
Point operator-() const
Definition: Point.h:360
Point & rotate(double angle)
Definition: Point.h:289
Point(const Point &other)
Definition: Point.h:57
Point normalised() const
Definition: Point.h:332
Point rotatedPI2() const
Definition: Point.h:320
Struct representing a 2D point.
Definition: Point.h:39
Point(double x, double y)
Definition: Point.h:65
Point rotated(double angle) const
Definition: Point.h:299
double x
Definition: Point.h:40
Point & operator+=(const Point &other)
Definition: Point.h:245
double argument() const
Definition: Point.h:347
Point & operator*=(double s)
Definition: Point.h:261
double norm() const
Definition: Point.h:326
Point & operator-=(const Point &other)
Definition: Point.h:253
Point & operator/=(double s)
Definition: Point.h:269
double y
Definition: Point.h:41
Point & normalise()
Definition: Point.h:338
Point()
Definition: Point.h:49
void get(double &x, double &y) const
Definition: Point.h:202