25 #ifndef INCLUDED_MatrixEigenAssign_h_GUID_23E844E3_DFBB_468C_1CD9_2BD88AA51871 26 #define INCLUDED_MatrixEigenAssign_h_GUID_23E844E3_DFBB_468C_1CD9_2BD88AA51871 50 template <
typename Scalar,
typename T>
54 static_assert(!TargetType::IsRowMajor,
"This and other code depends on " 55 "Eigen matrices being column " 59 EIGEN_STATIC_ASSERT_FIXED_SIZE(
T);
61 EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(
T, 4, 4);
63 const bool needsTransposeFromColMaj =
64 detail::matrixNeedsTranspose(flags);
68 const bool needsTranspose = (T::IsRowMajor) ? !needsTransposeFromColMaj
69 : needsTransposeFromColMaj;
72 destMat = src.template cast<Scalar>().transpose();
74 destMat = src.template cast<Scalar>();
81 #endif // INCLUDED_MatrixEigenAssign_h_GUID_23E844E3_DFBB_468C_1CD9_2BD88AA51871 Definition: RunLoopManager.h:42
A matrix or vector expression mapping an existing array of data.
Definition: Map.h:104
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
Header wrapping include of <Eigen/Core> and <Eigen/Geometry> for warning quieting.
uint16_t OSVR_MatrixConventions
Type for passing matrix convention flags.
Definition: MatrixConventionsC.h:54
A small structure to hold a non zero as a triplet (i,j,value).
Definition: SparseUtil.h:148
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:127
void matrixEigenAssign(T const &src, OSVR_MatrixConventions flags, Scalar *dest)
Helper function template to assign/convert matrices as required.
Definition: MatrixEigenAssign.h:51