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>
 
   53         typedef Eigen::Matrix<Scalar, 4, 4> TargetType;
 
   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;
 
   70         Eigen::Map<TargetType> destMat(dest);
 
   72             destMat = src.template cast<Scalar>().transpose();
 
   74             destMat = src.template cast<Scalar>();
 
   81 #endif // INCLUDED_MatrixEigenAssign_h_GUID_23E844E3_DFBB_468C_1CD9_2BD88AA51871 
Header wrapping include of  and  for warning quieting. 
uint16_t OSVR_MatrixConventions
Type for passing matrix convention flags. 
void matrixEigenAssign(T const &src, OSVR_MatrixConventions flags, Scalar *dest)
Helper function template to assign/convert matrices as required. 
double Scalar
Common scalar type.