Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

VertexOrder.h
Go to the documentation of this file.
1 
34 #pragma once
35 
37 
38 namespace ogdf {
39 
40 enum class OrderEnum { asc, desc, rnd };
41 enum class MeasureEnum { zero, log, sum, squared };
42 
47 private:
49 
50  using QElement = std::pair<ogdf::node, unsigned int>;
51 
52  std::vector<QElement> vertex_order;
55 
56  void sort();
57 
58  double crossings(int c);
59 
60  void init_all();
61  void init();
62 
63 
64  void init_cr(edge e);
65 
66 public:
68  : ga(_ga), o(_o), m(_m) {
69  //nothing to do
70  }
71 
73  init();
74  List<node> order;
75  for (auto v : vertex_order) {
76  order.pushBack(v.first);
77  }
78  return order;
79  }
80 
82  vertex_order.clear();
83  init_cr(e);
84  List<node> order;
85  for (auto v : vertex_order) {
86  order.pushBack(v.first);
87  }
88  return order;
89  }
90 };
91 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::GraphAttributes
Stores additional attributes of a graph (like layout information).
Definition: GraphAttributes.h:66
GraphAttributes.h
Declaration of class GraphAttributes which extends a Graph by additional attributes.
ogdf::CrossingVertexOrder::ga
GraphAttributes ga
Definition: VertexOrder.h:48
ogdf::CrossingVertexOrder::CrossingVertexOrder
CrossingVertexOrder(GraphAttributes &_ga, OrderEnum _o, MeasureEnum _m)
Definition: VertexOrder.h:67
ogdf::CrossingVertexOrder::get_vertex_order
List< node > get_vertex_order()
Definition: VertexOrder.h:72
Minisat::Internal::sort
void sort(T *array, int size, LessThan lt)
Definition: Sort.h:57
ogdf::MeasureEnum::squared
@ squared
ogdf::MeasureEnum::sum
@ sum
ogdf::OrderEnum::rnd
@ rnd
ogdf::CrossingVertexOrder::vertex_order
std::vector< QElement > vertex_order
Definition: VertexOrder.h:52
ogdf::MeasureEnum::log
@ log
ogdf::CrossingVertexOrder::get_vertex_order_by_crossed_edges
List< node > get_vertex_order_by_crossed_edges(edge e)
Definition: VertexOrder.h:81
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
ogdf::OrderEnum
OrderEnum
Definition: VertexOrder.h:40
ogdf::CrossingVertexOrder::o
OrderEnum o
Definition: VertexOrder.h:53
ogdf::graphics::init
void init()
Definition: graphics.h:446
ogdf::OrderEnum::asc
@ asc
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::MeasureEnum
MeasureEnum
Definition: VertexOrder.h:41
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:356
ogdf::CrossingVertexOrder::m
MeasureEnum m
Definition: VertexOrder.h:54
ogdf::MeasureEnum::zero
@ zero
ogdf::CrossingVertexOrder::QElement
std::pair< ogdf::node, unsigned int > QElement
Definition: VertexOrder.h:50
ogdf::OrderEnum::desc
@ desc
ogdf::CrossingVertexOrder
Definition: VertexOrder.h:46
ogdf::List::pushBack
iterator pushBack(const E &x)
Adds element x at the end of the list.
Definition: List.h:1537