diff --git a/generator/coastlines_generator.cpp b/generator/coastlines_generator.cpp index 0f0a197dad..25abb6c597 100644 --- a/generator/coastlines_generator.cpp +++ b/generator/coastlines_generator.cpp @@ -92,6 +92,7 @@ void CoastlineFeaturesGenerator::AddRegionToTree(FeatureBuilder1 const & fb) DoCreateRegion createRgn; //DoAccumulate createRgn(m_regions); + CHECK_EQUAL(fb.GetPolygonsCount(), 1, ()); fb.ForEachGeometryPoint(createRgn); createRgn.Add(m_tree); } diff --git a/generator/feature_builder.hpp b/generator/feature_builder.hpp index 1995b617b2..b93df2fe84 100644 --- a/generator/feature_builder.hpp +++ b/generator/feature_builder.hpp @@ -71,6 +71,7 @@ public: bool IsGeometryClosed() const; inline size_t GetPointsCount() const { return GetGeometry().size(); } + inline size_t GetPolygonsCount() const { return m_Polygons.size(); } // stops processing when functor returns false template @@ -80,10 +81,10 @@ public: toDo(m_Center); else { - points_t const & poly = GetGeometry(); - for (points_t::const_iterator it = poly.begin(); it != poly.end(); ++it) - if (!toDo(*it)) - return; + for (list::const_iterator i = m_Polygons.begin(); i != m_Polygons.end(); ++i) + for (points_t::const_iterator j = i->begin(); j != i->end(); ++j) + if (!toDo(*j)) + return; } } //@} diff --git a/generator/polygonizer.hpp b/generator/polygonizer.hpp index 34787e951b..2a921cf543 100644 --- a/generator/polygonizer.hpp +++ b/generator/polygonizer.hpp @@ -1,8 +1,8 @@ #pragma once #include "borders_loader.hpp" +#include "feature_builder.hpp" -#include "../indexer/feature.hpp" #include "../indexer/feature_visibility.hpp" #include "../indexer/cell_id.hpp"