9 #ifndef CROCODDYL_MULTIBODY_FWD_HPP_
10 #define CROCODDYL_MULTIBODY_FWD_HPP_
12 #include "crocoddyl/core/utils/deprecate.hpp"
13 #include "crocoddyl/core/costs/residual.hpp"
18 template <
typename Scalar>
19 class ActuationModelFloatingBaseTpl;
21 template <
typename Scalar>
22 class ActuationModelFullTpl;
24 template <
typename Scalar>
25 class ActuationModelMultiCopterBaseTpl;
28 template <
typename Scala>
29 struct ForceDataAbstractTpl;
32 template <
typename Scalar>
33 class ContactModelAbstractTpl;
34 template <
typename Scalar>
35 struct ContactDataAbstractTpl;
38 template <
typename Scalar>
39 class ActionModelImpulseFwdDynamicsTpl;
40 template <
typename Scalar>
41 struct ActionDataImpulseFwdDynamicsTpl;
44 template <
typename Scalar>
45 class DifferentialActionModelFreeFwdDynamicsTpl;
46 template <
typename Scalar>
47 struct DifferentialActionDataFreeFwdDynamicsTpl;
49 template <
typename Scalar>
50 class DifferentialActionModelContactFwdDynamicsTpl;
51 template <
typename Scalar>
52 struct DifferentialActionDataContactFwdDynamicsTpl;
55 template <
typename Scalar>
56 class CostModelNumDiffTpl;
57 template <
typename Scalar>
58 struct CostDataNumDiffTpl;
60 template <
typename Scalar>
62 template <
typename Scalar>
66 template <
typename Scalar>
69 template <
typename Scalar>
72 template <
typename Scalar>
75 template <
typename Scalar>
78 template <
typename Scalar>
81 template <
typename Scalar>
84 template <
typename Scalar>
87 template <
typename Scalar>
91 template <
typename Scalar>
93 template <
typename Scalar>
96 template <
typename Scalar>
98 template <
typename Scalar>
101 template <
typename Scalar>
103 template <
typename Scalar>
106 template <
typename Scalar>
108 template <
typename Scalar>
111 template <
typename Scalar>
113 template <
typename Scalar>
116 template <
typename Scalar>
118 template <
typename Scalar>
121 template <
typename Scalar>
123 template <
typename Scalar>
126 template <
typename Scalar>
128 template <
typename Scalar>
131 template <
typename Scalar>
133 template <
typename Scalar>
136 template <
typename Scalar>
138 template <
typename Scalar>
141 template <
typename Scalar>
143 template <
typename Scalar>
146 template <
typename Scalar>
148 template <
typename Scalar>
151 template <
typename Scalar>
153 template <
typename Scalar>
156 template <
typename Scalar>
158 template <
typename Scalar>
161 #ifdef PINOCCHIO_WITH_HPP_FCL
162 template <
typename Scalar>
163 class ResidualModelPairCollisionTpl;
164 template <
typename Scalar>
165 struct ResidualDataPairCollisionTpl;
168 template <
typename Scalar>
171 template <
typename Scalar>
174 template <
typename Scalar>
176 template <
typename Scalar>
179 template <
typename Scalar>
181 template <
typename Scalar>
184 template <
typename Scalar>
186 template <
typename Scalar>
189 template <
typename Scalar>
191 template <
typename Scalar>
194 template <
typename Scalar>
196 template <
typename Scalar>
199 template <
typename Scalar>
201 template <
typename Scalar>
204 template <
typename Scalar>
206 template <
typename Scalar>
209 template <
typename Scalar>
211 template <
typename Scalar>
214 template <
typename Scalar>
216 template <
typename Scalar>
219 template <
typename Scalar>
221 template <
typename Scalar>
224 template <
typename Scalar>
226 template <
typename Scalar>
229 template <
typename Scalar>
231 template <
typename Scalar>
234 template <
typename Scalar>
236 template <
typename Scalar>
239 template <
typename Scalar>
241 template <
typename Scalar>
244 template <
typename Scalar>
246 template <
typename Scalar>
249 template <
typename Scalar>
251 template <
typename Scalar>
254 template <
typename Scalar>
256 template <
typename Scalar>
260 template <
typename Scalar>
262 template <
typename Scalar>
266 template <
typename Scalar>
268 template <
typename Scalar>
270 template <
typename Scalar>
273 template <
typename Scalar>
275 template <
typename Scalar>
278 template <
typename Scalar>
280 template <
typename Scalar>
283 template <
typename Scalar>
285 template <
typename Scalar>
288 template <
typename Scalar>
290 template <
typename Scalar>
294 template <
typename Scalar>
296 template <
typename Scalar>
300 template <
typename Scalar>
304 template <
typename Scalar>
308 template <
typename Scalar>
311 template <
typename Scalar>
314 template <
typename Scalar>
317 template <
typename Scalar>
320 template <
typename Scalar>
323 template <
typename Scalar>
326 template <
typename Scalar>
330 template <
typename Scalar>
332 template <
typename Scalar>
335 template <
typename Scalar>
337 template <
typename Scalar>
340 template <
typename Scalar>
342 template <
typename Scalar>
344 template <
typename Scalar>
413 #ifdef PINOCCHIO_WITH_HPP_FCL
414 typedef ResidualModelPairCollisionTpl<double> ResidualModelPairCollision;
415 typedef ResidualDataPairCollisionTpl<double> ResidualDataPairCollision;
418 DEPRECATED(
"Use ResidualModelFrameTranslation with CostModelResidual",
421 DEPRECATED(
"Use ResidualModelCentroidalMomentum with CostModelResidual",
424 DEPRECATED(
"Use ResidualModelCoMPosition with CostModelResidual",
427 DEPRECATED(
"Use ResidualModelFramePlacement with CostModelResidual",
430 DEPRECATED(
"Use ResidualModelImpulseCoM with CostModelResidual",
435 DEPRECATED(
"Use ResidualModelControlGrav with CostModelResidual",
438 DEPRECATED(
"Use ResidualModelContactControlGrav with CostModelResidual",
441 DEPRECATED(
"Use ResidualModelFrameVelocity with CostModelResidual",
444 DEPRECATED(
"Use ResidualModelFrameRotation with CostModelResidual",
447 DEPRECATED(
"Use ResidualModelCoPPosition with CostModelResidual",
450 DEPRECATED(
"Use ResidualModelContactFrictionCone with CostModelResidual",
453 DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
456 DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
459 DEPRECATED(
"Use ResidualModelContactForce with CostModelResidual",
462 DEPRECATED(
"Use ResidualModelFrictionCone with CostModelResidual",
465 DEPRECATED(
"Use ResidualModelContactCoPPosition with CostModelResidual",
468 DEPRECATED(
"Use ResidualModelContactWrenchCone with CostModelResidual",
475 enum ContactType { ContactUndefined, Contact1D, Contact2D, Contact3D, Contact6D };
476 enum ImpulseType { ImpulseUndefined, Impulse3D, Impulse6D };
478 typedef ContactItemTpl<double> ContactItem;
479 typedef ContactModelMultipleTpl<double> ContactModelMultiple;
480 typedef ContactDataMultipleTpl<double> ContactDataMultiple;
481 typedef ContactModel1DTpl<double> ContactModel1D;
482 typedef ContactData1DTpl<double> ContactData1D;
483 typedef ContactModel2DTpl<double> ContactModel2D;
484 typedef ContactData2DTpl<double> ContactData2D;
485 typedef ContactModel3DTpl<double> ContactModel3D;
486 typedef ContactData3DTpl<double> ContactData3D;
487 typedef ContactModel6DTpl<double> ContactModel6D;
488 typedef ContactData6DTpl<double> ContactData6D;
490 typedef StateMultibodyTpl<double> StateMultibody;
492 typedef DataCollectorMultibodyTpl<double> DataCollectorMultibody;
493 typedef DataCollectorActMultibodyTpl<double> DataCollectorActMultibody;
494 typedef DataCollectorContactTpl<double> DataCollectorContact;
495 typedef DataCollectorMultibodyInContactTpl<double> DataCollectorMultibodyInContact;
496 typedef DataCollectorActMultibodyInContactTpl<double> DataCollectorActMultibodyInContact;
497 typedef DataCollectorImpulseTpl<double> DataCollectorImpulse;
498 typedef DataCollectorMultibodyInImpulseTpl<double> DataCollectorMultibodyInImpulse;
500 typedef ImpulseModel6DTpl<double> ImpulseModel6D;
501 typedef ImpulseData6DTpl<double> ImpulseData6D;
502 typedef ImpulseModel3DTpl<double> ImpulseModel3D;
503 typedef ImpulseData3DTpl<double> ImpulseData3D;
504 typedef ImpulseItemTpl<double> ImpulseItem;
505 typedef ImpulseModelMultipleTpl<double> ImpulseModelMultiple;
506 typedef ImpulseDataMultipleTpl<double> ImpulseDataMultiple;
510 #endif // CROCODDYL_MULTIBODY_FWD_HPP_