python_definitions.h
Go to the documentation of this file.
1 #include "ndcurves/fwd.h"
3 #include "ndcurves/polynomial.h"
6 
7 #include <vector>
8 
9 #ifndef _DEFINITION_PYTHON_BINDINGS
10 #define _DEFINITION_PYTHON_BINDINGS
11 
12 namespace ndcurves {
13 /*** TEMPLATE SPECIALIZATION FOR PYTHON ****/
14 typedef double real;
15 typedef std::vector<real> t_time_t;
16 typedef Eigen::VectorXd time_waypoints_t;
17 
18 typedef Eigen::Matrix<double, Eigen::Dynamic, 1, 0, Eigen::Dynamic, 1> ret_pointX_t;
19 typedef std::pair<pointX_t, pointX_t> pair_pointX_tangent_t;
20 typedef Eigen::MatrixXd pointX_list_t;
21 typedef std::vector<pair_pointX_tangent_t, Eigen::aligned_allocator<pair_pointX_tangent_t> > t_pair_pointX_tangent_t;
24 typedef std::pair<real, pointX_t> waypoint_t;
25 typedef std::vector<waypoint_t> t_waypoint_t;
26 typedef Eigen::Matrix<real, Eigen::Dynamic, Eigen::Dynamic> point_listX_t;
27 typedef Eigen::Matrix<real, 3, Eigen::Dynamic> point_list3_t;
28 typedef Eigen::Matrix<real, 6, Eigen::Dynamic> point_list6_t;
30 
32 
33 template <typename PointList, typename T_Point>
34 T_Point vectorFromEigenArray(const PointList& array) {
35  T_Point res;
36  for (int i = 0; i < array.cols(); ++i) {
37  res.push_back(array.col(i));
38  }
39  return res;
40 }
41 template <typename PointList, typename T_Point>
42 T_Point vectorFromEigenVector(const PointList& vector) {
43  T_Point res;
44  for (int i = 0; i < vector.rows(); ++i) {
45  res.push_back(vector[i]);
46  }
47  return res;
48 }
49 
50 template <typename T_point, typename PointList>
51 PointList vectorToEigenArray(const T_point& vect) {
52  const size_t nCols = vect.size();
53  const size_t nRows = vect[0].rows();
54  PointList res(nRows,nCols);
55  for (size_t i = 0; i < vect.size(); ++i) {
56  res.block(0,i,nRows,1) = vect[i];
57  }
58  return res;
59 }
60 } // namespace ndcurves
61 #endif //_DEFINITION_PYTHON_BINDINGS
ndcurves::coeff_t
polynomial_t::coeff_t coeff_t
Definition: python_definitions.h:29
ndcurves::time_waypoints_t
Eigen::VectorXd time_waypoints_t
Definition: python_definitions.h:16
ndcurves::point_list6_t
Eigen::Matrix< real, 6, Eigen::Dynamic > point_list6_t
Definition: python_definitions.h:28
ndcurves::curve_constraints_t
ndcurves::curve_constraints< pointX_t > curve_constraints_t
Definition: python_definitions.h:22
ndcurves::t_pair_pointX_tangent_t
std::vector< pair_pointX_tangent_t, Eigen::aligned_allocator< pair_pointX_tangent_t > > t_pair_pointX_tangent_t
Definition: python_definitions.h:21
ndcurves::curve_constraints
Definition: curve_constraint.h:22
bezier_curve.h
class allowing to create a Bezier curve of dimension 1 <= n <= 3.
ndcurves::real
double real
Definition: python_definitions.h:14
polynomial.h
Definition of a cubic spline.
ndcurves::Bern
Definition: fwd.h:49
fwd.h
forward declaration of all curves class
ndcurves::point_listX_t
Eigen::Matrix< real, Eigen::Dynamic, Eigen::Dynamic > point_listX_t
Definition: python_definitions.h:26
ndcurves::t_waypoint_t
std::vector< waypoint_t > t_waypoint_t
Definition: python_definitions.h:25
ndcurves::curve_constraints3_t
ndcurves::curve_constraints< point3_t > curve_constraints3_t
Definition: python_definitions.h:23
ndcurves::helpers::T_Point
std::vector< Point, Eigen::aligned_allocator< Point > > T_Point
Definition: effector_spline.h:29
ndcurves::vectorFromEigenVector
T_Point vectorFromEigenVector(const PointList &vector)
Definition: python_definitions.h:42
ndcurves::pair_pointX_tangent_t
std::pair< pointX_t, pointX_t > pair_pointX_tangent_t
Definition: python_definitions.h:19
linear_variable.h
storage for variable points of the form p_i = B_i x + c_i
ndcurves::ret_pointX_t
Eigen::Matrix< double, Eigen::Dynamic, 1, 0, Eigen::Dynamic, 1 > ret_pointX_t
Definition: python_definitions.h:18
quadratic_variable.h
storage for variable points of the form p_i = x' A_i x + B_i x + c_i
ndcurves
Definition: bernstein.h:20
ndcurves::vectorToEigenArray
PointList vectorToEigenArray(const T_point &vect)
Definition: python_definitions.h:51
ndcurves::point_list3_t
Eigen::Matrix< real, 3, Eigen::Dynamic > point_list3_t
Definition: python_definitions.h:27
ndcurves::pointX_list_t
Eigen::MatrixXd pointX_list_t
Definition: python_definitions.h:20
ndcurves::polynomial::coeff_t
Eigen::MatrixXd coeff_t
Definition: polynomial.h:41
ndcurves::bernstein_t
ndcurves::Bern< double > bernstein_t
Definition: python_definitions.h:31
ndcurves::vectorFromEigenArray
T_Point vectorFromEigenArray(const PointList &array)
Definition: python_definitions.h:34
ndcurves::waypoint_t
std::pair< real, pointX_t > waypoint_t
Definition: python_definitions.h:24
ndcurves::t_time_t
std::vector< real > t_time_t
Definition: python_definitions.h:15