49template<
typename TCost>
70 if (G.numberOfEdges() < 9) {
96 for (
edge e : G.edges) {
97 if (!e->isSelfLoop()) {
105 for (i = 0; i <
bcCount; i++) {
107 if (!mark[e->source()]) {
109 mark[e->source()] =
true;
111 if (!mark[e->target()]) {
113 mark[e->target()] =
true;
127 for (i = 0; i <
bcCount; i++) {
140 if (
pCost !=
nullptr) {
179 template<
typename U = TCost>
182 if (
pCost ==
nullptr) {
186 for (
auto it =
pCost->begin(); it !=
pCost->end(); ++it) {
187 dCost[it.key()] = it.value();
Derived class of GraphObserver providing additional functionality to handle clustered graphs.
Declaration of an exact c-planar subgraph algorithm, i.e., a maximum c-planar subgraph is computed us...
Declares base class for all module types.
Declaration of interface for planar subgraph algorithms.
Declares base class for modules with timeout functionality.
The parameterized class Array implements dynamic arrays of type E.
Representation of clustered graphs.
Dynamic arrays indexed with edges.
Class for the representation of edges.
Data type for general directed graphs (adjacency list representation).
edge newEdge(node v, node w)
Creates a new edge (v,w) and returns it.
node newNode()
Creates a new node and returns it.
Doubly linked lists (maintaining the length of the list).
void clear()
Removes all elements from the list.
iterator pushBack(const E &x)
Adds element x at the end of the list.
Exact computation of a maximum c-planar subgraph.
Exact computation of a maximum planar subgraph.
virtual MaximumPlanarSubgraph * clone() const override
Returns a new instance of the planar subgraph module with the same option settings.
virtual Module::ReturnType doCall(const Graph &G, const List< edge > &preferredEdges, List< edge > &delEdges, const EdgeArray< TCost > *pCost, bool preferredImplyPlanar) override
Computes the set of edges delEdges which have to be deleted to obtain the planar subgraph.
Module::ReturnType callWithDouble(MaximumCPlanarSubgraph &mc, const Graph &G, const EdgeArray< U > *pCost, List< edge > &delEdges)
virtual ~MaximumPlanarSubgraph()
Module::ReturnType callWithDouble(MaximumCPlanarSubgraph &mc, const Graph &G, const EdgeArray< double > *pCost, List< edge > &delEdges)
ReturnType
The return type of a module.
@ Optimal
The solution is optimal.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
Interface for planar subgraph algorithms.
Declaration of extended graph algorithms.
int biconnectedComponents(const Graph &G, EdgeArray< int > &component, int &nonEmptyComponents)
Computes the biconnected components of G.
bool isPlanar(const Graph &G)
Returns true, if G is planar, false otherwise.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
Declaration of simple graph algorithms.