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:
authorLev Dragunov <l.dragunov@corp.mail.ru>2015-10-22 17:57:55 +0300
committerLev Dragunov <l.dragunov@corp.mail.ru>2015-10-22 17:57:55 +0300
commitfc00ee4d41d772204ff60debc3bf5f798549e1ea (patch)
tree877ace14b947bce80f22407402340638e76885f2 /routing/cross_routing_context.cpp
parentffc2669bd47fdfc2cb919a5c38f1321456d6a78b (diff)
Tree index for cross section index finding.
Diffstat (limited to 'routing/cross_routing_context.cpp')
-rw-r--r--routing/cross_routing_context.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/routing/cross_routing_context.cpp b/routing/cross_routing_context.cpp
index 317b854631..3e9e439ea8 100644
--- a/routing/cross_routing_context.cpp
+++ b/routing/cross_routing_context.cpp
@@ -1,5 +1,6 @@
#include "routing/cross_routing_context.hpp"
+#include "indexer/mercator.hpp"
#include "indexer/point_to_int64.hpp"
namespace routing
@@ -65,7 +66,10 @@ void CrossRoutingContextReader::Load(Reader const & r)
m_ingoingNodes.resize(size);
for (auto & node : m_ingoingNodes)
+ {
pos = node.Load(r, pos);
+ m_ingoingIndex.Add(node);
+ }
r.Read(pos, &size, sizeof(size));
pos += sizeof(size);
@@ -92,6 +96,18 @@ void CrossRoutingContextReader::Load(Reader const & r)
}
}
+bool CrossRoutingContextReader::FindIngoingNodeByPoint(m2::PointD const & point, IngoingCrossNode & node) const
+{
+ bool found = false;
+ m_ingoingIndex.ForEachInRect(MercatorBounds::RectByCenterXYAndSizeInMeters(point, 5),
+ [&found, &node](IngoingCrossNode const & nd)
+ {
+ node = nd;
+ found = true;
+ });
+ return found;
+}
+
const string & CrossRoutingContextReader::GetOutgoingMwmName(
OutgoingCrossNode const & outgoingNode) const
{