[英]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.