TombEngine/TombEngine/Math/Objects/Vector3i.cpp

113 lines
2.3 KiB
C++
Raw Normal View History

2022-08-08 00:08:20 +10:00
#include "framework.h"
#include "Math/Objects/Vector3i.h"
2022-08-08 00:08:20 +10:00
//namespace TEN::Math
//{
2022-09-09 22:16:00 +10:00
const Vector3i Vector3i::Zero = Vector3i(0, 0, 0);
2022-08-08 00:08:20 +10:00
2022-09-06 21:14:10 +10:00
Vector3i::Vector3i(const Vector3& vector)
2022-08-08 00:08:20 +10:00
{
2023-03-16 00:21:30 +11:00
x = (int)round(vector.x);
y = (int)round(vector.y);
z = (int)round(vector.z);
2022-08-08 00:08:20 +10:00
}
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());
}
float Vector3i::DistanceSquared(const Vector3i& origin, const Vector3i& target)
{
return Vector3::DistanceSquared(origin.ToVector3(), target.ToVector3());
}
2022-08-08 00:08:20 +10:00
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);
}
bool Vector3i::operator ==(const Vector3i& vector) const
2022-08-08 00:08:20 +10:00
{
2022-10-03 13:57:21 +11:00
return ((x == vector.x) && (y == vector.y) && (z == vector.z));
2022-08-08 00:08:20 +10:00
}
bool Vector3i::operator !=(const Vector3i& vector) const
2022-08-08 00:08:20 +10:00
{
return !(*this == vector);
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
{
2023-03-16 00:21:30 +11:00
x = vector.x;
y = vector.y;
z = vector.z;
2022-08-08 00:08:20 +10:00
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator +=(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
2023-03-16 00:21:30 +11:00
x += vector.x;
y += vector.y;
z += vector.z;
2022-08-08 00:08:20 +10:00
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator -=(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
2023-03-16 00:21:30 +11:00
x -= vector.x;
y -= vector.y;
z -= vector.z;
2022-08-08 00:08:20 +10:00
return *this;
}
2022-09-06 21:14:10 +10:00
Vector3i& Vector3i::operator *=(const Vector3i& vector)
2022-08-08 00:08:20 +10:00
{
2023-03-16 00:21:30 +11:00
x *= vector.x;
y *= vector.y;
z *= vector.z;
2022-08-08 00:08:20 +10:00
return *this;
}
2023-10-30 14:26:29 +11:00
Vector3i& Vector3i::operator *=(float scalar)
2022-08-08 00:08:20 +10:00
{
2023-10-30 14:26:29 +11:00
x *= scalar;
y *= scalar;
z *= scalar;
2022-08-08 00:08:20 +10:00
return *this;
}
2023-10-30 14:26:29 +11:00
Vector3i& Vector3i::operator /=(float scalar)
2022-08-08 00:08:20 +10:00
{
2023-10-30 14:26:29 +11:00
x /= scalar;
y /= scalar;
z /= scalar;
2022-08-08 00:08:20 +10:00
return *this;
}
2022-10-09 20:46:40 +11:00
Vector3i Vector3i::operator +(const Vector3i& vector) const
{
return Vector3i(x + vector.x, y + vector.y, z + vector.z);
}
Vector3i Vector3i::operator -(const Vector3i& vector) const
{
return Vector3i(x - vector.x, y - vector.y, z - vector.z);
}
Vector3i Vector3i::operator *(const Vector3i& vector) const
{
return Vector3i(x * vector.x, y * vector.y, z * vector.z);
}
2023-10-30 14:26:29 +11:00
Vector3i Vector3i::operator *(float scalar) const
2022-10-09 20:46:40 +11:00
{
2023-10-30 14:26:29 +11:00
return Vector3i((int)round(x * scalar), (int)round(y * scalar), (int)round(z * scalar));
2022-10-09 20:46:40 +11:00
}
2023-10-30 14:26:29 +11:00
Vector3i Vector3i::operator /(float scalar) const
2022-10-09 20:46:40 +11:00
{
2023-10-30 14:26:29 +11:00
return Vector3i((int)round(x / scalar), (int)round(y / scalar), (int)round(z / scalar));
2022-10-09 20:46:40 +11:00
}
2022-08-08 00:08:20 +10:00
//}