34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
#pragma once
|
|
#include <string>
|
|
#include "Vector2.hpp"
|
|
|
|
namespace J3ML::LinearAlgebra {
|
|
class Vector2i;
|
|
}
|
|
|
|
class J3ML::LinearAlgebra::Vector2i {
|
|
public:
|
|
int x, y;
|
|
public:
|
|
Vector2i();
|
|
Vector2i(int x, int y) : x(x), y(y) {}
|
|
explicit Vector2i(int rhs) : x(rhs), y(rhs) {}
|
|
explicit Vector2i(const Vector2& rhs) : x(rhs.x), y(rhs.y) { }
|
|
explicit Vector2i(const std::pair<int, int>& rhs) : x(rhs.first), y(rhs.second) {}
|
|
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 *(int rhs) const;
|
|
Vector2i operator /(const Vector2i& rhs) const;
|
|
Vector2i operator /(int rhs) const;
|
|
public:
|
|
[[nodiscard]] std::string ToString() const;
|
|
}; |