47 const std::vector<const Obstacle*>& obstacles,
62 struct StGraphMessage {
63 StGraphMessage(
const uint32_t c_,
const int32_t r_) : c(c_), r(r_) {}
67 void CalculateCostAt(
const std::shared_ptr<StGraphMessage>& msg);
69 double CalculateEdgeCost(
const STPoint& first,
const STPoint& second,
71 const double speed_limit,
const double cruise_speed);
72 double CalculateEdgeCostForSecondCol(
const uint32_t row,
73 const double speed_limit,
74 const double cruise_speed);
75 double CalculateEdgeCostForThirdCol(
const uint32_t curr_row,
76 const uint32_t pre_row,
77 const double speed_limit,
78 const double cruise_speed);
81 void GetRowRange(
const StGraphPoint& point,
size_t* next_highest_row,
82 size_t* next_lowest_row);
87 std::vector<double> speed_limit_by_index_;
89 std::vector<double> spatial_distance_by_index_;
95 const std::vector<const Obstacle*>& obstacles_;
107 double total_length_t_ = 0.0;
108 double unit_t_ = 0.0;
109 uint32_t dimension_t_ = 0;
111 double total_length_s_ = 0.0;
112 double dense_unit_s_ = 0.0;
113 double sparse_unit_s_ = 0.0;
114 uint32_t dense_dimension_s_ = 0;
115 uint32_t sparse_dimension_s_ = 0;
116 uint32_t dimension_s_ = 0;
118 double max_acceleration_ = 0.0;
119 double max_deceleration_ = 0.0;
123 std::vector<std::vector<StGraphPoint>> cost_table_;