Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::ClusterGraphCopy Class Reference

#include <ogdf/layered/ExtendedNestingGraph.h>

+ Inheritance diagram for ogdf::ClusterGraphCopy:

Public Member Functions

 ClusterGraphCopy ()
 
 ClusterGraphCopy (const ExtendedNestingGraph &H, const ClusterGraph &CG)
 
cluster copy (cluster cOrig) const
 
const ClusterGraphgetOriginalClusterGraph () const
 
void init (const ExtendedNestingGraph &H, const ClusterGraph &CG)
 
cluster original (cluster cCopy) const
 
void setParent (node v, cluster c)
 
- Public Member Functions inherited from ogdf::ClusterGraph
 ClusterGraph ()
 Creates a cluster graph associated with no graph. More...
 
 ClusterGraph (const ClusterGraph &C)
 Copy constructor. More...
 
 ClusterGraph (const ClusterGraph &C, Graph &G)
 Copies the underlying graph of C into G and constructs a copy of C associated with G. More...
 
 ClusterGraph (const ClusterGraph &C, Graph &G, ClusterArray< cluster > &originalClusterTable, NodeArray< node > &originalNodeTable)
 Copies the underlying graph of C into G and constructs a copy of C associated with G. More...
 
 ClusterGraph (const ClusterGraph &C, Graph &G, ClusterArray< cluster > &originalClusterTable, NodeArray< node > &originalNodeTable, EdgeArray< edge > &edgeCopy)
 Copies the underlying graph of C into G and constructs a copy of C associated with G. More...
 
 ClusterGraph (const Graph &G)
 Creates a cluster graph associated with graph G. More...
 
virtual ~ClusterGraph ()
 Destructor. More...
 
cluster rootCluster () const
 Returns the root cluster. More...
 
int numberOfClusters () const
 Returns the number of clusters. More...
 
int maxClusterIndex () const
 Returns the maximal used cluster index. More...
 
cluster clusterOf (node v) const
 Returns the cluster to which a node belongs. More...
 
int & clusterDepth (cluster c) const
 Returns depth of cluster c in cluster tree, starting with root depth 1. More...
 
cluster firstCluster () const
 Returns the first cluster in the list of all clusters. More...
 
cluster lastCluster () const
 Returns the last cluster in the list of all cluster. More...
 
cluster firstPostOrderCluster () const
 Returns the first cluster in the list of post ordered clusters. More...
 
template<class CLUSTERLIST >
void allClusters (CLUSTERLIST &clusterList) const
 Returns the list of all clusters in clusterList. More...
 
void clear ()
 Removes all clusters except for the root cluster. More...
 
void init (const Graph &G)
 Clears all cluster data and then reinitializes the instance with underlying graph G. More...
 
void clearClusterTree (cluster C)
 Removes all clusters from the cluster subtree rooted at cluster C except for cluster C itself. More...
 
cluster newCluster (cluster parent, int id=-1)
 Inserts a new cluster; makes it a child of the cluster parent. More...
 
cluster createEmptyCluster (const cluster parent=nullptr, int clusterId=-1)
 Creates an empty cluster with index clusterId and parent parent. More...
 
cluster createCluster (const SList< node > &nodes, const cluster parent=nullptr)
 Creates a new cluster containing the nodes given by nodes; makes it a child of the cluster parent. More...
 
void delCluster (cluster c)
 Deletes cluster c. More...
 
void moveCluster (cluster c, cluster newParent)
 Moves cluster c to a new parent newParent. More...
 
void reassignNode (node v, cluster c)
 Reassigns node v to cluster c. More...
 
void reInit (Graph &G)
 Clear cluster info structure, reinitializes with underlying graph G. More...
 
void copyClusterTree (const ClusterGraph &C, const Graph &G, ClusterArray< cluster > &originalClusterTable, std::function< node(node)> nodeMap=[](node v) { return v;})
 Constructs a cluster tree. More...
 
template<class NODELIST >
void collapse (NODELIST &nodes, Graph &G)
 Collapses all nodes in the list nodes to the first node; multi-edges are removed. More...
 
cluster chooseCluster (std::function< bool(cluster)> includeCluster=[](cluster) { return true;}, bool isFastTest=true) const
 Returns a random cluster. More...
 
void setUpdateDepth (bool b) const
 Turns automatic update of node depth values on or off. More...
 
