mapstorage.cc
author hegyi
Wed, 25 Oct 2006 13:21:24 +0000
changeset 172 fc1e478697d3
parent 151 72f1c33f89d4
child 174 95872af46fc4
permissions -rw-r--r--
Currently visualized map can be saved and loaded from file.
ladanyi@53
     1
#include "mapstorage.h"
ladanyi@98
     2
#include "gui_writer.h"
ladanyi@98
     3
#include "gui_reader.h"
alpar@128
     4
#include <limits>
alpar@128
     5
#include <cmath>
ladanyi@63
     6
#include <gtkmm.h>
deba@77
     7
ladanyi@98
     8
MapStorage::MapStorage() : modified(false), file_name(""), arrow_pos_read_ok(false)
ladanyi@6
     9
{
ladanyi@53
    10
  nodemap_storage["coordinates_x"] = new Graph::NodeMap<double>(graph);
ladanyi@53
    11
  coords.setXMap(*nodemap_storage["coordinates_x"]);
ladanyi@53
    12
  nodemap_storage["coordinates_y"] = new Graph::NodeMap<double>(graph);
ladanyi@53
    13
  coords.setYMap(*nodemap_storage["coordinates_y"]);
ladanyi@53
    14
ladanyi@98
    15
  edgemap_storage["arrow_pos_x"] = new Graph::EdgeMap<double>(graph);
ladanyi@98
    16
  arrow_pos.setXMap(*edgemap_storage["arrow_pos_x"]);
ladanyi@98
    17
  edgemap_storage["arrow_pos_y"] = new Graph::EdgeMap<double>(graph);
ladanyi@98
    18
  arrow_pos.setYMap(*edgemap_storage["arrow_pos_y"]);
ladanyi@98
    19
ladanyi@134
    20
  nodemap_storage["label"] = new Graph::NodeMap<double>(graph);
ladanyi@134
    21
  edgemap_storage["label"] = new Graph::EdgeMap<double>(graph);
ladanyi@64
    22
ladanyi@134
    23
  nodemap_default["label"] = 1.0;
ladanyi@134
    24
  edgemap_default["label"] = 1.0;
hegyi@94
    25
hegyi@94
    26
  active_nodemaps.resize(NODE_PROPERTY_NUM);
hegyi@94
    27
  for(int i=0;i<NODE_PROPERTY_NUM;i++)
hegyi@94
    28
    {
hegyi@94
    29
      active_nodemaps[i]="";
hegyi@94
    30
    }
hegyi@94
    31
hegyi@94
    32
  active_edgemaps.resize(EDGE_PROPERTY_NUM);
hegyi@94
    33
  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
hegyi@94
    34
    {
hegyi@94
    35
      active_edgemaps[i]="";
hegyi@94
    36
    }
ladanyi@53
    37
}
ladanyi@53
    38
ladanyi@53
    39
MapStorage::~MapStorage()
ladanyi@53
    40
{
ladanyi@53
    41
  for (std::map<std::string, Graph::NodeMap<double>*>::const_iterator it =
ladanyi@53
    42
      nodemap_storage.begin(); it != nodemap_storage.end(); ++it)
ladanyi@53
    43
  {
ladanyi@53
    44
    delete it->second;
ladanyi@53
    45
  }
ladanyi@53
    46
  for (std::map<std::string, Graph::EdgeMap<double>*>::const_iterator it =
ladanyi@53
    47
      edgemap_storage.begin(); it != edgemap_storage.end(); ++it)
ladanyi@53
    48
  {
ladanyi@53
    49
    delete it->second;
ladanyi@53
    50
  }
ladanyi@53
    51
}
ladanyi@6
    52
hegyi@118
    53
