Loading...
Searching...
No Matches
fwd.h
Go to the documentation of this file.
1
10#ifndef CURVES_FWD_H
11#define CURVES_FWD_H
12#include <Eigen/Dense>
13#include <memory>
14#include <vector>
15
16namespace ndcurves {
17
18template <typename Time, typename Numeric, bool Safe, typename Point,
19 typename Point_derivate>
20struct curve_abc;
21
22template <typename Time, typename Numeric, bool Safe, typename Point>
23struct bezier_curve;
24
25template <typename Time, typename Numeric, bool Safe, typename Point,
26 typename Point_derivate>
27struct constant_curve;
28
29template <typename Time, typename Numeric, bool Safe, typename Point>
30struct cubic_hermite_spline;
31
32template <typename Time, typename Numeric, bool Safe, typename Point,
33 typename T_Point, typename SplineBase>
34struct exact_cubic;
35
36template <typename Time, typename Numeric, bool Safe, typename Point,
37 typename Point_derivate, typename CurveType>
38struct piecewise_curve;
39
40template <typename Time, typename Numeric, bool Safe, typename Point,
41 typename T_Point>
42struct polynomial;
43
44template <typename Time, typename Numeric, bool Safe>
45struct SE3Curve;
46
47template <typename Time, typename Numeric, bool Safe, typename Point>
48struct sinusoidal;
49
50template <typename Time, typename Numeric, bool Safe>
51struct SO3Linear;
52
53template <typename Time, typename Numeric, bool Safe>
54struct SO3Smooth;
55
56template <typename Numeric>
57struct Bern;
58
59template <typename Point>
61
62template <typename Numeric, bool Safe>
63struct linear_variable;
64
65template <typename Numeric>
67
68// typedef of the commonly used templates arguments :
69// eigen types :
70typedef Eigen::Matrix<double, 1, 1> point1_t;
71typedef Eigen::Vector3d point3_t;
72typedef Eigen::Matrix<double, 6, 1> point6_t;
73typedef Eigen::VectorXd pointX_t;
74typedef Eigen::Matrix<double, 3, 3> matrix3_t;
75typedef Eigen::Matrix<double, 4, 4> matrix4_t;
76typedef Eigen::Quaternion<double> quaternion_t;
77typedef Eigen::Transform<double, 3, Eigen::Affine> transform_t;
78typedef std::vector<point1_t, Eigen::aligned_allocator<point1_t>> t_point1_t;
79typedef std::vector<point3_t, Eigen::aligned_allocator<point3_t>> t_point3_t;
80typedef std::vector<pointX_t, Eigen::aligned_allocator<pointX_t>> t_pointX_t;
81typedef Eigen::Ref<const matrix3_t> matrix3_t_cst_ref;
82
83// abstract curves types:
85 curve_abc_t; // base abstract class
87 curve_3_t; // generic class of curve of size 3
88typedef curve_3_t curve_translation_t; // generic class of a translation curve
90 curve_rotation_t; // templated class used for the rotation (return
91 // dimension are fixed)
93 curve_SE3_t; // templated abstract class used for all the se3 curves
94 // (return dimension are fixed)
95
96// shared pointer to abstract types:
97typedef std::shared_ptr<curve_abc_t> curve_ptr_t;
98typedef std::shared_ptr<curve_3_t> curve3_ptr_t;
99typedef std::shared_ptr<curve_rotation_t> curve_rotation_ptr_t;
100typedef std::shared_ptr<curve_translation_t> curve_translation_ptr_t;
101typedef std::shared_ptr<curve_SE3_t> curve_SE3_ptr_t;
102
103// definition of all curves class with pointX as return type:
117
118// definition of all curves class with point3 as return type:
129
130// special curves with return type fixed:
137
138} // namespace ndcurves
139
140#endif // CURVES_FWD_H
Eigen::Matrix< Numeric, Eigen::Dynamic, 1 > Point
Definition effector_spline.h:28
double Numeric
Definition effector_spline.h:26
double Time
Definition effector_spline.h:27
std::vector< Point, Eigen::aligned_allocator< Point > > T_Point
Definition effector_spline.h:29
Definition bernstein.h:20
std::shared_ptr< curve_rotation_t > curve_rotation_ptr_t
Definition fwd.h:99
Eigen::Matrix< double, 1, 1 > point1_t
Definition fwd.h:70
bezier_curve< double, double, true, pointX_t > bezier_t
Definition fwd.h:107
std::vector< pointX_t, Eigen::aligned_allocator< pointX_t > > t_pointX_t
Definition fwd.h:80
curve_abc< double, double, true, point3_t, point3_t > curve_3_t
Definition fwd.h:87
Eigen::Ref< const matrix3_t > matrix3_t_cst_ref
Definition fwd.h:81
curve_abc< double, double, true, transform_t, point6_t > curve_SE3_t
Definition fwd.h:93
std::vector< point1_t, Eigen::aligned_allocator< point1_t > > t_point1_t
Definition fwd.h:78
std::shared_ptr< curve_SE3_t > curve_SE3_ptr_t
Definition fwd.h:101
std::shared_ptr< curve_translation_t > curve_translation_ptr_t
Definition fwd.h:100
curve_abc< double, double, true, pointX_t, pointX_t > curve_abc_t
Definition fwd.h:85
piecewise_curve< double, double, true, transform_t, point6_t, curve_SE3_t > piecewise_SE3_t
Definition fwd.h:136
polynomial< double, double, true, point1_t, t_point1_t > polynomial1_t
Definition fwd.h:120
Eigen::Vector3d point3_t
Definition fwd.h:71
Eigen::Quaternion< double > quaternion_t
Definition fwd.h:76
std::vector< point3_t, Eigen::aligned_allocator< point3_t > > t_point3_t
Definition fwd.h:79
SO3Linear< double, double, true > SO3Linear_t
Definition fwd.h:132
SE3Curve< double, double, true > SE3Curve_t
Definition fwd.h:133
exact_cubic< double, double, true, point3_t, t_point3_t, polynomial_t > exact_cubic3_t
Definition fwd.h:122
polynomial< double, double, true, point3_t, t_point3_t > polynomial3_t
Definition fwd.h:119
sinusoidal< double, double, true, pointX_t > sinusoidal_t
Definition fwd.h:116
constant_curve< double, double, true, point3_t, point3_t > constant3_t
Definition fwd.h:124
exact_cubic< double, double, true, pointX_t, t_pointX_t, polynomial_t > exact_cubic_t
Definition fwd.h:106
Eigen::VectorXd pointX_t
Definition fwd.h:73
std::shared_ptr< curve_abc_t > curve_ptr_t
Definition fwd.h:97
Eigen::Transform< double, 3, Eigen::Affine > transform_t
Definition fwd.h:77
piecewise_curve< double, double, true, point3_t, point3_t, curve_3_t > piecewise3_t
Definition fwd.h:128
bezier_curve< double, double, true, point3_t > bezier3_t
Definition fwd.h:123
Eigen::Matrix< double, 3, 3 > matrix3_t
Definition fwd.h:74
bezier_curve< double, double, true, linear_variable_t > bezier_linear_variable_t
Definition fwd.h:110
Eigen::Matrix< double, 6, 1 > point6_t
Definition fwd.h:72
cubic_hermite_spline< double, double, true, pointX_t > cubic_hermite_spline_t
Definition fwd.h:113
bool isApprox(const T a, const T b, const T eps=1e-6)
Definition curve_abc.h:25
std::shared_ptr< curve_3_t > curve3_ptr_t
Definition fwd.h:98
curve_3_t curve_translation_t
Definition fwd.h:88
curve_abc< double, double, true, matrix3_t, point3_t > curve_rotation_t
Definition fwd.h:90
Eigen::Matrix< double, 4, 4 > matrix4_t
Definition fwd.h:75
cubic_hermite_spline< double, double, true, point3_t > cubic_hermite_spline3_t
Definition fwd.h:126
SO3Smooth< double, double, true > SO3Smooth_t
Definition fwd.h:131
polynomial< double, double, true, pointX_t, t_pointX_t > polynomial_t
Definition fwd.h:104
piecewise_curve< double, double, true, pointX_t, pointX_t, curve_abc_t > piecewise_t
Definition fwd.h:115
constant_curve< double, double, true, pointX_t, pointX_t > constant_t
Definition fwd.h:111
linear_variable< double, true > linear_variable_t
Definition fwd.h:108
Definition fwd.h:57
Composition of a curve of any type of dimension 3 and a curve representing an rotation (in current im...
Definition se3_curve.h:26
Represents a linear interpolation in SO3, using the slerp method provided by Eigen::Quaternion.
Definition so3_linear.h:21
Definition fwd.h:54
Definition bezier_curve.h:31
Represents a constant_curve curve, always returning the same value and a null derivative.
Definition constant_curve.h:23
Definition cubic_hermite_spline.h:34
Represents a curve of dimension Dim. If value of parameter Safe is false, no verification is made on ...
Definition curve_abc.h:36
Definition curve_constraint.h:20
Definition exact_cubic.h:41
Definition linear_variable.h:26
Definition piecewise_curve.h:37
Represents a polynomial of an arbitrary order defined on the interval . It follows the equation : ...
Definition polynomial.h:35
Definition quadratic_variable.h:25
Represents a sinusoidal curve, evaluating the following equation: p0 + amplitude * (sin(2pi/T + phi)
Definition sinusoidal.h:23