pinocchio  2.3.1-dirty
act-on-set.hpp
1 //
2 // Copyright (c) 2015-2018 CNRS
3 //
4 
5 #ifndef __pinocchio_act_on_set_hpp__
6 #define __pinocchio_act_on_set_hpp__
7 
8 #include "pinocchio/macros.hpp"
9 #include "pinocchio/spatial/fwd.hpp"
10 
11 namespace pinocchio
12 {
13 
14  enum AssignmentOperatorType
15  {
16  SETTO,
17  ADDTO,
18  RMTO
19  };
20 
21  namespace forceSet
22  {
27  template<int Op, typename Scalar, int Options, typename Mat, typename MatRet>
28  static void se3Action(const SE3Tpl<Scalar,Options> & m,
29  const Eigen::MatrixBase<Mat> & iF,
30  Eigen::MatrixBase<MatRet> const & jF);
31 
33  template<typename Scalar, int Options, typename Mat, typename MatRet>
34  static void se3Action(const SE3Tpl<Scalar,Options> & m,
35  const Eigen::MatrixBase<Mat> & iF,
36  Eigen::MatrixBase<MatRet> const & jF);
37 
42  template<int Op, typename Scalar, int Options, typename Mat, typename MatRet>
43  static void se3ActionInverse(const SE3Tpl<Scalar,Options> & m,
44  const Eigen::MatrixBase<Mat> & iF,
45  Eigen::MatrixBase<MatRet> const & jF);
46 
48  template<typename Scalar, int Options, typename Mat, typename MatRet>
49  static void se3ActionInverse(const SE3Tpl<Scalar,Options> & m,
50  const Eigen::MatrixBase<Mat> & iF,
51  Eigen::MatrixBase<MatRet> const & jF);
52 
57  template<int Op, typename MotionDerived, typename Mat, typename MatRet>
58  static void motionAction(const MotionDense<MotionDerived> & v,
59  const Eigen::MatrixBase<Mat> & iF,
60  Eigen::MatrixBase<MatRet> const & jF);
61 
63  template<typename MotionDerived, typename Mat, typename MatRet>
64  static void motionAction(const MotionDense<MotionDerived> & v,
65  const Eigen::MatrixBase<Mat> & iF,
66  Eigen::MatrixBase<MatRet> const & jF);
67 
68  } // namespace forceSet
69 
70  namespace motionSet
71  {
76  template<int Op, typename Scalar, int Options, typename Mat,typename MatRet>
77  static void se3Action(const SE3Tpl<Scalar,Options> & m,
78  const Eigen::MatrixBase<Mat> & iV,
79  Eigen::MatrixBase<MatRet> const & jV);
80 
82  template<typename Scalar, int Options, typename Mat,typename MatRet>
83  static void se3Action(const SE3Tpl<Scalar,Options> & m,
84  const Eigen::MatrixBase<Mat> & iV,
85  Eigen::MatrixBase<MatRet> const & jV);
86 
91  template<int Op, typename Scalar, int Options, typename Mat,typename MatRet>
92  static void se3ActionInverse(const SE3Tpl<Scalar,Options> & m,
93  const Eigen::MatrixBase<Mat> & iV,
94  Eigen::MatrixBase<MatRet> const & jV);
95 
97  template<typename Scalar, int Options, typename Mat,typename MatRet>
98  static void se3ActionInverse(const SE3Tpl<Scalar,Options> & m,
99  const Eigen::MatrixBase<Mat> & iV,
100  Eigen::MatrixBase<MatRet> const & jV);
101 
106  template<int Op, typename MotionDerived, typename Mat, typename MatRet>
107  static void motionAction(const MotionDense<MotionDerived> & v,
108  const Eigen::MatrixBase<Mat> & iF,
109  Eigen::MatrixBase<MatRet> const & jF);
110 
112  template<typename MotionDerived, typename Mat, typename MatRet>
113  static void motionAction(const MotionDense<MotionDerived> & v,
114  const Eigen::MatrixBase<Mat> & iF,
115  Eigen::MatrixBase<MatRet> const & jF);
116 
121  template<int Op, typename Scalar, int Options, typename Mat, typename MatRet>
122  static void inertiaAction(const InertiaTpl<Scalar,Options> & I,
123  const Eigen::MatrixBase<Mat> & iF,
124  Eigen::MatrixBase<MatRet> const & jF);
125 
127  template<typename Scalar, int Options, typename Mat, typename MatRet>
128  static void inertiaAction(const InertiaTpl<Scalar,Options> & I,
129  const Eigen::MatrixBase<Mat> & iF,
130  Eigen::MatrixBase<MatRet> const & jF);
131 
139  template<int Op, typename ForceDerived, typename Mat, typename MatRet>
140  static void act(const Eigen::MatrixBase<Mat> & iV,
141  const ForceDense<ForceDerived> & f,
142  Eigen::MatrixBase<MatRet> const & jF);
143 
145  template<typename ForceDerived, typename Mat, typename MatRet>
146  static void act(const Eigen::MatrixBase<Mat> & iV,
147  const ForceDense<ForceDerived> & f,
148  Eigen::MatrixBase<MatRet> const & jF);
149 
150  } // namespace MotionSet
151 
152 } // namespace pinocchio
153 
154 #include "pinocchio/spatial/act-on-set.hxx"
155 
156 #endif // ifndef __pinocchio_act_on_set_hpp__
static void se3ActionInverse(const SE3Tpl< Scalar, Options > &m, const Eigen::MatrixBase< Mat > &iF, Eigen::MatrixBase< MatRet > const &jF)
Inverse SE3 action on a set of forces, represented by a 6xN matrix whose each column represent a spat...
static void act(const Eigen::MatrixBase< Mat > &iV, const ForceDense< ForceDerived > &f, Eigen::MatrixBase< MatRet > const &jF)
Action of a motion set on a force object. The input motion set is represented by a 6xN matrix whose e...
static void se3Action(const SE3Tpl< Scalar, Options > &m, const Eigen::MatrixBase< Mat > &iF, Eigen::MatrixBase< MatRet > const &jF)
SE3 action on a set of forces, represented by a 6xN matrix whose each column represent a spatial forc...
Main pinocchio namespace.
Definition: treeview.dox:24
static void inertiaAction(const InertiaTpl< Scalar, Options > &I, const Eigen::MatrixBase< Mat > &iF, Eigen::MatrixBase< MatRet > const &jF)
Action of an Inertia matrix on a set of motions, represented by a 6xN matrix whose columns represent ...
static void motionAction(const MotionDense< MotionDerived > &v, const Eigen::MatrixBase< Mat > &iF, Eigen::MatrixBase< MatRet > const &jF)
Action of a motion on a set of forces, represented by a 6xN matrix whose each column represent a spat...