Files
Aerofoil/PortabilityLayer/Vec2i.h
2019-12-27 14:17:53 -05:00

78 lines
1.3 KiB
C++

#pragma once
#include <stdint.h>
namespace PortabilityLayer
{
struct Vec2i
{
int32_t m_x;
int32_t m_y;
Vec2i();
Vec2i(const Vec2i &other);
Vec2i(int32_t x, int32_t y);
Vec2i operator+(const Vec2i &other) const;
Vec2i operator-(const Vec2i &other) const;
Vec2i &operator+=(const Vec2i &other);
Vec2i &operator-=(const Vec2i &other);
bool operator==(const Vec2i &other) const;
bool operator!=(const Vec2i &other) const;
};
inline Vec2i::Vec2i()
: m_x(0)
, m_y(0)
{
}
inline Vec2i::Vec2i(const Vec2i &other)
: m_x(other.m_x)
, m_y(other.m_y)
{
}
inline Vec2i::Vec2i(int32_t x, int32_t y)
: m_x(x)
, m_y(y)
{
}
inline Vec2i Vec2i::operator+(const Vec2i &other) const
{
return Vec2i(m_x + other.m_x, m_y + other.m_y);
}
inline Vec2i Vec2i::operator-(const Vec2i &other) const
{
return Vec2i(m_x - other.m_x, m_y - other.m_y);
}
inline Vec2i &Vec2i::operator+=(const Vec2i &other)
{
m_x += other.m_x;
m_y += other.m_y;
return *this;
}
inline Vec2i &Vec2i::operator-=(const Vec2i &other)
{
m_x -= other.m_x;
m_y -= other.m_y;
return *this;
}
inline bool Vec2i::operator==(const Vec2i &other) const
{
return m_x == other.m_x && m_y == other.m_y;
}
inline bool Vec2i::operator!=(const Vec2i &other) const
{
return !((*this) == other);
}
}