Go to the documentation of this file.
77 inline void get(
double &
x,
double &
y)
const;
206 inline double norm()
const;
234 inline bool isInf()
const;
236 static Point Infinity;
246 Point mid(
const Point & a,
const Point & b,
double t);
248 bool orthogonal(
const Point & a,
const Point & b);
268 inline Point operator-(
const Point & a,
const Point & b)
270 return Point(a.x - b.x, a.y - b.y);
273 inline double operator*(
const Point & a,
const Point & b)
275 return a.x * b.x + a.y * b.y;
278 inline Point operator*(
const Point & p,
double s)
280 return Point(p.x * s, p.y * s);
283 inline Point operator*(
double s,
const Point & p)
285 return Point(s * p.x, s * p.y);
288 inline Point operator/(
const Point & p,
double s)
290 return Point(p.x / s, p.y / s);
321 inline bool operator==(
const Point & a,
const Point & b)
323 #pragma clang diagnostic push
324 #pragma clang diagnostic ignored "-Wfloat-equal"
325 return (a.
x == b.
x) && (a.
y == b.
y);
326 #pragma clang diagnostic pop
329 inline bool operator!=(
const Point & a,
const Point & b)
331 #pragma clang diagnostic push
332 #pragma clang diagnostic ignored "-Wfloat-equal"
333 return (a.x != b.x) || (a.y != b.y);
334 #pragma clang diagnostic push
337 inline bool almostEqual(
const Point & a,
const Point & b)
339 return Tools::almostEqual((a - b).norm(), 0.0);
353 return Point(*this).rotate(angle);
366 return Point(*this).rotate(angle, center);
395 return Point(*this).scale(sx, sy);
400 return std::hypot(
x,
y);
405 return (*
this) /
norm();
418 return std::atan2(
y,
x);
423 return (*
this) == Point::Infinity;
433 std::ostream & operator<<(std::ostream & out,
const LibBoard::Point &);
435 std::ostream & operator<<(std::ostream & out,
const std::vector<LibBoard::Point> &);
437 #endif // BOARD_POINT_H
Point & operator/=(double s)
Definition: Point.h:314
Point operator-() const
Definition: Point.h:426
void get(double &x, double &y) const
Definition: Point.h:257
Point normalised() const
Definition: Point.h:403
Point(const Point &other)
Definition: Point.h:55
Point & scale(double sx, double sy)
Definition: Point.h:386
Point & rotate(double angle)
Definition: Point.h:342
double argument() const
Definition: Point.h:416
Point & operator=(const Point &other)
Definition: Point.h:250
Point(double x, double y)
Definition: Point.h:69
double x
Definition: Point.h:43
Struct representing a 2D point.
Definition: Point.h:42
Point & operator+=(const Point &other)
Definition: Point.h:293
Point rotatedPI2() const
Definition: Point.h:369
Point & translate(double dx, double dy)
Definition: Point.h:374
Point scaled(double sx, double sy)
Definition: Point.h:393
Point & operator-=(const Point &other)
Definition: Point.h:300
Point & normalise()
Definition: Point.h:408
bool isInf() const
Definition: Point.h:421
Point translated(double dx, double dy) const
Definition: Point.h:381
Point & operator*=(double s)
Definition: Point.h:307
double norm() const
Definition: Point.h:398
Point()
Definition: Point.h:49
Point rotated(double angle) const
Definition: Point.h:351
double y
Definition: Point.h:44