|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
49 int pipe_priority = -1;
51 void* heap_entry =
nullptr;
63 friend std::ostream&
operator<<(std::ostream& os,
const Pipe& pipe);
70 virtual bool empty() = 0;
72 virtual int size() = 0;
74 virtual Pipe* getTop() = 0;
76 virtual void addPipe(
Pipe* p) = 0;
78 virtual void removePipe(
Pipe* p) = 0;
80 virtual void rebuild(
List<Pipe>& pipes_list) = 0;
82 virtual void clear() = 0;
90 int priority_pipes = 0;
93 std::unique_ptr<PipeQueue>
queue;
98 bool isMatchedPVertex(
node n)
const;
107 const Pipe& getTopPipe()
const;
115 int getPipeCount()
const;
118 bool isReduced()
const;
123 void getIncidentEdgeBijection(
node u,
PipeBij& out)
const;
131 std::function<std::ostream&(std::ostream&)> printBijection(
node u)
const;
138 void makePriority(
node n);
158 void nodeDeleted(
node v)
override;
A queue of all pipes, ordered by an arbitrary comparator function.
void setPipeQueue(PipeQueue *q)
Includes declaration of graph class.
NodeArray< Pipe * > nodes
HypergraphRegistry< HypernodeElement >::iterator begin(const HypergraphRegistry< HypernodeElement > &self)
PipeQueue * getPipeQueue() const
void setPipeQueue(std::unique_ptr< PipeQueue > q)
Utilities for working with the bijections between the edges incident to the two endpoints of a Pipe.
std::unique_ptr< PipeQueue > queue
void nodeAdded(node v) override
Called by watched graph after a node has been added.
A pair of matched vertices of the same degree, whose rotation shall be synchronized.
Class for adjacency list elements.
List< Pipe >::iterator list_entry
int getPriorityPipeCount() const
const T & move(const T &v)
void cleared() override
Called by watched graph when its clear function is called, just before things are removed.
Manages the matching of P-nodes via pipes in an instance of SyncPlan.
Consistency checks for debugging the SyncPlan algorithm.
Abstract Base class for graph observers.
Doubly linked lists (maintaining the length of the list).
RegisteredArray for nodes, edges and adjEntries of a graph.
std::ostream & operator<<(std::ostream &os, Operation op)
Data type for general directed graphs (adjacency list representation).
Simple before-C++20 version for std::ranges::ref_view.
PMatching(const Graph *G)
void edgeAdded(edge e) override
Called by watched graph after an edge has been added.
Basic declarations, included by all source files.
HypergraphRegistry< HypernodeElement >::iterator end(const HypergraphRegistry< HypernodeElement > &self)
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Class for the representation of edges.
Declaration of doubly linked lists and iterators.
void edgeDeleted(edge e) override
Called by watched graph just before an edge is deleted.
Class for the representation of nodes.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
void clear()
Removes all elements from the list.