void pullUpSubTree (cluster c)
 Updates depth information in subtree after delCluster. More...
 
int treeDepth () const
 Computes depth of cluster tree, running time O(C). More...
 
void computeSubTreeDepth (cluster c) const
 Computes depth of cluster tree hanging at c. More...
 
cluster commonCluster (SList< node > &nodes)
 Returns lowest common cluster of nodes in list nodes. More...
 
cluster commonCluster (node v, node w) const
 Returns the lowest common cluster of v and w in the cluster tree. More...
 
cluster commonClusterLastAncestors (node v, node w, cluster &c1, cluster &c2) const
 Returns the lowest common cluster lca and the highest ancestors on the path to lca. More...
 
cluster commonClusterPath (node v, node w, List< cluster > &eL) const
 Returns lca of v and w and stores corresponding path in eL. More...
 
cluster commonClusterAncestorsPath (node v, node w, cluster &c1, cluster &c2, List< cluster > &eL) const
 Returns lca of v and w, stores corresponding path in eL and ancestors in c1, c2. More...
 
void emptyClusters (SList< cluster > &emptyCluster, SList< cluster > *checkCluster=nullptr)
 Returns the list of clusters that are empty or only contain empty clusters. More...
 
bool emptyOnNodeDelete (cluster c)
 Returns true if cluster c has only one node and no children. More...
 
bool emptyOnClusterDelete (cluster c)
 Returns true if cluster c has only one child and no nodes. More...
 
template<class EDGELIST >
void adjEdges (cluster c, EDGELIST &edges) const
 Returns the list of all edges adjacent to cluster c in edges. More...
 
template<class ADJLIST >
void adjEntries (cluster c, ADJLIST &entries) const
 Returns the list of all adjacency entries adjacent to cluster c in entries. More...
 
template<class LISTITERATOR >
void makeAdjEntries (cluster c, LISTITERATOR start)
 Computes the adjacency entry list for cluster c. More...
 
bool adjAvailable () const
 Gets the availability status of the adjacency entries. More...
 
void adjAvailable (bool val)
 Sets the availability status of the adjacency entries. More...
 
bool representsCombEmbedding () const
 Checks the combinatorial cluster planar embedding. More...
 
bool representsConnectedCombEmbedding () const
 Checks the combinatorial cluster planar embedding. More...
 
void consistencyCheck () const
 Asserts consistency of this cluster graph. More...
 
 operator const Graph & () const
 Conversion to const Graph reference (to underlying graph). More...
 
const GraphconstGraph () const
 Returns a reference to the underlying graph. More...
 
ClusterGraphoperator= (const ClusterGraph &C)
 Assignment operator. More...
 
bool isKeyAssociated (cluster key) const
 
int calculateArraySize (int add) const
 
int maxKeyIndex () const
 
cluster_iterator begin () const
 
cluster_iterator end () const
 
- Public Member Functions inherited from ogdf::GraphObserver
 GraphObserver ()=default
 Constructs instance of GraphObserver class. More...
 
 GraphObserver (const Graph *G)
 Constructs instance of GraphObserver class. More...
 
const GraphgetGraph () const
 
- Public Member Functions inherited from ogdf::Observer< Graph, GraphObserver >
 Observer ()=default
 Constructs instance of Observer class. More...
 
 Observer (const Observer &copy)=delete
 If you want to copy a subclass of Observer, call the default Observer() constructor and optionally also call reregister if it makes sense. More...
 
 Observer (Observer &&move)=delete
 If you want to move a subclass of Observer, call the default Observer() constructor and optionally also call reregister if it makes sense. More...
 
virtual ~Observer ()
 Destroys the instance, unregisters it from watched instance. More...
 
const GraphgetObserved () const
 
Observeroperator= (const Observer &copy)=delete
 
Observeroperator= (Observer &&move)=delete
 
void reregister (const Graph *obs)
 Associates observer instance with instance obs. More...
 
- Public Member Functions inherited from ogdf::Observable< ClusterGraphObserver, ClusterGraph >
 Observable ()=default
 
 Observable (const Observable &copy)=delete
 If you want to copy a subclass of Observable, call the default Observable() constructor. More...
 
 Observable (Observable &&move)=delete
 If you want to move a subclass of Observable, call the default Observable() constructor. More...
 