int MapStorage::addNodeMap(const std::string & name, Graph::NodeMap<double> *nodemap, double default_value)
ladanyi@6
    54
{
hegyi@46
    55
  if( nodemap_storage.find(name) == nodemap_storage.end() )
hegyi@46
    56
    {
hegyi@46
    57
      nodemap_storage[name]=nodemap;
ladanyi@63
    58
      // set the maps default value
ladanyi@63
    59
      nodemap_default[name] = default_value;
hegyi@108
    60
hegyi@108
    61
      //announce changement in maps
hegyi@108
    62
      signal_node_map.emit(name);
hegyi@46
    63
      return 0;
hegyi@46
    64
    }
hegyi@46
    65
  return 1;
ladanyi@6
    66
}
ladanyi@6
    67
hegyi@94
    68
void MapStorage::changeActiveMap(bool itisedge, int prop, std::string mapname)
hegyi@94
    69
{
hegyi@94
    70
  if(itisedge)
hegyi@94
    71
    {
hegyi@94
    72
      active_edgemaps[prop]=mapname;
hegyi@94
    73
    }
hegyi@94
    74
  else
hegyi@94
    75
    {
hegyi@94
    76
      active_nodemaps[prop]=mapname;
hegyi@94
    77
    }
hegyi@94
    78
  signal_prop.emit(itisedge, prop);
hegyi@94
    79
}
hegyi@94
    80
hegyi@172
    81
void MapStorage::broadcastActiveMaps()
hegyi@172
    82
{
hegyi@172
    83
  for(int i=0;i<NODE_PROPERTY_NUM;i++)
hegyi@172
    84
    {
hegyi@172
    85
      signal_map_win.emit(false, i, active_nodemaps[i]);
hegyi@172
    86
    }
hegyi@172
    87
  
hegyi@172
    88
  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
hegyi@172
    89
    {
hegyi@172
    90
      signal_map_win.emit(true, i, active_edgemaps[i]);
hegyi@172
    91
    }
hegyi@172
    92
}
hegyi@172
    93
hegyi@172
    94
hegyi@94
    95
std::string MapStorage::getActiveEdgeMap(int prop)
hegyi@94
    96
{
hegyi@94
    97
  return active_edgemaps[prop];
hegyi@94
    98
}
hegyi@94
    99
hegyi@94
   100
std::string MapStorage::getActiveNodeMap(int prop)
hegyi@94
   101
{
hegyi@94
   102
  return active_nodemaps[prop];
hegyi@94
   103
}
hegyi@94
   104
hegyi@94
   105
std::vector<std::string> MapStorage::getEdgeMapList()
hegyi@94
   106
{
hegyi@94
   107
  std::vector<std::string> eml;
hegyi@94
   108
  eml.resize(edgemap_storage.size());
hegyi@94
   109
  int i=0;
hegyi@94
   110
  std::map< std::string,Graph::EdgeMap<double> * >::iterator emsi=beginOfEdgeMaps();
hegyi@94
   111
  for(;emsi!=endOfEdgeMaps();emsi++)
hegyi@94
   112
    {
hegyi@94
   113
      eml[i]=(emsi->first);
hegyi@94
   114
      i++;
hegyi@94
   115
    }
hegyi@94
   116
  return eml;
hegyi@94
   117
}
hegyi@94
   118
hegyi@94
   119
std::vector<std::string> MapStorage::getNodeMapList()
hegyi@94
   120
{
hegyi@94
   121
  std::vector<std::string> nml;
hegyi@94
   122
  nml.resize(nodemap_storage.size());
hegyi@94
   123
  int i=0;
hegyi@94
   124
  std::map< std::string,Graph::NodeMap<double> * >::iterator nmsi=beginOfNodeMaps();
hegyi@94
   125
  for(;nmsi!=endOfNodeMaps();nmsi++)
hegyi@94
   126
    {
hegyi@94
   127
      nml[i]=(nmsi->first);
hegyi@94
   128
      i++;
hegyi@94
   129
    }
hegyi@94
   130
  return nml;
hegyi@94
   131
}
hegyi@94
   132
hegyi@94
   133
MapStorage::Signal_Prop MapStorage::signal_prop_ch()
hegyi@94
   134
{
hegyi@94
   135
  return signal_prop;
hegyi@94
   136
}
hegyi@94
   137
