38 const std::vector<NodeWithRange>& nodes,
44 std::vector<NodeWithRange> nodes;
46 PassageInfo() =
default;
47 PassageInfo(
const std::vector<NodeWithRange>& _nodes,
49 : nodes(_nodes), change_lane_type(_change_lane_type) {}
53 const TopoRangeManager& range_manager,
56 void CreateRoadSegments(
const std::vector<PassageInfo>& passages,
59 void AddRoadSegment(
const std::vector<PassageInfo>& passages,
60 const std::pair<std::size_t, std::size_t>& start_index,
61 const std::pair<std::size_t, std::size_t>& end_index,
63 void ExtendPassages(
const TopoRangeManager& range_manager,
64 std::vector<PassageInfo>*
const passages);
65 bool ExtractBasicPassages(
const std::vector<NodeWithRange>& nodes,
66 std::vector<PassageInfo>*
const passsages);
67 void ExtendBackward(
const TopoRangeManager& range_manager,
68 const PassageInfo& prev_passage,
69 PassageInfo*
const curr_passage);
70 void ExtendForward(
const TopoRangeManager& range_manager,
71 const PassageInfo& next_passage,
72 PassageInfo*
const curr_passage);
73 bool IsReachableFromWithChangeLane(
const TopoNode* from_node,
74 const PassageInfo& to_nodes,
75 NodeWithRange* reachable_node);
76 bool IsReachableToWithChangeLane(
const TopoNode* from_node,
77 const PassageInfo& to_nodes,
78 NodeWithRange* reachable_node);