Files
DNF_DEV/source/Tool/TransformT.cpp
2025-10-06 04:18:49 +08:00

52 lines
1.4 KiB
C++

#include "TransformT.h"
TransformT::TransformT()
: rotation(0.f), position(), scale(1.f, 1.f)
{
}
bool TransformT::IsFast() const
{
return scale.x == 1.f && scale.y == 1.f && rotation == 0.f;
}
bool TransformT::operator==(const TransformT &rhs) const
{
return position == rhs.position && rotation == rhs.rotation && scale == rhs.scale;
}
// -------------------------- 加法运算符实现 --------------------------
TransformT TransformT::operator+(const TransformT &rhs) const
{
TransformT result;
result.rotation = this->rotation + rhs.rotation;
result.position = this->position + rhs.position;
result.scale = this->scale + rhs.scale;
return result;
}
TransformT TransformT::operator-(const TransformT &rhs) const
{
TransformT result;
result.rotation = this->rotation - rhs.rotation;
result.position = this->position - rhs.position;
result.scale = this->scale - rhs.scale;
return result;
}
// -------------------------- 复合赋值运算符实现 --------------------------
TransformT &TransformT::operator+=(const TransformT &rhs)
{
this->rotation += rhs.rotation;
this->position += rhs.position;
this->scale += rhs.scale;
return *this;
}
TransformT &TransformT::operator-=(const TransformT &rhs)
{
this->rotation -= rhs.rotation;
this->position -= rhs.position;
this->scale -= rhs.scale;
return *this;
}