GCC Code Coverage Report


Directory: ./
File: include/pinocchio/context/generic.hpp
Date: 2024-08-27 18:20:05
Exec Total Coverage
Lines: 4 4 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 //
2 // Copyright (c) 2022 INRIA
3 //
4
5 #ifndef __pinocchio_context_generic_hpp__
6 #define __pinocchio_context_generic_hpp__
7
8 #include <Eigen/Core>
9 #include "pinocchio/container/aligned-vector.hpp"
10
11 namespace pinocchio
12 {
13
14 template<typename _Scalar, int _Options>
15 struct JointCollectionDefaultTpl;
16 template<
17 typename _Scalar,
18 int _Options = 0,
19 template<typename S, int O> class JointCollectionTpl = JointCollectionDefaultTpl>
20 struct ModelTpl;
21 template<
22 typename _Scalar,
23 int _Options = 0,
24 template<typename S, int O> class JointCollectionTpl = JointCollectionDefaultTpl>
25 struct DataTpl;
26 template<typename _Scalar, int _Options = 0>
27 class MotionTpl;
28 template<typename _Scalar, int _Options = 0>
29 class ForceTpl;
30 template<typename _Scalar, int _Options>
31 struct RigidConstraintModelTpl;
32 template<typename _Scalar, int _Options>
33 struct RigidConstraintDataTpl;
34
35 template<typename _Scalar>
36 struct CoulombFrictionConeTpl;
37 template<typename _Scalar>
38 struct DualCoulombFrictionConeTpl;
39
40 namespace context
41 {
42 typedef PINOCCHIO_SCALAR_TYPE Scalar;
43 enum
44 {
45 Options = 0
46 };
47 typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> VectorXs;
48 typedef Eigen::Matrix<Scalar, 6, Eigen::Dynamic, Options> Matrix6xs;
49 typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, Options> MatrixXs;
50 typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor | Options>
51 RowMatrixXs;
52 typedef Eigen::Matrix<Scalar, 3, Eigen::Dynamic, Options> Matrix3x;
53 typedef Eigen::Matrix<Scalar, 3, 1, Options> Vector3;
54 typedef Eigen::Matrix<Scalar, 6, 10, Options> BodyRegressorType;
55
56 typedef ModelTpl<Scalar, Options> Model;
57 typedef DataTpl<Scalar, Options> Data;
58
59 typedef CoulombFrictionConeTpl<Scalar> CoulombFrictionCone;
60 typedef DualCoulombFrictionConeTpl<Scalar> DualCoulombFrictionCone;
61
62 typedef RigidConstraintModelTpl<Scalar, Options> RigidConstraintModel;
63 typedef RigidConstraintDataTpl<Scalar, Options> RigidConstraintData;
64
65 typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(CoulombFrictionCone)
66 CoulombFrictionConeVector;
67 typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(DualCoulombFrictionCone)
68 DualCoulombFrictionConeVector;
69 typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(RigidConstraintModel)
70 RigidConstraintModelVector;
71 typedef PINOCCHIO_STD_VECTOR_WITH_EIGEN_ALLOCATOR(RigidConstraintData)
72 RigidConstraintDataVector;
73
74 typedef MotionTpl<Scalar, Options> Motion;
75 typedef ForceTpl<Scalar, Options> Force;
76
77 } // namespace context
78
79 // Read and write
80 template<typename Derived>
81 497 Eigen::Ref<typename Derived::PlainObject> make_ref(const Eigen::MatrixBase<Derived> & x)
82 {
83 497 return Eigen::Ref<typename Derived::PlainObject>(x.const_cast_derived());
84 }
85
86 // Read-only
87 template<typename M>
88 4986 auto make_const_ref(Eigen::MatrixBase<M> const & m) -> Eigen::Ref<typename M::PlainObject const>
89 {
90 4986 return m;
91 }
92
93 } // namespace pinocchio
94
95 #endif // #ifndef __pinocchio_context_generic_hpp__
96