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:
authorrachytski <siarhei.rachytski@gmail.com>2012-05-29 15:35:35 +0400
committerAlex Zolotarev <alex@maps.me>2015-09-23 01:38:59 +0300
commit1b6dc33daea0a97e923c215ccda83813f6d780c3 (patch)
tree977aa87addba1eab9fc59d5925e1713869d933cc /geometry
parentbbd65612ef3b798bb47ddf0800c6e52671a3eeef (diff)
better remove-change geometry-add pattern for guy::Element.
Diffstat (limited to 'geometry')
-rw-r--r--geometry/tree4d.hpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/geometry/tree4d.hpp b/geometry/tree4d.hpp
index 2634664715..379cd24369 100644
--- a/geometry/tree4d.hpp
+++ b/geometry/tree4d.hpp
@@ -43,6 +43,15 @@ namespace m4
(m_pts[3] <= r.minY()) || (m_pts[1] >= r.maxY()));
}
+ bool operator ==(value_t const & r) const
+ {
+ return ((m_val == r.m_val)
+ && (m_pts[0] == r.m_pts[0])
+ && (m_pts[1] == r.m_pts[1])
+ && (m_pts[2] == r.m_pts[2])
+ && (m_pts[3] == r.m_pts[3]));
+ }
+
double operator[](size_t i) const { return m_pts[i]; }
m2::RectD GetRect() const { return m2::RectD(m_pts[0], m_pts[1], m_pts[2], m_pts[3]); }
@@ -154,13 +163,7 @@ namespace m4
void Erase(T const & obj)
{
- vector<value_t> v;
- for (typename tree_t::const_iterator i = m_tree.begin(); i != m_tree.end(); ++i)
- if ((*i).m_val == obj)
- v.push_back(*i);
-
- for (unsigned i = 0; i < v.size(); ++i)
- m_tree.erase(v[i]);
+ m_tree.erase_exact(value_t(obj, Traits::LimitRect(obj)));
}
template <class TCompare>