Namespaces | |
internal | |
all operators will only be found when using sync_plan::internal , so no namespace pollution | |
preprocess | |
Preprocessing functions for handling certain trivially (non)planar ClusterGraph configurations. | |
spqr_utils | |
Classes | |
class | BiconnectedIsolation |
Hides all (edges leading to) adjacent biconnected components without changing the current embedding. More... | |
class | DoublePipeQueue |
Base class for PipeQueues providing a "priority lane" for some pipes and sorting with different functions in both lanes/queues. More... | |
class | NodeSPQRRotation |
Derive embedding trees from an DynamicSPQRForest. Warning: breaks on certain parallel edge configurations! More... | |
class | NodeSSPQRRotation |
Derive embedding trees from Triconnectivity information. More... | |
struct | Pipe |
A pair of matched vertices of the same degree, whose rotation shall be synchronized. More... | |
struct | PipeCmpPtr |
A null-safe and priority aware comparator (wrapper) for pipes. More... | |
struct | PipeQueue |
A queue of all pipes, ordered by an arbitrary comparator function. More... | |
struct | PipeQueueByDegree |
PipeQueue yielding pipes in order of descending or ascending degree. More... | |
struct | PipeQueueByDegreePreferContract |
PipeQueue yielding contractable pipes first (or last), in order of descending (or ascending) degree. More... | |
struct | PipeQueueRandom |
PipeQueue yielding pipes in some random (but stable and deterministic) order. More... | |
class | PMatching |
Manages the matching of P-nodes via pipes in an instance of SyncPlan. More... | |
class | QPartitioning |
Manages the partitioning of Q-nodes in an instance of SyncPlan. More... | |
class | SimplePipeQueue |
PipeQueue CRTP base class for ordering pipes by some simple comparator function. More... | |
struct | SimpleSPQRTree |
Wrapper class around Triconnectivity information. More... | |
class | SyncPlan |
A class for modelling and solving Synchronized Planarity instances. More... | |
class | SyncPlanComponents |
(Bi)Connected components information maintained during the SyncPlan algorithm. More... | |
class | SyncPlanConsistency |
Consistency checks for debugging the SyncPlan algorithm. More... | |
class | SyncPlanDrawer |
Utilities by dumping a drawing of the current state of a SyncPlan instance. More... | |
Typedefs | |
using | FrozenPipeBij = List< FrozenPipeBijPair > |
using | FrozenPipeBijPair = std::pair< int, int > |
template<typename Value , bool WithDefault = true> | |
using | PartitionArray = RegisteredArray< QPartitioning, Value, WithDefault > |
RegisteredArray for labeling the partitions in a QPartitioning with an arbitrary Value . More... | |
template<typename Value > | |
using | PartitionArrayP = PartitionArray< std::unique_ptr< Value >, false > |
Shorthand for PartitionArray storing std::unique_ptr<Value>. More... | |
using | PipeBij = List< PipeBijPair > |
using | PipeBijIterator = ZipIterator< ogdf::internal::GraphObjectContainer< AdjElement >::iterator, ogdf::internal::GraphObjectContainer< AdjElement >::reverse_iterator > |
using | PipeBijPair = std::pair< adjEntry, adjEntry > |
using | PipeBijRange = Range< PipeBijIterator > |
Enumerations | |
enum | Operation { Operation::ENCAPSULATE_CONTRACT, Operation::CONTRACT_BICON, Operation::PROPAGATE_CUT, Operation::PROPAGATE_BICON, Operation::SIMPLIFY_TERMINAL, Operation::SIMPLIFY_TRANSITIVE, Operation::SIMPLIFY_TOROIDAL, Operation::BATCH_SPQR } |
The reduction operations (and their distinct cases) implemented by SyncPlan. More... | |
enum | PipeType { PipeType::BlockBlock, PipeType::BlockCut, PipeType::CutCut } |
Functions | |
bool | canPreprocessClusterGraph (const ogdf::ClusterGraph &C, const ogdf::Graph &G) |
Check whether preprocessing would modify a graph. More... | |
std::unique_ptr< std::pair< GraphCopy, GraphAttributes > > | drawClusterGraph (ClusterGraph &CG, GraphAttributes &GA, PlanarGridLayoutModule &layout, adjEntry adjExternal=nullptr) |
Draw a graph using a given planar layout by turning its cluster borders into edges via planarizeClusterBorderCrossings() More... | |
void | formatNode (node n, GraphAttributes *ga, int group) |
Simple util for apply a default style to nodes, including a group-based coloring. More... | |
void | freezePipeBijection (const PipeBij &in, FrozenPipeBij &out) |
void | getFrozenPipeBijection (node u, node v, FrozenPipeBij &out) |
PipeBijRange | getPipeBijection (node u, node v) |
void | getPipeBijection (node u, node v, AdjEntryArray< adjEntry > &out) |
void | getPipeBijection (node u, node v, EdgeArray< edge > &out) |
void | getPipeBijection (node u, node v, PipeBij &out) |
void | join (Graph &G, node u, node v, sync_plan::PipeBij &bij, const std::function< void(node)> &deleteNode, const std::function< void(edge)> &deleteEdge, List< bool > *reverse_v=nullptr) |
void | join (Graph &G, node u, node v, sync_plan::PipeBij &bij, List< bool > *reverse_v=nullptr) |
OGDF_DECLARE_COMPARER (FrozenPipeBijCmp, FrozenPipeBijPair, int, x.first) | |
OGDF_DECLARE_COMPARER (PipeBijCmp, PipeBijPair, int, x.first->theEdge() ->index()) | |
std::ostream & | operator<< (std::ostream &os, Operation op) |
bool | preprocessClusterGraph (ogdf::ClusterGraph &C, ogdf::Graph &G) |
Preprocess a ClusterGraph to remove trivially c-planar parts or isolate a trivially non-c-planar subgraph. More... | |
std::pair< node, node > | split (Graph &G, sync_plan::PipeBij &bij, const EdgeArray< edge > *new_edges=nullptr, const EdgeArray< bool > *reverse_edges=nullptr, node src=nullptr, node tgt=nullptr) |
void | styleClusterBorder (const ClusterGraph &CG, const EdgeArray< List< std::pair< adjEntry, cluster >>> &subdivisions, GraphAttributes &GA, const std::function< edge(edge)> &translate=[](edge e) -> edge { return e;}) |
Properly style a cluster border inserted by planarizeClusterBorderCrossings() More... | |
using ogdf::sync_plan::FrozenPipeBij = typedef List<FrozenPipeBijPair> |
Definition at line 51 of file Bijection.h.
using ogdf::sync_plan::FrozenPipeBijPair = typedef std::pair<int, int> |
Definition at line 49 of file Bijection.h.
using ogdf::sync_plan::PartitionArray = typedef RegisteredArray<QPartitioning, Value , WithDefault > |
RegisteredArray for labeling the partitions in a QPartitioning with an arbitrary Value
.
Definition at line 42 of file QPartitioning.h.
using ogdf::sync_plan::PartitionArrayP = typedef PartitionArray <std::unique_ptr<Value>, false> |
Shorthand for PartitionArray storing std::unique_ptr<Value>.
You may need to explicitly delete the copy constructor of classes containing a member of this type for MSVC<=16 (e.g. using OGDF_NO_COPY(MyClass)).
Definition at line 42 of file QPartitioning.h.
using ogdf::sync_plan::PipeBij = typedef List<PipeBijPair> |
Definition at line 50 of file Bijection.h.
using ogdf::sync_plan::PipeBijIterator = typedef ZipIterator<ogdf::internal::GraphObjectContainer<AdjElement>::iterator, ogdf::internal::GraphObjectContainer<AdjElement>::reverse_iterator> |
Definition at line 46 of file Bijection.h.
using ogdf::sync_plan::PipeBijPair = typedef std::pair<adjEntry, adjEntry> |
Definition at line 48 of file Bijection.h.
using ogdf::sync_plan::PipeBijRange = typedef Range<PipeBijIterator> |
Definition at line 47 of file Bijection.h.
|
strong |
The reduction operations (and their distinct cases) implemented by SyncPlan.
Enumerator | |
---|---|
ENCAPSULATE_CONTRACT | |
CONTRACT_BICON | |
PROPAGATE_CUT | |
PROPAGATE_BICON | |
SIMPLIFY_TERMINAL | |
SIMPLIFY_TRANSITIVE | |
SIMPLIFY_TOROIDAL | |
BATCH_SPQR |
Definition at line 99 of file SyncPlan.h.
|
strong |
Enumerator | |
---|---|
BlockBlock | |
BlockCut | |
CutCut |
Definition at line 44 of file PMatching.h.
bool ogdf::sync_plan::canPreprocessClusterGraph | ( | const ogdf::ClusterGraph & | C, |
const ogdf::Graph & | G | ||
) |
Check whether preprocessing would modify a graph.
std::unique_ptr<std::pair<GraphCopy, GraphAttributes> > ogdf::sync_plan::drawClusterGraph | ( | ClusterGraph & | CG, |
GraphAttributes & | GA, | ||
PlanarGridLayoutModule & | layout, | ||
adjEntry | adjExternal = nullptr |
||
) |
Draw a graph using a given planar layout by turning its cluster borders into edges via planarizeClusterBorderCrossings()
void ogdf::sync_plan::formatNode | ( | node | n, |
GraphAttributes * | ga, | ||
int | group | ||
) |
Simple util for apply a default style to nodes, including a group-based coloring.
void ogdf::sync_plan::freezePipeBijection | ( | const PipeBij & | in, |
FrozenPipeBij & | out | ||
) |
void ogdf::sync_plan::getFrozenPipeBijection | ( | node | u, |
node | v, | ||
FrozenPipeBij & | out | ||
) |
PipeBijRange ogdf::sync_plan::getPipeBijection | ( | node | u, |
node | v | ||
) |
void ogdf::sync_plan::getPipeBijection | ( | node | u, |
node | v, | ||
AdjEntryArray< adjEntry > & | out | ||
) |
void ogdf::sync_plan::join | ( | Graph & | G, |
node | u, | ||
node | v, | ||
sync_plan::PipeBij & | bij, | ||
const std::function< void(node)> & | deleteNode, | ||
const std::function< void(edge)> & | deleteEdge, | ||
List< bool > * | reverse_v = nullptr |
||
) |
void ogdf::sync_plan::join | ( | Graph & | G, |
node | u, | ||
node | v, | ||
sync_plan::PipeBij & | bij, | ||
List< bool > * | reverse_v = nullptr |
||
) |
ogdf::sync_plan::OGDF_DECLARE_COMPARER | ( | FrozenPipeBijCmp | , |
FrozenPipeBijPair | , | ||
int | , | ||
x. | first | ||
) |
ogdf::sync_plan::OGDF_DECLARE_COMPARER | ( | PipeBijCmp | , |
PipeBijPair | , | ||
int | , | ||
x.first-> | theEdge) ->index( | ||
) |
std::ostream& ogdf::sync_plan::operator<< | ( | std::ostream & | os, |
Operation | op | ||
) |
bool ogdf::sync_plan::preprocessClusterGraph | ( | ogdf::ClusterGraph & | C, |
ogdf::Graph & | G | ||
) |
Preprocess a ClusterGraph to remove trivially c-planar parts or isolate a trivially non-c-planar subgraph.
std::pair<node, node> ogdf::sync_plan::split | ( | Graph & | G, |
sync_plan::PipeBij & | bij, | ||
const EdgeArray< edge > * | new_edges = nullptr , |
||
const EdgeArray< bool > * | reverse_edges = nullptr , |
||
node | src = nullptr , |
||
node | tgt = nullptr |
||
) |
void ogdf::sync_plan::styleClusterBorder | ( | const ClusterGraph & | CG, |
const EdgeArray< List< std::pair< adjEntry, cluster >>> & | subdivisions, | ||
GraphAttributes & | GA, | ||
const std::function< edge(edge)> & | translate = [](edge e) -> edge { return e;} |
||
) |
Properly style a cluster border inserted by planarizeClusterBorderCrossings()