28#include "modules/common_msgs/perception_msgs/perception_obstacle.pb.h"
29#include "modules/common_msgs/planning_msgs/sl_boundary.pb.h"
54 bool print_log =
false);
57 const std::vector<SLPoint>& boundary,
const double s);
58 const std::vector<SLPoint>&
LeftBoundary()
const {
return left_boundary_; }
59 const std::vector<SLPoint>&
RightBoundary()
const {
return right_boundary_; }
62 return std::numeric_limits<double>::max();
68 return std::numeric_limits<double>::lowest();
73 const std::vector<SLPoint>& boundary,
double s);
74 double MinS()
const {
return min_s_point_.
s(); }
75 double MaxS()
const {
return max_s_point_.
s(); }
76 double MinL()
const {
return min_l_point_.
l(); }
77 double MaxL()
const {
return max_l_point_.
l(); }
84 void PrintToLog(std::string prefix =
"")
const;
86 std::string
id()
const {
return id_; }
89 overlape_with_refer_center_ = overlap;
93 overlape_size_with_reference_ =
94 std::max(abs_l, overlape_size_with_reference_);
97 return overlape_size_with_reference_;
102 double left_buffer,
double right_buffer,
105 double ego_half_width);
109 std::vector<SLPoint> left_boundary_;
110 std::vector<SLPoint> right_boundary_;
117 bool overlape_with_refer_center_ =
false;
118 double overlape_size_with_reference_ = 0.0;
120 std::array<bool, 2> is_passable_ = {
true,
true};
121 double min_radius_stop_distance_ = -1.0;
double MinRadiusStopDistance(double adc_min_l, double adc_max_l, double ego_half_width)
virtual ~SLPolygon()=default
const double GetLeftBoundaryByS(const double s) const
std::array< bool, 2 > & is_passable()
SLPoint MinLPoint() const
PerceptionObstacle::Type ObstacleType() const
const std::vector< SLPoint > & LeftBoundary() const
void PrintToLogBlock() const
bool OverlapeWithReferCenter() const
void UpdatePassableInfo(double left_bound, double right_bound, double left_buffer, double right_buffer, double check_s)
void PrintToLog(std::string prefix="") const
void SetOverlapeWithReferCenter(bool overlap)
static double GetInterpolatedLFromBoundary(const std::vector< SLPoint > &boundary, const double s)
const std::vector< SLPoint > & RightBoundary() const
NudgeType NudgeInfo() const
static double GetInterpolatedSFromBoundary(const std::vector< SLPoint > &boundary, double s)
const double GetRightBoundaryByS(const double s) const
double OverlapeSizeWithReference() const
SLPoint MaxSPoint() const
void SetNudgeInfo(NudgeType nudge_type)
void SetOverlapeSizeWithReference(double abs_l)
SLPoint MinSPoint() const
SLPoint MaxLPoint() const
Planning module main class.