Math/Matrix4: Fix computations.
Sometimes some values can be really small (and very close to zero) without being null. Former-commit-id: 932160043e4eb4094c7234f8cf4eb7c212966678
This commit is contained in:
parent
f49f77b75d
commit
2cace84c90
|
|
@ -326,7 +326,7 @@ namespace Nz
|
|||
#endif
|
||||
|
||||
T det = GetDeterminant();
|
||||
if (!NumberEquals(det, F(0.0)))
|
||||
if (det != T(0.0))
|
||||
{
|
||||
// http://stackoverflow.com/questions/1148309/inverting-a-4x4-matrix
|
||||
T inv[16];
|
||||
|
|
@ -484,7 +484,7 @@ namespace Nz
|
|||
#endif
|
||||
|
||||
T det = GetDeterminantAffine();
|
||||
if (!NumberEquals(det, F(0.0)))
|
||||
if (det != F(0.0))
|
||||
{
|
||||
// http://stackoverflow.com/questions/1148309/inverting-a-4x4-matrix
|
||||
T inv[16];
|
||||
|
|
@ -790,10 +790,7 @@ namespace Nz
|
|||
template<typename T>
|
||||
bool Matrix4<T>::IsAffine() const
|
||||
{
|
||||
return NumberEquals(m14, F(0.0)) &&
|
||||
NumberEquals(m24, F(0.0)) &&
|
||||
NumberEquals(m34, F(0.0)) &&
|
||||
NumberEquals(m44, F(1.0));
|
||||
return m14 == F(0.0) && m24 == F(0.0) && m34 == F(0.0) && m44 == F(1.0);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
|
|||
Loading…
Reference in New Issue