LCOV - code coverage report
Current view: top level - include/ros_end_effector - UtilsYAML.h (source / functions) Hit Total Coverage
Test: main_coverage.info Lines: 0 15 0.0 %
Date: 2021-10-05 16:55:17 Functions: 0 2 0.0 %

          Line data    Source code
       1             : #ifndef __ROSEE_UTILS_YAML__
       2             : #define __ROSEE_UTILS_YAML__
       3             : 
       4             : #include <yaml-cpp/yaml.h>
       5             : #include <Eigen/Dense>
       6             : 
       7             : 
       8             : namespace ROSEE { namespace Utils {
       9             : 
      10             : /**
      11             :  * @brief given a yaml node with a structure like
      12             :  *   - [1, 2, 3]
      13             :  *   - [4, 5, 6]
      14             :  *   "Convert" this structure into a eigen matrix
      15             :  * 
      16             :  * @todo is there a better way to do this?
      17             :  */
      18           0 : static Eigen::MatrixXd yamlMatrixToEigen(const YAML::Node &matrixNode) {
      19             :         
      20             :     //note: they say adding row by row to eigen is tremendously slow,
      21             :     // so we use vector
      22           0 :     std::vector<std::vector<float>> stdMat;
      23           0 :     stdMat = matrixNode.as<std::vector<std::vector<float>>>();
      24             : 
      25           0 :     Eigen::MatrixXd eigenMat(stdMat.size(), stdMat.at(0).size());
      26             :     
      27           0 :     for (int iRow = 0; iRow<stdMat.size(); iRow++) {
      28           0 :         for (int iCol = 0; iCol<stdMat.at(0).size(); iCol++) {
      29           0 :             eigenMat(iRow, iCol) =  stdMat.at(iRow).at(iCol);
      30             :         }
      31             :     }
      32             :     
      33           0 :     return eigenMat;
      34             :     
      35             : }
      36             : 
      37           0 : static Eigen::VectorXd yamlVectorToEigen(const YAML::Node &vectorNode) {
      38             :         
      39             :     //note: they say adding row by row to eigen is tremendously slow,
      40             :     // so we use vector
      41           0 :     std::vector<float> stdVect;
      42           0 :     stdVect = vectorNode.as<std::vector<float>>();
      43             : 
      44           0 :     Eigen::VectorXd eigenVec(stdVect.size());
      45             :     
      46           0 :     for (int i = 0; i<stdVect.size(); i++) {
      47           0 :         eigenVec(i) =  stdVect.at(i);
      48             :     }
      49             :     
      50           0 :     return eigenVec;
      51             :     
      52             : }
      53             : 
      54             : }
      55             : 
      56             : }
      57             : 
      58             : #endif // __ROSEE_UTILS_YAML__

Generated by: LCOV version 1.13