virtual ~Observable ()
 
Observableoperator= (const Observable &copy)=delete
 
Observableoperator= (Observable &&move)=delete
 
- Public Member Functions inherited from ogdf::RegistryBase< Key, Registry, Iterator >
 RegistryBase (const RegistryBase &copy)=delete
 
 RegistryBase (RegistryBase &&move) noexcept=delete
 
virtual ~RegistryBase () noexcept
 Destructor. Unregisters all associated arrays. More...
 
void copyArrayEntries (int toIndex, int fromIndex)
 Copies the entry from fromIndex to toIndex in all registered arrays. More...
 
int getArraySize () const
 Returns the current size of all registered arrays. More...
 
const registration_list_typegetRegisteredArrays () const
 Returns a reference to the list of all registered arrays. More...
 
bool isAutoShrink () const
 Returns whether the registry allows arrays to shrink when keys are removed. More...
 
void keyAdded (Key key)
 Records the addition of a new key and resizes all registered arrays if necessary. More...
 
void keyRemoved (Key key)
 Records the deletion of a key and resizes all registered arrays if auto shrink is enabled. More...
 
void keysCleared ()
 Records that all keys have been cleared. If auto shrink is enabled, all arrays are cleared and resized to 0. More...
 
void moveRegisterArray (registration_iterator_type it, registered_array_type *pArray) const
 Stores array pArray at position it in the list of registered arrays. More...
 
RegistryBaseoperator= (const RegistryBase &other)=delete
 
RegistryBaseoperator= (RegistryBase &&other) noexcept=delete
 
OGDF_NODISCARD registration_iterator_type registerArray (registered_array_type *pArray) const
 Registers a new array with this registry. More...
 
void reserveSpace (int new_keys)
 Resizes all arrays to make space of new_keys new keys. More...
 
void resizeArrays ()
 Resizes all arrays to the size requested by calculateArraySize(). Only shrinks the arrays if auto shrink is enabled. More...
 
void resizeArrays (int size)
 Resizes all arrays to size. Only shrinks the arrays if auto shrink is enabled. More...
 
void resizeArrays (int size, bool shrink)
 Resizes all arrays to size. If shrink is true, the arrays may also shrink. More...
 
void setAutoShrink (bool mAutoShrink)
 Specifies whether the registry allows arrays to shrink when keys are removed. More...
 
void swapArrayEntries (int index1, int index2)
 Swaps the entries at index1 and index2 in all registered arrays. More...
 
void unregisterArray (registration_iterator_type it) const noexcept
 Unregisters an array associated with this registry. More...
 
void unregisterArrays () noexcept
 Unregister all associated arrays. More...
 

Private Member Functions

void createClusterTree (cluster cOrig)
 

Private Attributes

ClusterArray< clusterm_copy
 
ClusterArray< clusterm_original
 
const ClusterGraphm_pCG
 
const ExtendedNestingGraphm_pH
 

Additional Inherited Members

- Public Types inherited from ogdf::ClusterGraph
using cluster_iterator = internal::GraphIterator< cluster >
 Provides a bidirectional iterator to a cluster in a clustered graph. More...
 
- Public Types inherited from ogdf::RegistryBase< Key, Registry, Iterator >
using iterator_type = Iterator
 
using key_type = Key
 
using registered_array_type = internal::RegisteredArrayBase< Registry >
 
using registration_iterator_type = typename registration_list_type::iterator
 
using registration_list_type = std::list< registered_array_type *, OGDFAllocator< registered_array_type * > >
 
using registry_type = Registry
 
- Static Public Member Functions inherited from ogdf::ClusterGraph
static int keyToIndex (cluster key)
 
- Public Attributes inherited from ogdf::ClusterGraph
internal::GraphObjectContainer< ClusterElementclusters
 The container containing all cluster objects. More...
 
- Protected Member Functions inherited from ogdf::ClusterGraph
void copyLCA (const ClusterGraph &C)
 Copies lowest common ancestor info to copy of clustered graph. More...
 
void doClear ()
 Clears all cluster data. More...
 
cluster doCreateCluster (const SList< node > &nodes, const cluster parent, int clusterId=-1)
 Creates new cluster containing nodes in parameter list with index clusterId. More...
 
