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

feature_processor.hpp « software_renderer - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5a963e03be182548581c2b21138963ec22996061 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#pragma once

#include "software_renderer/feature_styler.hpp"
#include "software_renderer/area_info.hpp"
#include "software_renderer/path_info.hpp"

#include "drape/pointers.hpp"

#include "indexer/drawing_rule_def.hpp"
#include "indexer/feature.hpp"
#include "indexer/data_header.hpp"
#include "indexer/feature_data.hpp"

#include "geometry/rect2d.hpp"

#include <list>
#include <vector>

class ScreenBase;

namespace software_renderer
{

struct FeatureData
{
  FeatureStyler m_styler;
  FeatureID m_id;

  std::list<PathInfo> m_pathes;
  std::list<AreaInfo> m_areas;
  m2::PointD m_point;
};

class CPUDrawer;

class FeatureProcessor
{
public:

  FeatureProcessor(ref_ptr<CPUDrawer> drawer,
                   m2::RectD const & r,
                   ScreenBase const & convertor,
                   int zoomLevel);

  bool operator()(FeatureType const & f);

private:
  ref_ptr<CPUDrawer> m_drawer;
  m2::RectD m_rect;
  ScreenBase const & m_convertor;
  int m_zoom;
  bool m_hasAnyFeature;

  void PreProcessKeys(std::vector<drule::Key> & keys) const;
};
}  // namespace software_renderer