Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef CARTOGRAPHER_TRANSFORM_RIGID_TRANSFORM_TEST_HELPERS_H_
00018 #define CARTOGRAPHER_TRANSFORM_RIGID_TRANSFORM_TEST_HELPERS_H_
00019
00020 #include <string>
00021
00022 #include "Eigen/Core"
00023 #include "Eigen/Geometry"
00024 #include "cartographer/common/port.h"
00025 #include "cartographer/transform/rigid_transform.h"
00026 #include "gmock/gmock.h"
00027 #include "gtest/gtest.h"
00028
00029 namespace cartographer {
00030 namespace transform {
00031
00032 template <typename T>
00033 Eigen::Transform<T, 2, Eigen::Affine> ToEigen(const Rigid2<T>& rigid2) {
00034 return Eigen::Translation<T, 2>(rigid2.translation()) * rigid2.rotation();
00035 }
00036
00037 template <typename T>
00038 Eigen::Transform<T, 3, Eigen::Affine> ToEigen(const Rigid3<T>& rigid3) {
00039 return Eigen::Translation<T, 3>(rigid3.translation()) * rigid3.rotation();
00040 }
00041
00042 MATCHER_P2(IsNearly, rigid, epsilon,
00043 std::string(std::string(negation ? "isn't nearly " : "is nearly ") +
00044 rigid.DebugString())) {
00045 return ToEigen(arg).isApprox(ToEigen(rigid), epsilon);
00046 }
00047
00048 }
00049 }
00050
00051 #endif // CARTOGRAPHER_TRANSFORM_RIGID_TRANSFORM_TEST_HELPERS_H_