138 lines
2.5 KiB
C++
138 lines
2.5 KiB
C++
#include "Vector2i.hpp"
|
|
#include "Vector2.hpp"
|
|
#include "Vector3.hpp"
|
|
#include "Vector4.hpp"
|
|
#include <cmath>
|
|
|
|
TSE::Vector2i::Vector2i() { }
|
|
|
|
TSE::Vector2i::Vector2i(int _x, int _y)
|
|
{
|
|
x = _x;
|
|
y = _y;
|
|
}
|
|
|
|
TSE::Vector2i::Vector2i(const Vector2i &other)
|
|
{
|
|
x = other.x;
|
|
y = other.y;
|
|
}
|
|
|
|
TSE::Vector2i::Vector2i(const Vector2 &other)
|
|
{
|
|
x = other.x;
|
|
y = other.y;
|
|
}
|
|
|
|
TSE::Vector2i::Vector2i(const Vector3 &other)
|
|
{
|
|
x = other.x;
|
|
y = other.y;
|
|
}
|
|
|
|
TSE::Vector2i::Vector2i(const Vector4 &other)
|
|
{
|
|
x = other.x;
|
|
y = other.y;
|
|
}
|
|
|
|
bool TSE::Vector2i::IsValid() const
|
|
{
|
|
return !std::isnan(x) && !std::isnan(y);
|
|
}
|
|
|
|
TSE::string TSE::Vector2i::ToString() const
|
|
{
|
|
return "(" + std::to_string(x) + "|" + std::to_string(y) + ")";
|
|
}
|
|
|
|
TSE::Vector2 TSE::Vector2i::ToVector2() const
|
|
{
|
|
return Vector2();
|
|
}
|
|
|
|
TSE::Vector3 TSE::Vector2i::ToVector3() const
|
|
{
|
|
return Vector3(x,y,0);
|
|
}
|
|
|
|
TSE::Vector4 TSE::Vector2i::ToVector4() const
|
|
{
|
|
return Vector4(x,y,0,0);
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator+(const Vector2i &other) const
|
|
{
|
|
return Vector2i(x + other.x, y + other.y);
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator+=(const Vector2i &other)
|
|
{
|
|
*this = *this + other;
|
|
return *this;
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator-(const Vector2i &other) const
|
|
{
|
|
return Vector2i(x - other.x, y - other.y);
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator-=(const Vector2i &other)
|
|
{
|
|
*this = *this - other;
|
|
return *this;
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator*(const Vector2i &other) const
|
|
{
|
|
return Vector2i(x * other.x, y * other.y);
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator*=(const Vector2i &other)
|
|
{
|
|
*this = *this * other;
|
|
return *this;
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator/(const Vector2i &other) const
|
|
{
|
|
return Vector2i(x / other.x, y / other.y);
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator/=(const Vector2i &other)
|
|
{
|
|
*this = *this / other;
|
|
return *this;
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator*(const float other) const
|
|
{
|
|
return Vector2i(x * other, y * other);
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator*=(const float other)
|
|
{
|
|
*this = *this * other;
|
|
return *this;
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator/(const float other) const
|
|
{
|
|
return Vector2i(x / other, y / other);
|
|
}
|
|
|
|
TSE::Vector2i TSE::Vector2i::operator/=(const float other)
|
|
{
|
|
*this = *this / other;
|
|
return *this;
|
|
}
|
|
|
|
bool TSE::Vector2i::operator==(const Vector2i &other) const
|
|
{
|
|
return x == other.x && y == other.y;
|
|
}
|
|
|
|
bool TSE::Vector2i::operator!=(const Vector2i &other) const
|
|
{
|
|
return !(*this == other);
|
|
} |