summaryrefslogtreecommitdiff
path: root/libraries/point/Point.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/point/Point.cpp')
-rw-r--r--libraries/point/Point.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/libraries/point/Point.cpp b/libraries/point/Point.cpp
new file mode 100644
index 0000000..4ca4a8c
--- /dev/null
+++ b/libraries/point/Point.cpp
@@ -0,0 +1,75 @@
+//
+// Created by saintruler on 05.05.19.
+//
+#include "Point.h"
+
+Point::Point(double x, double y)
+{
+ this->x = x;
+ this->y = y;
+}
+
+Point operator+(const Point& left, const Point& right)
+{
+ return Point(left.x + right.x, left.y + right.y);
+}
+
+Point operator+=(Point& left, const Point& right)
+{
+ left.x += right.x;
+ left.y += right.y;
+ return left;
+}
+
+Point operator-(const Point& left, const Point& right)
+{
+ return Point(left.x - right.x, left.y - right.y);
+}
+
+Point operator-=(Point& left, const double right)
+{
+ left.x -= right;
+ left.y -= right;
+ return left;
+}
+
+Point operator/(const Point& left, const double right)
+{
+ return Point(left.x / right, left.y / right);
+}
+
+Point operator/=(Point& left, const double right)
+{
+ left.x /= right;
+ left.y /= right;
+ return left;
+}
+
+Point operator*(const Point& left, const double right)
+{
+ return Point(left.x * right, left.y * right);
+}
+
+Point operator*=(Point& left, const double right)
+{
+ left.x *= right;
+ left.y *= right;
+ return left;
+}
+
+double Point::length()
+{
+ return sqrt(pow(x, 2) + pow(y, 2));
+}
+
+double Point::length_squared()
+{
+ return pow(x, 2) + pow(y, 2);
+}
+
+void Point::normalize()
+{
+ const double l = length();
+ this->x /= l;
+ this->y /= l;
+}