Declaration and implementation of ArrayBuffer class.
Derived class of GraphObserver providing additional functionality to handle clustered graphs.
Declaration of ClusterPQContainer.
Declaration of the class EmbedPQTree.
Includes declaration of graph class.
Declaration of singly linked lists and iterators.
Basic declarations, included by all source files.
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
C-planarity test and embedding by Cohen, Feng and Eades.
void copyEmbedding(ClusterGraph &Ccopy, Graph &Gcopy, ClusterGraph &C, Graph &G)
ClusterArray< EdgeArray< ArrayBuffer< edge > * > * > m_clusterOutgoingEdgesAnker
bool preparation(Graph &subGraph, const cluster origCluster, node superSink)
EdgeArray< ListPure< edge > > m_parallelEdges
bool doEmbed(Graph *biconComp, NodeArray< int > &numbering, const cluster origCluster, node superSink, Graph &subGraph, EdgeArray< edge > &tableEdgesBiComp2SubGraph, EdgeArray< edge > &tableEdgesSubGraph2BiComp, NodeArray< node > &tableNodesBiComp2SubGraph)
NodeArray< node > m_nodeTableOrig2Copy
void hubControl(Graph &G, NodeArray< bool > &hubs)
virtual bool embed(ClusterGraph &C, Graph &G)
Tests if a clustered graph (C, G) is C-planar and embeds it.
void constructWheelGraph(ClusterGraph &C, Graph &G, cluster &parent, cluster &origCl, EmbedPQTree *T, EdgeArray< node > &outgoingTable, node superSink)
ClusterArray< cluster > m_clusterTableCopy2Orig
ClusterArray< cluster > m_clusterTableOrig2Copy
void nonPlanarCleanup(ClusterGraph &Ccopy, Graph &Gcopy)
NodeArray< node > m_nodeTableCopy2Orig
EdgeArray< ArrayBuffer< edge > * > m_outgoingEdgesAnker
ClusterArray< NodeArray< bool > * > m_clusterSubgraphHubs
bool planarityTest(ClusterGraph &C, const cluster act, Graph &G)
NodeArray< cluster > m_wheelGraphNodes
ClusterArray< cluster_planarity::ClusterPQContainer > m_clusterPQContainer
ClusterArray< EmbedPQTree * > m_clusterPQTree
void prepareParallelEdges(Graph &G)
ClusterArray< NodeArray< SListPure< adjEntry > > * > m_clusterEmbedding
ClusterArray< Graph * > m_clusterSubgraph
ClusterArray< node > m_clusterSuperSink
bool preProcess(ClusterGraph &Ccopy, Graph &Gcopy)
NodeArray< bool > m_currentHubs
CconnectClusterPlanarEmbed()
Constructor.
ClusterGraph * m_instance
ArrayBuffer< cluster > m_callStack
ClusterArray< ClusterGraph * > m_clusterClusterGraph
ClusterArray< NodeArray< node > * > m_clusterNodeTableNew2Orig
void entireEmbed(Graph &biconComp, NodeArray< SListPure< adjEntry > > &entireEmbedding, NodeArray< SListIterator< adjEntry > > &adjMarker, NodeArray< bool > &mark, node v)
void recursiveEmbed(ClusterGraph &Ccopy, Graph &Gcopy)
virtual ~CconnectClusterPlanarEmbed()
Destructor.
ClusterArray< bool > m_unsatisfiedCluster
ClusterArray< ClusterArray< cluster > * > m_clusterClusterTableOrig2New
EdgeArray< bool > m_isParallel
ClusterArray< NodeArray< cluster > * > m_clusterSubgraphWheelGraph
RegisteredArray for labeling the clusters of a ClusterGraph.
Representation of clusters in a clustered graph.
Representation of clustered graphs.
Data type for general directed graphs (adjacency list representation).
Class for the representation of nodes.
Encapsulates a pointer to an ogdf::SList element.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
RegisteredArray for nodes, edges and adjEntries of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
The namespace for all OGDF objects.