Improved performace.

master
tetrisplusplus ago%!(EXTRA string=2 years)
parent 96b1c72bfc
commit e48b2a72c8
  1. 18
      glm/gtx/matrix_query.inl

@ -97,16 +97,22 @@ namespace glm
GLM_FUNC_QUALIFIER bool isOrthogonal(mat<C, R, T, Q> const& m, T const& epsilon) GLM_FUNC_QUALIFIER bool isOrthogonal(mat<C, R, T, Q> const& m, T const& epsilon)
{ {
bool result = true; bool result = true;
for(length_t i(0); result && i < m.length() - 1; ++i) for(length_t i(0); result && i < m.length(); ++i)
for(length_t j(i + 1); result && j < m.length(); ++j) {
result = areOrthonormal(m[i], m[j], epsilon); result = isNormalized(m[i], epsilon);
for(length_t j(i + 1); result && j < m.length(); ++j)
result = abs(dot(m[i], m[j])) <= epsilon;
}
if(result) if(result)
{ {
mat<C, R, T, Q> tmp = transpose(m); mat<C, R, T, Q> tmp = transpose(m);
for(length_t i(0); result && i < m.length() - 1 ; ++i) for(length_t i(0); result && i < m.length(); ++i)
for(length_t j(i + 1); result && j < m.length(); ++j) {
result = areOrthonormal(tmp[i], tmp[j], epsilon); result = isNormalized(tmp[i], epsilon);
for(length_t j(i + 1); result && j < m.length(); ++j)
result = abs(dot(tmp[i], tmp[j])) <= epsilon;
}
} }
return result; return result;
} }

Loading…
Cancel
Save