Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf::SyncPlanClusterPlanarityModule Class Reference

ClusterPlanarity testing in quadratic time using the Synchronized Planarity approach. More...

#include <ogdf/cluster/sync_plan/ClusterPlanarity.h>

+ Inheritance diagram for ogdf::SyncPlanClusterPlanarityModule:

Public Member Functions

bool clusterPlanarEmbedClusterPlanarGraph (ClusterGraph &CG, Graph &G) override
 Constructs a cluster-planar embedding of CG. CG has to be cluster-planar! More...
 
std::vector< std::pair< adjEntry, adjEntry > > * getStoreAugmentation () const
 
bool isClusterPlanar (const ClusterGraph &CG) override
 Returns true, if CG is cluster-planar, false otherwise. More...
 
bool isClusterPlanarDestructive (ClusterGraph &CG, Graph &G) override
 Returns true, if CG is cluster-planar, false otherwise. In it is non-cluster-planar, the (Cluster)Graph may be arbitrarily changed after the call. More...
 
void setStoreAugmentation (std::vector< std::pair< adjEntry, adjEntry >> *augmentation)
 When set to a non-null pointer, will contain the augmentation edges to make the graph c-connected c-plane after calling clusterPlanarEmbed(). More...
 
- Public Member Functions inherited from ogdf::ClusterPlanarityModule
 ClusterPlanarityModule ()=default
 
virtual ~ClusterPlanarityModule ()=default
 
virtual bool clusterPlanarEmbed (ClusterGraph &CG, Graph &G)
 Returns true, if CG is cluster-planar, false otherwise. If true, CG contains a cluster-planar embedding. More...
 
- Public Member Functions inherited from ogdf::Module
 Module ()
 Initializes a module. More...
 
virtual ~Module ()
 

Protected Member Functions

void copyBackEmbedding (ClusterGraph &CG, Graph &G, const ClusterGraph &CGcopy, const Graph &Gcopy, const ClusterArray< cluster, true > &copyC, const NodeArray< node, true > &copyN, const EdgeArray< edge, true > &copyE, const EdgeArray< edge, true > &origE) const override
 
- Protected Member Functions inherited from ogdf::ClusterPlanarityModule
virtual void copyBackEmbedding (ClusterGraph &CG, Graph &G, const ClusterGraph &CGcopy, const Graph &Gcopy, const ClusterArray< cluster > &copyC, const NodeArray< node > &copyN, const EdgeArray< edge > &copyE, const EdgeArray< edge > &origE) const
 

Private Attributes

std::vector< std::pair< adjEntry, adjEntry > > * m_augmentation = nullptr
 

Additional Inherited Members

- Public Types inherited from ogdf::Module
enum  ReturnType { ReturnType::Feasible, ReturnType::Optimal, ReturnType::NoFeasibleSolution, ReturnType::TimeoutFeasible, ReturnType::TimeoutInfeasible, ReturnType::Error }
 The return type of a module. More...
 
- Static Public Member Functions inherited from ogdf::Module
static bool isSolution (ReturnType ret)
 Returns true iff ret indicates that the module returned a feasible solution. More...
 

Detailed Description

ClusterPlanarity testing in quadratic time using the Synchronized Planarity approach.

Definition at line 45 of file ClusterPlanarity.h.

Member Function Documentation

◆ clusterPlanarEmbedClusterPlanarGraph()

bool ogdf::SyncPlanClusterPlanarityModule::clusterPlanarEmbedClusterPlanarGraph ( ClusterGraph CG,
Graph G 
)
overridevirtual

Constructs a cluster-planar embedding of CG. CG has to be cluster-planar!

Returns true if the embedding was successful. Returns false if the given graph was non-cluster-planar (and leaves the (Cluster)Graph in an at least partially invalidated state).

This routine may be slightly faster than clusterPlanarEmbed, but requires CG to be cluster-planar. If CG is not cluster-planar, the (Cluster)Graph will be (partially) destroyed while trying to embed it!

Reimplemented from ogdf::ClusterPlanarityModule.

◆ copyBackEmbedding()

void ogdf::SyncPlanClusterPlanarityModule::copyBackEmbedding ( ClusterGraph CG,
Graph G,
const ClusterGraph CGcopy,
const Graph Gcopy,
const ClusterArray< cluster, true > &  copyC,
const NodeArray< node, true > &  copyN,
const EdgeArray< edge, true > &  copyE,
const EdgeArray< edge, true > &  origE 
) const
overrideprotected

◆ getStoreAugmentation()

std::vector<std::pair<adjEntry, adjEntry> >* ogdf::SyncPlanClusterPlanarityModule::getStoreAugmentation ( ) const
inline

Definition at line 62 of file ClusterPlanarity.h.

◆ isClusterPlanar()

bool ogdf::SyncPlanClusterPlanarityModule::isClusterPlanar ( const ClusterGraph CG)
overridevirtual

Returns true, if CG is cluster-planar, false otherwise.

Reimplemented from ogdf::ClusterPlanarityModule.

◆ isClusterPlanarDestructive()

bool ogdf::SyncPlanClusterPlanarityModule::isClusterPlanarDestructive ( ClusterGraph CG,
Graph G 
)
overridevirtual

Returns true, if CG is cluster-planar, false otherwise. In it is non-cluster-planar, the (Cluster)Graph may be arbitrarily changed after the call.

This variant may be slightly faster than the default isClusterPlanar

Implements ogdf::ClusterPlanarityModule.

◆ setStoreAugmentation()

void ogdf::SyncPlanClusterPlanarityModule::setStoreAugmentation ( std::vector< std::pair< adjEntry, adjEntry >> *  augmentation)
inline

When set to a non-null pointer, will contain the augmentation edges to make the graph c-connected c-plane after calling clusterPlanarEmbed().

See also
insertAugmentationEdges()
SyncPlan::SyncPlan(Graph*, ClusterGraph*, std::vector<std::pair<adjEntry, adjEntry>>*, ClusterGraphAttributes*)

Definition at line 58 of file ClusterPlanarity.h.

Member Data Documentation

◆ m_augmentation

std::vector<std::pair<adjEntry, adjEntry> >* ogdf::SyncPlanClusterPlanarityModule::m_augmentation = nullptr
private

Definition at line 46 of file ClusterPlanarity.h.


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