From 3a94328b3cff255ac64a208ac98919cc3e530aa0 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sun, 5 May 2019 22:53:12 +0400 Subject: Made changes to CMakeLists.txt so CUDA version of program builds when CUDA is installed. Replaced C-style approach to generating texture to OOP-style with Canvas.h --- libraries/point/Point.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++++++ libraries/point/Point.h | 30 +++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 libraries/point/Point.cpp create mode 100644 libraries/point/Point.h (limited to 'libraries') 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; +} diff --git a/libraries/point/Point.h b/libraries/point/Point.h new file mode 100644 index 0000000..8163f8f --- /dev/null +++ b/libraries/point/Point.h @@ -0,0 +1,30 @@ +// +// Created by saintruler on 11.04.19. +// + +#ifndef OPENGLTEST_POINT_H +#define OPENGLTEST_POINT_H + +#include + +class Point +{ +public: + Point(double x, double y); + + friend Point operator+(const Point& left, const Point& right); + friend Point operator+=(Point& left, const Point& right); + friend Point operator-(const Point& left, const Point& right); + friend Point operator-=(Point& left, double right); + friend Point operator/(const Point& left, double right); + friend Point operator/=(Point& left, double right); + friend Point operator*(const Point& left, double right); + friend Point operator*=(Point& left, double right); + + double length(); + double length_squared(); + void normalize(); + double x, y; +}; + +#endif //OPENGLTEST_POINT_H -- cgit v1.2.3