From 1563ae5be6bc130a9b3a23464f7e28fdb1e87da3 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Sat, 13 May 2017 19:01:56 +0500 Subject: 2017-05-13 --- code/PositionI.cpp | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 code/PositionI.cpp (limited to 'code/PositionI.cpp') diff --git a/code/PositionI.cpp b/code/PositionI.cpp new file mode 100644 index 0000000..7de5dc0 --- /dev/null +++ b/code/PositionI.cpp @@ -0,0 +1,120 @@ +#include +#include "PositionI.hpp" + +PositionI::PositionI(int x, int z, int y) : m_x(x), m_y(y), m_z(z) { + +} + +PositionI::~PositionI() { + +} + +int PositionI::GetX() const { + return m_x; +} + +int PositionI::GetY() const { + return m_y; +} + +int PositionI::GetZ() const { + return m_z; +} + +void PositionI::SetX(int x) { + m_x = x; +} + +void PositionI::SetY(int y) { + m_y = y; +} + +void PositionI::setZ(int z) { + m_z = z; +} + +bool PositionI::operator==(const PositionI &other) const { + return other.m_x == m_x && other.m_z == m_z && other.m_y == other.m_y; +} + +PositionI &PositionI::operator=(const PositionI &other) { + m_y = other.m_y; + m_z = other.m_z; + m_x = other.m_x; + return *this; +} + +PositionI::PositionI(const PositionI &other) { + m_y = other.m_y; + m_z = other.m_z; + m_x = other.m_x; +} + +PositionI::PositionI() : m_x(0), m_y(0), m_z(0) { + +} + +bool PositionI::operator<(const PositionI &rhs) const { + if (m_x < rhs.m_x) + return true; + if (rhs.m_x < m_x) + return false; + if (m_y < rhs.m_y) + return true; + if (rhs.m_y < m_y) + return false; + return m_z < rhs.m_z; +} + +bool PositionI::operator>(const PositionI &rhs) const { + return rhs < *this; +} + +bool PositionI::operator<=(const PositionI &rhs) const { + return !(rhs < *this); +} + +bool PositionI::operator>=(const PositionI &rhs) const { + return !(*this < rhs); +} + +PositionI PositionI::operator-(const PositionI &other) const { + return PositionI( + m_x - other.m_x, + m_z - other.m_z, + m_y - other.m_y + ); +} + +double PositionI::GetDistance() { + return (std::sqrt(std::pow(m_x, 2) + std::pow(m_y, 2) + std::pow(m_z, 2))); +} + +PositionI PositionI::operator*(int other) const { + return PositionI( + m_x * other, + m_z * other, + m_y * other + ); +} + +PositionI PositionI::operator*(const PositionI &other) const { + return PositionI( + m_x * other.m_x, + m_z * other.m_z, + m_y * other.m_y + ); +} + +PositionI PositionI::operator/(int other) const { + return PositionI( + m_x / other, + m_z / other, + m_y / other + ); +} + +std::ostream &operator<<(std::ostream &os, const PositionI &i) { + os << "(" << i.m_x << ", " << i.m_y << ", " << i.m_z << ")"; + return os; +} -- cgit v1.2.3