22#include <unordered_map>
105 template <
typename T>
110 template <
typename T>
114 template <
typename T>
129 template <
typename MultiMapT>
132 if (map.find(s) == map.end()) {
133 auto it = map.lower_bound(s);
134 if (it == map.begin()) {
135 return std::make_pair(map.end(), map.end());
139 return std::make_pair(map.lower_bound(s), map.upper_bound(s));
177 std::map<LaneId, const Lane*>
GetLanesAt(
const double s)
const;
这个类用于禁止拷贝构造函数和赋值操作,但允许移动构造函数和赋值操作
定义一个三次多项式CubicPolynomial类,用于描述和计算三次多项式 f(x) = a + b * x + c * x^2 + d * x^3
LaneSection & GetById(SectionId id)
std::vector< const T * > GetInfos() const
std::vector< const T * > GetInfosInRange(const double min_s, const double max_s) const
RoadId GetPredecessor() const
const std::pair< double, double > GetNearestPoint(const geom::Location &loc) const
返回一个包含以下内容的对:
std::vector< Road * > GetPrevs() const
static auto GetLessEqualRange(MultiMapT &map, double s)
Lane * GetPrevLane(const double s, const LaneId lane_id)
const T * GetInfo(const double s) const
std::vector< const Lane * > GetLanesByDistance(double s) const
Lane & GetLaneById(SectionId section_id, LaneId lane_id)
double UpperBound(double s) const
返回上限 s,即给定 s 位置的车道段结束距离(限制在路段长度内)。
LaneSectionMap _lane_sections
RoadId GetSuccessor() const
std::vector< Road * > _nexts
std::vector< Road * > _prevs
std::map< LaneId, const Lane * > GetLanesAt(const double s) const
获取在给定 s 位置的所有车道
std::vector< Road * > GetNexts() const
LaneSection * GetStartSection(LaneId id)
获取给定车道 ID 的起始车道段
const Lane & GetLaneById(SectionId section_id, LaneId lane_id) const
Lane * GetNextLane(const double s, const LaneId lane_id)
auto GetLaneSections() const
const geom::CubicPolynomial & GetElevationOn(const double s) const
Lane & GetLaneByDistance(double s, LaneId lane_id)
auto GetLaneSectionsAt(const double s)
const std::pair< const Lane *, double > GetNearestLane(const double s, const geom::Location &loc, uint32_t type=static_cast< uint32_t >(Lane::LaneType::Any)) const
返回最近的车道指针,给定相对于路段的 s 值和位置
auto GetLaneSectionsAt(const double s) const
element::DirectedPoint GetDirectedPointIn(const double s) const
返回指定距离的中心点(车道 0)的导向点
std::vector< Lane * > GetLanesByDistance(double s)
在特定的 s 值获取所有车道
const LaneSection & GetLaneSectionById(SectionId id) const
element::DirectedPoint GetDirectedPointInNoLaneOffset(const double s) const
返回指定距离的中心点(车道 0)的导向点,不考虑车道偏移
JuncId GetJunctionId() const
LaneSection * GetEndSection(LaneId id)
获取给定车道 ID 的结束车道段
std::string GetName() const
const Lane & GetLaneByDistance(double s, LaneId lane_id) const
const MapData * GetMap() const
LaneSection & GetLaneSectionById(SectionId id)
static auto make_map_values_iterator(It it)
创建一个迭代器,该迭代器提供对map值的非const引用的遍历。
static auto make_map_values_const_iterator(It it)
创建一个迭代器,该迭代器提供对map值的const引用的遍历。
static auto MakeListView(Iterator begin, Iterator end)