TombEngine/TombEngine/Math/Containers/Vector3i.cpp

119 lines
2.3 KiB
C++
Raw Normal View History

2022-08-08 00:08:20 +10:00
#include "framework.h"
#include "Math/Containers/Vector3i.h"
2022-08-08 00:08:20 +10:00
//namespace TEN::Math
//{
2022-09-06 21:14:10 +10:00
Vector3i const Vector3i::Zero = Vector3i(0, 0, 0);
2022-08-08 00:08:20 +10:00
2022-09-06 21:14:10 +10:00
Vector3i::Vector3i()
2022-08-08 00:08:20 +10:00
{
}
2022-09-06 21:14:10 +10:00
Vector3i::Vector3i(int x, int y, int z)
2022-08-08 00:08:20 +10:00
{
this->x = x;
this->y = y;
this->z = z;
}
2022-09-06 21:14:10 +10:00
Vector3i::Vector3i(const Vector3& vector)
2022-08-08 00:08:20 +10:00
{
this->x = (int)round(vector.x);
this->y = (int)round(vector.y);
this->z = (int)round(vector.z);
}
2022-09-06 21:14:10 +10:00
float Vector3i::Distance(const Vector3i& origin, const Vector3i& target)
2022-08-08 00:08:20 +10:00
{
return Vector3::Distance(origin.ToVector3(), target.ToVector3());
}
2022-09-06 21:14:10 +10:00
Vector3 Vector3i::ToVector3() const
2022-08-08 00:08:20 +10:00
{
return Vector3(x, y, z);
}
2022-09-06 21:14:10 +10:00
bool Vector3i::operator ==(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
return (x == vector.x && y == vector.y && z == vector.z);
}
2022-09-06 21:14:10 +10:00
bool Vector3i::operator !=(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
return (x != vector.x || y != vector.y || z != vector.z);
}
2022-09-06 21:14:10 +10:00
Vector3i Vector3i::operator +(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
2022-09-06 21:14:10 +10:00
return Vector3i(x + vector.x, y + vector.y, z + vector.z);
2022-08-08 00:08:20 +10:00
}
2022-09-06 21:14:10 +10:00
Vector3i Vector3i::operator -(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
2022-09-06 21:14:10 +10:00
return Vector3i(x - vector.x, y - vector.y, z - vector.z);
2022-08-08 00:08:20 +10:00
}
2022-09-06 21:14:10 +10:00
Vector3i Vector3i::operator *(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
2022-09-06 21:14:10 +10:00
return Vector3i(x * vector.x, y * vector.y, z * vector.z);
2022-08-08 00:08:20 +10:00
}
2022-09-06 21:14:10 +10:00
Vector3i Vector3i::operator *(float value)
2022-08-08 00:08:20 +10:00
{
2022-09-06 21:14:10 +10:00
return Vector3i((int)round(x * value), (int)round(y * value), (int)round(z * value));
2022-08-08 00:08:20 +10:00
}
2022-09-06 21:14:10 +10:00
Vector3i Vector3i::operator /(float value)
2022-08-08 00:08:20 +10:00
{
2022-09-06 21:14:10 +10:00
return Vector3i((int)round(x / value), (int)round(y / value), (int)round(z / value));
2022-08-08 00:08:20 +10:00
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator =(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
this->x = vector.x;
this->y = vector.y;
this->z = vector.z;
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator +=(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
this->x += vector.x;
this->y += vector.y;
this->z += vector.z;
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator -=(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
this->x -= vector.x;
this->y -= vector.y;
this->z -= vector.z;
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator *=(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
this->x *= vector.x;
this->y *= vector.y;
this->z *= vector.z;
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator *=(float value)
2022-08-08 00:08:20 +10:00
{
this->x *= value;
this->y *= value;
this->z *= value;
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator /=(float value)
2022-08-08 00:08:20 +10:00
{
this->x /= value;
this->y /= value;
this->z /= value;
return *this;
}
//}