Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

SeparatorDualFC.h
Go to the documentation of this file.
1 
32 #pragma once
33 
34 #include <ogdf/basic/Graph.h>
35 #include <ogdf/basic/basic.h>
37 
38 #include <memory>
39 #include <string>
40 
41 namespace ogdf::planar_separators {
42 class ArrayBFSTree;
43 } // namespace ogdf::planar_separators
44 
45 namespace ogdf {
46 template<class E>
47 class List;
48 
50 
54 public:
60  SeparatorDualFC(bool useTriBFS = false) : useTriangulatingBFS {useTriBFS} { }
61 
63  virtual double getMaxSeparatorSize(int n) const override { return -1; }
64 
65 protected:
67  std::shared_ptr<ArrayBFSTree> tree;
68 
72  void makeTree();
73 
74  virtual bool doSeparate(const Graph& G, List<node>& separator, List<node>& first,
75  List<node>& second) override;
76 
85  virtual bool findCycle(List<node>& separator, List<node>& first, List<node>& second) override;
86 
87  virtual std::string getSpecificName() const override {
88  std::string name = "DualFC";
89  if (useTriangulatingBFS) {
90  name += "-triBFS";
91  }
92  return name;
93  }
94 };
95 
96 }
ogdf
The namespace for all OGDF objects.
Definition: multilevelmixer.cpp:39
ogdf::SeparatorDualFC::useTriangulatingBFS
bool useTriangulatingBFS
Definition: SeparatorDualFC.h:66
Graph.h
Includes declaration of graph class.
ogdf::planar_separators
Definition: SeparatorDualHelper.h:43
ogdf::SeparatorDualFC::getSpecificName
virtual std::string getSpecificName() const override
Returns the unique name of the core algorithm, to be combined with postprocessors later.
Definition: SeparatorDualFC.h:87
ogdf::SeparatorDualFC::getMaxSeparatorSize
virtual double getMaxSeparatorSize(int n) const override
Maximum separator size depends on diameter of graph, so returns -1.
Definition: SeparatorDualFC.h:63
ogdf::SeparatorDualFC
Computes planar separators by applying the Fundamental Cycle Lemma directly, without trying tree leve...
Definition: SeparatorDualFC.h:53
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: DfsMakeBiconnected.h:40
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:869
SeparatorLiptonTarjanFC.h
Declaration of class SeparatorLiptonTarjanFC.
basic.h
Basic declarations, included by all source files.
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::SeparatorLiptonTarjanFC
Computes planar separators using Fundamental Cycles.
Definition: SeparatorLiptonTarjanFC.h:94
ogdf::SeparatorDualFC::SeparatorDualFC
SeparatorDualFC(bool useTriBFS=false)
Constructor.
Definition: SeparatorDualFC.h:60
ogdf::SeparatorDualFC::tree
std::shared_ptr< ArrayBFSTree > tree
Definition: SeparatorDualFC.h:67