File: tutorial006.cpp

package info (click to toggle)
tulip 4.8.0dfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 179,264 kB
  • ctags: 64,517
  • sloc: cpp: 600,444; ansic: 36,311; makefile: 22,136; python: 1,304; sh: 946; yacc: 522; xml: 337; pascal: 157; php: 66; lex: 55
file content (62 lines) | stat: -rw-r--r-- 1,289 bytes parent folder | download | duplicates (2)
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
#include <iostream>
#include <tulip/TlpTools.h>
#include <tulip/Graph.h>
#include <tulip/ForEach.h>
#include <tulip/MutableContainer.h>

/**
 * Tutorial 006
 *
 * Create a graph
 * Order the edges around the nodes
 */

using namespace std;
using namespace tlp;

void displayAdjacency(node n, Graph *graph) {
  edge e;
	forEach(e,graph->getInOutEdges(n))
    cout << e.id << " ";
  cout << endl;
}

int main() {
  //initialize the Tulip libs
  initTulipLib(NULL);

  //create an empty graph
  Graph *graph = newGraph();

  //add the nodes
  node n0 = graph->addNode();
  node n1 = graph->addNode();
  node n2 = graph->addNode();
  node n3 = graph->addNode();

  //add the edges
  edge e0 = graph->addEdge(n1,n2);
  edge e1 = graph->addEdge(n0,n1);
  edge e2 = graph->addEdge(n2,n0);
  edge e3 = graph->addEdge(n3,n0);

	//display current order of edge around n0
	cout << "Initial edge order around n0" << endl;
	displayAdjacency(n0, graph);

	//swap e2 and e3
	cout << "Swapping of e2 and e3" << endl;
  graph->swapEdgeOrder(n0, e2, e3);
	displayAdjacency(n0, graph);

	//reordering the edges
  vector<edge> tmp(2);
  tmp[0]=e2;
  tmp[1]=e3;
  graph->setEdgeOrder(n0,tmp);
	cout << "Reordering with a vector" << endl;
  displayAdjacency(n0,graph);

  delete graph;
  return EXIT_SUCCESS;
}