Files
Aerofoil/PortabilityLayer/Vec2i.h

78 lines
1.3 KiB
C
Raw Normal View History

2019-12-27 14:17:53 -05:00
#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);
2019-12-26 12:58:58 -05:00
Vec2i &operator-=(const Vec2i &other);
2019-12-27 14:17:53 -05:00
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;
2019-12-26 12:58:58 -05:00
}
inline bool Vec2i::operator==(const Vec2i &other) const
{
2019-12-27 14:17:53 -05:00
return m_x == other.m_x && m_y == other.m_y;
2019-12-26 12:58:58 -05:00
}
2019-12-27 14:17:53 -05:00
2019-12-26 12:58:58 -05:00
inline bool Vec2i::operator!=(const Vec2i &other) const
{
2019-12-27 14:17:53 -05:00
return !((*this) == other);
}
}