#pragma once #include "generator/cities_boundaries_builder.hpp" #include "generator/feature_builder.hpp" #include "generator/place.hpp" #include "geometry/tree4d.hpp" #include #include namespace generator { // The class CityBoundaryProcessor is responsible for the union of boundaries of the cities. class CityBoundaryProcessor { public: CityBoundaryProcessor(std::shared_ptr boundariesTable); void Add(FeatureBuilder1 const & fb); void Replace(FeatureBuilder1 const & fb); std::vector GetFeatures() const; private: void UnionEqualPlacesIds(Place const & place); std::shared_ptr m_boundariesTable; m4::Tree m_places; }; } // namespace generator