Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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 
39 namespace ogdf {
40 
46 public:
48  MMCrossingMinimizationModule() : m_nodeSplits(0), m_splittedNodes(0) { }
49 
50  // destruction
52 
68  ReturnType call(PlanRepExpansion& PG, int cc, int& crossingNumber,
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 
96  ReturnType call(const Graph& G, const List<node>& splittableNodes, int& cr,
97  const EdgeArray<bool>* forbid = nullptr);
98 
102  int numberOfNodeSplits() const { return m_nodeSplits; }
103 
104  int numberOfSplittedNodes() const { return m_splittedNodes; }
105 
106 protected:
122  virtual ReturnType doCall(PlanRepExpansion& PG, int cc, const EdgeArray<bool>* forbid,
123  int& crossingNumber, int& numNS, int& numSN) = 0;
124 
125 private:
128 
130 };
131 
132 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::MMCrossingMinimizationModule::m_nodeSplits
int m_nodeSplits
The number of required node splits.
Definition: MMCrossingMinimizationModule.h:126
ogdf::MMCrossingMinimizationModule::numberOfSplittedNodes
int numberOfSplittedNodes() const
Definition: MMCrossingMinimizationModule.h:104
ogdf::PlanRepExpansion
Planarized representations (of a connected component) of a graph.
Definition: PlanRepExpansion.h:52
Logger.h
Contains logging functionality.
ogdf::MMCrossingMinimizationModule
Interface for minor-monotone crossing minimization algorithms.
Definition: MMCrossingMinimizationModule.h:45
ogdf::MMCrossingMinimizationModule::call
ReturnType call(PlanRepExpansion &PG, int cc, int &crossingNumber, const EdgeArray< bool > *forbid=nullptr)
Computes a planarized representation of an expansion of the input graph.
Definition: MMCrossingMinimizationModule.h:68
OGDF_MALLOC_NEW_DELETE
#define OGDF_MALLOC_NEW_DELETE
Makes the class use malloc for memory allocation.
Definition: memory.h:91
ogdf::Module
Base class for modules.
Definition: Module.h:47
PlanRepExpansion.h
Declaration of class PlanRepExpansion representing a planarized representation of the expansion of a ...
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::MMCrossingMinimizationModule::m_splittedNodes
int m_splittedNodes
The number of nodes that are split.
Definition: MMCrossingMinimizationModule.h:127
ogdf::MMCrossingMinimizationModule::MMCrossingMinimizationModule
MMCrossingMinimizationModule()
Initializes a minor-monotone crossing minimization module.
Definition: MMCrossingMinimizationModule.h:48
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::MMCrossingMinimizationModule::numberOfNodeSplits
int numberOfNodeSplits() const
Returns the number of required node splits after the call.
Definition: MMCrossingMinimizationModule.h:102
Module.h
Declares base class for all module types.
ogdf::MMCrossingMinimizationModule::~MMCrossingMinimizationModule
virtual ~MMCrossingMinimizationModule()
Definition: MMCrossingMinimizationModule.h:51
ogdf::Module::ReturnType
ReturnType
The return type of a module.
Definition: Module.h:50
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709