hegyi@118
   138
int MapStorage::addEdgeMap(const std::string & name, Graph::EdgeMap<double> *edgemap, double default_value)
ladanyi@6
   139
{
hegyi@46
   140
  if( edgemap_storage.find(name) == edgemap_storage.end() )
hegyi@46
   141
    {
hegyi@46
   142
      edgemap_storage[name]=edgemap;
ladanyi@63
   143
      // set the maps default value
ladanyi@63
   144
      edgemap_default[name] = default_value;
hegyi@108
   145
hegyi@108
   146
      //announce changement in maps
hegyi@108
   147
      signal_edge_map.emit(name);
hegyi@46
   148
      return 0;
hegyi@46
   149
    }
hegyi@46
   150
  return 1;
ladanyi@6
   151
}
ladanyi@6
   152
ladanyi@6
   153
double MapStorage::maxOfNodeMap(const std::string & name)
ladanyi@6
   154
{
ladanyi@6
   155
  double max=0;
ladanyi@53
   156
  for (NodeIt j(graph); j!=INVALID; ++j)
ladanyi@6
   157
  {
ladanyi@6
   158
    if( (*nodemap_storage[name])[j]>max )
ladanyi@6
   159
    {
ladanyi@6
   160
      max=(*nodemap_storage[name])[j];
ladanyi@6
   161
    }
ladanyi@6
   162
  }
ladanyi@6
   163
  return max;
ladanyi@6
   164
}
ladanyi@6
   165
ladanyi@6
   166
double MapStorage::maxOfEdgeMap(const std::string & name)
ladanyi@6
   167
{
ladanyi@6
   168
  double max=0;
ladanyi@53
   169
  for (EdgeIt j(graph); j!=INVALID; ++j)
ladanyi@6
   170
  {
ladanyi@6
   171
    if( (*edgemap_storage[name])[j]>max )
ladanyi@6
   172
    {
ladanyi@6
   173
      max=(*edgemap_storage[name])[j];
ladanyi@6
   174
    }
ladanyi@6
   175
  }
ladanyi@6
   176
  return max;
ladanyi@6
   177
}
ladanyi@6
   178
ladanyi@6
   179
double MapStorage::minOfNodeMap(const std::string & name)
ladanyi@6
   180
{
ladanyi@53
   181
  NodeIt j(graph);
hegyi@58
   182
  double min;
hegyi@58
   183
  if(j!=INVALID)
hegyi@58
   184
    {
hegyi@58
   185
      min=(*nodemap_storage[name])[j];
hegyi@58
   186
    }
hegyi@58
   187
  else
hegyi@58
   188
    {
hegyi@58
   189
      min=0;
hegyi@58
   190
    }
ladanyi@6
   191
  for (; j!=INVALID; ++j)
ladanyi@6
   192
  {
ladanyi@6
   193
    if( (*nodemap_storage[name])[j]<min )
ladanyi@6
   194
    {
ladanyi@6
   195
      min=(*nodemap_storage[name])[j];
ladanyi@6
   196
    }
ladanyi@6
   197
  }
ladanyi@6
   198
  return min;
ladanyi@6
   199
}
ladanyi@6
   200
ladanyi@6
   201
double MapStorage::minOfEdgeMap(const std::string & name)
ladanyi@6
   202
{
ladanyi@53
   203
  EdgeIt j(graph);
hegyi@58
   204
  double min;
hegyi@58
   205
  if(j!=INVALID)
hegyi@58
   206
    {
hegyi@58
   207
      min=(*edgemap_storage[name])[j];
hegyi@58
   208
    }
hegyi@58
   209
  else
hegyi@58
   210
    {
hegyi@58
   211
      min=0;
hegyi@58
   212
    }
ladanyi@53
   213
  for (EdgeIt j(graph); j!=INVALID; ++j)
ladanyi@6
   214
  {
ladanyi@6
   215
    if( (*edgemap_storage[name])[j]<min )
ladanyi@6
   216
    {
ladanyi@6
   217
      min=(*edgemap_storage[name])[j];
ladanyi@6
   218
    }
ladanyi@6
   219
  }
ladanyi@6
   220
  return min;
ladanyi@6
   221
}
ladanyi@6
   222
