Browse Source

Math: no need to use class here.

pull/276/head
Vladimír Vondruš 12 years ago
parent
commit
dcd89bac0a
  1. 25
      src/Magnum/Math/Matrix.h

25
src/Magnum/Math/Matrix.h

@ -34,7 +34,7 @@
namespace Magnum { namespace Math {
namespace Implementation {
template<std::size_t size, class T> class MatrixDeterminant;
template<std::size_t, class> struct MatrixDeterminant;
}
/**
@ -248,9 +248,8 @@ template<std::size_t size, class T> inline Corrade::Utility::Debug operator<<(Co
namespace Implementation {
template<std::size_t size, class T> class MatrixDeterminant {
public:
T operator()(const Matrix<size, T>& m);
template<std::size_t size, class T> struct MatrixDeterminant {
T operator()(const Matrix<size, T>& m);
};
template<std::size_t size, class T> T MatrixDeterminant<size, T>::operator()(const Matrix<size, T>& m) {
@ -262,18 +261,16 @@ template<std::size_t size, class T> T MatrixDeterminant<size, T>::operator()(con
return out;
}
template<class T> class MatrixDeterminant<2, T> {
public:
constexpr T operator()(const Matrix<2, T>& m) const {
return m[0][0]*m[1][1] - m[1][0]*m[0][1];
}
template<class T> struct MatrixDeterminant<2, T> {
constexpr T operator()(const Matrix<2, T>& m) const {
return m[0][0]*m[1][1] - m[1][0]*m[0][1];
}
};
template<class T> class MatrixDeterminant<1, T> {
public:
constexpr T operator()(const Matrix<1, T>& m) const {
return m[0][0];
}
template<class T> struct MatrixDeterminant<1, T> {
constexpr T operator()(const Matrix<1, T>& m) const {
return m[0][0];
}
};
}

Loading…
Cancel
Save