GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/crocoddyl/multibody/data/contacts.hpp Lines: 12 16 75.0 %
Date: 2024-02-13 11:12:33 Branches: 4 8 50.0 %

Line Branch Exec Source
1
///////////////////////////////////////////////////////////////////////////////
2
// BSD 3-Clause License
3
//
4
// Copyright (C) 2019-2022, University of Edinburgh
5
// Copyright note valid unless otherwise stated in individual files.
6
// All rights reserved.
7
///////////////////////////////////////////////////////////////////////////////
8
9
#ifndef CROCODDYL_CORE_DATA_CONTACTS_HPP_
10
#define CROCODDYL_CORE_DATA_CONTACTS_HPP_
11
12
#include <boost/shared_ptr.hpp>
13
14
#include "crocoddyl/multibody/contacts/multiple-contacts.hpp"
15
#include "crocoddyl/multibody/data/multibody.hpp"
16
#include "crocoddyl/multibody/fwd.hpp"
17
18
namespace crocoddyl {
19
20
template <typename Scalar>
21
struct DataCollectorContactTpl : virtual DataCollectorAbstractTpl<Scalar> {
22
  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
23
24
70994
  DataCollectorContactTpl<Scalar>(
25
      boost::shared_ptr<ContactDataMultipleTpl<Scalar> > contacts)
26
70994
      : DataCollectorAbstractTpl<Scalar>(), contacts(contacts) {}
27
71005
  virtual ~DataCollectorContactTpl() {}
28
29
  boost::shared_ptr<ContactDataMultipleTpl<Scalar> > contacts;
30
};
31
32
template <typename Scalar>
33
struct DataCollectorMultibodyInContactTpl : DataCollectorMultibodyTpl<Scalar>,
34
                                            DataCollectorContactTpl<Scalar> {
35
  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
36
37
70993
  DataCollectorMultibodyInContactTpl(
38
      pinocchio::DataTpl<Scalar>* const pinocchio,
39
      boost::shared_ptr<ContactDataMultipleTpl<Scalar> > contacts)
40
      : DataCollectorMultibodyTpl<Scalar>(pinocchio),
41
70993
        DataCollectorContactTpl<Scalar>(contacts) {}
42
71002
  virtual ~DataCollectorMultibodyInContactTpl() {}
43
};
44
45
template <typename Scalar>
46
struct DataCollectorActMultibodyInContactTpl
47
    : DataCollectorMultibodyInContactTpl<Scalar>,
48
      DataCollectorActuationTpl<Scalar> {
49
  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
50
51
70997
  DataCollectorActMultibodyInContactTpl(
52
      pinocchio::DataTpl<Scalar>* const pinocchio,
53
      boost::shared_ptr<ActuationDataAbstractTpl<Scalar> > actuation,
54
      boost::shared_ptr<ContactDataMultipleTpl<Scalar> > contacts)
55
      : DataCollectorMultibodyInContactTpl<Scalar>(pinocchio, contacts),
56
70997
        DataCollectorActuationTpl<Scalar>(actuation) {}
57
70999
  virtual ~DataCollectorActMultibodyInContactTpl() {}
58
};
59
60
template <typename Scalar>
61
struct DataCollectorJointActMultibodyInContactTpl
62
    : DataCollectorActMultibodyInContactTpl<Scalar>,
63
      DataCollectorJointTpl<Scalar> {
64
  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
65
66
70985
  DataCollectorJointActMultibodyInContactTpl(
67
      pinocchio::DataTpl<Scalar>* const pinocchio,
68
      boost::shared_ptr<ActuationDataAbstractTpl<Scalar> > actuation,
69
      boost::shared_ptr<JointDataAbstractTpl<Scalar> > joint,
70
      boost::shared_ptr<ContactDataMultipleTpl<Scalar> > contacts)
71
      : DataCollectorActMultibodyInContactTpl<Scalar>(pinocchio, actuation,
72
                                                      contacts),
73
70985
        DataCollectorJointTpl<Scalar>(joint) {}
74
141982
  virtual ~DataCollectorJointActMultibodyInContactTpl() {}
75
};
76
77
}  // namespace crocoddyl
78
79
#endif  // CROCODDYL_CORE_DATA_MULTIBODY_IN_CONTACT_HPP_