graph-displayer.cc
author hegyi
Fri, 17 Jun 2005 15:41:48 +0000
branchgui
changeset 24 094ac2326a2a
parent 23 d0e4ac77bafe
child 28 fa28f1071bd6
permissions -rw-r--r--
Sorry for my friday afternoon...
ladanyi@1
     1
#include <all_include.h>
ladanyi@1
     2
#include <mapstorage.h>
ladanyi@1
     3
#include <main_win.h>
ladanyi@1
     4
#include <libgnomecanvasmm.h>
ladanyi@1
     5
#include <libgnomecanvasmm/polygon.h>
ladanyi@1
     6
ladanyi@1
     7
#define MAIN_PART
ladanyi@1
     8
hegyi@23
     9
std::vector <std::string> property_strings;
hegyi@23
    10
std::vector <double> property_defaults;
ladanyi@1
    11
ladanyi@1
    12
ladanyi@1
    13
int main(int argc, char *argv[])
ladanyi@1
    14
{
hegyi@4
    15
hegyi@4
    16
  //initializing
hegyi@4
    17
hegyi@24
    18
  property_strings.resize(PROPERTY_NUM);
ladanyi@1
    19
  property_strings[WIDTH]="Width";
ladanyi@1
    20
  property_strings[COLOR]="Color";
ladanyi@1
    21
  property_strings[TEXT]="Text";
ladanyi@1
    22
hegyi@24
    23
  property_defaults.resize(PROPERTY_NUM);
ladanyi@1
    24
  property_defaults[WIDTH]=10.0;
ladanyi@1
    25
  property_defaults[COLOR]=100;
ladanyi@1
    26
  property_defaults[TEXT]=0;
ladanyi@1
    27
ladanyi@1
    28
  if(argc<2)
ladanyi@1
    29
  {
ladanyi@1
    30
      std::cerr << "USAGE: gd <input filename.lgf>" << std::endl;
ladanyi@1
    31
      return 0;
ladanyi@1
    32
  }
ladanyi@1
    33
ladanyi@1
    34
  Coordinates coosvector;
ladanyi@1
    35
ladanyi@1
    36
  Graph g;
ladanyi@1
    37
ladanyi@1
    38
  CoordinatesMap cm(g);
ladanyi@1
    39
  Graph::EdgeMap<double> cap(g), map1(g), map2(g), map3(g), map4(g);
hegyi@4
    40
  Graph::NodeMap<double> nodedata (g);
ladanyi@1
    41
ladanyi@1
    42
  //we create one object to read x coordinates
ladanyi@1
    43
  //and one to read y coordinate of nodes and write them to cm NodeMap.
ladanyi@1
    44
  XMap <CoordinatesMap> xreader (cm);
ladanyi@1
    45
  YMap <CoordinatesMap> yreader (cm);
hegyi@4
    46
hegyi@4
    47
  //reading in graph and its maps
ladanyi@1
    48
ladanyi@1
    49
  std::ifstream is(argv[1]);
ladanyi@1
    50
ladanyi@1
    51
  GraphReader<Graph> reader(is, g);
ladanyi@1
    52
  reader.readNodeMap("coordinates_x", xreader);
ladanyi@1
    53
  reader.readNodeMap("coordinates_y", yreader);
ladanyi@1
    54
  reader.readNodeMap("data", nodedata);
ladanyi@1
    55
  reader.readEdgeMap("cap", cap);
ladanyi@1
    56
  reader.readEdgeMap("map1", map1);
ladanyi@1
    57
  reader.readEdgeMap("map2", map2);
ladanyi@1
    58
  reader.readEdgeMap("map3", map3);
ladanyi@1
    59
  reader.readEdgeMap("map4", map4);
ladanyi@1
    60
  reader.run();
ladanyi@1
    61
hegyi@4
    62
  //initializing MapStorage with the read data
hegyi@4
    63
ladanyi@1
    64
  MapStorage ms(g);
ladanyi@1
    65
  ms.addNodeMap("data",&nodedata);
ladanyi@1
    66
  ms.addEdgeMap("cap",&cap);
ladanyi@1
    67
  ms.addEdgeMap("map1",&map1);
ladanyi@1
    68
  ms.addEdgeMap("map2",&map2);
ladanyi@1
    69
  ms.addEdgeMap("map3",&map3);
ladanyi@1
    70
  ms.addEdgeMap("map4",&map4);
ladanyi@1
    71
hegyi@4
    72
  //initializing GUI
hegyi@4
    73
ladanyi@1
    74
  Gnome::Canvas::init();
ladanyi@1
    75
  Gtk::Main app(argc, argv);
ladanyi@1
    76
ladanyi@1
    77
  MainWin mainwin("Displayed Graph", g, cm, ms);
ladanyi@1
    78
  app.run(mainwin);
ladanyi@1
    79
ladanyi@1
    80
  return 0;
ladanyi@1
    81
}