Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
MMCrossingMinimizationModule.h
Go to the documentation of this file.
1
33#pragma once
34
35#include <ogdf/basic/Logger.h>
36#include <ogdf/basic/Module.h>
38
39namespace ogdf {
40
46public:
48 MMCrossingMinimizationModule() : m_nodeSplits(0), m_splittedNodes(0) { }
49
50 // destruction
52
69 const EdgeArray<bool>* forbid = nullptr) {
70 return doCall(PG, cc, forbid, crossingNumber, m_nodeSplits, m_splittedNodes);
71 };
72
83 ReturnType call(const Graph& G, int& cr, const EdgeArray<bool>* forbid = nullptr);
84
97 const EdgeArray<bool>* forbid = nullptr);
98
102 int numberOfNodeSplits() const { return m_nodeSplits; }
103
104 int numberOfSplittedNodes() const { return m_splittedNodes; }
105
106protected:
123 int& crossingNumber, int& numNS, int& numSN) = 0;
124
125private:
128
130};
131
132}
Contains logging functionality.
Declares base class for all module types.
Declaration of class PlanRepExpansion representing a planarized representation of the expansion of a ...
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
Doubly linked lists (maintaining the length of the list).
Definition List.h:1435
Interface for minor-monotone crossing minimization algorithms.
int numberOfNodeSplits() const
Returns the number of required node splits after the call.
ReturnType call(const Graph &G, const List< node > &splittableNodes, int &cr, const EdgeArray< bool > *forbid=nullptr)
Performs minor-monotone crossing minimization on G for given splittable nodes.
int m_splittedNodes
The number of nodes that are split.
int m_nodeSplits
The number of required node splits.
virtual ReturnType doCall(PlanRepExpansion &PG, int cc, const EdgeArray< bool > *forbid, int &crossingNumber, int &numNS, int &numSN)=0
Actual algorithm call that needs to be implemented by derived classed.
ReturnType call(const Graph &G, int &cr, const EdgeArray< bool > *forbid=nullptr)
Performs minor-monotone crossing minimization on G.
MMCrossingMinimizationModule()
Initializes a minor-monotone crossing minimization module.
ReturnType call(PlanRepExpansion &PG, int cc, int &crossingNumber, const EdgeArray< bool > *forbid=nullptr)
Computes a planarized representation of an expansion of the input graph.
Base class for modules.
Definition Module.h:47
ReturnType
The return type of a module.
Definition Module.h:50
Planarized representations (of a connected component) of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition config.h:101
#define OGDF_MALLOC_NEW_DELETE
Makes the class use malloc for memory allocation.
Definition memory.h:91
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.