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>2012-09-20 17:44:28 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:43:29 +0300
commitcdc487b5cfcb4ed5fb066dafb643cc66d7cfbee8 (patch)
tree55690a524a7344444da689f9f0348902da138342 /indexer
parentf54438b19ec294232eac95bdf20a16c94f62ba66 (diff)
Do NOT filter types for area features (They combine all drawing rules).
Diffstat (limited to 'indexer')
-rw-r--r--indexer/feature_visibility.cpp23
-rw-r--r--indexer/feature_visibility.hpp13
2 files changed, 14 insertions, 22 deletions
diff --git a/indexer/feature_visibility.cpp b/indexer/feature_visibility.cpp
index db0c5cc953..78fad1f28a 100644
--- a/indexer/feature_visibility.cpp
+++ b/indexer/feature_visibility.cpp
@@ -259,32 +259,19 @@ namespace
class CheckNonDrawableType
{
Classificator & m_c;
- FeatureGeoType m_arr[3];
- size_t m_count;
+ FeatureGeoType m_type;
public:
CheckNonDrawableType(FeatureGeoType ft)
- : m_c(classif()), m_count(0)
+ : m_c(classif()), m_type(ft)
{
- if (ft < FEATURE_TYPE_LINE_AREA)
- m_arr[m_count++] = ft;
- else
- {
- ASSERT_EQUAL ( ft, FEATURE_TYPE_LINE_AREA, () );
- m_arr[m_count++] = FEATURE_TYPE_LINE;
- m_arr[m_count++] = FEATURE_TYPE_AREA;
- }
}
bool operator() (uint32_t t)
{
- for (size_t i = 0; i < m_count; ++i)
- {
- IsDrawableLikeChecker doCheck(m_arr[i]);
- if (m_c.ProcessObjects(t, doCheck))
- return false;
- }
- return true;
+ IsDrawableLikeChecker doCheck(m_type);
+ // return true if need to delete
+ return !m_c.ProcessObjects(t, doCheck);
}
};
}
diff --git a/indexer/feature_visibility.hpp b/indexer/feature_visibility.hpp
index 6f3fea925c..081a38ba43 100644
--- a/indexer/feature_visibility.hpp
+++ b/indexer/feature_visibility.hpp
@@ -15,19 +15,24 @@ namespace feature
{
class TypesHolder;
- // Note! do not change this values. Should be equal with EGeomType.
+ /// @note do not change this values. Should be equal with EGeomType.
+ /// Used for checking visibility (by drawing style) for feature's geometry type
+ /// (for Area - check only area type, but can draw symbol or caption).
enum FeatureGeoType {
FEATURE_TYPE_POINT = 0,
FEATURE_TYPE_LINE = 1,
- FEATURE_TYPE_AREA = 2,
- FEATURE_TYPE_LINE_AREA = 3
+ FEATURE_TYPE_AREA = 2
};
bool IsDrawableAny(uint32_t type);
- bool IsDrawableLike(vector<uint32_t> const & types, FeatureGeoType ft);
bool IsDrawableForIndex(FeatureBase const & f, int level);
+ /// @name Be carefull with FEATURE_TYPE_AREA.
+ /// It's check only unique area styles, be it also can draw symbol or caption.
+ //@{
+ bool IsDrawableLike(vector<uint32_t> const & types, FeatureGeoType ft);
bool RemoveNoDrawableTypes(vector<uint32_t> & types, FeatureGeoType ft);
+ //@}
int GetMinDrawableScale(FeatureBase const & f);