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 #ifndef RVE_COMMON_EIGEN_CONVERSIONS_H
00031 #define RVE_COMMON_EIGEN_CONVERSIONS_H
00032
00033 #include <Eigen/Geometry>
00034 #include <rve_msgs/Vector3.h>
00035 #include <rve_msgs/Quaternion.h>
00036 #include <rve_msgs/Matrix4.h>
00037
00038 namespace rve_common
00039 {
00040
00041 inline Eigen::Vector3f msgToEigen(const rve_msgs::Vector3& v)
00042 {
00043 return Eigen::Vector3f(v.x, v.y, v.z);
00044 }
00045
00046 inline Eigen::Quaternionf msgToEigen(const rve_msgs::Quaternion& q)
00047 {
00048 return Eigen::Quaternionf(q.w, q.x, q.y, q.z);
00049 }
00050
00051 inline Eigen::Matrix4f msgToEigen(const rve_msgs::Matrix4& m)
00052 {
00053 Eigen::Matrix4f em;
00054 int source_index = 0;
00055 for( int row = 0; row < 4; row++ )
00056 {
00057 for( int col = 0; col < 4; col++ )
00058 {
00059 em( row, col ) = m.m[source_index++];
00060 }
00061 }
00062 return em;
00063 }
00064
00065 inline rve_msgs::Vector3 eigenToMsg(Eigen::Vector3f v)
00066 {
00067 rve_msgs::Vector3 r;
00068 r.x = v.x();
00069 r.y = v.y();
00070 r.z = v.z();
00071 return r;
00072 }
00073
00074 inline rve_msgs::Quaternion eigenToMsg(Eigen::Quaternionf q)
00075 {
00076 rve_msgs::Quaternion r;
00077 r.x = q.x();
00078 r.y = q.y();
00079 r.z = q.z();
00080 r.w = q.w();
00081 return r;
00082 }
00083
00084 }
00085
00086 #endif // RVE_COMMON_EIGEN_CONVERSIONS_H