diff --git a/libs/main/math/pipoint.h b/libs/main/math/pipoint.h index 20e88e8e..820c1d38 100644 --- a/libs/main/math/pipoint.h +++ b/libs/main/math/pipoint.h @@ -167,6 +167,22 @@ public: return *this; } + //! \~english Multiplies by-coordinates by `v`. + //! \~russian Умножает по-координатно на `v`. + PIPoint & operator*=(const PIPoint & v) { + x *= v.x; + y *= v.y; + return *this; + } + + //! \~english Divides by-coordinates by `v`. + //! \~russian Делит по-координатно на `v`. + PIPoint & operator/=(const PIPoint & v) { + x /= v.x; + y /= v.y; + return *this; + } + //! \~english Returns sum of two points. //! \~russian Возвращает сумму двух точек. PIPoint operator+(const PIPoint & p) const { return PIPoint(x + p.x, y + p.y); } @@ -195,6 +211,14 @@ public: //! \~russian Возвращает точку, деленную на `v`. PIPoint operator/(Type v) const { return PIPoint(x / v, y / v); } + //! \~english Returns point multiplied by `v`. + //! \~russian Возвращает точку, умноженную на `v`. + PIPoint operator*(const PIPoint & v) const { return PIPoint(x * v.x, y * v.y); } + + //! \~english Returns point divided by `v`. + //! \~russian Возвращает точку, деленную на `v`. + PIPoint operator/(const PIPoint & v) const { return PIPoint(x / v.x, y / v.y); } + //! \~english Checks whether point coordinates are equal. //! \~russian Проверяет равенство координат точек. bool operator==(const PIPoint & p) const { return (x == p.x && y == p.y); }