Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvng <viktor.govako@gmail.com>2014-07-13 22:34:27 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:20:41 +0300
commit4100abc69e5aae53f8e2ee01c3c52164650e0ca5 (patch)
tree4cffc52bfa462492e4b7e1c7c82d90d37ec4e04d
parent2aca4755f344d49a90009a33aa3c45ff2710547d (diff)
[routing] Added more constructors to the Route class.
-rw-r--r--geometry/polyline2d.hpp4
-rw-r--r--routing/helicopter_router.cpp4
-rw-r--r--routing/road_graph_router.cpp2
-rw-r--r--routing/route.cpp6
-rw-r--r--routing/route.hpp24
-rw-r--r--routing/routing_tests/dijkstra_router_test.cpp2
6 files changed, 31 insertions, 11 deletions
diff --git a/geometry/polyline2d.hpp b/geometry/polyline2d.hpp
index a5da9877ed..6fca13d213 100644
--- a/geometry/polyline2d.hpp
+++ b/geometry/polyline2d.hpp
@@ -22,6 +22,10 @@ public:
{
ASSERT_GREATER(m_points.size(), 1, ());
}
+ template <class IterT> PolylineT(IterT beg, IterT end) : m_points(beg, end)
+ {
+ ASSERT_GREATER(m_points.size(), 1, ());
+ }
double GetLength() const
{
diff --git a/routing/helicopter_router.cpp b/routing/helicopter_router.cpp
index 6aa4251e59..633e3ebeab 100644
--- a/routing/helicopter_router.cpp
+++ b/routing/helicopter_router.cpp
@@ -14,8 +14,8 @@ void HelicopterRouter::SetFinalPoint(m2::PointD const & finalPt)
void HelicopterRouter::CalculateRoute(m2::PointD const & startingPt, ReadyCallback const & callback)
{
- m2::PointD points[] = {startingPt, m_finalPt};
- Route route(GetName(), vector<m2::PointD>(&points[0], &points[0] + ARRAY_SIZE(points)), my::FormatCurrentTime());
+ m2::PointD points[] = { startingPt, m_finalPt };
+ Route route(GetName(), points, points + ARRAY_SIZE(points), my::FormatCurrentTime());
callback(route);
}
diff --git a/routing/road_graph_router.cpp b/routing/road_graph_router.cpp
index cbb0cea273..02a64b82b4 100644
--- a/routing/road_graph_router.cpp
+++ b/routing/road_graph_router.cpp
@@ -110,7 +110,7 @@ void RoadGraphRouter::CalculateRoute(m2::PointD const & startPt, ReadyCallback c
vector<RoadPos> routePos;
CalculateRoute(startPos, routePos);
- Route route;
+ Route route(GetName());
m_pRoadGraph->ReconstructPath(routePos, route);
callback(route);
}
diff --git a/routing/route.cpp b/routing/route.cpp
index e4b7a17f24..a17509a018 100644
--- a/routing/route.cpp
+++ b/routing/route.cpp
@@ -1,12 +1,8 @@
#include "route.hpp"
-namespace routing
-{
-Route::Route(string const & router, vector<m2::PointD> const & points, string const & name)
- : m_router(router), m_poly(points), m_name(name)
+namespace routing
{
-}
string DebugPrint(Route const & r)
{
diff --git a/routing/route.hpp b/routing/route.hpp
index eb9d9848c6..c368b1d027 100644
--- a/routing/route.hpp
+++ b/routing/route.hpp
@@ -12,8 +12,28 @@ namespace routing
class Route
{
public:
- Route() {}
- Route(string const & router, vector<m2::PointD> const & points, string const & name = "");
+ explicit Route(string const & router, string const & name = string())
+ : m_router(router), m_name(name)
+ {
+ }
+
+ template <class IterT>
+ Route(string const & router, IterT beg, IterT end,
+ string const & name = string())
+ : m_router(router), m_poly(beg, end), m_name(name)
+ {
+ }
+
+ Route(string const & router, vector<m2::PointD> const & points,
+ string const & name = string())
+ : m_router(router), m_poly(points), m_name(name)
+ {
+ }
+
+ template <class IterT> void SetGeometry(IterT beg, IterT end)
+ {
+ m2::PolylineD(beg, end).Swap(m_poly);
+ }
string const & GetRouterId() const { return m_router; }
m2::PolylineD const & GetPoly() const { return m_poly; }
diff --git a/routing/routing_tests/dijkstra_router_test.cpp b/routing/routing_tests/dijkstra_router_test.cpp
index 9ea4ab84d4..329f642ebc 100644
--- a/routing/routing_tests/dijkstra_router_test.cpp
+++ b/routing/routing_tests/dijkstra_router_test.cpp
@@ -55,7 +55,7 @@ void TestDijkstraRouterMWM(RoadPos (&finalPos)[finalPosSize],
router.CalculateRoute(startV, result);
LOG(LDEBUG, (result));
- Route route;
+ Route route(router.GetName());
tester.GetGraph()->ReconstructPath(result, route);
LOG(LDEBUG, (route));
TEST_EQUAL(route.GetPoly().GetSize(), pointsCount, ());