GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: unittest/factory/contact_constraint.hpp Lines: 6 6 100.0 %
Date: 2024-02-13 11:12:33 Branches: 4 6 66.7 %

Line Branch Exec Source
1
///////////////////////////////////////////////////////////////////////////////
2
// BSD 3-Clause License
3
//
4
// Copyright (C) 2021, University of Edinburgh
5
// Copyright note valid unless otherwise stated in individual files.
6
// All rights reserved.
7
///////////////////////////////////////////////////////////////////////////////
8
9
#ifndef CROCODDYL_CONTACT_CONSTRAINT_FACTORY_HPP_
10
#define CROCODDYL_CONTACT_CONSTRAINT_FACTORY_HPP_
11
12
#include "activation.hpp"
13
#include "actuation.hpp"
14
#include "crocoddyl/core/diff-action-base.hpp"
15
#include "crocoddyl/core/numdiff/diff-action.hpp"
16
#include "state.hpp"
17
18
namespace crocoddyl {
19
namespace unittest {
20
21
struct ContactConstraintModelTypes {
22
  enum Type {
23
    ConstraintModelResidualContactForceEquality,
24
    ConstraintModelResidualContactCoPPositionInequality,
25
    ConstraintModelResidualContactFrictionConeInequality,
26
    ConstraintModelResidualContactWrenchConeInequality,
27
    ConstraintModelResidualContactControlGravInequality,
28
    NbContactConstraintModelTypes
29
  };
30
23
  static std::vector<Type> init_all() {
31
23
    std::vector<Type> v;
32
23
    v.reserve(NbContactConstraintModelTypes);
33
138
    for (int i = 0; i < NbContactConstraintModelTypes; ++i) {
34
115
      v.push_back((Type)i);
35
    }
36
23
    return v;
37
  }
38
  static const std::vector<Type> all;
39
};
40
41
std::ostream &operator<<(std::ostream &os,
42
                         ContactConstraintModelTypes::Type type);
43
44
class ContactConstraintModelFactory {
45
 public:
46
  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
47
48
  typedef crocoddyl::MathBaseTpl<double> MathBase;
49
50
  explicit ContactConstraintModelFactory();
51
  ~ContactConstraintModelFactory();
52
53
  boost::shared_ptr<crocoddyl::DifferentialActionModelAbstract> create(
54
      ContactConstraintModelTypes::Type constraint_type,
55
      PinocchioModelTypes::Type model_type,
56
      ActuationModelTypes::Type actuation_type) const;
57
};
58
59
}  // namespace unittest
60
}  // namespace crocoddyl
61
62
#endif  // CROCODDYL_CONTACT_CONSTRAINT_FACTORY_HPP_