内容转载自http://zhaoxuhui.top/blog/2019/09/03/eigen-note-4.html,修正原文笔误
-
.translation()
:无参数,返回当前变换平移部分的向量表示(可修改),可以索引[]
获取各分量 -
.translationExt()
:无参数,如果当前变换是仿射的话,返回平移部分(可修改);如果是射影变换的话,返回最后一列(可修改) -
.translate()
:有参数,用于在当前变换上应用右乘,A.translate(B)
等价于A×B -
.pretranslate()
:有参数,用于在当前变换上应用左乘,A.pretranslate(B)
等价于B×A -
.rotation()
:无参数,返回只读的当前变换的旋转部分,以旋转矩阵表示 -
.rotate()
:有参数,用于设置当前变换的旋转部分,输入参数可以为角轴、四元数、旋转矩阵等。A.rotate(B)
等价于A×B -
.prerotate()
:有参数,用于设置当前变换的旋转部分,输入参数可以为角轴、四元数、旋转矩阵等。A.prerotate(B)
等价于B×A -
.matrix()
:返回变换对应的矩阵(可修改) -
.cols()
:变换对应矩阵的列数 -
.rows()
:变换对应矩阵的行数 -
.linear()
&.linearExt()
:返回变换的线性部分,对于Isometry
而言就是旋转对应的旋转矩阵,Eigen::Block类型 -
.inverse()
:返回当前变换的逆变换 -
.Identity()
:返回一个单位变换,一般可用于Isometry的初始化中,将变换设为一个单位阵:Isometry3d::Identity()
-
.setIdentity()
:将当前变换变成单位变换,变换对应的矩阵变成单位阵,也可用于初始化赋值 -
.cast()
:将当前类型的变换转换为其它类型的变换,如Isometry3d
转Isometry3f
-
.data()
:返回一个指向变换内部矩阵的指针,矩阵按照列优先存储 -
.computeRotationScaling()
:将当前变换的线性部分分解成rotation
和scaling
的乘积 -
.computeScalingRotation()
:将当前变换的线性部分分解成scaling
和rotation
的乘积 -
.fromPositionOrientationScale()
:从一个3D对象的位置、指向以及缩放来设置一个变换 -
.prescale()
:有参数,用于在当前变换上应用左乘,A.prescale(B)
等价于B×A -
.scale()
:有参数,用于在当前变换上应用右乘,A.scale(B)
等价于A×B -
.preshear()
:只针对2D情况,沙尔变换,有参数,用于在当前变换上应用左乘,A.preshear(B)
等价于B×A -
.shear()
:只针对2D情况,沙尔变换,有参数,用于在当前变换上应用右乘,A.shear(B)
等价于A×B -
.affine()
:无参数,返回当前变换的仿射部分(可修改),对于Isometry3d
而言,返回的是一个4×3的矩阵 -
makeAffine()
:将变换对应的矩阵的最后一行设为0,0,…,1 -
.isApprox()
:判断当前Isometry
是否与给定Isometry
近似相等,是的话返回true
。判断精度由传入的第二个参数决定。