ladanyi@63
   223
int MapStorage::readFromFile(const std::string &filename)
ladanyi@53
   224
{
ladanyi@53
   225
  bool read_x = false;
ladanyi@53
   226
  bool read_y = false;
ladanyi@64
   227
  bool read_edge_id = false;
ladanyi@53
   228
ladanyi@53
   229
  try {
ladanyi@53
   230
    LemonReader lreader(filename);
ladanyi@53
   231
    ContentReader content(lreader);
ladanyi@53
   232
    lreader.run();
ladanyi@53
   233
ladanyi@101
   234
    if (content.nodeSetNum() < 1)
ladanyi@101
   235
    {
ladanyi@101
   236
      Gtk::MessageDialog mdialog("No nodeset found in file.");
ladanyi@101
   237
      mdialog.run();
ladanyi@101
   238
      clear();
ladanyi@101
   239
      return 1;
ladanyi@101
   240
    }
ladanyi@101
   241
ladanyi@101
   242
    if (content.edgeSetNum() < 1)
ladanyi@101
   243
    {
ladanyi@101
   244
      Gtk::MessageDialog mdialog("No edgeset found in file.");
ladanyi@101
   245
      mdialog.run();
ladanyi@101
   246
      clear();
ladanyi@101
   247
      return 1;
ladanyi@101
   248
    }
ladanyi@101
   249
ladanyi@53
   250
    const std::vector<std::string>& nodeMapNames = content.nodeSetMaps(0);
ladanyi@53
   251
    const std::vector<std::string>& edgeMapNames = content.edgeSetMaps(0);
ladanyi@53
   252
ladanyi@53
   253
    GraphReader<Graph> greader(filename, graph);
ladanyi@53
   254
    for (std::vector<std::string>::const_iterator it = nodeMapNames.begin();
ladanyi@53
   255
        it != nodeMapNames.end(); ++it)
ladanyi@53
   256
    {
ladanyi@53
   257
      if (*it == "coordinates_x")
ladanyi@53
   258
      {
ladanyi@53
   259
        read_x = true;
ladanyi@53
   260
        //std::cout << "read X nodemap" << std::endl;
ladanyi@53
   261
      }
ladanyi@53
   262
      else if (*it == "coordinates_y")
ladanyi@53
   263
      {
ladanyi@53
   264
        read_y = true;
ladanyi@53
   265
        //std::cout << "read Y nodemap" << std::endl;
ladanyi@53
   266
      }
ladanyi@134
   267
      else if (*it == "label")
ladanyi@53
   268
      {
ladanyi@53
   269
        //std::cout << "read id nodemap" << std::endl;
ladanyi@53
   270
      }
ladanyi@53
   271
      else
ladanyi@53
   272
      {
ladanyi@53
   273
        nodemap_storage[*it] = new Graph::NodeMap<double>(graph);
ladanyi@53
   274
        //std::cout << "read " << *it << " nodemap" << std::endl;
ladanyi@53
   275
      }
ladanyi@53
   276
      greader.readNodeMap(*it, *nodemap_storage[*it]);
ladanyi@53
   277
    }
ladanyi@53
   278
    for (std::vector<std::string>::const_iterator it = edgeMapNames.begin();
ladanyi@53
   279
        it != edgeMapNames.end(); ++it)
ladanyi@53
   280
    {
ladanyi@134
   281
      if (*it == "label")
ladanyi@53
   282
      {
ladanyi@53
   283
        //std::cout << "read id edgemap" << std::endl;
ladanyi@135
   284
        read_edge_id = true;
ladanyi@53
   285
      }
ladanyi@53
   286
      else
ladanyi@53
   287
      {
ladanyi@53
   288
        edgemap_storage[*it] = new Graph::EdgeMap<double>(graph);
ladanyi@53
   289
        //std::cout << "read " << *it << " edgemap" << std::endl;
ladanyi@53
   290
      }
ladanyi@53
   291
      greader.readEdgeMap(*it, *edgemap_storage[*it]);
ladanyi@53
   292
    }
ladanyi@98
   293
    GuiReader gui_reader(greader, this);
ladanyi@53
   294
    greader.run();
ladanyi@101
   295
  } catch (Exception& error) {
ladanyi@79
   296
    Gtk::MessageDialog mdialog(error.what());
ladanyi@53
   297
    mdialog.run();
ladanyi@63
   298
    clear();
ladanyi@63
   299
    return 1;
ladanyi@53
   300
  }
ladanyi@53
   301
ladanyi@64
   302
  if (!read_edge_id)
ladanyi@64
   303
  {
ladanyi@134
   304
    edgemap_storage["label"] = new Graph::EdgeMap<double>(graph);
ladanyi@64
   305
    int i = 1;
ladanyi@64
   306
    for (EdgeIt e(graph); e != INVALID; ++e)
ladanyi@64
   307
    {
ladanyi@134
   308
      (*edgemap_storage["label"])[e] = i++;
ladanyi@64
   309
    }
ladanyi@64
   310
  }
ladanyi@64
   311
ladanyi@53
   312
  if (!read_x || !read_y)
ladanyi@53
   313
  {
ladanyi@53
   314
    int node_num = 0;
ladanyi@53
   315
    for (NodeIt n(graph); n != INVALID; ++n)
ladanyi@53
   316
    {
ladanyi@53
   317
      node_num++;
ladanyi@53
   318
    }
ladanyi@53
   319
    const double pi = 3.142;
ladanyi@53
   320
    double step = 2 * pi / (double) node_num;
ladanyi@53
   321
    int i = 0;
ladanyi@53
   322
    for (NodeIt n(graph); n != INVALID; ++n)
ladanyi@53
   323
    {
deba@77
   324
      nodemap_storage["coordinates_x"]->set(n, 250.0 * std::cos(i * step));
deba@77
   325
      nodemap_storage["coordinates_y"]->set(n, 250.0 * std::sin(i * step));
ladanyi@53
   326
      i++;
ladanyi@53
   327
    }
ladanyi@53
   328
  }
ladanyi@63
   329
ladanyi@98
   330
  if (!arrow_pos_read_ok)
ladanyi@98
   331
  {
ladanyi@98
   332
    arrow_pos_read_ok = false;
ladanyi@98
   333
    for (EdgeIt e(graph); e != INVALID; ++e)
ladanyi@98
   334
    {
ladanyi@151
   335
      if (graph.source(e) == graph.target(e))
ladanyi@151
   336
      {
ladanyi@151
   337
        arrow_pos.set(e, coords[graph.source(e)] + XY(0.0, 80.0));
ladanyi@151
   338
      }
ladanyi@151
   339
      else
ladanyi@151
   340
      {
ladanyi@151
   341
        arrow_pos.set(e, (coords[graph.source(e)] + coords[graph.target(e)]) / 2.0);
ladanyi@151
   342
      }
ladanyi@98
   343
    }
ladanyi@98
   344
  }
ladanyi@98
   345
ladanyi@63
   346
  // fill in the default values for the maps
ladanyi@63
   347
  for (std::map<std::string, Graph::NodeMap<double>*>::const_iterator it =
ladanyi@63
   348
      nodemap_storage.begin(); it != nodemap_storage.end(); ++it)
ladanyi@63
   349
  {
ladanyi@134
   350
    if ((it->first != "label") &&
ladanyi@63
   351
        (it->first != "coordiantes_x") &&
ladanyi@63
   352
        (it->first != "coordinates_y"))
ladanyi@63
   353
    {
ladanyi@63
   354
      nodemap_default[it->first] = 0.0;
ladanyi@63
   355
    }
ladanyi@134
   356
    else if (it->first == "label")
ladanyi@64
   357
    {
ladanyi@64
   358
      NodeIt n(graph);
ladanyi@134
   359
      double max = (*nodemap_storage["label"])[n];
ladanyi@64
   360
      for (; n != INVALID; ++n)
ladanyi@64
   361
      {
ladanyi@134
   362
        if ((*nodemap_storage["label"])[n] > max)
ladanyi@134
   363
          max = (*nodemap_storage["label"])[n];
ladanyi@64
   364
      }
ladanyi@134
   365
      nodemap_default["label"] = max + 1.0;
ladanyi@64
   366
    }
ladanyi@63
   367
  }
ladanyi@63
   368
  for (std::map<std::string, Graph::EdgeMap<double>*>::const_iterator it =
ladanyi@63
   369
      edgemap_storage.begin(); it != edgemap_storage.end(); ++it)
ladanyi@63
   370
  {
ladanyi@134
   371
    if (it->first != "label")
ladanyi@63
   372
    {
ladanyi@63
   373
      edgemap_default[it->first] = 0.0;
ladanyi@63
   374
    }
ladanyi@64
   375
    else
ladanyi@64
   376
    {
ladanyi@67
   377
      double max = std::numeric_limits<double>::min();
ladanyi@67
   378
      for (EdgeIt e(graph); e != INVALID; ++e)
ladanyi@64
   379
      {
ladanyi@134
   380
        if ((*edgemap_storage["label"])[e] > max)
ladanyi@134
   381
          max = (*edgemap_storage["label"])[e];
ladanyi@64
   382
      }
ladanyi@67
   383
      if (max > std::numeric_limits<double>::min())
ladanyi@134
   384
        edgemap_default["label"] = max + 1.0;
ladanyi@67
   385
      else
ladanyi@134
   386
        edgemap_default["label"] = 1.0;
ladanyi@64
   387
    }
ladanyi@63
   388
  }
ladanyi@63
   389
ladanyi@63
   390
  return 0;
ladanyi@53
   391
}
ladanyi@53
   392
