00001
00002
00003
00004 #ifndef CAJUN_ITERIS_LANE_UTIL_H
00005 #define CAJUN_ITERIS_LANE_UTIL_H
00006
00007 #include <vector>
00008
00009 namespace cajun
00010 {
00011 #define DEFAULT_ITERIS_RADIUS 1000
00012
00013 struct point_t { double x, y; };
00014 bool circle_circle_intersection (double x0, double y0, double r0,
00015 double x1, double y1, double r1,
00016 double &xi, double &yi,
00017 double &xi_prime, double &yi_prime);
00018 void circle_start_end_angles (double center_x_, double center_y_,
00019 double x0_, double y0_, double x1_,
00020 double y1_, double &start_ang_,
00021 double &end_ang_);
00022 bool get_circle_arc_points (double center_x, double center_y,
00023 double curvature_, double distance_,
00024 double start_ang_, double end_ang_,
00025 std::vector <point_t> &arc_points_);
00026 };
00027 #endif