diff options
author | Maksim Andrianov <maksimandrianov1@gmail.com> | 2021-01-14 14:16:42 +0300 |
---|---|---|
committer | Alexey Zakharenkov <35913079+alexey-zakharenkov@users.noreply.github.com> | 2021-01-14 18:56:56 +0300 |
commit | 35d0e83db8905b5e87af5f87b4ebce10af44b649 (patch) | |
tree | 1fd9fd9cb9e692cfc96e683124ab76dbfefa0334 | |
parent | 6cdfd4c960daaf9932d06d982e2d36612662dc58 (diff) |
[generator] Fixed adding duplicated types.
-rw-r--r-- | generator/final_processor_country.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/generator/final_processor_country.cpp b/generator/final_processor_country.cpp index 645077de21..aae240e282 100644 --- a/generator/final_processor_country.cpp +++ b/generator/final_processor_country.cpp @@ -254,20 +254,18 @@ void CountryFinalProcessor::ProcessBuildingParts() m4::Tree<FeatureBuilder> buildingPartsKDTree; ForEachFeatureRawFormat<serialization_policy::MaxAccuracy>(path, [&](auto && fb, auto /* pos */) { - if (!(fb.IsArea() && fb.IsValid())) - return; - - if (fb.HasType(buildingPartClassifType)) + if (fb.IsArea() && fb.HasType(buildingPartClassifType)) buildingPartsKDTree.Add(fb); }); FeatureBuilderWriter<serialization_policy::MaxAccuracy> writer(path, true /* mangleName */); ForEachFeatureRawFormat<serialization_policy::MaxAccuracy>(path, [&](auto && fb, auto /* pos */) { - if (fb.IsArea() && fb.IsValid() && + if (fb.IsArea() && fb.HasType(buildingClassifType) && DoesBuildingConsistOfParts(fb, buildingPartsKDTree)) { fb.AddType(buildingWithPartsClassifType); + fb.GetParams().FinishAddingTypes(); } writer.Write(fb); |