Crocoddyl
Loading...
Searching...
No Matches
impulses.hpp
1
2// BSD 3-Clause License
3//
4// Copyright (C) 2019-2020, University of Edinburgh
5// Copyright note valid unless otherwise stated in individual files.
6// All rights reserved.
8
9#ifndef CROCODDYL_CORE_DATA_IMPULSES_HPP_
10#define CROCODDYL_CORE_DATA_IMPULSES_HPP_
11
12#include "crocoddyl/multibody/data/multibody.hpp"
13#include "crocoddyl/multibody/fwd.hpp"
14#include "crocoddyl/multibody/impulses/multiple-impulses.hpp"
15
16namespace crocoddyl {
17
18template <typename Scalar>
19struct DataCollectorImpulseTpl : virtual DataCollectorAbstractTpl<Scalar> {
20 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
21
22 DataCollectorImpulseTpl(
23 std::shared_ptr<ImpulseDataMultipleTpl<Scalar> > impulses)
24 : DataCollectorAbstractTpl<Scalar>(), impulses(impulses) {}
25 virtual ~DataCollectorImpulseTpl() {}
26
27 std::shared_ptr<ImpulseDataMultipleTpl<Scalar> > impulses;
28};
29
30template <typename Scalar>
31struct DataCollectorMultibodyInImpulseTpl : DataCollectorMultibodyTpl<Scalar>,
32 DataCollectorImpulseTpl<Scalar> {
33 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
34
35 DataCollectorMultibodyInImpulseTpl(
36 pinocchio::DataTpl<Scalar>* const pinocchio,
37 std::shared_ptr<ImpulseDataMultipleTpl<Scalar> > impulses)
38 : DataCollectorMultibodyTpl<Scalar>(pinocchio),
39 DataCollectorImpulseTpl<Scalar>(impulses) {}
40 virtual ~DataCollectorMultibodyInImpulseTpl() {}
41};
42
43} // namespace crocoddyl
44
45CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(crocoddyl::DataCollectorImpulseTpl)
46CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(
48
49#endif // CROCODDYL_CORE_DATA_MULTIBODY_IN_IMPULSE_HPP_
Define the multi-impulse data.