3 #include <unsupported/Eigen/MatrixFunctions>
11 template class Map<Sophus::Sim2<double>>;
12 template class Map<Sophus::Sim2<double>
const>;
17 template class Sim2<double, Eigen::AutoAlign>;
18 template class Sim2<float, Eigen::DontAlign>;
20 template class Sim2<ceres::Jet<double, 3>>;
23 template <
class Scalar>
44 Point(1, -1.00000001)));
90 Eigen::Matrix<Scalar, 4, 1> raw;
92 Eigen::Map<Sim2Type const> map_of_const_sim2(raw.data());
94 raw.template head<2>().eval(),
97 raw.template tail<2>().eval(),
102 Eigen::Map<Sim2Type const> const_shallow_copy = map_of_const_sim2;
104 map_of_const_sim2.complex().eval());
106 map_of_const_sim2.translation().eval());
108 Eigen::Matrix<Scalar, 4, 1> raw2;
110 Eigen::Map<Sim2Type> map_of_sim2(raw.data());
112 z = raw2.template head<2>();
113 map_of_sim2.setComplex(z);
114 map_of_sim2.translation() = raw2.template tail<2>();
116 raw2.template head<2>().eval(),
119 raw2.template tail<2>().eval(),
124 Eigen::Map<Sim2Type> shallow_copy = map_of_sim2;
126 map_of_sim2.complex().eval());
128 map_of_sim2.translation().eval());
129 Eigen::Map<Sim2Type>
const const_map_of_sim3 = map_of_sim2;
131 map_of_sim2.complex().eval());
133 map_of_sim2.translation().eval());
135 Sim2Type const const_sim2(z, raw2.template tail<2>().eval());
136 for (
int i = 0; i < 4; ++i) {
140 Sim2Type se3(z, raw2.template tail<2>().eval());
141 for (
int i = 0; i < 4; ++i) {
145 for (
int i = 0; i < 4; ++i) {
153 Eigen::Matrix<Scalar, 3, 3> I = Eigen::Matrix<Scalar, 3, 3>::Identity();
168 sim2.setScale(scale);
172 sim2.setComplex(
sim2_vec_[0].rxso2().complex());
179 std::vector<Sim2Type, Eigen::aligned_allocator<Sim2Type>>
sim2_vec_;
180 std::vector<Tangent, Eigen::aligned_allocator<Tangent>>
tangent_vec_;
181 std::vector<Point, Eigen::aligned_allocator<Point>>
point_vec_;
188 cerr <<
"Test Sim2" << endl << endl;
189 cerr <<
"Double tests: " << endl;
191 cerr <<
"Float tests: " << endl;
195 cerr <<
"ceres::Jet<double, 3> tests: " << endl;