| 112 | } |
| 113 | |
| 114 | void IndexRoadGraph::GetEdges(geometry::PointWithAltitude const & junction, bool isOutgoing, EdgeListT & edges) const |
| 115 | { |
| 116 | edges.clear(); |
| 117 | |
| 118 | for (Segment const & segment : GetSegments(junction, isOutgoing)) |
| 119 | { |
| 120 | IndexGraphStarter::EdgeListT tmpEdges; |
| 121 | m_starter.GetEdgesList(segment, isOutgoing, tmpEdges); |
| 122 | |
| 123 | for (SegmentEdge const & segmentEdge : tmpEdges) |
| 124 | { |
| 125 | Segment const & segment = segmentEdge.GetTarget(); |
| 126 | if (IndexGraphStarter::IsFakeSegment(segment)) |
| 127 | continue; |
| 128 | |
| 129 | edges.push_back(Edge::MakeReal({m_dataSource.GetMwmId(segment.GetMwmId()), segment.GetFeatureId()}, |
| 130 | segment.IsForward(), segment.GetSegmentIdx(), |
| 131 | m_starter.GetJunction(segment, false /* front */).ToPointWithAltitude(), |
| 132 | m_starter.GetJunction(segment, true /* front */).ToPointWithAltitude())); |
| 133 | } |
| 134 | } |
| 135 | } |
| 136 | |
| 137 | IndexRoadGraph::SegmentListT const & IndexRoadGraph::GetSegments(geometry::PointWithAltitude const & junction, |
| 138 | bool isOutgoing) const |