Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

BlockEmbedding.h
Go to the documentation of this file.
1 
31 #pragma once
32 
33 #include <ogdf/basic/Graph.h>
34 #include <ogdf/basic/List.h>
38 
39 namespace ogdf::sync_plan {
40 
41 class SyncPlanComponents;
42 
43 namespace internal {
44 struct BlockEmbedding;
45 
46 template<typename V>
47 using NA = NodeArray<V>;
48 
50 
57 
60 
61  explicit BlockEmbedding(GnMultiArray& gnToSubgraph)
62  : rigid_vars(nullptr, TwoSAT_Var_Undefined), Gn_to_subgraph(gnToSubgraph) { }
63 
64  virtual ~BlockEmbedding() { delete spqr; }
65 
66  void init(Graph& G, SyncPlanComponents& components, node bc, EdgeArray<edge>& Ge_to_subgraph,
67  EdgeArray<BlockEmbedding*>& Ge_to_block);
68 
69  bool addQVertex(node q, EdgeArray<edge>& Ge_to_subgraph, TwoSAT& sat, twosat_var part_var);
70 };
71 
72 }
73 }
RegisteredMultiArray.h
Data structure for two-dimensional mappings that are sparse in the second dimension....
Graph.h
Includes declaration of graph class.
ogdf::sync_plan
Definition: clustering.h:44
StaticPlanarSPQRTree.h
Declaration of class StaticPlanarSPQRTree.
ogdf::sync_plan::internal::BlockEmbedding::Gn_to_subgraph
GnMultiArray & Gn_to_subgraph
Definition: BlockEmbedding.h:58
ogdf::sync_plan::internal::BlockEmbedding::subgraph_to_Ge
EdgeArray< edge > subgraph_to_Ge
Definition: BlockEmbedding.h:59
ogdf::sync_plan::internal::BlockEmbedding::BlockEmbedding
BlockEmbedding(GnMultiArray &gnToSubgraph)
Definition: BlockEmbedding.h:61
ogdf::sync_plan::internal::BlockEmbedding::spqr
StaticPlanarSPQRTree * spqr
Definition: BlockEmbedding.h:54
ogdf::TwoSAT_Var_Undefined
const twosat_var TwoSAT_Var_Undefined(-1)
ogdf::sync_plan::internal::BlockEmbedding::~BlockEmbedding
virtual ~BlockEmbedding()
Definition: BlockEmbedding.h:64
ogdf::RegisteredMultiArray
Data structure for two-dimensional mappings that are sparse in the second dimension.
Definition: RegisteredMultiArray.h:269
TwoSAT.h
A simple solver for 2-SAT instances.
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::StaticPlanarSPQRTree
SPQR-trees of planar graphs.
Definition: StaticPlanarSPQRTree.h:56
ogdf::sync_plan::internal::BlockEmbedding::rigid_vars
NodeArray< twosat_var > rigid_vars
Definition: BlockEmbedding.h:56
ogdf::sync_plan::internal::BlockEmbedding::q_vertices
List< node > q_vertices
Definition: BlockEmbedding.h:55
List.h
Declaration of doubly linked lists and iterators.
ogdf::sync_plan::internal::BlockEmbedding
Internal class used to embed a biconnected component with Q-vertices.
Definition: BlockEmbedding.h:52
ogdf::sync_plan::SyncPlanComponents
(Bi)Connected components information maintained during the SyncPlan algorithm.
Definition: SyncPlanComponents.h:57
ogdf::sync_plan::internal::BlockEmbedding::init
void init(Graph &G, SyncPlanComponents &components, node bc, EdgeArray< edge > &Ge_to_subgraph, EdgeArray< BlockEmbedding * > &Ge_to_block)
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::sync_plan::internal::BlockEmbedding::subgraph
Graph subgraph
Definition: BlockEmbedding.h:53
ogdf::TwoSAT
A simple solver for TwoSAT instances, representing the instance as implication graph and solving it v...
Definition: TwoSAT.h:71
ogdf::twosat_var
In debug mode, twosat_var is a class instead of a simple int to prevent unintened use of the default ...
Definition: TwoSAT.h:46
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709
ogdf::sync_plan::internal::BlockEmbedding::addQVertex
bool addQVertex(node q, EdgeArray< edge > &Ge_to_subgraph, TwoSAT &sat, twosat_var part_var)