提交 1002460a 编写于 作者: D Dong Li 提交者: Jiangtao Hu

remove a mutable_vector type function

mutable_vector does not seal the inner data well.
mutable_vector function loss the semantics in the particular expression.
上级 02899f61
......@@ -23,8 +23,19 @@
namespace apollo {
namespace planning {
std::vector<SpeedPoint>* SpeedLimit::mutable_speed_limits() {
return &_speed_point;
void SpeedLimit::add_speed_limit(const SpeedPoint& speed_point) {
_speed_point.push_back(speed_point);
}
void SpeedLimit::add_speed_limit(const double s, const double t, const double v,
const double a, const double da) {
SpeedPoint speed_point;
speed_point.set_s(s);
speed_point.set_t(t);
speed_point.set_v(v);
speed_point.set_a(a);
speed_point.set_da(da);
_speed_point.push_back(speed_point);
}
const std::vector<SpeedPoint>& SpeedLimit::speed_limits() const {
......
......@@ -31,7 +31,9 @@ namespace planning {
class SpeedLimit {
public:
SpeedLimit() = default;
std::vector<SpeedPoint>* mutable_speed_limits();
void add_speed_limit(const SpeedPoint& speed_point);
void add_speed_limit(const double s, const double t, const double v,
const double a, const double da);
const std::vector<SpeedPoint>& speed_limits() const;
private:
......
......@@ -102,9 +102,9 @@ Status StBoundaryMapper::get_speed_limits(
for (const auto& point : path_data.path().path_points()) {
speed_limits.push_back(_st_boundary_config.maximal_speed());
for (auto& lane : lanes) {
if (lane->is_on_lane( { point.x(), point.y() })) {
speed_limits.back() = std::fmin(speed_limits.back(),
lane->lane().speed_limit());
if (lane->is_on_lane({point.x(), point.y()})) {
speed_limits.back() =
std::fmin(speed_limits.back(), lane->lane().speed_limit());
if (lane->lane().turn() == apollo::hdmap::Lane::U_TURN) {
speed_limits.back() = std::fmin(
speed_limits.back(), _st_boundary_config.speed_limit_on_u_turn());
......@@ -153,8 +153,6 @@ Status StBoundaryMapper::get_speed_limits(
curr_speed_limit *= _st_boundary_config.speed_multiply_buffer();
curr_speed_limit =
std::fmax(curr_speed_limit, _st_boundary_config.lowest_speed());
auto* mutable_speed_limits_data =
speed_limit_data->mutable_speed_limits();
SpeedPoint speed_point;
speed_point.set_s(s);
......@@ -162,7 +160,7 @@ Status StBoundaryMapper::get_speed_limits(
speed_point.set_v(curr_speed_limit);
speed_point.set_a(0.0);
speed_point.set_da(0.0);
mutable_speed_limits_data->push_back(speed_point);
speed_limit_data->add_speed_limit(speed_point);
s += unit_s;
++i;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册