Program Listing for File transformComponent.cpp
↰ Return to documentation for file (PrismEngine/src/transformComponent.cpp)
#include "transformComponent.h"
prism::scene::Position& prism::scene::Position::operator+=(const Position& other)
{
x += other.x;
y += other.y;
z += other.z;
return *this;
}
prism::scene::Position& prism::scene::Position::operator-=(const Position& other)
{
x -= other.x;
y -= other.y;
z -= other.z;
return *this;
}
prism::scene::Position prism::scene::Position::operator-()
{
return Position{ -x, -y, -z };
}
prism::scene::Position prism::scene::Position::operator+(const Position& other) const
{
return Position{ x + other.x, y + other.y, z + other.z };
}
prism::scene::Position prism::scene::Position::operator-(const Position& other) const
{
return Position{ x - other.x, y - other.y, z - other.z };
}
prism::scene::Position& prism::scene::Position::operator*=(float scalar)
{
x *= scalar;
y *= scalar;
z *= scalar;
return *this;
}
prism::scene::Position& prism::scene::Position::operator/=(float scalar)
{
if (scalar != 0.0f) {
x /= scalar;
y /= scalar;
z /= scalar;
}
return *this;
}
prism::scene::Position prism::scene::Position::operator*(float scalar) const
{
return Position{ x * scalar, y * scalar, z * scalar };
}
prism::scene::Position prism::scene::Position::operator/(float scalar) const
{
if (scalar != 0.0f) {
return Position{ x / scalar, y / scalar, z / scalar };
}
return *this; // Возвращаем неизменённую позицию при делении на 0
}
bool prism::scene::Position::operator==(const Position& other) const
{
return x == other.x && y == other.y && z == other.z;
}
bool prism::scene::Position::operator!=(const Position& other) const
{
return !(*this == other);
}
prism::scene::Scale& prism::scene::Scale::operator*=(const Scale& other)
{
x *= other.x;
y *= other.y;
z *= other.z;
return *this;
}
prism::scene::Scale& prism::scene::Scale::operator/=(const Scale& other)
{
if (other.x != 0.0f) x /= other.x;
if (other.y != 0.0f) y /= other.y;
if (other.z != 0.0f) z /= other.z;
return *this;
}
prism::scene::Scale& prism::scene::Scale::operator*=(float scalar)
{
x *= scalar;
y *= scalar;
z *= scalar;
return *this;
}
prism::scene::Scale& prism::scene::Scale::operator/=(float scalar)
{
if (scalar != 0.0f) {
x /= scalar;
y /= scalar;
z /= scalar;
}
return *this;
}
prism::scene::Scale prism::scene::Scale::operator*(const Scale& other) const
{
return Scale{ x * other.x, y * other.y, z * other.z };
}
prism::scene::Scale prism::scene::Scale::operator/(const Scale& other) const
{
return Scale{
other.x != 0.0f ? x / other.x : x,
other.y != 0.0f ? y / other.y : y,
other.z != 0.0f ? z / other.z : z
};
}
prism::scene::Scale prism::scene::Scale::operator*(float scalar) const
{
return Scale{ x * scalar, y * scalar, z * scalar };
}
prism::scene::Scale prism::scene::Scale::operator/(float scalar) const
{
if (scalar != 0.0f) {
return Scale{ x / scalar, y / scalar, z / scalar };
}
return *this;
}
bool prism::scene::Scale::operator==(const Scale& other) const
{
return x == other.x && y == other.y && z == other.z;
}
bool prism::scene::Scale::operator!=(const Scale& other) const
{
return !(*this == other);
}