8 #ifndef __SOT_MATRIX_GEOMETRY_H__
9 #define __SOT_MATRIX_GEOMETRY_H__
16 #include <Eigen/Geometry>
19 #define MRAWDATA(x) x.data()
28 #define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \
30 typedef Eigen::Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix; \
32 typedef Eigen::Matrix<Type, Size, 1> Vector##SizeSuffix##TypeSuffix; \
34 typedef Eigen::Matrix<Type, 1, Size> RowVector##SizeSuffix##TypeSuffix;
36 #define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size) \
38 typedef Eigen::Matrix<Type, Size, Eigen::Dynamic> \
39 Matrix##Size##X##TypeSuffix; \
41 typedef Eigen::Matrix<Type, Eigen::Dynamic, Size> Matrix##X##Size##TypeSuffix;
43 #define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
44 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \
45 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 5, 5) \
46 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 6, 6) \
47 EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 7, 7) \
48 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 1) \
49 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 5) \
50 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 6) \
51 EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 7)
59 #undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
60 #undef EIGEN_MAKE_TYPEDEFS
62 typedef Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>
89 Eigen::Vector3d _t = MH.translation();
92 Tx << 0, -_t(2), _t(1), _t(2), 0, -_t(0), -_t(1), _t(0), 0;
96 MT.block<3, 3>(0, 0) =
R;
97 MT.block<3, 3>(0, 3) = sk;
99 MT.block<3, 3>(3, 3) =
R;