Crocoddyl
Loading...
Searching...
No Matches
multibody.hpp
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.
8
9#ifndef CROCODDYL_CORE_DATA_MULTIBODY_HPP_
10#define CROCODDYL_CORE_DATA_MULTIBODY_HPP_
11
12#include "crocoddyl/core/data-collector-base.hpp"
13#include "crocoddyl/core/data/actuation.hpp"
14#include "crocoddyl/core/data/joint.hpp"
15#include "crocoddyl/multibody/fwd.hpp"
16
17namespace crocoddyl {
18
19template <typename Scalar>
20struct DataCollectorMultibodyTpl : virtual DataCollectorAbstractTpl<Scalar> {
21 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
22
23 DataCollectorMultibodyTpl(pinocchio::DataTpl<Scalar>* const data)
24 : pinocchio(data) {}
25 virtual ~DataCollectorMultibodyTpl() {}
26
27 pinocchio::DataTpl<Scalar>* pinocchio;
28};
29
30template <typename Scalar>
31struct DataCollectorActMultibodyTpl : DataCollectorMultibodyTpl<Scalar>,
32 DataCollectorActuationTpl<Scalar> {
33 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
34
35 DataCollectorActMultibodyTpl(
36 pinocchio::DataTpl<Scalar>* const pinocchio,
37 std::shared_ptr<ActuationDataAbstractTpl<Scalar> > actuation)
38 : DataCollectorMultibodyTpl<Scalar>(pinocchio),
39 DataCollectorActuationTpl<Scalar>(actuation) {}
40 virtual ~DataCollectorActMultibodyTpl() {}
41};
42
43template <typename Scalar>
44struct DataCollectorJointActMultibodyTpl : DataCollectorActMultibodyTpl<Scalar>,
45 DataCollectorJointTpl<Scalar> {
46 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
47
48 DataCollectorJointActMultibodyTpl(
49 pinocchio::DataTpl<Scalar>* const pinocchio,
50 std::shared_ptr<ActuationDataAbstractTpl<Scalar> > actuation,
51 std::shared_ptr<JointDataAbstractTpl<Scalar> > joint)
52 : DataCollectorActMultibodyTpl<Scalar>(pinocchio, actuation),
53 DataCollectorJointTpl<Scalar>(joint) {}
54 virtual ~DataCollectorJointActMultibodyTpl() {}
55};
56
57} // namespace crocoddyl
58
59CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(crocoddyl::DataCollectorMultibodyTpl)
60CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(
62CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(
64
65#endif // CROCODDYL_CORE_DATA_MULTIBODY_HPP_