|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
程序段如下:
以下是一个结构体:
template<typename T>
struct Twist {
Eigen::Quaternion<T> rot;
Eigen::Matrix<T, 3, 1> pos;
static Twist Identity() {
return Twist();
}
Twist() {
rot.setIdentity();
pos.setZero();
}
Twist(Eigen::Quaternion<T> rot_in, Eigen::Matrix<T, 3, 1> pos_in) {
this->rot = rot_in;
this->pos = pos_in;
}
........
template<typename NewType>
Twist<NewType> cast() const {
Twist<NewType> twist_new{this->rot.template cast<NewType>(), this->pos.template cast<NewType>()};
return twist_new;
}
.........
////////////////
下面是调用:
Twist<float> full_transform = .....;
transform_sum_.rot.normalized().toRotationMatrix().cast<double>();
问题:
rot.normalized().toRotationMatrix() 这个是理解的,关键是后面的cast会有返回值吗?
结构体中this->rot.template cast<NewType>(“这里是空的,所以不应该是空的吗?”) 感觉是定义了结构体中一个空的Eigen::Quaternion呀?
|
|