diff --git a/include/Nazara/Math/Matrix4.hpp b/include/Nazara/Math/Matrix4.hpp index 849934710..b9163d396 100644 --- a/include/Nazara/Math/Matrix4.hpp +++ b/include/Nazara/Math/Matrix4.hpp @@ -43,8 +43,6 @@ class NzMatrix4 NzMatrix4 Concatenate(const NzMatrix4& matrix) const; NzMatrix4 ConcatenateAffine(const NzMatrix4& matrix) const; - void Destroy(); - T GetDeterminant() const; NzMatrix4 GetInverse(bool* succeeded = nullptr) const; NzMatrix4 GetInverseAffine(bool* succeeded = nullptr) const; @@ -94,6 +92,8 @@ class NzMatrix4 NzMatrix4& Transpose(); + NzMatrix4& Undefine(); + operator NzString() const; operator T*(); diff --git a/include/Nazara/Math/Matrix4.inl b/include/Nazara/Math/Matrix4.inl index 0deb8f00b..ae8c0c0af 100644 --- a/include/Nazara/Math/Matrix4.inl +++ b/include/Nazara/Math/Matrix4.inl @@ -98,12 +98,6 @@ NzMatrix4 NzMatrix4::ConcatenateAffine(const NzMatrix4& matrix) const return ConcatenateAffine(*this, matrix); } -template -void NzMatrix4::Destroy() -{ - ReleaseMatrix(); -} - template T NzMatrix4::GetDeterminant() const { @@ -836,6 +830,8 @@ NzMatrix4& NzMatrix4::Transpose() } #endif + EnsureOwnership(); + std::swap(m_sharedMatrix->m12, m_sharedMatrix->m21); std::swap(m_sharedMatrix->m13, m_sharedMatrix->m31); std::swap(m_sharedMatrix->m14, m_sharedMatrix->m41); @@ -846,6 +842,14 @@ NzMatrix4& NzMatrix4::Transpose() return *this; } +template +NzMatrix4& NzMatrix4::Undefine() +{ + ReleaseMatrix(); + + return *this; +} + template NzMatrix4::operator NzString() const {