Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Bijection.h
Go to the documentation of this file.
1 
31 #pragma once
32 
33 #include <ogdf/basic/Graph.h>
34 #include <ogdf/basic/GraphList.h>
35 #include <ogdf/basic/List.h>
36 #include <ogdf/basic/comparer.h>
38 
39 #include <functional>
40 #include <utility>
41 
42 namespace ogdf::sync_plan {
43 
44 using PipeBijIterator = ZipIterator<ogdf::internal::GraphObjectContainer<AdjElement>::iterator,
47 using PipeBijPair = std::pair<adjEntry, adjEntry>;
48 using FrozenPipeBijPair = std::pair<int, int>;
51 
52 OGDF_DECLARE_COMPARER(PipeBijCmp, PipeBijPair, int, x.first->theEdge()->index());
53 
54 OGDF_DECLARE_COMPARER(FrozenPipeBijCmp, FrozenPipeBijPair, int, x.first);
55 
57 
59 
61 
63 
65 
67 
68 OGDF_EXPORT std::pair<node, node> split(Graph& G, sync_plan::PipeBij& bij,
69  const EdgeArray<edge>* new_edges = nullptr, const EdgeArray<bool>* reverse_edges = nullptr,
70  node src = nullptr, node tgt = nullptr);
71 
72 OGDF_EXPORT void join(Graph& G, node u, node v, sync_plan::PipeBij& bij,
73  List<bool>* reverse_v = nullptr);
74 
75 OGDF_EXPORT void join(Graph& G, node u, node v, sync_plan::PipeBij& bij,
76  const std::function<void(node)>& deleteNode, const std::function<void(edge)>& deleteEdge,
77  List<bool>* reverse_v = nullptr);
78 
79 }
Graph.h
Includes declaration of graph class.
ogdf::sync_plan::OGDF_DECLARE_COMPARER
OGDF_DECLARE_COMPARER(PipeBijCmp, PipeBijPair, int, x.first->theEdge() ->index())
ogdf::sync_plan
Definition: clustering.h:44
ogdf::internal::GraphIteratorBase
Definition: graph_iterators.h:44
ogdf::sync_plan::getPipeBijection
PipeBijRange getPipeBijection(node u, node v)
ogdf::sync_plan::split
std::pair< node, node > split(Graph &G, sync_plan::PipeBij &bij, const EdgeArray< edge > *new_edges=nullptr, const EdgeArray< bool > *reverse_edges=nullptr, node src=nullptr, node tgt=nullptr)
ogdf::sync_plan::PipeBijPair
std::pair< adjEntry, adjEntry > PipeBijPair
Definition: Bijection.h:47
ogdf::sync_plan::FrozenPipeBijPair
std::pair< int, int > FrozenPipeBijPair
Definition: Bijection.h:48
ogdf::sync_plan::getFrozenPipeBijection
void getFrozenPipeBijection(node u, node v, FrozenPipeBij &out)
ogdf::sync_plan::PipeBijIterator
ZipIterator< ogdf::internal::GraphObjectContainer< AdjElement >::iterator, ogdf::internal::GraphObjectContainer< AdjElement >::reverse_iterator > PipeBijIterator
Definition: Bijection.h:45
ogdf::sync_plan::join
void join(Graph &G, node u, node v, sync_plan::PipeBij &bij, List< bool > *reverse_v=nullptr)
GraphList.h
Decralation of GraphElement and GraphList classes.
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::Range
Simple before-C++20 version for std::ranges::ref_view.
Definition: Iterators.h:42
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:356
List.h
Declaration of doubly linked lists and iterators.
ogdf::sync_plan::freezePipeBijection
void freezePipeBijection(const PipeBij &in, FrozenPipeBij &out)
comparer.h
Declarations for Comparer objects.
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
Iterators.h
Utilities for wrapping Iterators as long as we have no std::ranges. TODO should be moved to a central...
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709