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

feature_routine.cpp « indexer_tests « indexer - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 791f32bb54b9ae4791af99eae393ca82fbf1d6bb (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "../../base/SRC_FIRST.hpp"

#include "feature_routine.hpp"

#include "../../defines.hpp"    // just for file extensions

#include "../geometry_serialization.hpp"

#include "../../coding/file_writer.hpp"


namespace
{
  class feature_source_initializer
  {
    string m_name;
    FeatureType::read_source_t * m_source;

  public:
    feature_source_initializer(string const & fName)
      : m_name(fName), m_source(0)
    {
    }

    FeatureType::read_source_t & get_source(vector<char> & buffer)
    {
      delete m_source;
      m_source = new FeatureType::read_source_t(FilesContainerR(m_name));
      m_source->m_data.swap(buffer);
      return *m_source;
    }

    ~feature_source_initializer()
    {
      delete m_source;
      FileWriter::DeleteFileX(m_name);
    }
  };
}

void FeatureBuilder2Feature(FeatureBuilder2 & fb, FeatureType & f)
{
  string const datFile = "indexer_tests_tmp.dat";

  FeatureBuilder2::buffers_holder_t buffers;
  buffers.m_ptsOffset.push_back(0);
  buffers.m_trgOffset.push_back(0);
  buffers.m_ptsMask = 1;
  fb.Serialize(buffers, 0);

  {
    FilesContainerW writer(datFile);

    {
      FileWriter geom = writer.GetWriter(string(GEOMETRY_FILE_TAG) + '0');
      serial::SaveOuterPath(fb.GetGeometry(), 0, geom);
    }

    //{
    //  FileWriter trg = writer.GetWriter(string(TRIANGLE_FILE_TAG) + '0');
    //  feature::SaveTriangles(fb.GetTriangles(), trg);
    //}

    writer.Finish();
  }

  static feature_source_initializer staticInstance(datFile);
  f.Deserialize(staticInstance.get_source(buffers.m_buffer));
}

void Feature2FeatureBuilder(FeatureType const & f, FeatureBuilder2 & fb)
{
  f.InitFeatureBuilder(fb);
}