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