52 lines
1.4 KiB
C++
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;
|
|
} |