本文整理汇总了C++中Pose::rotationMatrix方法的典型用法代码示例。如果您正苦于以下问题:C++ Pose::rotationMatrix方法的具体用法?C++ Pose::rotationMatrix怎么用?C++ Pose::rotationMatrix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pose
的用法示例。
在下文中一共展示了Pose::rotationMatrix方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: apply_increment
void apply_increment(Pose &obj, const double increment[SE3Type::num_parameters-1], const Adl&){
Eigen::Matrix3d R = obj.rotationMatrix();
v::apply_rotation(R, Eigen::Vector3d(increment[0], increment[1], increment[2]));
obj.data[0] = R(2, 1);
obj.data[1] = R(0, 2);
obj.data[2] = R(1, 0);
for (size_t i=3; i<6; ++i){
obj.data[i] += increment[i];
}
}
示例2: if
template<int I> void apply_small_increment(Pose &obj, double d, v::numeric_tag<I>, const Adl&){
if (I < 3){
Eigen::Matrix<double, 3, 3> R = obj.rotationMatrix();
if (I == 0) v::apply_small_rotation_x(R, d);
else if (I == 1) v::apply_small_rotation_y(R, d);
else if (I == 2) v::apply_small_rotation_z(R, d);
obj.data[0] = R(2, 1);
obj.data[1] = R(0, 2);
obj.data[2] = R(1, 0);
}
else{
obj.data[I] += d;
}
}