77 inline void get(
double &
x,
double &
y)
const;
206 inline double norm()
const;
234 inline bool isInf()
const;
286 return a.
x * b.
x + a.
y * b.
y;
297 return Point(p.
x * s, p.
y * s);
308 return Point(s * p.
x, s * p.
y);
319 return Point(p.
x / s, p.
y / s);
330#pragma clang diagnostic push
331#pragma clang diagnostic ignored "-Wfloat-equal"
332 return (a.
x == b.
x) && (a.
y == b.
y);
333#pragma clang diagnostic pop
344#pragma clang diagnostic push
345#pragma clang diagnostic ignored "-Wfloat-equal"
346 return (a.
x != b.
x) || (a.
y != b.
y);
347#pragma clang diagnostic push
415 return Point(*this).rotate(angle);
428 return Point(*this).rotate(angle, center);
457 return Point(*this).scale(sx, sy);
462 return std::hypot(
x,
y);
467 return (*
this) /
norm();
480 return std::atan2(
y,
x);
497std::ostream &
operator<<(std::ostream & out,
const std::vector<LibBoard::Point> &);
std::ostream & operator<<(std::ostream &out, const LibBoard::Point &)
Definition Point.cpp:48
Path mix(const Path &a, const Path &b, double time)
Interpolate two paths according to a time (0 is a, 1 is b)
Definition Path.cpp:390
Point operator+(const Point &a, const Point &b)
Compute the sum of two vectors.
Definition Point.h:262
Point operator-(const Point &a, const Point &b)
Compute the difference between two vectors.
Definition Point.h:273
Point operator/(const Point &p, double s)
Compute the division of a vector by a scalar.
Definition Point.h:317
bool orthogonal(const Point &a, const Point &b)
Check if two vectors are orthogonals.
Definition Point.cpp:41
bool almostEqual(const Point &a, const Point &b)
Check if two points are almost equal according to Tools::almostEqual.
Definition Point.h:356
bool operator!=(const Point &a, const Point &b)
Check if two points are different.
Definition Point.h:342
bool operator==(const Point &a, const Point &b)
Check if two points are equal.
Definition Point.h:328
double operator*(const Point &a, const Point &b)
Compute the scalar product of two vectors.
Definition Point.h:284
Struct representing a 2D point.
Definition Point.h:42
Point(double x, double y)
Definition Point.h:69
Point & operator-=(const Point &other)
Definition Point.h:370
Point & operator+=(const Point &other)
Definition Point.h:363
Point & operator/=(double s)
Definition Point.h:384
double y
Definition Point.h:44
Point translated(double dx, double dy) const
Definition Point.h:443
Point normalised() const
Definition Point.h:465
Point & operator*=(double s)
Definition Point.h:377
void get(double &x, double &y) const
Definition Point.h:398
bool isInf() const
Definition Point.h:483
Point rotated(double angle) const
Definition Point.h:413
static Point Infinity
Definition Point.h:236
Point operator-() const
Definition Point.h:488
Point(const Point &other)
Definition Point.h:55
double x
Definition Point.h:43
Point & rotate(double angle)
Definition Point.h:404
double norm() const
Definition Point.h:460
double argument() const
Definition Point.h:478
Point & normalise()
Definition Point.h:470
Point rotatedPI2() const
Definition Point.h:431
Point & translate(double dx, double dy)
Definition Point.h:436
Point()
Definition Point.h:49
Point & scale(double sx, double sy)
Definition Point.h:448
Point scaled(double sx, double sy)
Definition Point.h:455
Point & operator=(const Point &other)
Definition Point.h:391