39 #ifndef SURGSIM_GRAPHICS_OSGMATRIXCONVERSIONS_H 40 #define SURGSIM_GRAPHICS_OSGMATRIXCONVERSIONS_H 44 #include <osg/Matrixf> 45 #include <osg/Matrixd> 46 #include <osg/Uniform> 55 template <
int MOpt>
inline 56 const osg::Matrix2
toOsg(
const Eigen::Matrix<float, 2, 2, MOpt>& matrix)
58 osg::Matrix2 osgMatrix;
59 Eigen::Map<Eigen::Matrix<float, 2, 2, Eigen::ColMajor>>(osgMatrix.ptr()) = matrix;
64 template <
int MOpt>
inline 65 const osg::Matrix2d
toOsg(
const Eigen::Matrix<double, 2, 2, MOpt>& matrix)
67 osg::Matrix2d osgMatrix;
68 Eigen::Map<Eigen::Matrix<double, 2, 2, Eigen::ColMajor>>(osgMatrix.ptr()) = matrix;
73 inline const Eigen::Matrix<float, 2, 2, Eigen::RowMajor>
fromOsg(
const osg::Matrix2& matrix)
75 return Eigen::Map<const Eigen::Matrix<float, 2, 2, Eigen::ColMajor>>(matrix.ptr());
78 inline const Eigen::Matrix<double, 2, 2, Eigen::RowMajor>
fromOsg(
const osg::Matrix2d& matrix)
80 return Eigen::Map<const Eigen::Matrix<double, 2, 2, Eigen::ColMajor>>(matrix.ptr());
84 template <
int MOpt>
inline 85 const osg::Matrix3
toOsg(
const Eigen::Matrix<float, 3, 3, MOpt>& matrix)
87 osg::Matrix3 osgMatrix;
88 Eigen::Map<Eigen::Matrix<float, 3, 3, Eigen::ColMajor>>(osgMatrix.ptr()) = matrix;
93 template <
int MOpt>
inline 94 const osg::Matrix3d
toOsg(
const Eigen::Matrix<double, 3, 3, MOpt>& matrix)
96 osg::Matrix3d osgMatrix;
97 Eigen::Map<Eigen::Matrix<double, 3, 3, Eigen::ColMajor>>(osgMatrix.ptr()) = matrix;
102 inline const Eigen::Matrix<float, 3, 3, Eigen::RowMajor>
fromOsg(
const osg::Matrix3& matrix)
104 return Eigen::Map<const Eigen::Matrix<float, 3, 3, Eigen::ColMajor>>(matrix.ptr());
108 inline const Eigen::Matrix<double, 3, 3, Eigen::RowMajor>
fromOsg(
const osg::Matrix3d& matrix)
110 return Eigen::Map<const Eigen::Matrix<double, 3, 3, Eigen::ColMajor>>(matrix.ptr());
114 template <
int MOpt>
inline 115 const osg::Matrixf
toOsg(
const Eigen::Matrix<float, 4, 4, MOpt>& matrix)
117 osg::Matrixf osgMatrix;
118 Eigen::Map<Eigen::Matrix<float, 4, 4, Eigen::ColMajor>>(osgMatrix.ptr()) = matrix;
123 inline const Eigen::Matrix<float, 4, 4, Eigen::RowMajor>
fromOsg(
const osg::Matrixf& matrix)
125 return Eigen::Map<const Eigen::Matrix<float, 4, 4, Eigen::ColMajor>>(matrix.ptr());
129 template <
int MOpt>
inline 130 const osg::Matrixd
toOsg(
const Eigen::Matrix<double, 4, 4, MOpt>& matrix)
132 osg::Matrixd osgMatrix;
133 Eigen::Map<Eigen::Matrix<double, 4, 4, Eigen::ColMajor>>(osgMatrix.ptr()) = matrix;
138 inline const Eigen::Matrix<double, 4, 4, Eigen::RowMajor>
fromOsg(
const osg::Matrixd& matrix)
140 return Eigen::Map<const Eigen::Matrix<double, 4, 4, Eigen::ColMajor>>(matrix.ptr());
147 #endif // SURGSIM_GRAPHICS_OSGMATRIXCONVERSIONS_H const Eigen::Matrix< float, 2, 2, Eigen::RowMajor > fromOsg(const osg::Matrix2 &matrix)
Convert from OSG to a 2x2 matrix of floats.
Definition: OsgMatrixConversions.h:73
Wraps glewInit() to separate the glew opengl definitions from the osg opengl definitions only imgui n...
Definition: AddRandomSphereBehavior.cpp:36
const osg::Matrix2 toOsg(const Eigen::Matrix< float, 2, 2, MOpt > &matrix)
Convert a fixed-size 2x2 matrix of floats to OSG.
Definition: OsgMatrixConversions.h:56
Definitions of small fixed-size square matrix types.