File: TestKCoreLayout.cxx

package info (click to toggle)
vtk6 6.3.0%2Bdfsg2-8.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 118,972 kB
  • sloc: cpp: 1,442,790; ansic: 113,395; python: 72,383; tcl: 46,998; xml: 8,119; yacc: 4,525; java: 4,239; perl: 3,108; lex: 1,694; sh: 1,093; asm: 154; makefile: 68; objc: 17
file content (53 lines) | stat: -rw-r--r-- 1,802 bytes parent folder | download | duplicates (13)
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
#include "vtkDelimitedTextReader.h"
#include "vtkGraph.h"
#include "vtkKCoreLayout.h"
#include "vtkSmartPointer.h"
#include "vtkTableToGraph.h"
#include "vtkTestUtilities.h"

#define VTK_CREATE(type,name) \
  vtkSmartPointer<type> name = vtkSmartPointer<type>::New()

int TestKCoreLayout(int argc, char* argv[])
{
  VTK_CREATE(vtkDelimitedTextReader, csv_vert_source);
  VTK_CREATE(vtkDelimitedTextReader, csv_edge_source);
  VTK_CREATE(vtkTableToGraph, tbl2graph);
  VTK_CREATE(vtkKCoreLayout, kcoreLayout);

  char * file_verts = vtkTestUtilities::ExpandDataFileName(argc, argv,
                           "Data/Infovis/kcore_verts.csv");
  char * file_edges = vtkTestUtilities::ExpandDataFileName(argc, argv,
                           "Data/Infovis/kcore_edges.csv");

  csv_vert_source->SetFieldDelimiterCharacters(",");
  csv_vert_source->DetectNumericColumnsOn();
  csv_vert_source->SetHaveHeaders(true);
  csv_vert_source->SetFileName(file_verts);

  csv_edge_source->SetFieldDelimiterCharacters(",");
  csv_edge_source->DetectNumericColumnsOn();
  csv_edge_source->SetHaveHeaders(true);
  csv_edge_source->SetFileName(file_edges);

  tbl2graph->SetDirected(false);
  tbl2graph->AddInputConnection(csv_edge_source->GetOutputPort());
  tbl2graph->SetVertexTableConnection(csv_vert_source->GetOutputPort());
  tbl2graph->AddLinkVertex("source", "vertex id", false);
  tbl2graph->AddLinkVertex("target", "vertex id", false);
  tbl2graph->AddLinkEdge("source", "target");

  kcoreLayout->SetGraphConnection( tbl2graph->GetOutputPort() );
  kcoreLayout->SetCartesian(true);
  kcoreLayout->SetEpsilon(0.2);
  kcoreLayout->SetUnitRadius(1.0);

  kcoreLayout->Update();

  // TODO: Add some tests on this graph to check validity

  delete []file_verts;
  delete []file_edges;

  return EXIT_SUCCESS;
}