ladanyi@53
   393
void MapStorage::writeToFile(const std::string &filename)
ladanyi@53
   394
{
ladanyi@53
   395
  GraphWriter<Graph> gwriter(filename, graph);
ladanyi@53
   396
ladanyi@53
   397
  for (std::map<std::string, Graph::NodeMap<double>*>::const_iterator it =
ladanyi@53
   398
      nodemap_storage.begin(); it != nodemap_storage.end(); ++it)
ladanyi@53
   399
  {
ladanyi@53
   400
    gwriter.writeNodeMap(it->first, *(it->second));
ladanyi@53
   401
  }
ladanyi@53
   402
  for (std::map<std::string, Graph::EdgeMap<double>*>::const_iterator it =
ladanyi@53
   403
      edgemap_storage.begin(); it != edgemap_storage.end(); ++it)
ladanyi@53
   404
  {
ladanyi@98
   405
    if ((it->first != "arrow_pos_x") &&
ladanyi@98
   406
        (it->first != "arrow_pos_y"))
ladanyi@98
   407
    {
ladanyi@98
   408
      gwriter.writeEdgeMap(it->first, *(it->second));
ladanyi@98
   409
    }
ladanyi@53
   410
  }
ladanyi@98
   411
ladanyi@98
   412
  GuiWriter gui_writer(gwriter, this);
ladanyi@98
   413
ladanyi@53
   414
  gwriter.run();
ladanyi@53
   415
}
ladanyi@53
   416
