From 3f2e5b96c9b670d727e06135f03bd5dd8a427026 Mon Sep 17 00:00:00 2001 From: Dong Li Date: Fri, 18 Aug 2017 16:08:13 -0700 Subject: [PATCH] planning: added reference_line_info id, which is used to distinguish virtual objects from different reference lines. --- modules/planning/common/reference_line_info.cc | 10 +++++++++- modules/planning/common/reference_line_info.h | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/planning/common/reference_line_info.cc b/modules/planning/common/reference_line_info.cc index 0d4b97d907..0f0ed1dcc1 100644 --- a/modules/planning/common/reference_line_info.cc +++ b/modules/planning/common/reference_line_info.cc @@ -24,8 +24,16 @@ namespace apollo { namespace planning { + +uint32_t ReferenceLineInfo::s_reference_line_id_ = 0; + ReferenceLineInfo::ReferenceLineInfo(const ReferenceLine& reference_line) - : reference_line_(reference_line) {} + : reference_line_(reference_line) { + id_ = std::to_string(s_reference_line_id_); + ++s_reference_line_id_; +} + +const std::string& ReferenceLineInfo::Id() const { return id_; } bool ReferenceLineInfo::AddObstacle(const Obstacle* obstacle) { auto path_obstacle = CreatePathObstacle(obstacle); diff --git a/modules/planning/common/reference_line_info.h b/modules/planning/common/reference_line_info.h index 42a58d3b37..721dae18cb 100644 --- a/modules/planning/common/reference_line_info.h +++ b/modules/planning/common/reference_line_info.h @@ -36,6 +36,7 @@ namespace planning { class ReferenceLineInfo { public: explicit ReferenceLineInfo(const ReferenceLine& reference_line); + const std::string& Id() const; bool AddObstacles(const std::vector& obstacles); bool AddObstacle(const Obstacle* obstacle); // FIXME(all) this interface is temp. solution to make the code work. @@ -62,6 +63,10 @@ class ReferenceLineInfo { std::unique_ptr CreatePathObstacle(const Obstacle* obstacle); bool InitPerceptionSLBoundary(PathObstacle* path_obstacle); + private: + static uint32_t s_reference_line_id_; + + std::string id_; /** * @brief this is the number that measures the goodness of this reference * line. -- GitLab