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:
Diffstat (limited to 'search/nested_rects_cache.hpp')
-rw-r--r--search/nested_rects_cache.hpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/search/nested_rects_cache.hpp b/search/nested_rects_cache.hpp
new file mode 100644
index 0000000000..919ed29a74
--- /dev/null
+++ b/search/nested_rects_cache.hpp
@@ -0,0 +1,46 @@
+#pragma once
+
+#include "indexer/feature_decl.hpp"
+
+#include "geometry/point2d.hpp"
+
+class Index;
+
+namespace search
+{
+class NestedRectsCache
+{
+public:
+ explicit NestedRectsCache(Index & index);
+
+ void SetPosition(m2::PointD const & position, int scale);
+
+ double GetDistanceToFeatureMeters(FeatureID const & id) const;
+
+ void Clear();
+
+private:
+ enum RectScale
+ {
+ RECT_SCALE_TINY,
+ RECT_SCALE_SMALL,
+ RECT_SCALE_MEDIUM,
+ RECT_SCALE_LARGE,
+
+ RECT_SCALE_COUNT
+ };
+
+ static double GetRadiusMeters(RectScale scale);
+
+ void Update();
+
+ Index & m_index;
+ int m_scale;
+ m2::PointD m_position;
+ bool m_valid;
+
+ // Sorted lists of features.
+ vector<FeatureID> m_features[RECT_SCALE_COUNT];
+};
+
+} // namespace search