#include "data_type.H"
#include "base_interpolator.H"
#include "rndf.H"
#include <queue>
Go to the source code of this file.
Namespaces | |
namespace | cajun |
Functions | |
void | cajun::add_base_point (rndf_t const *rndf_, base_interpolator_t::uniform_path_t &base_points_, rndf_t::waypoint_id_t const &start_id_, rndf_t::waypoint_id_t const &end_id_, double dis_) |
Adds base_points one just after start wp (exit wp) at distance dis_ along the orientation of the exiting lane, and one just before end_wp (entry wp) at distance dis_ along the orientation of the new entry lane at end_wp. | |
void | cajun::interp_for_wp_pair (rndf_t const *rndf_, base_interpolator_t *interp_, rndf_t::waypoint_id_t const &start_id, rndf_t::waypoint_id_t const &end_id, rndf_lane_data_t &lane_data_) |
Generates lane boundary for lane segment start_id to end_id. | |
void | cajun::interp_from_wp (rndf_t const *rndf_, base_interpolator_t *interp_, std::vector< rndf_lane_data_t > &lane_list_, rndf_t::waypoint_id_t wp_id) |
void | cajun::interp_wp_from_zones (rndf_t const *rndf_, base_interpolator_t *interp_, std::vector< rndf_lane_data_t > &lane_list_, rndf_t::waypoint_id_t exit_wp_id) |
void | cajun::interp_all_wp_segments (rndf_t const *rndf_, base_interpolator_t *interp_, std::vector< rndf_lane_data_t > &lane_list_) |
void | cajun::interp_intersection (rndf_t const *rnfd_, base_interpolator_t *interp_, rndf_t::waypoint_id_t const &start_id, rndf_t::waypoint_id_t const &end_id, rndf_lane_data_t &lane_data_) |
void | cajun::add_arc_points (rndf_lane_data_t &lane_data_, double bx, double by, double cx, double cy, double rad, double start_ang, double end_ang) |
Add points along the arc with center (cx, cy), with starting angle 'start_ang' to 'end_ang' (from center of circle) to lane_data_. (bx, by) are base_x, base_y for lane_data_ structure. start_ang, end_ang and starting and ending angles of arch points wrt center of the circle. | |
void | cajun::add_arc_points (std::deque< path_wp_t > &path_, double cx, double cy, double rad, double start_ang, double end_ang, double min_speed_, double max_speed_) |
void | cajun::add_linear_points (rndf_lane_data_t &lane_data_, double bx, double by, double start_x, double start_y, double end_x, double end_y, base_interpolator_t *interp_) |
Add points from (start_x, start_y) to (end_x, end_y) using interp_ interpolator and use (bx, by) as base_x, base_y for lane_data_. | |
void | cajun::add_linear_points (std::deque< path_wp_t > &path_, double start_x, double start_y, double end_x, double end_y, base_interpolator_t *interp_, double min_speed_, double max_speed_) |
double | cajun::compute_radius (double p1x, double p1y, double ang_1, double p2x, double p2y, double ang_2) |
Compute radius of the circle that has line passing through (p1x, p1y) with slope ang_1 and lane passing through (p2x, p2y) with slope ang_2 both as tangents. And passing through point (p1x, p1y). | |
void | cajun::compute_start_end_ang (double const start_tangent_, double const end_tangent_, double &start_ang_, double &end_ang_) |
Compute start and end angles for circular arc from start tangent angle and end tangent, by deciding which side (right/left) will the arc drawn. | |
void | cajun::fill_initial_values (rndf_lane_data_t &lane_data_, rndf_t::waypoint_id_t const &start_id_, rndf_t::waypoint_id_t const &end_id_, double bx, double by) |
Fill in the initial values for lane_data. | |
void | cajun::extended_intersection_points (rndf_t const *rndf_, rndf_t::waypoint_id_t const &start_id_, rndf_t::waypoint_id_t const &end_id_, double &sx, double &sy, double &ex, double &ey) |
Adds base_points one just after start wp and before end wp along the orientation of line start_wp to end_wp and at distance dis_. Ideally adding base should be called if the both the wps on are on same lane, but for present function calling structure. |