15 #ifndef GEOMETRY__SPLINE__HERMITE_CURVE_HPP_
16 #define GEOMETRY__SPLINE__HERMITE_CURVE_HPP_
18 #include <gtest/gtest.h>
21 #include <geometry_msgs/msg/point.hpp>
22 #include <geometry_msgs/msg/pose.hpp>
23 #include <geometry_msgs/msg/vector3.hpp>
56 double ax,
double bx,
double cx,
double dx,
double ay,
double by,
double cy,
double dy,
57 double az,
double bz,
double cz,
double dz);
58 std::vector<geometry_msgs::msg::Point>
getTrajectory(
size_t num_points = 30)
const;
60 double start_s,
double end_s,
double resolution,
bool denormalize_s =
false)
const;
62 double s,
bool denormalize_s =
false,
bool fill_pitch =
true)
const;
68 double getLength(
size_t num_points)
const;
72 bool denormalize_s =
false)
const;
79 bool search_backward =
false,
bool denormalize_s =
false)
const;
82 bool search_backward =
false,
bool denormalize_s =
false)
const;
84 const std::vector<geometry_msgs::msg::Point> & polygon,
bool search_backward =
false,
85 bool close_start_end =
true,
bool denormalize_s =
false)
const;
87 const std::vector<geometry_msgs::msg::Point> & polygon,
bool search_backward =
false,
88 bool close_start_end =
true,
bool denormalize_s =
false)
const;
91 std::pair<double, double> get2DMinMaxCurvatureValue()
const;
Definition: hermite_curve.hpp:32
const geometry_msgs::msg::Point getPoint(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:367
const geometry_msgs::msg::Pose getPose(double s, bool denormalize_s=false, bool fill_pitch=true) const
Definition: hermite_curve.cpp:283
const geometry_msgs::msg::Vector3 getNormalVector(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:257
friend class HermiteCurveTest
Definition: hermite_curve.hpp:34
geometry_msgs::msg::Vector3 getSquaredDistanceVector(const geometry_msgs::msg::Point &point, double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:76
double get2DCurvature(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:300
std::vector< geometry_msgs::msg::Point > getTrajectory(size_t num_points=30) const
Definition: hermite_curve.cpp:243
HermiteCurve(const geometry_msgs::msg::Pose &start_pose, const geometry_msgs::msg::Pose &goal_pose, const geometry_msgs::msg::Vector3 &start_vec, const geometry_msgs::msg::Vector3 &goal_vec)
Definition: hermite_curve.cpp:50
double getLength() const
Definition: hermite_curve.hpp:69
std::optional< double > getSValue(const geometry_msgs::msg::Pose &pose, double threshold_distance=3.0, bool denormalize_s=false) const
Definition: hermite_curve.cpp:202
double getMaximum2DCurvature() const
Definition: hermite_curve.cpp:335
const geometry_msgs::msg::Vector3 getTangentVector(double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:270
double getSquaredDistanceIn2D(const geometry_msgs::msg::Point &point, double s, bool denormalize_s=false) const
Definition: hermite_curve.cpp:69
std::set< double > getCollisionPointsIn2D(const geometry_msgs::msg::Point &point0, const geometry_msgs::msg::Point &point1, bool search_backward=false, bool denormalize_s=false) const
Definition: hermite_curve.cpp:123
std::optional< double > getCollisionPointIn2D(const geometry_msgs::msg::Point &point0, const geometry_msgs::msg::Point &point1, bool search_backward=false, bool denormalize_s=false) const
Definition: hermite_curve.cpp:188
Definition: polynomial_solver.hpp:26
Definition: bounding_box.hpp:32
geometry_msgs::msg::Pose Pose
Definition: lanelet_wrapper.hpp:65
geometry_msgs::msg::Point Point
Definition: lanelet_wrapper.hpp:64
geometry_msgs::msg::Vector3 Vector3
Definition: lanelet_wrapper.hpp:68