diff --git a/generator/feature_generator.cpp b/generator/feature_generator.cpp index 48dbd2a741..8e6b3c8172 100644 --- a/generator/feature_generator.cpp +++ b/generator/feature_generator.cpp @@ -1,7 +1,7 @@ #include "generator/feature_generator.hpp" #include "generator/generate_info.hpp" #include "generator/intermediate_data.hpp" -#include "generator/osm_decl.hpp" +#include "generator/intermediate_elements.hpp" #include "generator/osm_translator.hpp" #include "indexer/cell_id.hpp" diff --git a/generator/generator_tests/intermediate_data_test.cpp b/generator/generator_tests/intermediate_data_test.cpp index 41a597c270..256e51236b 100644 --- a/generator/generator_tests/intermediate_data_test.cpp +++ b/generator/generator_tests/intermediate_data_test.cpp @@ -8,7 +8,7 @@ #include "testing/testing.hpp" -#include "generator/osm_decl.hpp" +#include "generator/intermediate_elements.hpp" UNIT_TEST(Intermediate_Data_empty_way_element_save_load_test) diff --git a/generator/generator_tests/osm_parser_test.cpp b/generator/generator_tests/osm_parser_test.cpp deleted file mode 100644 index 1873de375b..0000000000 --- a/generator/generator_tests/osm_parser_test.cpp +++ /dev/null @@ -1,182 +0,0 @@ -#include "testing/testing.hpp" - -#include "generator/osm_xml_parser.hpp" -#include "generator/borders_generator.hpp" - -#include "coding/reader.hpp" -#include "coding/parse_xml.hpp" -#include "coding/file_reader.hpp" -#include "coding/file_writer.hpp" - -using namespace osm; - -static char const gOsmXml[] = -"" -"" -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -""; - -#define TEST_EXCEPTION(exception, expression) do { \ - bool gotException = false; \ - try { expression; } \ - catch (exception const &) { gotException = true; } \ - TEST(gotException, ("Exception should be thrown:", #exception)); \ - } while(0) - - -struct PointsTester -{ - list m_controlPoints; - PointsTester() - { - m_controlPoints.push_back(1); - m_controlPoints.push_back(2); - m_controlPoints.push_back(3); - m_controlPoints.push_back(4); - m_controlPoints.push_back(1); - } - void operator()(OsmId const & ptId) - { - TEST(!m_controlPoints.empty(), ()); - TEST_EQUAL(m_controlPoints.front(), ptId, ()); - m_controlPoints.pop_front(); - } - - bool IsOk() const - { - return m_controlPoints.empty(); - } -}; - -UNIT_TEST(OsmRawData_SmokeTest) -{ - OsmRawData osmData; - - { - // -1 to avoid finishing zero at the end of the string - MemReader xmlBlock(gOsmXml, ARRAY_SIZE(gOsmXml) - 1); - ReaderSource source(xmlBlock); - - OsmXmlParser parser(osmData); - TEST(ParseXML(source, parser), ("Invalid XML")); - } - - string outTagValue; - - TEST_EXCEPTION(OsmRawData::OsmInvalidIdException, OsmNode node = osmData.NodeById(98764)); - - OsmNode node = osmData.NodeById(9); - TEST_EQUAL(node.m_lat, 10.0, ()); - TEST_EQUAL(node.m_lon, 15.0, ()); - - TEST_EXCEPTION(OsmRawData::OsmInvalidIdException, OsmWay way = osmData.WayById(635794)); - - OsmWay way = osmData.WayById(100); - TEST_EQUAL(way.PointsCount(), 3, ()); - TEST(!way.TagValueByKey("invalid_tag", outTagValue), ()); - TEST(way.TagValueByKey("boundary", outTagValue), ()); - TEST_EQUAL(outTagValue, "administrative", ()); - TEST(way.TagValueByKey("admin_level", outTagValue), ()); - TEST_EQUAL(outTagValue, "2", ()); - - OsmWay way2 = osmData.WayById(101); - TEST(way.MergeWith(way2), ()); - TEST_EQUAL(way.PointsCount(), 5, ()); - PointsTester tester; - way.ForEachPoint(tester); - TEST(tester.IsOk(), ()); - TEST(way.IsClosed(), ()); - - TEST_EXCEPTION(OsmRawData::OsmInvalidIdException, OsmRelation relation = osmData.RelationById(64342)); - - OsmRelation rel1 = osmData.RelationById(444); - TEST(rel1.TagValueByKey("admin_level", outTagValue), ()); - TEST_EQUAL(outTagValue, "4", ()); - - OsmIds relations = osmData.RelationsByKey("invalid_tag_key"); - TEST(relations.empty(), ()); - relations = osmData.RelationsByKey("ISO3166-1"); - TEST_EQUAL(relations.size(), 1, ()); - TEST_EQUAL(relations[0], 555, ()); - - OsmRelation rel2 = osmData.RelationById(relations[0]); - OsmIds members = rel2.MembersByTypeAndRole("way", ""); - TEST_EQUAL(members.size(), 2, ()); - TEST_EQUAL(members[0], 100, ()); - members = rel2.MembersByTypeAndRole("way", "outer"); - TEST_EQUAL(members.size(), 1, ()); - TEST_EQUAL(members[0], 101, ()); - members = rel2.MembersByTypeAndRole("relation", "invalid_role"); - TEST(members.empty(), ()); - - relations.clear(); - - relations = osmData.RelationsByTag(OsmTag("boundary_invalid", "administrative")); - TEST(relations.empty(), ()); - relations = osmData.RelationsByTag(OsmTag("boundary", "administrative")); - TEST_EQUAL(relations.size(), 2, ()); -} diff --git a/generator/intermediate_data.hpp b/generator/intermediate_data.hpp index 2c02753171..41b1cc789c 100644 --- a/generator/intermediate_data.hpp +++ b/generator/intermediate_data.hpp @@ -1,6 +1,6 @@ #pragma once -#include "generator/osm_decl.hpp" +#include "generator/intermediate_elements.hpp" #include "coding/file_name_utils.hpp" #include "coding/file_reader.hpp" diff --git a/generator/osm_decl.hpp b/generator/intermediate_elements.hpp similarity index 100% rename from generator/osm_decl.hpp rename to generator/intermediate_elements.hpp diff --git a/generator/osm_decl.cpp b/generator/osm_decl.cpp deleted file mode 100644 index 0096c3ccce..0000000000 --- a/generator/osm_decl.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "generator/osm_decl.hpp" - diff --git a/generator/osm_source.cpp b/generator/osm_source.cpp index f54b930028..f17527bf8c 100644 --- a/generator/osm_source.cpp +++ b/generator/osm_source.cpp @@ -1,7 +1,7 @@ #include "generator/coastlines_generator.hpp" #include "generator/feature_generator.hpp" #include "generator/intermediate_data.hpp" -#include "generator/osm_decl.hpp" +#include "generator/intermediate_elements.hpp" #include "generator/osm_translator.hpp" #include "generator/osm_o5m_source.hpp" #include "generator/osm_source.hpp" diff --git a/generator/osm_xml_parser.cpp b/generator/osm_xml_parser.cpp deleted file mode 100644 index 3e12b5d9b8..0000000000 --- a/generator/osm_xml_parser.cpp +++ /dev/null @@ -1,258 +0,0 @@ -#include "generator/osm_xml_parser.hpp" - -#include "base/assert.hpp" -#include "base/string_utils.hpp" - -namespace osm -{ - OsmIdAndTagHolder::OsmIdAndTagHolder(OsmId id, OsmTags const & tags) - : m_id(id), m_tags(tags) - { - } - - bool OsmIdAndTagHolder::TagValueByKey(string const & key, string & outValue) const - { - for (OsmTags::const_iterator it = m_tags.begin(); it != m_tags.end(); ++it) - { - if (it->first == key) - { - outValue = it->second; - return true; - } - } - return false; - } - - ///////////////////////////////////////////////////////// - OsmNode::OsmNode(OsmId id, OsmTags const & tags, double lat, double lon) - : OsmIdAndTagHolder(id, tags), m_lat(lat), m_lon(lon) - { - } - - ///////////////////////////////////////////////////////// - - OsmWay::OsmWay(OsmId id, OsmTags const & tags, OsmIds const & pointIds) - : OsmIdAndTagHolder(id, tags), m_points(pointIds) - { - CHECK_GREATER_OR_EQUAL(m_points.size(), 2, ("Can't construct a way with less than 2 points", id)); - } - - size_t OsmWay::PointsCount() const - { - return m_points.size(); - } - - bool OsmWay::IsClosed() const - { - return m_points.front() == m_points.back(); - } - - bool OsmWay::MergeWith(OsmWay const & way) - { - size_t const oldSize = m_points.size(); - - // first, try to connect our end with their start - if (m_points.back() == way.m_points.front()) - m_points.insert(m_points.end(), ++way.m_points.begin(), way.m_points.end()); - // our end and their end - else if (m_points.back() == way.m_points.back()) - m_points.insert(m_points.end(), ++way.m_points.rbegin(), way.m_points.rend()); - // our start and their end - else if (m_points.front() == way.m_points.back()) - m_points.insert(m_points.begin(), way.m_points.begin(), --way.m_points.end()); - // our start and their start - else if (m_points.front() == way.m_points.front()) - m_points.insert(m_points.begin(), way.m_points.rbegin(), --way.m_points.rend()); - - return m_points.size() > oldSize; - } - - /////////////////////////////////////////////////////////////// - - OsmRelation::OsmRelation(OsmId id, OsmTags const & tags, RelationMembers const & members) - : OsmIdAndTagHolder(id, tags), m_members(members) - { - CHECK(!m_members.empty(), ("Can't construct a relation without members", id)); - } - - OsmIds OsmRelation::MembersByTypeAndRole(string const & type, string const & role) const - { - OsmIds result; - for (RelationMembers::const_iterator it = m_members.begin(); it != m_members.end(); ++it) - if (it->m_type == type && it->m_role == role) - result.push_back(it->m_ref); - return result; - } - - /////////////////////////////////////////////////////////////// - - void OsmRawData::AddNode(OsmId id, OsmTags const & tags, double lat, double lon) - { - m_nodes.insert(nodes_type::value_type(id, OsmNode(id, tags, lat, lon))); - } - - void OsmRawData::AddWay(OsmId id, OsmTags const & tags, OsmIds const & nodeIds) - { - m_ways.insert(ways_type::value_type(id, OsmWay(id, tags, nodeIds))); - } - - void OsmRawData::AddRelation(OsmId id, OsmTags const & tags, RelationMembers const & members) - { - m_relations.insert(relations_type::value_type(id, OsmRelation(id, tags, members))); - } - - OsmNode OsmRawData::NodeById(OsmId id) const - { - nodes_type::const_iterator found = m_nodes.find(id); - if (found == m_nodes.end()) - MYTHROW( OsmInvalidIdException, (id, "node not found") ); - return found->second; - } - - OsmWay OsmRawData::WayById(OsmId id) const - { - ways_type::const_iterator found = m_ways.find(id); - if (found == m_ways.end()) - MYTHROW( OsmInvalidIdException, (id, "way not found") ); - return found->second; - } - - OsmRelation OsmRawData::RelationById(OsmId id) const - { - relations_type::const_iterator found = m_relations.find(id); - if (found == m_relations.end()) - MYTHROW( OsmInvalidIdException, (id, "relation not found") ); - return found->second; - } - - OsmIds OsmRawData::RelationsByKey(string const & key) const - { - OsmIds result; - string value; - for (relations_type::const_iterator it = m_relations.begin(); it != m_relations.end(); ++it) - { - if (it->second.TagValueByKey(key, value)) - result.push_back(it->first); - } - return result; - } - - OsmIds OsmRawData::RelationsByTag(OsmTag const & tag) const - { - OsmIds result; - string value; - for (relations_type::const_iterator it = m_relations.begin(); it != m_relations.end(); ++it) - { - if (it->second.TagValueByKey(tag.first, value) && value == tag.second) - result.push_back(it->first); - } - return result; - } - - ///////////////////////////////////////////////////////// - - OsmXmlParser::OsmXmlParser(OsmRawData & outData) - : m_osmRawData(outData) - { - } - - bool OsmXmlParser::Push(string const & element) - { - m_xmlTags.push_back(element); - m_invalidTags.push_back(false); - - return true; - } - - void OsmXmlParser::Pop(string const & element) - { - bool invalid = m_invalidTags.back(); - if (element == "node") - { - if (!invalid) - m_osmRawData.AddNode(m_id, m_tags, m_lat, m_lon); - m_tags.clear(); - } - else if (element == "nd") - { - if (!invalid) - m_nds.push_back(m_ref); - } - else if (element == "way") - { - if (!invalid) - m_osmRawData.AddWay(m_id, m_tags, m_nds); - m_nds.clear(); - m_tags.clear(); - } - else if (element == "tag") - { - if (!invalid) - m_tags.push_back(OsmTag(m_k, m_v)); - } - else if (element == "member") - { - if (!invalid) - m_members.push_back(m_member); - } - else if (element == "relation") - { - if (!invalid) - m_osmRawData.AddRelation(m_id, m_tags, m_members); - m_members.clear(); - m_tags.clear(); - } - - m_invalidTags.pop_back(); - m_xmlTags.pop_back(); - } - - void OsmXmlParser::AddAttr(string const & attr, string const & value) - { - string const & elem = m_xmlTags.back(); - if (attr == "id" && (elem == "node" || elem == "way" || elem == "relation")) - { - CHECK(strings::to_int64(value, m_id), ()); - CHECK_NOT_EQUAL(m_id, 0, ("id == 0 is invalid")); - } - else if (attr == "lat" && elem == "node") - { - CHECK(strings::to_double(value, m_lat), ()); - } - else if (attr == "lon" && elem == "node") - { - CHECK(strings::to_double(value, m_lon), ()); - } - else if (attr == "ref") - { - int64_t numVal; - CHECK(strings::to_int64(value, numVal), ()); - if (elem == "nd") - m_ref = numVal; - else if (elem == "member") - m_member.m_ref = numVal; - } - else if (attr == "k" && elem == "tag") - { - m_k = value; - } - else if (attr == "v" && elem == "tag") - { - m_v = value; - } - else if (attr == "type" && elem == "member") - { - m_member.m_type = value; - } - else if (attr == "role" && elem == "member") - { - m_member.m_role = value; - } - else if ((attr == "action" && value == "delete") - || (attr == "visible" && value == "false")) - { - m_invalidTags.back() = true; - } - } - -} diff --git a/generator/osm_xml_parser.hpp b/generator/osm_xml_parser.hpp deleted file mode 100644 index f988eb15be..0000000000 --- a/generator/osm_xml_parser.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#pragma once - -#include "base/exception.hpp" - -#include "geometry/point2d.hpp" - -#include "std/vector.hpp" -#include "std/map.hpp" -#include "std/set.hpp" -#include "std/string.hpp" - -namespace osm -{ - typedef int64_t OsmId; - typedef vector OsmIds; - - typedef pair OsmTag; - typedef vector OsmTags; - - struct RelationMember - { - OsmId m_ref; - string m_type; - string m_role; - }; - typedef vector RelationMembers; - - class OsmIdAndTagHolder - { - OsmId m_id; - OsmTags m_tags; - - public: - OsmIdAndTagHolder(OsmId id, OsmTags const & tags); - OsmId Id() const { return m_id; } - bool TagValueByKey(string const & key, string & outValue) const; - template void ForEachTag(TFunctor & functor) const - { - for (OsmTags::const_iterator it = m_tags.begin(); it != m_tags.end(); ++it) - functor(*it); - } - }; - - class OsmNode : public OsmIdAndTagHolder - { - public: - double m_lat; - double m_lon; - OsmNode(OsmId id, OsmTags const & tags, double lat, double lon); - }; - - class OsmWay : public OsmIdAndTagHolder - { - OsmIds m_points; - - public: - OsmWay(OsmId id, OsmTags const & tags, OsmIds const & pointIds); - - size_t PointsCount() const; - - /// checks if first and last points are equal - bool IsClosed() const; - - /// Merges ways if they have one common point - /// @warning do not use it where merged way direction is important! (coastlines for example) - bool MergeWith(OsmWay const & way); - - template void ForEachPoint(TFunctor & functor) const - { - for (typename OsmIds::const_iterator it = m_points.begin(); it != m_points.end(); ++it) - functor(*it); - } - }; - - typedef vector OsmWays; - - class OsmRelation : public OsmIdAndTagHolder - { - RelationMembers m_members; - - public: - OsmRelation(OsmId id, OsmTags const & tags, RelationMembers const & members); - OsmIds MembersByTypeAndRole(string const & type, string const & role) const; - }; - - class OsmRawData - { - typedef map nodes_type; - nodes_type m_nodes; - typedef map ways_type; - ways_type m_ways; - typedef map relations_type; - relations_type m_relations; - - public: - DECLARE_EXCEPTION(OsmInvalidIdException, RootException); - - void AddNode(OsmId id, OsmTags const & tags, double lat, double lon); - void AddWay(OsmId id, OsmTags const & tags, OsmIds const & nodeIds); - void AddRelation(OsmId id, OsmTags const & tags, RelationMembers const & members); - - OsmNode NodeById(OsmId id) const; //!< @throws OsmInvalidIdException - OsmWay WayById(OsmId id) const; //!< @throws OsmInvalidIdException - OsmRelation RelationById(OsmId id) const; //!< @throws OsmInvalidIdException - - OsmIds RelationsByKey(string const & key) const; - OsmIds RelationsByTag(OsmTag const & tag) const; - }; - - class OsmXmlParser - { - vector m_xmlTags; - /// true if action=delete or visible=false for corresponding xml tag - vector m_invalidTags; - - OsmRawData & m_osmRawData; - - OsmId m_id; - double m_lon; - double m_lat; - /// - string m_k; - string m_v; - OsmTags m_tags; - /// - OsmId m_ref; - OsmIds m_nds; - RelationMember m_member; - RelationMembers m_members; - - public: - OsmXmlParser(OsmRawData & outData); - - bool Push(string const & element); - void Pop(string const & element); - void AddAttr(string const & attr, string const & value); - void CharData(string const &) {} - }; - -} diff --git a/generator/ways_merger.hpp b/generator/ways_merger.hpp index 13831304c8..b5db80969c 100644 --- a/generator/ways_merger.hpp +++ b/generator/ways_merger.hpp @@ -1,5 +1,5 @@ #pragma once -#include "generator/osm_decl.hpp" +#include "generator/intermediate_elements.hpp" #include "geometry/point2d.hpp" diff --git a/xcode/generator/generator.xcodeproj/project.pbxproj b/xcode/generator/generator.xcodeproj/project.pbxproj index dd9c7002c6..13dda9fc56 100644 --- a/xcode/generator/generator.xcodeproj/project.pbxproj +++ b/xcode/generator/generator.xcodeproj/project.pbxproj @@ -33,8 +33,7 @@ 675340711A3F2A7400A0A8C3 /* feature_sorter.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 6753403E1A3F2A7400A0A8C3 /* feature_sorter.hpp */; }; 675340731A3F2A7400A0A8C3 /* gen_mwm_info.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675340401A3F2A7400A0A8C3 /* gen_mwm_info.hpp */; }; 675340741A3F2A7400A0A8C3 /* generate_info.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675340411A3F2A7400A0A8C3 /* generate_info.hpp */; }; - 675340771A3F2A7400A0A8C3 /* osm_decl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675340441A3F2A7400A0A8C3 /* osm_decl.cpp */; }; - 675340781A3F2A7400A0A8C3 /* osm_decl.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675340451A3F2A7400A0A8C3 /* osm_decl.hpp */; }; + 675340781A3F2A7400A0A8C3 /* intermediate_elements.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675340451A3F2A7400A0A8C3 /* intermediate_elements.hpp */; }; 675340791A3F2A7400A0A8C3 /* osm_translator.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675340461A3F2A7400A0A8C3 /* osm_translator.hpp */; }; 6753407A1A3F2A7400A0A8C3 /* osm_id.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675340471A3F2A7400A0A8C3 /* osm_id.cpp */; }; 6753407B1A3F2A7400A0A8C3 /* osm_id.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675340481A3F2A7400A0A8C3 /* osm_id.hpp */; }; @@ -88,8 +87,7 @@ 6753403E1A3F2A7400A0A8C3 /* feature_sorter.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = feature_sorter.hpp; sourceTree = ""; }; 675340401A3F2A7400A0A8C3 /* gen_mwm_info.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = gen_mwm_info.hpp; sourceTree = ""; }; 675340411A3F2A7400A0A8C3 /* generate_info.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = generate_info.hpp; sourceTree = ""; }; - 675340441A3F2A7400A0A8C3 /* osm_decl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm_decl.cpp; sourceTree = ""; }; - 675340451A3F2A7400A0A8C3 /* osm_decl.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm_decl.hpp; sourceTree = ""; }; + 675340451A3F2A7400A0A8C3 /* intermediate_elements.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = intermediate_elements.hpp; sourceTree = ""; }; 675340461A3F2A7400A0A8C3 /* osm_translator.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm_translator.hpp; sourceTree = ""; }; 675340471A3F2A7400A0A8C3 /* osm_id.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = osm_id.cpp; sourceTree = ""; }; 675340481A3F2A7400A0A8C3 /* osm_id.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = osm_id.hpp; sourceTree = ""; }; @@ -155,6 +153,7 @@ 6753402F1A3F2A7400A0A8C3 /* coastlines_generator.cpp */, 675340301A3F2A7400A0A8C3 /* coastlines_generator.hpp */, 675340311A3F2A7400A0A8C3 /* intermediate_data.hpp */, + 675340451A3F2A7400A0A8C3 /* intermediate_elements.hpp */, 675340341A3F2A7400A0A8C3 /* dumper.cpp */, 675340351A3F2A7400A0A8C3 /* dumper.hpp */, 675340361A3F2A7400A0A8C3 /* feature_builder.cpp */, @@ -168,8 +167,6 @@ 6753403E1A3F2A7400A0A8C3 /* feature_sorter.hpp */, 675340401A3F2A7400A0A8C3 /* gen_mwm_info.hpp */, 675340411A3F2A7400A0A8C3 /* generate_info.hpp */, - 675340441A3F2A7400A0A8C3 /* osm_decl.cpp */, - 675340451A3F2A7400A0A8C3 /* osm_decl.hpp */, 675340461A3F2A7400A0A8C3 /* osm_translator.hpp */, 675340471A3F2A7400A0A8C3 /* osm_id.cpp */, 675340481A3F2A7400A0A8C3 /* osm_id.hpp */, @@ -216,7 +213,7 @@ 670B84BD1A8CDB0000CE4492 /* osm_source.hpp in Headers */, 675340631A3F2A7400A0A8C3 /* coastlines_generator.hpp in Headers */, 675340641A3F2A7400A0A8C3 /* intermediate_data.hpp in Headers */, - 675340781A3F2A7400A0A8C3 /* osm_decl.hpp in Headers */, + 675340781A3F2A7400A0A8C3 /* intermediate_elements.hpp in Headers */, 6753406B1A3F2A7400A0A8C3 /* feature_emitter_iface.hpp in Headers */, 6753408C1A3F2A7400A0A8C3 /* world_map_generator.hpp in Headers */, 6753408E1A3F2A7400A0A8C3 /* xml_element.hpp in Headers */, @@ -311,7 +308,6 @@ 6726C1D51A4AFEF4005EEA39 /* osm2meta.cpp in Sources */, 6753405E1A3F2A7400A0A8C3 /* borders_loader.cpp in Sources */, 675340691A3F2A7400A0A8C3 /* feature_builder.cpp in Sources */, - 675340771A3F2A7400A0A8C3 /* osm_decl.cpp in Sources */, 6753405C1A3F2A7400A0A8C3 /* borders_generator.cpp in Sources */, 675340671A3F2A7400A0A8C3 /* dumper.cpp in Sources */, 675340831A3F2A7400A0A8C3 /* statistics.cpp in Sources */,