Welcome to mirror list, hosted at ThFree Co, Russian Federation.

borders_loader.hpp « generator - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 7d9a56dd7362bb69b16077111b844bc9cac599af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once

#include "geometry/region2d.hpp"
#include "geometry/tree4d.hpp"

#include "std/string.hpp"

#define BORDERS_DIR "borders/"
#define BORDERS_EXTENSION ".poly"

namespace borders
{
  typedef m2::RegionD Region;
  typedef m4::Tree<Region> RegionsContainerT;

  struct CountryPolygons
  {
    CountryPolygons(string const & name = "") : m_name(name), m_index(-1) {}

    bool IsEmpty() const { return m_regions.IsEmpty(); }
    void Clear()
    {
      m_regions.Clear();
      m_name.clear();
      m_index = -1;
    }

    RegionsContainerT m_regions;
    string m_name;
    mutable int m_index;
  };

  typedef m4::Tree<CountryPolygons> CountriesContainerT;

  bool LoadCountriesList(string const & baseDir, CountriesContainerT & countries);

  void GeneratePackedBorders(string const & baseDir);
  void UnpackBorders(string const & baseDir, string const & targetDir);
}