Fixed Matrix4 equality comparison

Former-commit-id: cb1e21196c2053138a8d70bc09d39ecbf7b83ba8
This commit is contained in:
Lynix 2012-09-30 23:11:43 +02:00
parent 8d057fb3b1
commit aaca9349fd
2 changed files with 27 additions and 1 deletions

View File

@ -22,7 +22,8 @@ template<typename T> class NzVector2;
template<typename T> class NzVector3;
template<typename T> class NzVector4;
template<typename T> class NzMatrix4
template<typename T>
class NzMatrix4
{
public:
NzMatrix4();
@ -104,6 +105,9 @@ template<typename T> class NzMatrix4
NzMatrix4& operator*=(const NzMatrix4& matrix);
NzMatrix4& operator*=(T scalar);
bool operator==(const NzMatrix4& mat) const;
bool operator!=(const NzMatrix4& mat) const;
static NzMatrix4 Concatenate(const NzMatrix4& m1, const NzMatrix4& m2);
static NzMatrix4 ConcatenateAffine(const NzMatrix4& m1, const NzMatrix4& m2);
static NzMatrix4 Identity();

View File

@ -724,6 +724,28 @@ NzMatrix4<T>& NzMatrix4<T>::operator*=(T scalar)
return *this;
}
template<typename T>
bool NzMatrix4<T>::operator==(const NzMatrix4& mat) const
{
if (!m_sharedMatrix)
return mat.m_sharedMatrix == nullptr;
if (!mat.m_sharedMatrix)
return false;
for (unsigned int i = 0; i < 16; ++i)
if (!NzNumberEquals((&m_sharedMatrix->m11)[i]))
return false;
return true;
}
template<typename T>
bool NzMatrix4<T>::operator!=(const NzMatrix4& mat) const
{
return !operator==(mat);
}
template<typename T>
NzMatrix4<T> NzMatrix4<T>::Concatenate(const NzMatrix4& m1, const NzMatrix4& m2)
{