LCOV - code coverage report
Current view: top level - src/rdl/rdl_benchmark/include/rdl_benchmark - SampleData.hpp (source / functions) Hit Total Coverage
Test: projectcoverage.info Lines: 0 38 0.0 %
Date: 2024-12-13 18:04:46 Functions: 0 4 0.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : // Copyright (c) 2017 Jordan Lack <jlack1987@gmail.com>
       2                 :            : // Copyright (c) 2011-2016 Martin Felis <martin.felis@iwr.uni-heidelberg.de>
       3                 :            : // RDL - Robot Dynamics Library
       4                 :            : // Licensed under the zlib license. See LICENSE for more details.
       5                 :            : 
       6                 :            : #ifndef _RDL_BENCHMARK_SAMPLE_DATA_H__
       7                 :            : #define _RDL_BENCHMARK_SAMPLE_DATA_H__
       8                 :            : 
       9                 :            : #include <rdl_dynamics/rdl_eigenmath.hpp>
      10                 :            : 
      11                 :            : struct SampleData
      12                 :            : {
      13                 :          0 :     SampleData() : count(0), q(NULL), qdot(NULL), qddot(NULL), tau(NULL)
      14                 :            :     {
      15                 :          0 :     }
      16                 :            : 
      17                 :          0 :     ~SampleData()
      18                 :            :     {
      19                 :          0 :         deleteData();
      20                 :          0 :     }
      21                 :            : 
      22                 :            :     SampleData(const SampleData& data)
      23                 :            :     {
      24                 :            :         count = data.count;
      25                 :            : 
      26                 :            :         q = new RobotDynamics::Math::VectorNd[count];
      27                 :            :         qdot = new RobotDynamics::Math::VectorNd[count];
      28                 :            :         qddot = new RobotDynamics::Math::VectorNd[count];
      29                 :            :         tau = new RobotDynamics::Math::VectorNd[count];
      30                 :            : 
      31                 :            :         for (unsigned int si = 0; si < count; si++)
      32                 :            :         {
      33                 :            :             q[si] = data.q[si];
      34                 :            :             qdot[si] = data.qdot[si];
      35                 :            :             qddot[si] = data.qddot[si];
      36                 :            :             tau[si] = data.tau[si];
      37                 :            :         }
      38                 :            :     }
      39                 :            : 
      40                 :            :     SampleData& operator=(const SampleData& data)
      41                 :            :     {
      42                 :            :         if (this != &data)
      43                 :            :         {
      44                 :            :             deleteData();
      45                 :            :             *this = SampleData(data);
      46                 :            :         }
      47                 :            :         return *this;
      48                 :            :     }
      49                 :            : 
      50                 :            :     unsigned int count;
      51                 :            :     RobotDynamics::Math::VectorNd* q;
      52                 :            :     RobotDynamics::Math::VectorNd* qdot;
      53                 :            :     RobotDynamics::Math::VectorNd* qddot;
      54                 :            :     RobotDynamics::Math::VectorNd* tau;
      55                 :            : 
      56                 :          0 :     void deleteData()
      57                 :            :     {
      58                 :          0 :         count = 0;
      59                 :            : 
      60                 :          0 :         if (q)
      61                 :            :         {
      62                 :          0 :             delete[] q;
      63                 :            :         }
      64                 :          0 :         q = NULL;
      65                 :            : 
      66                 :          0 :         if (qdot)
      67                 :            :         {
      68                 :          0 :             delete[] qdot;
      69                 :            :         }
      70                 :          0 :         qdot = NULL;
      71                 :            : 
      72                 :          0 :         if (qddot)
      73                 :            :         {
      74                 :          0 :             delete[] qddot;
      75                 :            :         }
      76                 :          0 :         qddot = NULL;
      77                 :            : 
      78                 :          0 :         if (tau)
      79                 :            :         {
      80                 :          0 :             delete[] tau;
      81                 :            :         }
      82                 :          0 :         tau = NULL;
      83                 :          0 :     }
      84                 :            : 
      85                 :          0 :     void fillRandom(unsigned int dof_count, unsigned int sample_count)
      86                 :            :     {
      87                 :          0 :         deleteData();
      88                 :          0 :         count = sample_count;
      89                 :            : 
      90                 :          0 :         q = new RobotDynamics::Math::VectorNd[count];
      91                 :          0 :         qdot = new RobotDynamics::Math::VectorNd[count];
      92                 :          0 :         qddot = new RobotDynamics::Math::VectorNd[count];
      93                 :          0 :         tau = new RobotDynamics::Math::VectorNd[count];
      94                 :            : 
      95                 :          0 :         for (unsigned int si = 0; si < count; si++)
      96                 :            :         {
      97                 :          0 :             q[si].resize(dof_count);
      98                 :          0 :             qdot[si].resize(dof_count);
      99                 :          0 :             qddot[si].resize(dof_count);
     100                 :          0 :             tau[si].resize(dof_count);
     101                 :            : 
     102                 :          0 :             for (unsigned int i = 0; i < dof_count; i++)
     103                 :            :             {
     104                 :          0 :                 q[si][i] = (static_cast<double>(rand()) / static_cast<double>(RAND_MAX)) * 2. - 1.;
     105                 :          0 :                 qdot[si][i] = (static_cast<double>(rand()) / static_cast<double>(RAND_MAX)) * 2. - 1.;
     106                 :          0 :                 qddot[si][i] = (static_cast<double>(rand()) / static_cast<double>(RAND_MAX)) * 2. - 1.;
     107                 :          0 :                 tau[si][i] = (static_cast<double>(rand()) / static_cast<double>(RAND_MAX)) * 2. - 1.;
     108                 :            :             }
     109                 :            :         }
     110                 :          0 :     }
     111                 :            : };
     112                 :            : 
     113                 :            : #endif

Generated by: LCOV version 1.14