[英]Setting eigen “Transformation” class as column major for post/right multiplication
我有一个函数可以对变换矩阵进行很多后/右乘法。现在我想将此函数转换为使用Eigen,问题是Eigen Transformation类将乘法作为前/左乘法。 这意味着在乘法过程中它具有行矩阵格式,而存储是列矩阵格式。
有没有办法将Eigen :: Transformation类成员从行专业更改为列专业?
本征Matrix
类的完整签名为
Matrix<typename Scalar,
int RowsAtCompileTime,
int ColsAtCompileTime,
int Options = 0,
int MaxRowsAtCompileTime = RowsAtCompileTime,
int MaxColsAtCompileTime = ColsAtCompileTime>
第四个参数Options
被描述为
选项是一个位字段。 在这里,我们只讨论一点:
RowMajor
。 它指定这种类型的矩阵使用行优先存储顺序 ; 默认情况下,存储顺序为“大列”。 请参阅有关存储订单的页面。 例如,此类型表示行优先的3x3矩阵
举例来说,
Matrix<int, 3, 4, ColMajor> foo; // column major
Matrix<int, 4, 3, RowMajor> bar; // row major
如果您要引用的转换是Eigen::Transform
则它还具有一个Options
模板参数,您还可以传递RowMajor
vs ColMajor
。 它产生的任何矩阵都将遵循您指定的相同约定。
Transform<typename Scalar,
int Dim,
int Mode,
int _Options = AutoAlign>
再次将_Options
参数描述为
_Options
与Matrix
类具有相同的含义。 它允许指定DontAlign
和/或RowMajor
。 这些Options
直接传递给基础矩阵类型 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.