cluster doCreateCluster (const SList< node > &nodes, SList< cluster > &emptyCluster, const cluster parent, int clusterId=-1)
 Creates new cluster containing nodes in parameter list and stores resulting empty clusters in list, cluster has index clusterId. More...
 
cluster leftMostCluster (cluster c) const
 Leftmost cluster in subtree rooted at c, gets predecessor of subtree. More...
 
cluster postOrderPredecessor (cluster c) const
 Computes new predecessor for subtree at moved cluster c (nullptr if c is the root). More...
 
void updatePostOrder (cluster c, cluster oldParent, cluster newParent)
 Adjusts the post order structure for moved clusters. More...
 
void nodeDeleted (node v) override
 Implementation of inherited method: Updates data if node deleted. More...
 
void nodeAdded (node v) override
 Implementation of inherited method: Updates data if node added. More...
 
void edgeDeleted (edge) override
 Implementation of inherited method: Updates data if edge deleted. More...
 
void edgeAdded (edge) override
 Implementation of inherited method: Updates data if edge added. More...
 
void cleared () override
 Clears cluster data without deleting root when underlying graphs' clear method is called. More...
 
void registrationChanged (const Graph *newG) override
 Called after reregister() changed the observed instance. More...
 
- Protected Member Functions inherited from ogdf::Observable< ClusterGraphObserver, ClusterGraph >
void clearObservers ()
 
const ListPure< ClusterGraphObserver * > & getObservers () const
 
- Protected Member Functions inherited from ogdf::RegistryBase< Key, Registry, Iterator >
 RegistryBase ()=default
 
- Protected Attributes inherited from ogdf::ClusterGraph
bool m_depthUpToDate = false
 Status of cluster depth information. More...
 
int m_lcaNumber = 0
 Used to save last search run number for commoncluster. More...
 
std::unique_ptr< ClusterArray< int > > m_lcaSearch
 Used to save last search run number for commoncluster. More...
 
bool m_updateDepth = false
 Depth of clusters is always updated if set to true. More...
 
std::unique_ptr< ClusterArray< cluster > > m_vAncestor
 Used to save last search run number for commoncluster. More...
 
std::unique_ptr< ClusterArray< cluster > > m_wAncestor
 Used to save last search run number for commoncluster. More...
 

Detailed Description

Definition at line 270 of file ExtendedNestingGraph.h.

Constructor & Destructor Documentation

◆ ClusterGraphCopy() [1/2]

ogdf::ClusterGraphCopy::ClusterGraphCopy ( )

◆ ClusterGraphCopy() [2/2]

ogdf::ClusterGraphCopy::ClusterGraphCopy ( const ExtendedNestingGraph H,
const ClusterGraph CG 
)

Member Function Documentation

◆ copy()

cluster ogdf::ClusterGraphCopy::copy ( cluster  cOrig) const
inline

Definition at line 279 of file ExtendedNestingGraph.h.

◆ createClusterTree()

void ogdf::ClusterGraphCopy::createClusterTree ( cluster  cOrig)
private

◆ getOriginalClusterGraph()

const ClusterGraph& ogdf::ClusterGraphCopy::getOriginalClusterGraph ( ) const
inline

Definition at line 277 of file ExtendedNestingGraph.h.

◆ init()

void ogdf::ClusterGraphCopy::init ( const ExtendedNestingGraph H,
const ClusterGraph CG 
)

◆ original()

cluster ogdf::ClusterGraphCopy::original ( cluster  cCopy) const
inline

Definition at line 281 of file ExtendedNestingGraph.h.

◆ setParent()

void ogdf::ClusterGraphCopy::setParent ( node  v,
cluster  c 
)

Member Data Documentation

◆ m_copy

ClusterArray<cluster> ogdf::ClusterGraphCopy::m_copy
private

Definition at line 291 of file ExtendedNestingGraph.h.

◆ m_original

ClusterArray<cluster> ogdf::ClusterGraphCopy::m_original
private

Definition at line 292 of file ExtendedNestingGraph.h.

◆ m_pCG

const ClusterGraph* ogdf::ClusterGraphCopy::m_pCG
private

Definition at line 288 of file ExtendedNestingGraph.h.

◆ m_pH

const ExtendedNestingGraph* ogdf::ClusterGraphCopy::m_pH
private

Definition at line 289 of file ExtendedNestingGraph.h.


The documentation for this class was generated from the following file: