Optimized Vector <= comparison

Former-commit-id: 8668b8ff78387262f0e21f038b6ca0240c513476
This commit is contained in:
Lynix 2012-12-02 20:39:49 +01:00
parent 0a88b6531c
commit 6a3087cc26
3 changed files with 27 additions and 3 deletions

View File

@ -426,7 +426,10 @@ bool NzVector2<T>::operator<(const NzVector2& vec) const
template<typename T>
bool NzVector2<T>::operator<=(const NzVector2& vec) const
{
return operator<(vec) || operator==(vec);
if (x == vec.x)
return y <= vec.y;
else
return x < vec.x;
}
template<typename T>

View File

@ -490,7 +490,15 @@ bool NzVector3<T>::operator<(const NzVector3& vec) const
template<typename T>
bool NzVector3<T>::operator<=(const NzVector3& vec) const
{
return operator<(vec) || operator==(vec);
if (x == vec.x)
{
if (y < vec.y)
return z <= vec.z;
else
return y < vec.y;
}
else
return x < vec.x;
}
template<typename T>

View File

@ -447,7 +447,20 @@ bool NzVector4<T>::operator<(const NzVector4& vec) const
template<typename T>
bool NzVector4<T>::operator<=(const NzVector4& vec) const
{
return operator<(vec) || operator==(vec);
if (x == vec.x)
{
if (y == vec.y)
{
if (z == vec.z)
return w <= vec.w;
else
return z < vec.z;
}
else
return y < vec.y;
}
else
return x < vec.x;
}
template<typename T>