2022-08-08 00:08:20 +10:00
|
|
|
#include "framework.h"
|
2022-08-08 19:15:22 +10:00
|
|
|
#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;
|
|
|
|
}
|
|
|
|
//}
|