ladanyi@53
   417
void MapStorage::clear()
ladanyi@53
   418
{
ladanyi@53
   419
  for (std::map<std::string, Graph::NodeMap<double>*>::iterator it =
ladanyi@53
   420
      nodemap_storage.begin(); it != nodemap_storage.end(); ++it)
ladanyi@53
   421
  {
ladanyi@53
   422
    if ((it->first != "coordinates_x") &&
ladanyi@53
   423
        (it->first != "coordinates_y") &&
ladanyi@134
   424
        (it->first != "label"))
ladanyi@53
   425
    {
ladanyi@53
   426
      delete it->second;
ladanyi@53
   427
      nodemap_storage.erase(it);
ladanyi@53
   428
    }
ladanyi@53
   429
  }
ladanyi@53
   430
  for (std::map<std::string, Graph::EdgeMap<double>*>::iterator it =
ladanyi@53
   431
      edgemap_storage.begin(); it != edgemap_storage.end(); ++it)
ladanyi@53
   432
  {
ladanyi@134
   433
    if ((it->first != "label") &&
ladanyi@98
   434
        (it->first != "arrow_pos_x") &&
ladanyi@98
   435
        (it->first != "arrow_pos_y"))
ladanyi@53
   436
    {
ladanyi@53
   437
      delete it->second;
ladanyi@53
   438
      edgemap_storage.erase(it);
ladanyi@53
   439
    }
ladanyi@53
   440
  }
ladanyi@63
   441
  for (std::map<std::string, double>::iterator it =
ladanyi@63
   442
      nodemap_default.begin(); it != nodemap_default.end(); ++it)
ladanyi@63
   443
  {
ladanyi@134
   444
    if (it->first != "label")
ladanyi@64
   445
      nodemap_default.erase(it);
ladanyi@63
   446
  }
ladanyi@63
   447
  for (std::map<std::string, double>::iterator it =
ladanyi@63
   448
      edgemap_default.begin(); it != edgemap_default.end(); ++it)
ladanyi@63
   449
  {
ladanyi@134
   450
    if (it->first != "label")
ladanyi@64
   451
      edgemap_default.erase(it);
ladanyi@63
   452
  }
ladanyi@53
   453
  graph.clear();
ladanyi@53
   454
  file_name = "";
ladanyi@53
   455
  modified = false;
hegyi@172
   456
hegyi@172
   457
  arrow_pos_read_ok = false;
hegyi@172
   458
  
hegyi@172
   459
  for(int i=0;i<NODE_PROPERTY_NUM;i++)
hegyi@172
   460
    {
hegyi@172
   461
      changeActiveMap(false, i, "");
hegyi@172
   462
      signal_map_win.emit(false, i, "");
hegyi@172
   463
    }
hegyi@172
   464
  
hegyi@172
   465
  for(int i=0;i<EDGE_PROPERTY_NUM;i++)
hegyi@172
   466
    {
hegyi@172
   467
      changeActiveMap(true, i, "");
hegyi@172
   468
      signal_map_win.emit(true, i, "");
hegyi@172
   469
    }
ladanyi@53
   470
}
ladanyi@98
   471
