diff --git a/wrap/gl/math.h b/wrap/gl/math.h index 4e382f99..956aee13 100644 --- a/wrap/gl/math.h +++ b/wrap/gl/math.h @@ -74,18 +74,23 @@ Revision 1.1 2004/03/31 15:27:17 ponchio namespace vcg { +template +inline void glLoadMatrix(const vcg::Matrix44 &m) { assert(0); } +template<> inline void glLoadMatrix(const vcg::Matrix44f &m) {glLoadMatrixf(m.V()); } +template<> inline void glLoadMatrix(const vcg::Matrix44d &m) {glLoadMatrixd(m.V()); } + template inline void glLoadMatrix(const Eigen::Matrix& matrix) { assert(0); } template<> inline void glLoadMatrix(const Eigen::Matrix& matrix) { glLoadMatrixf(matrix.data()); } template<> inline void glLoadMatrix(const Eigen::Matrix& matrix) { - Eigen::Matrix4f tmp(matrix); - glLoadMatrixf(tmp.data()); + Eigen::Matrix4f tmp(matrix); + glLoadMatrixf(tmp.data()); } inline void glLoadMatrix(const Eigen::Matrix& matrix) { glLoadMatrixd(matrix.data()); } inline void glLoadMatrix(const Eigen::Matrix& matrix) { - Eigen::Matrix4d tmp(matrix); - glLoadMatrixd(tmp.data()); + Eigen::Matrix4d tmp(matrix); + glLoadMatrixd(tmp.data()); } template inline void glLoadMatrix(const Eigen::Transform& t) { glLoadMatrix(t.matrix()); } @@ -96,13 +101,13 @@ inline void glMultMatrix(const Eigen::Matrix& matrix) { asse template<> inline void glMultMatrix(const Eigen::Matrix& matrix) { glMultMatrixf(matrix.data()); } inline void glMultMatrix(const Eigen::Matrix& matrix) { - Eigen::Matrix tmp(matrix); - glMultMatrixf(tmp.data()); + Eigen::Matrix tmp(matrix); + glMultMatrixf(tmp.data()); } template<> inline void glMultMatrix(const Eigen::Matrix& matrix) { glMultMatrixd(matrix.data()); } template<> inline void glMultMatrix(const Eigen::Matrix& matrix) { - Eigen::Matrix tmp(matrix); - glMultMatrixd(tmp.data()); + Eigen::Matrix tmp(matrix); + glMultMatrixd(tmp.data()); } template inline void glMultMatrix(const Eigen::Transform& t) { glMultMatrix(t.matrix()); } @@ -127,18 +132,18 @@ inline void glMultMatrix(const Similarityd &s) { } inline void glGetv(const GLenum pname, Eigen::Matrix& matrix){ - glGetFloatv(pname,matrix.data()); + glGetFloatv(pname,matrix.data()); } inline void glGetv(const GLenum pname, Eigen::Matrix& matrix){ - glGetDoublev(pname,matrix.data()); + glGetDoublev(pname,matrix.data()); } inline void glGetv(const GLenum pname, Eigen::Matrix& matrix){ - glGetFloatv(pname,matrix.data()); - matrix.transposeInPlace(); + glGetFloatv(pname,matrix.data()); + matrix.transposeInPlace(); } inline void glGetv(const GLenum pname, Eigen::Matrix& matrix){ - glGetDoublev(pname,matrix.data()); - matrix.transposeInPlace(); + glGetDoublev(pname,matrix.data()); + matrix.transposeInPlace(); } template inline void glGetv(const GLenum pname, const Eigen::Transform& t)