GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: src/matrix/integrator-euler.t.cpp Lines: 1 3 33.3 %
Date: 2023-03-13 12:09:37 Branches: 1 6 16.7 %

Line Branch Exec Source
1
/*
2
 * Copyright 2010,
3
 * François Bleibel,
4
 * Olivier Stasse,
5
 *
6
 * CNRS/AIST
7
 *
8
 */
9
10
#include <sot/core/factory.hh>
11
#include <sot/core/integrator-euler.hh>
12
13
using namespace dynamicgraph::sot;
14
using namespace dynamicgraph;
15
16
#define SOT_FACTORY_TEMPLATE_ENTITY_PLUGIN_EULER(sotClassType, sotSigType,     \
17
                                                 sotCoefType, className)       \
18
  template <>                                                                  \
19
  std::string sotClassType<sotSigType, sotCoefType>::getTypeName(void) {       \
20
    return #sotSigType;                                                        \
21
  }                                                                            \
22
  template <>                                                                  \
23
  const std::string sotClassType<sotSigType, sotCoefType>::CLASS_NAME =        \
24
      className;                                                               \
25
  template <>                                                                  \
26
  const std::string &sotClassType<sotSigType, sotCoefType>::getClassName(void) \
27
      const {                                                                  \
28
    return CLASS_NAME;                                                         \
29
  }                                                                            \
30
  extern "C" {                                                                 \
31
  Entity *regFunction##_##sotSigType##_##sotCoefType(                          \
32
      const std::string &objname) {                                            \
33
    return new sotClassType<sotSigType, sotCoefType>(objname);                 \
34
  }                                                                            \
35
  EntityRegisterer regObj##_##sotSigType##_##sotCoefType(                      \
36
      sotClassType<sotSigType, sotCoefType>::CLASS_NAME,                       \
37
      &regFunction##_##sotSigType##_##sotCoefType);                            \
38
  }
39
40
using namespace std;
41
namespace dynamicgraph {
42
namespace sot {
43
SOT_FACTORY_TEMPLATE_ENTITY_PLUGIN_EULER(IntegratorEuler, double, double,
44
                                         "IntegratorEulerDoubleDouble")
45
SOT_FACTORY_TEMPLATE_ENTITY_PLUGIN_EULER(IntegratorEuler, Vector, Matrix,
46
                                         "IntegratorEulerVectorMatrix")
47
2
SOT_FACTORY_TEMPLATE_ENTITY_PLUGIN_EULER(IntegratorEuler, Vector, double,
48
                                         "IntegratorEulerVectorDouble")
49
50
template class IntegratorEuler<double, double>;
51
template class IntegratorEuler<Vector, double>;
52
template class IntegratorEuler<Vector, Matrix>;
53
}  // namespace sot
54
}  // namespace dynamicgraph