Vector2i operators.
All checks were successful
Run ReCI Build Test / Explore-Gitea-Actions (push) Successful in 6m18s
Build Docs With Doxygen / Explore-Gitea-Actions (push) Successful in 22s

This commit is contained in:
2024-12-03 19:47:30 -05:00
parent 13a68eea45
commit d715391d2a
2 changed files with 91 additions and 9 deletions

View File

@@ -1,11 +1,27 @@
#pragma once
#include <string>
namespace J3ML::LinearAlgebra
{
class Vector2i
{
public:
int x;
int y;
};
}
namespace J3ML::LinearAlgebra {
class Vector2i;
}
class J3ML::LinearAlgebra::Vector2i {
public:
int x, y;
public:
Vector2i(int x, int y) : x(x), y(y) {}
public:
bool operator == (const Vector2i& rhs) const;
bool operator != (const Vector2i& rhs) const;
Vector2i& operator =(const Vector2i& rhs);
Vector2i& operator +=(const Vector2i& rhs);
Vector2i& operator -=(const Vector2i& rhs);
Vector2i& operator *=(const Vector2i& rhs);
Vector2i& operator /=(const Vector2i& rhs);
Vector2i operator +(const Vector2i& rhs) const;
Vector2i operator -(const Vector2i& rhs) const;
Vector2i operator *(const Vector2i& rhs) const;
Vector2i operator /(const Vector2i& rhs) const;
public:
[[nodiscard]] std::string ToString() const;
};

View File

@@ -0,0 +1,66 @@
#include <J3ML/LinearAlgebra/Vector2i.hpp>
J3ML::LinearAlgebra::Vector2i &J3ML::LinearAlgebra::Vector2i::operator =(const Vector2i& rhs) {
x = rhs.x;
y = rhs.y;
return *this;
}
bool J3ML::LinearAlgebra::Vector2i::operator ==(const Vector2i& rhs) const {
return (x == rhs.x && y == rhs.y);
}
bool J3ML::LinearAlgebra::Vector2i::operator !=(const Vector2i& rhs) const {
return !(*this == rhs);
}
J3ML::LinearAlgebra::Vector2i& J3ML::LinearAlgebra::Vector2i::operator +=(const Vector2i& rhs) {
x += rhs.x;
y += rhs.y;
return *this;
}
J3ML::LinearAlgebra::Vector2i& J3ML::LinearAlgebra::Vector2i::operator -=(const Vector2i& rhs) {
x -= rhs.x;
y -= rhs.y;
return *this;
}
J3ML::LinearAlgebra::Vector2i& J3ML::LinearAlgebra::Vector2i::operator *=(const Vector2i& rhs) {
x *= rhs.x;
y *=rhs.y;
return *this;
}
J3ML::LinearAlgebra::Vector2i& J3ML::LinearAlgebra::Vector2i::operator /=(const Vector2i& rhs) {
x /= rhs.x;
y /=rhs.y;
return *this;
}
J3ML::LinearAlgebra::Vector2i J3ML::LinearAlgebra::Vector2i::operator +(const Vector2i& rhs) const {
return {x + rhs.x, y + rhs.y};
}
J3ML::LinearAlgebra::Vector2i J3ML::LinearAlgebra::Vector2i::operator -(const Vector2i& rhs) const {
return {x - rhs.x, y - rhs.y};
}
J3ML::LinearAlgebra::Vector2i J3ML::LinearAlgebra::Vector2i::operator *(const Vector2i& rhs) const {
return {x * rhs.x, y * rhs.y};
}
J3ML::LinearAlgebra::Vector2i J3ML::LinearAlgebra::Vector2i::operator /(const Vector2i& rhs) const {
return {x / rhs.x, y / rhs.y};
}
std::string J3ML::LinearAlgebra::Vector2i::ToString() const {
return std::string(std::to_string(x) + " " + std::to_string(y));
}