Example #1
0
bool multiArrayMessageMapToMatrixEigen(MultiArrayMessageType_& m, EigenType_& e)
{
  if (e.IsRowMajor != isRowMajor(m)) {
    ROS_ERROR("multiArrayMessageToMatrixEigen() failed because the storage order is not compatible.");
    return false;
  }

  e.resize(getRows(m), getCols(m));
  e = Eigen::Map<EigenType_>(m.data.data(), getRows(m), getCols(m));
  return true;
}
Example #2
0
bool multiArrayMessageCopyToMatrixEigen(const MultiArrayMessageType_& m, EigenType_& e)
{
  if (e.IsRowMajor != isRowMajor(m)) {
    ROS_ERROR("multiArrayMessageToMatrixEigen() failed because the storage order is not compatible.");
    return false;
  }

  EigenType_ tempE(getRows(m), getCols(m));
  tempE = Eigen::Map<const EigenType_>(m.data.data(), getRows(m), getCols(m));
  e = tempE;
  return true;
}
Example #3
0
bool isColumnMajor(blas::matrix_expression<Mat> const& mat){
    return !isRowMajor(mat);
}
Example #4
0
bool isRowMajor(blas::matrix_expression<Mat> const& mat){
    return isRowMajor(mat,typename Mat::orientation_category());
}
Example #5
0
unsigned int getRows(const MultiArrayMessageType_& message)
{
  if (isRowMajor(message)) return message.layout.dim.at(0).size;
  return message.layout.dim.at(1).size;
}