Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef EIGEN_CONVERSIONS_H_
00033 #define EIGEN_CONVERSIONS_H_
00034
00035 #include <Eigen/Dense>
00036 #include <Eigen/Geometry>
00037
00038 #include <geometry_msgs/Quaternion.h>
00039 #include <geometry_msgs/Point.h>
00040
00041 namespace eigen_conversions
00042 {
00043
00045 template<class Scalar>
00046 inline void quaternionToMsg(const Eigen::Quaternion<Scalar> & q_in, geometry_msgs::Quaternion & q_out)
00047 {
00048 q_out.w = q_in.w();
00049 q_out.x = q_in.x();
00050 q_out.y = q_in.y();
00051 q_out.z = q_in.z();
00052 }
00053
00055 template<class Scalar>
00056 inline geometry_msgs::Quaternion quaternionToMsg(const Eigen::Quaternion<Scalar> & q_in)
00057 {
00058 geometry_msgs::Quaternion q_out;
00059 quaternionToMsg(q_in, q_out);
00060 return q_out;
00061 }
00062
00064 template<class Derived, class Point>
00065 inline void vector3dToPoint(const Eigen::MatrixBase<Derived> & vec, Point & point)
00066 {
00067 EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived, 3);
00068 point.x = vec[0];
00069 point.y = vec[1];
00070 point.z = vec[2];
00071 }
00072
00074 template<class Derived, class Point>
00075 inline Point vector3dToPoint(const Eigen::MatrixBase<Derived> & vec)
00076 {
00077 Point point;
00078 vector3dToPoint(vec, point);
00079 return point;
00080 }
00081
00082 }
00083 ;
00084
00085 #endif