ladanyi@98
   472
void MapStorage::ArrowPosReadOK()
ladanyi@98
   473
{
ladanyi@98
   474
  arrow_pos_read_ok = true;
ladanyi@98
   475
}
hegyi@111
   476
hegyi@111
   477
void MapStorage::mapChanged(bool itisedge, std::string mapname)
hegyi@111
   478
{
hegyi@111
   479
  if(itisedge)
hegyi@111
   480
    {
hegyi@111
   481
      for(int i=0;i<EDGE_PROPERTY_NUM;i++)
hegyi@111
   482
	{
hegyi@111
   483
	  if(active_edgemaps[i]==mapname)
hegyi@111
   484
	    {
hegyi@111
   485
	      signal_prop.emit(itisedge, i);
hegyi@111
   486
	    }
hegyi@111
   487
	}
hegyi@111
   488
    }
hegyi@111
   489
  else
hegyi@111
   490
    {
hegyi@111
   491
      for(int i=0;i<NODE_PROPERTY_NUM;i++)
hegyi@111
   492
	{
hegyi@111
   493
	  if(active_nodemaps[i]==mapname)
hegyi@111
   494
	    {
hegyi@111
   495
	      signal_prop.emit(itisedge, i);
hegyi@111
   496
	    }
hegyi@111
   497
	}
hegyi@111
   498
    }
hegyi@111
   499
}