79 Point(Float x, Float y)
83 Point(
const Point& pt)
84 : _x(pt._x), _y(pt._y)
93 void set(Float xpos, Float ypos)
102 void setY(Float ypos)
111 const Point& addX(Float x)
117 const Point& subX(Float x)
123 const Point& addY(Float y)
129 const Point& subY(Float y)
135 const Point& move(Float dx, Float dy)
142 Float distanceTo(
const Point& other)
const
147 return hypot(_x - other._x, _y - other._y);
150 Point& operator=(
const Point& pt)
157 bool isEqual(
const Point& other, Float eps = FloatNearlyZero)
const
159 return std::abs(_x - other._x) <= eps &&
160 std::abs(_y - other._y) <= eps;
163 Point& operator+=(
const Point& pt)
170 Point operator+(
const Point& pt)
const
172 return Point(_x + pt._x, _y + pt._y);
175 Point& operator-=(
const Point& pt)
182 Point operator-(
const Point& pt)
const
184 return Point(_x - pt._x, _y - pt._y);
187 Point operator*(Float factor)
const
189 return Point(_x * factor, _y * factor);
192 Point operator/(Float factor)
const
194 return Point(_x / factor, _y / factor);
197 Point operator+(Float factor)
const
199 return Point(_x + factor, _y + factor);
202 Point operator-(Float factor)
const
204 return Point(_x - factor, _y - factor);
207 Point& operator*=(Float factor)
214 Point& operator/=(Float factor)
224 {
return _x == 0 && _y == 0; }
229 {
return Point(-_x, -_y); }
234 {
return hypot(_x, _y); }
239 {
return _x * _x + _y * _y; }
245 const Float len = this->
length();
248 return Point(_x / len, _y / len);
302 PointI(
const PointI& pt)
303 : _x(pt._x), _y(pt._y)
312 void set(Int xpos, Int ypos)
330 const PointI& addX(Int x)
336 const PointI& subX(Int x)
342 const PointI& addY(Int y)
348 const PointI& subY(Int y)
354 const PointI& move(Int dx, Int dy)
361 PointI& operator=(
const PointI& pt)
368 bool operator==(
const PointI& pt)
const
369 {
return (_x == pt._x && _y == pt._y); }
371 bool operator!=(
const PointI& pt)
const
372 {
return (_x != pt._x || _y != pt._y); }
374 PointI& operator+=(
const PointI& pt)
381 PointI operator+(
const PointI& pt)
const
383 return PointI(_x + pt._x, _y + pt._y);
386 PointI& operator-=(
const PointI& pt)
393 PointI operator-(
const PointI& pt)
const
395 return PointI(_x - pt._x, _y - pt._y);
398 PointI operator*(Int factor)
const
400 return PointI(_x * factor, _y * factor);
403 PointI operator+(Int offset)
const
405 return PointI(_x + offset, _y + offset);
408 PointI operator-(Int offset)
const
410 return PointI(_x - offset, _y - offset);
413 PointI& operator*=(Int factor)
423 {
return _x == 0 && _y == 0; }
428 {
return PointI(-_x, -_y); }