Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

ogdf Namespace Reference

The namespace for all OGDF objects. More...

Namespaces

 booth_lueker
 
 boyer_myrvold
 
 cluster_planarity
 
 davidson_harel
 
 disjoint_sets
 
 dot
 
 edge_router
 
 embedder
 
 embedding_inserter
 
 energybased
 
 fast_multipole_embedder
 
 gdf
 
 gexf
 
 gml
 
 graphics
 
 graphml
 
 internal
 
 Matching
 Simple algorithms for matchings.
 
 matching_blossom
 
 Math
 
 pc_tree
 
 planar_separator
 
 planar_separators
 
 planarization_layout
 
 pq_internal
 This namespace contains helper classes to keep the code dry.
 
 spring_embedder
 
 sse
 
 steiner_tree
 
 sync_plan
 
 tlp
 
 topology_module
 

Classes

class  AcyclicSubgraphModule
 Base class of algorithms for computing a maximal acyclic subgraph. More...
 
class  AdjacencyOracle
 Tells you in constant time if two nodes are adjacent. More...
 
class  AdjElement
 Class for adjacency list elements. More...
 
class  AdjEntrySet
 AdjEntry sets. More...
 
class  AdjHypergraphElement
 Class for adjacency list elements. More...
 
class  AlgorithmFailureException
 Exception thrown when an algorithm realizes an internal bug that prevents it from continuing. More...
 
class  Array
 The parameterized class Array implements dynamic arrays of type E. More...
 
class  Array2D
 The parameterized class Array2D implements dynamic two-dimensional arrays. More...
 
class  ArrayBuffer
 An array that keeps track of the number of inserted elements; also usable as an efficient stack. More...
 
class  ArrayLevel
 The simple implementation of LevelBase interface. More...
 
class  ArrayReverseIteratorBase
 Random-access reverse iterator based on a pointer to an array element. More...
 
class  AStarSearch
 A-Star informed search algorithm. More...
 
class  AugmentationModule
 The base class for graph augmentation algorithms. More...
 
class  BalloonLayout
 
class  Barrier
 Representation of a barrier. More...
 
class  BarycenterHeuristic
 The barycenter heuristic for 2-layer crossing minimization. More...
 
class  BarycenterPlacer
 The barycenter placer for multilevel layout. More...
 
class  BasicPageRank
 Basic page rank calculation. More...
 
class  BCTree
 Static BC-trees. More...
 
class  BendString
 Represents the bends on an edge e consisting of vertical and horizontal segments. More...
 
class  BertaultLayout
 
class  BiconnectedShellingOrder
 Computation of the shelling order for biconnected graphs. More...
 
class  BinaryHeap
 Heap realized by a data array. More...
 
class  BinaryHeapSimple
 Dynamically growing binary heap tuned for efficiency on a small interface (compared to BinaryHeap). More...
 
class  BinomialHeap
 Binomial heap implementation. More...
 
struct  BinomialHeapNode
 Binomial heap node. More...
 
class  BitonicOrdering
 
class  Block
 Class representing idea of Blocks used in GlobalSifting and GridSifting algorithms. More...
 
class  BlockOrder
 Hierarchical graph representation used by GlobalSifting and GridSifting algorithms. More...
 
class  BoothLueker
 Booth-Lueker planarity test. More...
 
class  BoundedQueue
 The parameterized class BoundedQueue implements queues with bounded size. More...
 
class  BoyerMyrvold
 Wrapper class used for preprocessing and valid invocation of the planarity test. More...
 
class  BoyerMyrvoldPlanar
 This class implements the extended BoyerMyrvold planarity embedding algorithm. More...
 
class  BucketEdgeArray
 Bucket function for edges. More...
 
class  BucketFunc
 Abstract base class for bucket functions. More...
 
class  BucketSourceIndex
 Bucket function using the index of an edge's source node as bucket. More...
 
class  BucketTargetIndex
 Bucket function using the index of an edge's target node as bucket. More...
 
class  CCLayoutPackModule
 Base class of algorithms that arrange/pack layouts of connected components. More...
 
class  CconnectClusterPlanar
 C-planarity test by Cohen, Feng and Eades. More...
 
class  CconnectClusterPlanarEmbed
 C-planarity test and embedding by Cohen, Feng and Eades. More...
 
class  CconnectClusterPlanarityModule
 
class  CirclePlacer
 The circle placer for multilevel layout. More...
 
class  CircularLayout
 The circular layout algorithm. More...
 
class  CliqueFinderHeuristic
 Finds cliques and dense subgraphs using a heuristic. More...
 
class  CliqueFinderModule
 Finds cliques. More...
 
class  CliqueFinderSPQR
 Finds cliques using SPQR trees. More...
 
class  ClusterAnalysis
 
class  ClusterArrayBase
 RegisteredArray for labeling the clusters of a ClusterGraph. More...
 
class  ClusterElement
 Representation of clusters in a clustered graph. More...
 
class  Clusterer
 
class  ClustererModule
 Interface for algorithms that compute a clustering for a given graph. More...
 
class  ClusterGraph
 Representation of clustered graphs. More...
 
class  ClusterGraphAttributes
 Stores additional attributes of a clustered graph (like layout information). More...
 
class  ClusterGraphCopy
 
class  ClusterGraphCopyAttributes
 Manages access on copy of an attributed clustered graph. More...
 
class  ClusterGraphObserver
 Abstract base class for cluster graph observers. More...
 
class  ClusterOrthoLayout
 Represents a planar orthogonal drawing algorithm for c-planar, c-connected clustered graphs. More...
 
class  ClusterOrthoShaper
 Computes the orthogonal representation of a clustered graph. More...
 
class  ClusterPlanarityModule
 
class  ClusterPlanarizationLayout
 The cluster planarization layout algorithm. More...
 
class  ClusterPlanRep
 Planarized representations for clustered graphs. More...
 
class  ClusterSet
 Cluster sets. More...
 
class  CoffmanGrahamRanking
 The coffman graham ranking algorithm. More...
 
class  CoinManager
 If you use COIN-OR, you should use this class. More...
 
class  Color
 Colors represented as RGBA values. More...
 
class  CombinatorialEmbedding
 Combinatorial embeddings of planar graphs with modification functionality. More...
 
class  CommonCompactionConstraintGraphBase
 Base class for ogdf::CompactionConstraintGraphBase. More...
 
class  CompactionConstraintGraph
 Represents a constraint graph used for compaction. More...
 
class  CompactionConstraintGraphBase
 Class implementing template-parameter-independent behaviour of ogdf::CompactionConstraintGraph. More...
 
class  ComponentSplitterLayout
 
class  Configuration
 Provides information about how OGDF has been configured. More...
 
class  ConnectivityTester
 Naive implementation for testing the connectivity of a graph. More...
 
class  ConstCombinatorialEmbedding
 Combinatorial embeddings of planar graphs. More...
 
class  ConvexHull
 Computes the convex hull of a set of points or a layout. More...
 
class  CPlanarEdgeInserter
 Edge insertion algorithm for clustered graphs. More...
 
class  CPlanarSubClusteredGraph
 Constructs a c-planar subclustered graph of the input based on a spanning tree. More...
 
class  CPlanarSubgraphModule
 Interface of algorithms for the computation of c-planar subgraphs. More...
 
class  CrossingMinimalPosition
 Compute a crossing minimal position for a vertex. More...
 
class  CrossingMinimalPositionApx
 
class  CrossingMinimalPositionApxWeighted
 
class  CrossingMinimizationModule
 Base class for crossing minimization algorithms. More...
 
class  CrossingsMatrix
 Implements crossings matrix which is used by some TwoLayerCrossingMinimization heuristics (e.g. split) More...
 
class  CrossingVertexOrder
 
class  DavidsonHarel
 The Davidson-Harel approach for drawing graphs. More...
 
class  DavidsonHarelLayout
 The Davidson-Harel layout algorithm. More...
 
class  DefHashFunc
 Default hash functions. More...
 
class  DefHashFunc< double >
 Specialized default hash function for double. More...
 
class  DefHashFunc< IPoint >
 
class  DefHashFunc< string >
 Specialized default hash function for string. More...
 
class  DefHashFunc< void * >
 Specialized default hash function for pointer types. More...
 
class  DeletingTop10Heap
 A variant of Top10Heap which deletes the elements that get rejected from the heap. More...
 
class  DfsAcyclicSubgraph
 DFS-based algorithm for computing a maximal acyclic subgraph. More...
 
class  DfsMakeBiconnected
 Implementation of a DFS-based algorithm for biconnectivity augmentation. More...
 
class  Dijkstra
 Dijkstra's single source shortest path algorithm. More...
 
class  DIntersectableRect
 Rectangles with real coordinates. More...
 
class  DisjointSets
 A Union/Find data structure for maintaining disjoint sets. More...
 
class  DLParser
 
class  DominanceLayout
 
class  DPolygon
 Polygons with real coordinates. More...
 
class  DRect
 Rectangles with real coordinates. More...
 
class  DTreeMultilevelEmbedder
 
class  DTreeMultilevelEmbedder2D
 
class  DTreeMultilevelEmbedder3D
 
class  DualGraphBase
 A dual graph including its combinatorial embedding of an embedded graph. More...
 
class  DynamicBCTree
 Dynamic BC-trees. More...
 
class  DynamicCastFailedException
 Exception thrown when result of cast is 0. More...
 
class  DynamicPlanarSPQRTree
 SPQR-trees of planar graphs. More...
 
class  DynamicSkeleton
 Skeleton graphs of nodes in a dynamic SPQR-tree. More...
 
class  DynamicSPQRForest
 Dynamic SPQR-forest. More...
 
class  DynamicSPQRTree
 Linear-time implementation of dynamic SPQR-trees. More...
 
class  EdgeComparer
 Compares adjacency entries based on the position of the nodes given by GraphAttribute layout information. More...
 
class  EdgeComparerSimple
 Compares incident edges of a node based on the position of the last bend point or the position of the adjacent node given by the layout information of the graph. More...
 
class  EdgeCoverMerger
 The edge cover merger for multilevel layout. More...
 
class  EdgeElement
 Class for the representation of edges. More...
 
class  EdgeIndependentSpanningTrees
 Calculates k edge-independent spanning trees of a graph. More...
 
class  EdgeInsertionModule
 Interface for edge insertion algorithms. More...
 
class  EdgeLabel
 
class  EdgeOrderComparer
 Orders edges such that they do not cross each other when embeddded as insertion paths. More...
 
class  EdgeRouter
 Places node boxes in replacement areas of orthogonal drawing step and route edges to minimize bends. More...
 
class  EdgeSet
 Edge sets. More...
 
class  EdgeStandardRep
 Edge standard representation of hypergraphs. More...
 
class  EdgeWeightedGraph
 
class  EdgeWeightedGraphCopy
 
class  ELabelInterface
 
class  ELabelPosSimple
 
class  EmbedderMaxFace
 Embedder that maximizes the external face. More...
 
class  EmbedderMaxFaceBiconnectedGraphs
 Embedder that maximizing the external face. More...
 
class  EmbedderMaxFaceBiconnectedGraphsLayers
 Embedder that maximizes the external face (plus layers approach). More...
 
class  EmbedderMaxFaceLayers
 Embedder that maximizes the external face and optimizes the position of blocks afterwards. More...
 
class  EmbedderMinDepth
 Embedder that minimizes block-nesting depth. More...
 
class  EmbedderMinDepthMaxFace
 Embedding that minimizes block-nesting depth and maximizes the external face. More...
 
class  EmbedderMinDepthMaxFaceLayers
 Planar graph embedding that minimizes block-nesting depth and maximizes the external face and optimizes the position of blocks afterwards. More...
 
class  EmbedderMinDepthPiTa
 Embedder that minimizes block-nesting depth for given embedded blocks. More...
 
class  EmbedderModule
 Base class for embedder algorithms. More...
 
class  EmbedderOptimalFlexDraw
 The algorithm computes a planar embedding with minimum cost. More...
 
class  ENGLayer
 Represents layer in an extended nesting graph. More...
 
class  EpsilonTest
 
class  Exception
 Base class of all ogdf exceptions. More...
 
class  ExpansionGraph
 Represents expansion graph of each biconnected component of a given digraph, i.e., each vertex v with in- and outdegree greater than 1 is expanded into two vertices x and y connected by an edge x->y such that all incoming edges are moved from v to x and all outgoing edges from v to y. More...
 
class  ExtendedNestingGraph
 
struct  ExternE
 List of externally active nodes strictly between x and y for minortypes B and E More...
 
class  ExtractKuratowskis
 Extracts multiple Kuratowski Subdivisions. More...
 
class  FaceArrayBase
 RegisteredArray for labeling the faces of a CombinatorialEmbedding. More...
 
class  FaceElement
 Faces in a combinatorial embedding. More...
 
class  FaceSet
 Face sets. More...
 
class  FaceSinkGraph
 
class  FastHierarchyLayout
 Coordinate assignment phase for the Sugiyama algorithm by Buchheim et al. More...
 
class  FastMultipoleEmbedder
 The fast multipole embedder approach for force-directed layout. More...
 
class  FastMultipoleMultilevelEmbedder
 The fast multipole multilevel embedder approach for force-directed multilevel layout. More...
 
class  FastSimpleHierarchyLayout
 Coordinate assignment phase for the Sugiyama algorithm by Ulrik Brandes and Boris Köpf. More...
 
class  FibonacciHeap
 Fibonacci heap implementation. More...
 
struct  FibonacciHeapNode
 Fibonacci heap node. More...
 
struct  Fill
 Properties of fills. More...
 
class  FilteringBFS
 An iterator-based BFS through a Graph. More...
 
class  FilteringBFSIterator
 
class  FindKuratowskis
 This class collects information about Kuratowski Subdivisions which is used for extraction later. More...
 
class  FixedEmbeddingInserter
 Inserts edges optimally into an embedding. More...
 
class  FixedEmbeddingInserterUML
 Edge insertion module that inserts each edge optimally into a fixed embedding. More...
 
class  FixedEmbeddingUpwardEdgeInserter
 Edge insertion module that inserts each edge optimally into a fixed embedding. More...
 
class  FixEdgeInserterCore
 
class  FixEdgeInserterUMLCore
 
class  FlowCompaction
 represents compaction algorithm using min-cost flow in the dual of the constraint graph More...
 
class  FMMMLayout
 The fast multipole multilevel layout algorithm. More...
 
class  FMMMOptions
 
class  ForceLayoutModule
 Interface of general layout algorithms. More...
 
struct  FourBlockTree
 A node in a 4-block tree. More...
 
class  FPPLayout
 The class FPPLayout represents the layout algorithm by de Fraysseix, Pach, Pollack [DPP90]. More...
 
class  FUPSModule
 Interface for feasible upward planar subgraph algorithms. More...
 
class  FUPSSimple
 
class  GEMLayout
 The energy-based GEM layout algorithm. More...
 
struct  GenericComparer
 Compare elements based on a single comparable attribute. More...
 
class  GenericLine
 Infinite lines. More...
 
class  GenericPoint
 Parameterized base class for points. More...
 
class  GenericPolyline
 Polylines with PointType points. More...
 
class  GenericSegment
 Finite line segments. More...
 
class  GeometricEdgeInsertion
 
class  GeometricVertexInsertion
 
class  GF2Solver
 
class  GlobalSifting
 The global sifting heuristic for crossing minimization. More...
 
class  GlueMap
 This is a helper class to make the glueing of two edges simpler. More...
 
class  Graph
 Data type for general directed graphs (adjacency list representation). More...
 
class  GraphAdjIterator
 Iterator for AdjEntries of a graph. More...
 
class  GraphAttributes
 Stores additional attributes of a graph (like layout information). More...
 
class  GraphCopy
 Copies of graphs supporting edge splitting. More...
 
class  GraphCopyBase
 
class  GraphCopySimple
 Copies of graphs with mapping between nodes and edges. More...
 
class  GraphIO
 Utility class providing graph I/O in various exchange formats. More...
 
class  GraphMLParser
 
class  GraphObserver
 Abstract Base class for graph observers. More...
 
class  GraphReduction
 Creates a reduced graph by removing leaves, self-loops, and reducing chains. More...
 
class  GreedyCycleRemoval
 Greedy algorithm for computing a maximal acyclic subgraph. More...
 
class  GreedyInsertHeuristic
 The greedy-insert heuristic for 2-layer crossing minimization. More...
 
class  GreedySwitchHeuristic
 The greedy-switch heuristic for 2-layer crossing minimization. More...
 
class  GridLayout
 Representation of a graph's grid layout. More...
 
class  GridLayoutMapped
 Extends GridLayout by a grid mapping mechanism. More...
 
class  GridLayoutModule
 Base class for grid layout algorithms. More...
 
class  GridLayoutPlanRepModule
 Base class for grid layout algorithms operating on a PlanRep. More...
 
class  GridSifting
 The grid sifting heuristic for crossing minimization. More...
 
class  HananiTutteCPlanarity
 C-planarity testing via Hanani-Tutte approach. More...
 
class  HashArray
 Indexed arrays using hashing for element access. More...
 
class  HashArray2D
 Indexed 2-dimensional arrays using hashing for element access. More...
 
class  HashConstIterator
 Iterators for hash tables. More...
 
class  HashConstIterator2D
 Const-iterator for 2D-hash arrays. More...
 
class  HashElement
 Representation of elements in a hash table. More...
 
class  HashElementBase
 Base class for elements within a hash table. More...
 
class  HashFuncTuple
 
class  Hashing
 Hashing with chaining and table doubling. More...
 
class  HashingBase
 Base class for hashing with chaining and table doubling. More...
 
class  HeapBase
 Common interface for all heap classes. More...
 
class  Hierarchy
 Representation of proper hierarchies used by Sugiyama-layout. More...
 
class  HierarchyClusterLayoutModule
 Interface of hierarchy layout algorithms for cluster graphs. More...
 
class  HierarchyLayoutModule
 Interface of hierarchy layout algorithms. More...
 
class  HierarchyLevels
 Representation of proper hierarchies used by Sugiyama-layout. More...
 
class  HierarchyLevelsBase
 
class  HotQueue
 Heap-on-Top queue implementation. More...
 
struct  HotQueueHandle
 Heap-on-Top handle to inserted items. More...
 
struct  HotQueueNode
 Heap-on-Top bucket element. More...
 
class  HyperedgeElement
 Class for the representation of hyperedges. More...
 
class  Hypergraph
 
class  HypergraphAttributes
 Stores additional attributes of a hypergraph. More...
 
class  HypergraphAttributesES
 Stores additional attributes of edge standard representation of a hypergraph. More...
 
class  HypergraphLayoutES
 
class  HypergraphLayoutModule
 Interface of hypergraph layout algorithms. More...
 
class  HypergraphObserver
 
class  HypergraphRegisteredArray
 RegisteredArray for nodes and edges of a hypergraph. More...
 
class  HypergraphRegistry
 Registry for nodes and edges of a hypergraph. More...
 
class  HypernodeElement
 Class for the representation of hypernodes. More...
 
class  ILPClusterPlanarity
 C-planarity testing via completely connected graph extension. More...
 
class  IncNodeInserter
 
class  IndependentSetMerger
 The independent set merger for multilevel layout. More...
 
class  Initialization
 The class Initialization is used for initializing global variables. More...
 
class  InitialPlacer
 Base class for placer modules. More...
 
struct  InOutPoint
 Representation of an in- or outpoint. More...
 
class  InsufficientMemoryException
 Exception thrown when not enough memory is available to execute an algorithm. More...
 
class  IOPoints
 Representation of in- and outpoint lists. More...
 
class  KuratowskiStructure
 A Kuratowski Structure is a special graph structure containing severals subdivisions. More...
 
class  KuratowskiSubdivision
 
class  KuratowskiWrapper
 Wrapper-class for Kuratowski Subdivisions containing the minortype and edgelist. More...
 
class  LayerBasedUPRLayout
 
class  LayerByLayerSweep
 Interface of two-layer crossing minimization algorithms. More...
 
class  LayeredCrossMinModule
 Interface of crossing minimization algorithms for layered graphs. More...
 
class  Layout
 Stores a layout of a graph (coordinates of nodes, bend points of edges). More...
 
class  LayoutClusterPlanRepModule
 Interface for planar cluster layout algorithms. More...
 
class  LayoutModule
 Interface of general layout algorithms. More...
 
class  LayoutPlanRepModule
 Interface for planar layout algorithms (used in the planarization approach). More...
 
class  LayoutPlanRepUMLModule
 Interface for planar UML layout algorithms. More...
 
class  LayoutStandards
 Standard values for graphical attributes and layouts. More...
 
class  LayoutStatistics
 Computes statistical information about a layout. More...
 
class  LCA
 Implements the <O(n log n), O(1)>-time "sparse table" algorithm by Bender and Farach-Colton to compute lowest common ancestors (LCAs) in arborescences (not arbitrary directed acyclic graphs). More...
 
class  LeftistOrdering
 
class  Level
 Representation of levels in hierarchies. More...
 
class  LevelBase
 Representation of levels in hierarchies. More...
 
class  LHTreeNode
 
class  LibraryNotSupportedException
 Exception thrown when an external library shall be used which is not supported. More...
 
class  LinearLayout
 Layout the graph with nodes next to each other with natural or custom order and draw the edges as semicircular bows above them. More...
 
class  List
 Doubly linked lists (maintaining the length of the list). More...
 
class  ListContainer
 
class  ListElement
 Structure for elements of doubly linked lists. More...
 
class  ListIteratorBase
 Encapsulates a pointer to a list element. More...
 
class  ListPure
 Doubly linked lists. More...
 
class  LocalBiconnectedMerger
 The local biconnected merger for multilevel layout. More...
 
class  Logger
 Centralized global and local logging facility working on streams like std::cout. More...
 
class  LongestPathCompaction
 Compaction algorithm using longest paths in the constraint graph. More...
 
class  LongestPathRanking
 The longest-path ranking algorithm. More...
 
class  LPSolver
 
class  MallocMemoryAllocator
 Implements a simple memory manager using malloc() and free(). More...
 
class  MatchingBlossom
 Implementation of the Blossom-I algorithm by Edmonds (1965) for Minimum Weight Perfect Matching. More...
 
class  MatchingBlossomV
 Implementation of the Blossom-V algorithm by Kolmogorov (2009) for Minimum Weight Perfect Matching. More...
 
class  MatchingMerger
 The matching merger for multilevel layout. More...
 
class  MatchingModule
 
class  MaxAdjOrdering
 Calculate one or all Maximum Adjacency Ordering(s) of a given simple undirected graph. More...
 
class  MaxFlowEdmondsKarp
 Computes a max flow via Edmonds-Karp. More...
 
class  MaxFlowGoldbergTarjan
 Computes a max flow via Preflow-Push (global relabeling and gap relabeling heuristic). More...
 
class  MaxFlowModule
 
class  MaxFlowSTPlanarDigraph
 Computes a max flow in s-t-planar network via dual shortest paths. More...
 
class  MaxFlowSTPlanarItaiShiloach
 Computes a max flow in s-t-planar network via uppermost paths. More...
 
class  MaximalFUPS
 
class  MaximalPlanarSubgraphSimple< TCost, typename std::enable_if< std::is_floating_point< TCost >::value >::type >
 
class  MaximalPlanarSubgraphSimple< TCost, typename std::enable_if< std::is_integral< TCost >::value >::type >
 Naive maximal planar subgraph approach that extends a configurable non-maximal subgraph heuristic. More...
 
class  MaximumCPlanarSubgraph
 Exact computation of a maximum c-planar subgraph. More...
 
class  MaximumPlanarSubgraph
 Exact computation of a maximum planar subgraph. More...
 
class  MaxSequencePQTree
 The class template MaxSequencePQTree is designed to compute a maximal consecutive sequence of pertinent leaves in a PQ-tree. More...
 
class  MedianHeuristic
 The median heuristic for 2-layer crossing minimization. More...
 
class  MedianPlacer
 The median placer for multilevel layout. More...
 
class  MinCostFlowModule
 Interface for min-cost flow algorithms. More...
 
class  MinCostFlowReinelt
 Computes a min-cost flow using a network simplex method. More...
 
class  MinimumCutModule
 Serves as an interface for various methods to compute minimum cuts with or without edge weights. More...
 
class  MinimumCutNagamochiIbaraki
 Calculate minimum cut value for a given Graph. More...
 
struct  MinimumCutStoerWagner
 Computes a minimum cut in a graph. More...
 
class  MinimumEdgeDistances
 Maintains input sizes for improvement compaction (deltas and epsilons) More...
 
class  MinSTCutBFS
 Min-st-cut algorithm, that calculates the cut by doing a depth first search over the dual graph of of an st-planar input graph. More...
 
class  MinSTCutDijkstra
 Min-st-cut algorithm, that calculates the cut by calculating the shortest path between the faces adjacent to an edge between s and t, via the algorithm by Dijkstra on the dual graph. More...
 
class  MinSTCutMaxFlow
 Min-st-cut algorithm, that calculates the cut via maxflow. More...
 
class  MinSTCutModule
 
class  MinSteinerTreeDirectedCut
 This class implements the Directed Cut Integer Linear Program for the Steiner tree problem. More...
 
class  MinSteinerTreeDualAscent
 Dual ascent heuristic for the minimum Steiner tree problem. More...
 
class  MinSteinerTreeGoemans139
 This class implements the (1.39+epsilon)-approximation algorithm for the Steiner tree problem by Goemans et. More...
 
class  MinSteinerTreeKou
 This class implements the Minimum Steiner Tree 2-approximation algorithm by Kou et al. More...
 
class  MinSteinerTreeMehlhorn
 This class implements the Minimum Steiner Tree 2-approximation algorithm by Mehlhorn. More...
 
class  MinSteinerTreeModule
 Serves as an interface for various methods to compute or approximate minimum Steiner trees on undirected graphs with edge costs. More...
 
class  MinSteinerTreePrimalDual
 Primal-Dual approximation algorithm for Steiner tree problems. More...
 
class  MinSteinerTreeRZLoss
 This class implements the loss-contracting (1.55+epsilon)-approximation algorithm for the Steiner tree problem by Robins and Zelikovsky. More...
 
class  MinSteinerTreeShore
 Implementation of Shore, Foulds and Gibbons exact branch and bound algorithm for solving Steiner tree problems. More...
 
class  MinSteinerTreeTakahashi
 This class implements the minimum Steiner tree 2-approximation algorithm by Takahashi and Matsuyama with improvements proposed by Poggi de Aragao et al. More...
 
class  MinSteinerTreeZelikovsky
 This class implements the 11/6-approximation algorithm by Zelikovsky for the minimum Steiner tree problem along with variants and practical improvements. More...
 
class  MixedModelBase
 
class  MixedModelCrossingsBeautifierModule
 The base class for Mixed-Model crossings beautifier algorithms. More...
 
class  MixedModelLayout
 Implementation of the Mixed-Model layout algorithm. More...
 
class  MMCBBase
 common base class for MMCBDoubleGrid and MMCBLocalStretch. More...
 
class  MMCBDoubleGrid
 Crossings beautifier using grid doubling. More...
 
class  MMCBLocalStretch
 Crossings beautifier using a local stretch strategy. More...
 
class  MMCrossingMinimizationModule
 Interface for minor-monotone crossing minimization algorithms. More...
 
class  MMDummyCrossingsBeautifier
 Dummy implementation of Mixed-Model crossings beautifier. More...
 
class  MMEdgeInsertionModule
 Interface for minor-monotone edge insertion algorithms. More...
 
class  MMFixedEmbeddingInserter
 Minor-monotone edge insertion with fixed embedding. More...
 
class  MMOrder
 
class  MMSubgraphPlanarizer
 Planarization approach for minor-monotone crossing minimization. More...
 
class  MMVariableEmbeddingInserter
 Minor-monotone edge insertion with variable embedding. More...
 
class  ModifiedNibbleClusterer
 The modified nibble clustering algorithm. More...
 
class  ModularMultilevelMixer
 Modular multilevel graph layout. More...
 
class  Module
 Base class for modules. More...
 
class  MultiEdgeApproxInserter
 Multi edge inserter with approximation guarantee. More...
 
class  MultilevelBuilder
 Base class for merger modules. More...
 
class  MultilevelGraph
 
class  MultilevelLayout
 The multilevel drawing framework. More...
 
class  MultilevelLayoutModule
 Interface of general layout algorithms that also allow a MultilevelGraph as call parameter, extending the interface of a simple LayoutModule. More...
 
class  NearestRectangleFinder
 Finds in a given set of rectangles for each point in a given set of points the nearest rectangle. More...
 
class  NodeColoringBergerRompel
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeColoringBoppanaHalldorsson
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeColoringHalldorsson
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeColoringJohnson
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeColoringModule
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeColoringRecursiveLargestFirst
 A simple greedy node coloring heuristic in graphs. More...
 
class  NodeColoringSequential
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeColoringSimple
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeColoringWigderson
 Approximation algorithms for the node coloring problem in graphs. More...
 
class  NodeElement
 Class for the representation of nodes. More...
 
struct  NodeMerge
 
struct  NodePair
 
class  NodeRespecterLayout
 The NodeRespecterLayout layout algorithm. More...
 
class  NodeSet
 Node sets. More...
 
class  NonPlanarCore
 Non-planar core reduction. More...
 
class  NoStdComparerException
 Exception thrown when a required standard comparer has not been specialized. More...
 
class  Observable
 Base class for an observable object that can be tracked by multiple Observer objects. More...
 
class  Observer
 Base class for an observer for a single Observable object. More...
 
struct  OGDFAllocator
 Encapsulates OGDF_ALLOCATOR in a class that can be used as the Allocator for containers of the C++ standard library. More...
 
class  OptimalHierarchyClusterLayout
 The LP-based hierarchy cluster layout algorithm. More...
 
class  OptimalHierarchyLayout
 The LP-based hierarchy layout algorithm. More...
 
class  OptimalRanking
 The optimal ranking algorithm. More...
 
class  OrderComparer
 
class  OrthoLayout
 The Orthogonal layout algorithm for planar graphs. More...
 
class  OrthoLayoutUML
 Represents planar orthogonal drawing algorithm for mixed-upward planar embedded graphs (UML-diagrams) More...
 
class  OrthoRep
 Orthogonal representation of an embedded graph. More...
 
class  OrthoShaper
 
class  OverlappingGraphCopies
 The manager class for multiple OverlappingGraphCopy instances of the same graph. More...
 
class  OverlappingGraphCopy
 Version of GraphCopySimple that may efficiently share some overlap with other instances of the same original Graph via its OverlappingGraphCopies manager. More...
 
class  PairingHeap
 Pairing heap implementation. More...
 
struct  PairingHeapNode
 Pairing heap node. More...
 
class  PALabel
 auxiliary class for the planar augmentation algorithm More...
 
class  PertinentGraph
 Pertinent graphs of nodes in an SPQR-tree. More...
 
class  PivotMDS
 The Pivot MDS (multi-dimensional scaling) layout algorithm. More...
 
class  PlanarAugmentation
 The algorithm for planar biconnectivity augmentation (Mutzel, Fialko). More...
 
class  PlanarAugmentationFix
 The algorithm for biconnectivity augmentation with fixed combinatorial embedding. More...
 
class  PlanarDrawLayout
 Implementation of the Planar-Draw layout algorithm. More...
 
class  PlanarGridLayoutModule
 Base class for planar grid layout algorithms. More...
 
class  PlanarityModule
 Module for planarity testing and planar embeddings. More...
 
class  PlanarizationGridLayout
 The planarization grid layout algorithm. More...
 
class  PlanarizationLayout
 The planarization approach for drawing graphs. More...
 
class  PlanarizationLayoutUML
 The planarization layout algorithm. More...
 
class  PlanarizerChordlessCycle
 
class  PlanarizerMixedInsertion
 
class  PlanarizerStarReinsertion
 The star (re-)insertion approach for crossing minimization. More...
 
class  PlanarSeparatorModule
 Abstract description of all planar separator algorithms. More...
 
class  PlanarSPQRTree
 SPQR-trees of planar graphs. More...
 
class  PlanarStraightLayout
 Implementation of the Planar-Straight layout algorithm. More...
 
class  PlanarSubgraphBoyerMyrvold
 Maximum planar subgraph heuristic based on the Boyer-Myrvold planarity test. More...
 
class  PlanarSubgraphCactus
 Maximum planar subgraph approximation algorithm by Calinescu et al. More...
 
class  PlanarSubgraphEmpty
 Dummy implementation for maximum planar subgraph that returns an empty graph. More...
 
class  PlanarSubgraphFast
 Computation of a planar subgraph using PQ-trees. More...
 
class  PlanarSubgraphModule
 Interface for planar subgraph algorithms. More...
 
class  PlanarSubgraphPQTree
 
class  PlanarSubgraphTree
 Maximum planar subgraph heuristic that yields a spanning tree. More...
 
class  PlanarSubgraphTriangles
 Maximum planar subgraph approximation algorithms by Chalermsook/Schmid and Calinescu et al. More...
 
class  PlanRep
 Planarized representations (of a connected component) of a graph. More...
 
class  PlanRepExpansion
 Planarized representations (of a connected component) of a graph. More...
 
class  PlanRepInc
 This class is only an adaption of PlanRep for the special incremental drawing case. More...
 
class  PlanRepLight
 Light-weight version of a planarized representation, associated with a PlanRep. More...
 
class  PlanRepUML
 Planarized representation (of a connected component) of a UMLGraph; allows special handling of hierarchies in the graph. More...
 
class  PoolMemoryAllocator
 Allocates memory in large chunks for better runtime. More...
 
class  PQBasicKey
 
class  PQBasicKeyRoot
 The class PQBasicKeyRoot is used as a base class of the class template basicKey. More...
 
class  PQInternalKey
 The class template PQInternalKey is a derived class of class template PQBasicKey. More...
 
class  PQInternalNode
 The class template PQInternalNode is used to present P-nodes and Q-nodes in the PQ-Tree. More...
 
class  PQLeaf
 The datastructure PQ-tree was designed to present a set of permutations on an arbitrary set of elements. More...
 
class  PQLeafKey
 The class template PQLeafKey is a derived class of class template PQBasicKey. More...
 
class  PQNode
 The class template PQBasicKey is an abstract base class. More...
 
class  PQNodeKey
 The class template PQNodeKey is a derived class of class template PQBasicKey. More...
 
class  PQNodeRoot
 The class PQNodeRoot is used as a base class of the class PQNode. More...
 
class  PQTree
 
class  PreprocessorLayout
 The PreprocessorLayout removes multi-edges and self-loops. More...
 
class  Prioritized
 Augments any data elements of type X with keys of type Priority. This class is also its own Comparer. More...
 
class  PrioritizedMapQueue
 Prioritized queue interface wrapper for heaps. More...
 
class  PrioritizedMapQueue< edge, P, C, Impl, HashFunc >
 Specialization for edge elements. More...
 
class  PrioritizedMapQueue< node, P, C, Impl, HashFunc >
 Specialization for node elements. More...
 
class  PriorityQueue
 Priority queue interface wrapper for heaps. More...
 
class  ProcrustesPointSet
 
class  ProcrustesSubLayout
 Simple procrustes analysis. More...
 
class  Queue
 The parameterized class Queue<E> implements list-based queues. More...
 
struct  QueueEntry
 
class  QueuePure
 Implementation of list-based queues. More...
 
class  RadialTreeLayout
 The radial tree layout algorithm. More...
 
class  RadixHeap
 Radix heap data structure implementation. More...
 
class  RadixHeapNode
 
struct  RandomClusterConfig
 Parameters for the randomPlanarClustering() method. More...
 
class  RandomMerger
 The random merger for multilevel layout. More...
 
class  RandomPlacer
 The random placer for multilevel layout. More...
 
class  RandomVertexPosition
 Interface for computing a good / optimal vertex position. More...
 
class  Range
 Simple before-C++20 version for std::ranges::ref_view. More...
 
class  RankingModule
 Interface of algorithms for computing a node ranking. More...
 
struct  RCCrossings
 
class  RegisteredArray
 Dynamic arrays indexed with arbitrary keys. More...
 
class  RegisteredArray< Registry, bool, WithDefault, Base >
 Specialization to work around vector<bool>. More...
 
class  RegisteredArrayIterator
 Iterator for registered arrays. More...
 
class  RegisteredMultiArray
 Data structure for two-dimensional mappings that are sparse in the second dimension. More...
 
class  RegisteredSet
 Constant-time set operations. More...
 
class  RegistryBase
 Abstract base class for registries. More...
 
class  Reverse
 A wrapper class to easily iterate through a container in reverse. More...
 
class  RMHeap
 Randomized meldable heap implementation. More...
 
struct  RMHeapNode
 Randomized meldable heap node. More...
 
class  RoutingChannel
 Maintains input sizes for constructive compaction (size of routing channels, separation, cOverhang) More...
 
class  ScalingLayout
 Scales a graph layout and calls a secondary layout algorithm. More...
 
class  SchnyderLayout
 The class SchnyderLayout represents the layout algorithm by Schnyder [Sch90]. More...
 
class  SeparatorDual
 Computes planar separators using the Dual of the graph. More...
 
class  SeparatorDualFC
 Computes planar separators by applying the Fundamental Cycle Lemma directly, without trying tree levels first. More...
 
class  SeparatorHarPeled
 Computes planar separators according to Har-Peled. More...
 
class  SeparatorLiptonTarjan
 Computes planar separators according to Lipton and Tarjan 1979. More...
 
class  SeparatorLiptonTarjanFC
 Computes planar separators using Fundamental Cycles. More...
 
class  ShellingOrder
 The shelling order of a graph. More...
 
class  ShellingOrderModule
 Base class for modules that compute a shelling order of a graph. More...
 
class  ShellingOrderSet
 The node set in a shelling order of a graph. More...
 
class  ShortestPathModule
 
class  ShortestPathWithBFM
 Computes single-source shortest-paths with Bellman-Ford-Moore's algorithm. More...
 
class  SiftingHeuristic
 The sifting heuristic for 2-layer crossing minimization. More...
 
class  SimDraw
 The Base class for simultaneous graph drawing. More...
 
class  SimDrawCaller
 Calls modified algorithms for simdraw instances. More...
 
class  SimDrawColorizer
 Adds color to a graph. More...
 
class  SimDrawCreator
 Creates variety of possible SimDraw creations. More...
 
class  SimDrawCreatorSimple
 Offers predefined SimDraw creations. More...
 
class  SimDrawManipulatorModule
 Interface for simdraw manipulators. More...
 
class  SimpleCCPacker
 Splits and packs the components of a Graph. More...
 
class  SimpleCluster
 
class  SimpleEmbedder
 Embedder that chooses a largest face as the external one. More...
 
class  SimpleIncNodeInserter
 
class  Skeleton
 Skeleton graphs of nodes in an SPQR-tree. More...
 
class  Skiplist
 A randomized skiplist. More...
 
class  SkiplistIterator
 Forward-Iterator for Skiplists. More...
 
class  SList
 Singly linked lists (maintaining the length of the list). More...
 
class  SListElement
 Structure for elements of singly linked lists. More...
 
class  SListIteratorBase
 Encapsulates a pointer to an ogdf::SList element. More...
 
class  SListPure
 Singly linked lists. More...
 
class  SolarMerger
 The solar merger for multilevel layout. More...
 
class  SolarPlacer
 The solar placer for multilevel layout. More...
 
class  SortedSequence
 Maintains a sequence of (key,info) pairs sorted by key. More...
 
class  SortedSequenceIteratorBase
 Iterators for sorted sequences. More...
 
class  SpannerBasicGreedy
 Multiplicative spanner by greedily adding edges. More...
 
class  SpannerBaswanaSen
 Randomized multiplicative spanner calculation by forming clusters. More...
 
class  SpannerBaswanaSenIterated
 Use the ogdf::SpannerIteratedWrapper to execute the ogdf::SpannerBaswanaSen algorithm up to 1000 times. More...
 
class  SpannerBerman
 Approximation algorithm for calculating spanners. More...
 
class  SpannerBermanDisconnected
 Wrapper around SpannerBerman: For each component of the graph, the algorithm will be called. More...
 
class  SpannerElkinNeiman
 Randomized multiplicative spanner calculation by propagating random messages through the graph. More...
 
class  SpannerElkinNeimanIterated
 Use the ogdf::SpannerIteratedWrapper to execute the ogdf::SpannerElkinNeiman algorithm up to 200 times. More...
 
class  SpannerIteratedWrapper
 A implementation-independed wrapper class to execute a spanner algorithm multiple times. More...
 
class  SpannerKortsarzPeleg
 Approximation multiplicative 2-spanner calculation. More...
 
class  SpannerModule
 Interface for spanner algorithms. More...
 
class  SplitHeuristic
 The split heuristic for 2-layer crossing minimization. More...
 
class  SPQRTree
 Linear-time implementation of static SPQR-trees. More...
 
class  SpringEmbedderFRExact
 Fruchterman-Reingold algorithm with (exact) layout. More...
 
class  SpringEmbedderGridVariant
 The spring-embedder layout algorithm with force approximation using hte grid variant approach. More...
 
class  SpringEmbedderKK
 The spring-embedder layout algorithm by Kamada and Kawai. More...
 
class  StarInserter
 
class  StaticPlanarSPQRTree
 SPQR-trees of planar graphs. More...
 
class  StaticSkeleton
 Skeleton graphs of nodes in a static SPQR-tree. More...
 
class  StaticSPQRTree
 Linear-time implementation of static SPQR-trees. More...
 
class  StdComparer
 Standard comparer (valid as a static comparer). More...
 
class  StdComparer< bool >
 Generates a specialization of the standard static comparer for booleans. More...
 
class  StdComparer< Prioritized< X, Priority > >
 
class  SteinerTreeLowerBoundDualAscent
 Implementation of a dual-ascent-based lower bound heuristic for Steiner tree problems. More...
 
class  SteinerTreePreprocessing
 This class implements preprocessing strategies for the Steiner tree problem. More...
 
class  StlGreater
 Template for converting any StdComparer into a STL compatible compare functor. More...
 
class  StlLess
 Template for converting any StdComparer into a STL compatible compare functor. More...
 
class  Stopwatch
 Realizes a stopwatch for measuring elapsed time. More...
 
class  StopwatchCPU
 Implements a stopwatch measuring CPU time. More...
 
class  StopwatchWallClock
 Implements a stopwatch measuring wall-clock time. More...
 
class  StressMinimization
 Energy-based layout using stress minimization. More...
 
struct  Stroke
 Properties of strokes. More...
 
class  SubgraphPlanarizer
 The planarization approach for crossing minimization. More...
 
class  SubgraphPlanarizerUML
 The planarization approach for UML crossing minimization. More...
 
class  SubgraphUpwardPlanarizer
 Takes an acyclic connected non-upward-planar graph and planarizes it, i.e., we obtain an upward-planar graph where crossings are represented via dummy vertices. More...
 
class  SubsetEnumerator
 Enumerator for k-subsets of a given type. More...
 
class  SugiyamaLayout
 Sugiyama's layout algorithm. More...
 
class  SvgPrinter
 SVG Writer. More...
 
class  SyncPlanClusterPlanarityModule
 ClusterPlanarity testing in quadratic time using the Synchronized Planarity approach. More...
 
class  System
 System specific functionality. More...
 
class  TargetComparer
 A static comparer which compares the target of pointers ("content"), instead of the pointer's adresses. More...
 
class  Thread
 Threads supporting OGDF's memory management. More...
 
class  TikzWriter
 LaTeX+TikZ Writer. More...
 
class  TileToRowsCCPacker
 The tile-to-rows algorithm for packing drawings of connected components. More...
 
class  Timeouter
 class for timeout funtionality. More...
 
class  TokenIgnorer
 
class  Top10Heap
 A variant of BinaryHeapSimple which always holds only the 10 elements with the highest keys. More...
 
class  TopologyModule
 Constructs embeddings from given layout. More...
 
class  TreeLayout
 The tree layout algorithm. More...
 
class  TriconnectedShellingOrder
 Computation of a shelling order for a triconnected and simple (no multi-edges, no self-loops) planar graph. More...
 
class  Triconnectivity
 realizes Hopcroft/Tarjan algorithm for finding the triconnected components of a biconnected multi-graph More...
 
class  TsplibXmlParser
 Parses tsplib files in xml format. More...
 
class  Tuple2
 Tuples of two elements (2-tuples). More...
 
class  TutteLayout
 Tutte's layout algorithm. More...
 
class  TwoLayerCrossMinSimDraw
 
class  TwoSAT
 A simple solver for TwoSAT instances, representing the instance as implication graph and solving it via its strongly-connected components. More...
 
class  twosat_var
 In debug mode, twosat_var is a class instead of a simple int to prevent unintened use of the default 0-value instead of TwoSAT_Var_Undefined. More...
 
class  TypeNotSupportedException
 Exception thrown when a data type is not supported by a generic function. More...
 
class  UMLCrossingMinimizationModule
 Base class for UML crossing minimization algorithms. More...
 
class  UmlDiagramGraph
 Contains the class UmlDiagramGraph which represents one particular diagram of the complete UML Model. More...
 
class  UMLEdgeInsertionModule
 Interface for UML edge insertion algorithms. More...
 
class  UMLGraph
 
class  UMLLayoutModule
 Interface of UML layout algorithms. More...
 
class  UmlModelGraph
 This class represents the complete UML Model in a graph-like data structure. More...
 
class  UPRLayoutModule
 Interface of hierarchy layout algorithms. More...
 
class  UpSAT
 
class  UpwardEdgeInserterModule
 
class  UpwardPlanarity
 Upward planarity testing and embedding. More...
 
class  UpwardPlanarityEmbeddedDigraph
 
class  UpwardPlanaritySingleSource
 Performs upward planarity testing and embedding for single-source digraphs. More...
 
class  UpwardPlanarizationLayout
 
class  UpwardPlanarizerModule
 Interface for upward planarization algorithms. More...
 
class  UpwardPlanarSubgraphModule
 Interface for algorithms for computing an upward planar subgraph. More...
 
class  UpwardPlanarSubgraphSimple
 A maximal planar subgraph algorithm using planarity testing. More...
 
class  UpwardPlanRep
 Upward planarized representations (of a connected component) of a graph. More...
 
struct  UsuallySmallMap
 A wrapper around std::map that uses a constant-size array (or only a single value) plus linear search until the map grows too big. More...
 
class  VarEdgeInserterCore
 
class  VarEdgeInserterDynCore
 
class  VarEdgeInserterDynUMLCore
 
class  VarEdgeInserterUMLCore
 
class  VariableEmbeddingInserter
 Optimal edge insertion module. More...
 
class  VariableEmbeddingInserterBase
 Common parameter functionality for ogdf::VariableEmbeddingInserter and ogdf::VariableEmbeddingInserterDyn. More...
 
class  VariableEmbeddingInserterDyn
 Optimal edge insertion module. More...
 
class  VariableEmbeddingInserterDynUML
 Optimal edge insertion module. More...
 
class  VariableEmbeddingInserterUML
 Optimal edge insertion module. More...
 
class  VComparer
 Abstract base class for comparer classes. More...
 
class  VertexMovement
 
class  VertexPositionModule
 Interface for computing a good / optimal vertex position. More...
 
class  VisibilityLayout
 
class  Voronoi
 Computes Voronoi regions in an edge-weighted graph. More...
 
class  WeightComparer
 
class  whaInfo
 
struct  WInfo
 Saves information about a pertinent node w between two stopping vertices. More...
 
class  ZeroPlacer
 The zero placer for multilevel layout. More...
 
class  ZipIterator
 Simple before-C++20 version for std::ranges::zip_view. More...
 

Typedefs

using adjEntry = AdjElement *
 The type of adjacency entries. More...
 
template<typename Value , bool WithDefault = true>
using AdjEntryArray = internal::GraphRegisteredArray< AdjElement, Value, WithDefault, internal::GraphAdjRegistry >
 RegisteredArray for labeling the adjEntries in a Graph with an arbitrary Value. More...
 
template<typename Value >
using AdjEntryArrayP = AdjEntryArray< std::unique_ptr< Value >, false >
 Shorthand for AdjEntryArray storing std::unique_ptr<Value>. More...
 
template<typename Key2 , typename Value >
using AdjEntryMultiArray = RegisteredMultiArray< adjEntry, Key2, Value, internal::AEA >
 
using adjHypergraphEntry = AdjHypergraphElement *
 The type of adjacency entries. More...
 
template<class E >
using ArrayConstIterator = const E *
 
template<class E >
using ArrayConstReverseIterator = ArrayReverseIteratorBase< E, true >
 
template<class E >
using ArrayIterator = E *
 
template<class E >
using ArrayReverseIterator = ArrayReverseIteratorBase< E, false >
 
using cluster = ClusterElement *
 The type of clusters. More...
 
template<typename Value , bool WithDefault = true>
using ClusterArray = ClusterArrayBase< Value, WithDefault >
 
template<typename Value >
using ClusterArrayP = ClusterArray< std::unique_ptr< Value >, false >
 Shorthand for ClusterArray storing std::unique_ptr<Value>. More...
 
using ClusterGraphRegistry = RegistryBase< cluster, ClusterGraph, internal::GraphIterator< cluster > >
 
using CombinatorialEmbeddingRegistry = RegistryBase< face, ConstCombinatorialEmbedding, internal::GraphIterator< face > >
 
using CrossingMinimalPositionFast = CrossingMinimalPosition< double >
 
using DLine = GenericLine< DPoint >
 Lines with real coordinates. More...
 
using DPoint = GenericPoint< double >
 Representing two-dimensional point with real coordinates. More...
 
using DPolyline = GenericPolyline< DPoint >
 Polylines with DPoint points. More...
 
using DSegment = GenericSegment< DPoint >
 Segments with real coordinates. More...
 
using DualGraph = DualGraphBase< true >
 
using DynamicDualGraph = DualGraphBase< false >
 
using edge = EdgeElement *
 The type of edges. More...
 
template<typename Value , bool WithDefault = true>
using EdgeArray = internal::EdgeArrayBase2< Value, WithDefault >
 RegisteredArray for labeling the edges in a Graph with an arbitrary Value. More...
 
template<typename Value >
using EdgeArrayP = EdgeArray< std::unique_ptr< Value >, false >
 Shorthand for EdgeArray storing std::unique_ptr<Value>. More...
 
template<typename Key2 , typename Value >
using EdgeMultiArray = RegisteredMultiArray< edge, Key2, Value, internal::EA >
 
using edgeType = long long
 
using face = FaceElement *
 
template<typename Value , bool WithDefault = true>
using FaceArray = FaceArrayBase< Value, WithDefault >
 
template<typename Value >
using FaceArrayP = FaceArray< std::unique_ptr< Value >, false >
 Shorthand for FaceArray storing std::unique_ptr<Value>. More...
 
using hyperedge = HyperedgeElement *
 The type of hyperedges. More...
 
template<typename Value , bool WithDefault = true>
using HyperedgeArray = HypergraphRegisteredArray< HyperedgeElement, Value, WithDefault >
 Array for labeling the hyperedges in a Hypergraph with an arbitrary Value. More...
 
template<typename Value >
using HyperedgeArrayP = HyperedgeArray< std::unique_ptr< Value >, false >
 Shorthand for HyperedgeArray storing std::unique_ptr<Value>. More...
 
using hypernode = HypernodeElement *
 The type of hypernodes. More...
 
template<typename Value , bool WithDefault = true>
using HypernodeArray = HypergraphRegisteredArray< HypernodeElement, Value, WithDefault >
 Array for labeling the hypernodes in a Hypergraph with an arbitrary Value. More...
 
template<typename Value >
using HypernodeArrayP = HypernodeArray< std::unique_ptr< Value >, false >
 Shorthand for HypernodeArray storing std::unique_ptr<Value>. More...
 
using IPoint = GenericPoint< int >
 Representing a two-dimensional point with integer coordinates. More...
 
using IPolyline = GenericPolyline< IPoint >
 Polylines with IPoint points. More...
 
template<class E >
using ListConstIterator = ListIteratorBase< E, true, false >
 
template<class E >
using ListConstReverseIterator = ListIteratorBase< E, true, true >
 
template<class E >
using ListIterator = ListIteratorBase< E, false, false >
 
template<class E >
using ListReverseIterator = ListIteratorBase< E, false, true >
 
using node = NodeElement *
 The type of nodes. More...
 
template<typename Value , bool WithDefault = true>
using NodeArray = internal::GraphRegisteredArray< NodeElement, Value, WithDefault >
 RegisteredArray for labeling the nodes in a Graph with an arbitrary Value. More...
 
template<typename Value >
using NodeArrayP = NodeArray< std::unique_ptr< Value >, false >
 Shorthand for NodeArray storing std::unique_ptr<Value>. More...
 
template<typename Key2 , typename Value >
using NodeMultiArray = RegisteredMultiArray< node, Key2, Value, internal::NA >
 
using nodeType = long long
 
using pa_label = PALabel *
 
using PredecessorMap = std::unordered_map< node, std::unique_ptr< NodeArray< edge > >>
 
template<typename E , typename P , class C = std::less<P>, template< typename, class > class Impl = PairingHeap>
using PrioritizedQueue = pq_internal::PrioritizedQueue< E, P, C, Impl >
 Prioritized queue interface wrapper for heaps. More...
 
template<class E >
using SListConstIterator = SListIteratorBase< E, true >
 
template<class E >
using SListIterator = SListIteratorBase< E, false >
 
template<class KEY , class INFO , class CMP >
using SortedSequenceConstIterator = SortedSequenceIteratorBase< KEY, INFO, CMP, true, false >
 
template<class KEY , class INFO , class CMP >
using SortedSequenceConstReverseIterator = SortedSequenceIteratorBase< KEY, INFO, CMP, true, true >
 
template<class KEY , class INFO , class CMP >
using SortedSequenceIterator = SortedSequenceIteratorBase< KEY, INFO, CMP, false, false >
 
template<class KEY , class INFO , class CMP >
using SortedSequenceReverseIterator = SortedSequenceIteratorBase< KEY, INFO, CMP, false, true >
 

Enumerations

enum  AlgorithmFailureCode {
  AlgorithmFailureCode::Unknown, AlgorithmFailureCode::IllegalParameter, AlgorithmFailureCode::NoFlow, AlgorithmFailureCode::Sort, AlgorithmFailureCode::Label, AlgorithmFailureCode::ExternalFace, AlgorithmFailureCode::ForbiddenCrossing, AlgorithmFailureCode::TimelimitExceeded, AlgorithmFailureCode::NoSolutionFound, AlgorithmFailureCode::IndexOutOfBounds, AlgorithmFailureCode::PrimalBound, AlgorithmFailureCode::DualBound, AlgorithmFailureCode::NotInteger, AlgorithmFailureCode::Buffer,
  AlgorithmFailureCode::AddVar, AlgorithmFailureCode::Sorter, AlgorithmFailureCode::Phase, AlgorithmFailureCode::Active, AlgorithmFailureCode::NoSolution, AlgorithmFailureCode::MakeFeasible, AlgorithmFailureCode::Guarantee, AlgorithmFailureCode::BranchingVariable, AlgorithmFailureCode::Strategy, AlgorithmFailureCode::CloseHalf, AlgorithmFailureCode::StandardPool, AlgorithmFailureCode::Variable, AlgorithmFailureCode::LpIf, AlgorithmFailureCode::Lp,
  AlgorithmFailureCode::Bstack, AlgorithmFailureCode::LpStatus, AlgorithmFailureCode::BranchingRule, AlgorithmFailureCode::FixSet, AlgorithmFailureCode::LpSub, AlgorithmFailureCode::String, AlgorithmFailureCode::Constraint, AlgorithmFailureCode::Pool, AlgorithmFailureCode::Global, AlgorithmFailureCode::FsVarStat, AlgorithmFailureCode::LpVarStat, AlgorithmFailureCode::OsiIf, AlgorithmFailureCode::ConBranchRule, AlgorithmFailureCode::Timer,
  AlgorithmFailureCode::Array, AlgorithmFailureCode::Csense, AlgorithmFailureCode::BPrioQueue, AlgorithmFailureCode::FixCand, AlgorithmFailureCode::BHeap, AlgorithmFailureCode::Poolslot, AlgorithmFailureCode::SparVec, AlgorithmFailureCode::Convar, AlgorithmFailureCode::Ostream, AlgorithmFailureCode::Hash, AlgorithmFailureCode::Paramaster, AlgorithmFailureCode::InfeasCon, AlgorithmFailureCode::STOP
}
 Code for an internal failure condition. More...
 
enum  BoyerMyrvoldEdgeType { BoyerMyrvoldEdgeType::Undefined = 0, BoyerMyrvoldEdgeType::Selfloop = 1, BoyerMyrvoldEdgeType::Back = 2, BoyerMyrvoldEdgeType::Dfs = 3, BoyerMyrvoldEdgeType::DfsParallel = 4, BoyerMyrvoldEdgeType::BackDeleted = 5 }
 Type of edge. More...
 
enum  CompressionOptions { CompressionOptions::PathCompression = 0, CompressionOptions::PathSplitting = 1, CompressionOptions::PathHalving = 2, CompressionOptions::Type1Reversal = 4, CompressionOptions::Collapsing = 5, CompressionOptions::Disabled = 6 }
 Defines options for compression search paths. More...
 
enum  ConstraintEdgeType { ConstraintEdgeType::BasicArc, ConstraintEdgeType::VertexSizeArc, ConstraintEdgeType::VisibilityArc, ConstraintEdgeType::FixToZeroArc, ConstraintEdgeType::ReducibleArc, ConstraintEdgeType::MedianArc }
 Types of edges in the constraint graph. More...
 
enum  CPUFeature { CPUFeature::MMX, CPUFeature::SSE, CPUFeature::SSE2, CPUFeature::SSE3, CPUFeature::SSSE3, CPUFeature::SSE4_1, CPUFeature::SSE4_2, CPUFeature::VMX, CPUFeature::SMX, CPUFeature::EST, CPUFeature::MONITOR }
 Special features supported by a x86/x64 CPU. More...
 
enum  CPUFeatureMask : unsigned int { CPUFeatureMask::MMX = 1 << static_cast<int>(CPUFeature::MMX), CPUFeatureMask::SSE = 1 << static_cast<int>(CPUFeature::SSE), CPUFeatureMask::SSE2 = 1 << static_cast<int>(CPUFeature::SSE2), CPUFeatureMask::SSE3 = 1 << static_cast<int>(CPUFeature::SSE3), CPUFeatureMask::SSSE3 = 1 << static_cast<int>(CPUFeature::SSSE3), CPUFeatureMask::SSE4_1 = 1 << static_cast<int>(CPUFeature::SSE4_1), CPUFeatureMask::SSE4_2 = 1 << static_cast<int>(CPUFeature::SSE4_2), CPUFeatureMask::VMX = 1 << static_cast<int>(CPUFeature::VMX), CPUFeatureMask::SMX = 1 << static_cast<int>(CPUFeature::SMX), CPUFeatureMask::EST = 1 << static_cast<int>(CPUFeature::EST), CPUFeatureMask::MONITOR = 1 << static_cast<int>(CPUFeature::MONITOR) }
 Bit mask for CPU features. More...
 
enum  Direction { Direction::before, Direction::after }
 
enum  EdgeArrow { EdgeArrow::None, EdgeArrow::Last, EdgeArrow::First, EdgeArrow::Both, EdgeArrow::Undefined }
 Types for edge arrows. More...
 
enum  EdgeStandardType { EdgeStandardType::clique = 0x0001, EdgeStandardType::star = 0x0002, EdgeStandardType::tree = 0x0003 }
 Enumeration class of possible edge standard representations. More...
 
enum  FillPattern {
  FillPattern::None, FillPattern::Solid, FillPattern::Dense1, FillPattern::Dense2, FillPattern::Dense3, FillPattern::Dense4, FillPattern::Dense5, FillPattern::Dense6, FillPattern::Dense7, FillPattern::Horizontal, FillPattern::Vertical, FillPattern::Cross, FillPattern::BackwardDiagonal, FillPattern::ForwardDiagonal,
  FillPattern::DiagonalCross
}
 Fill patterns. More...
 
enum  InterleavingOptions { InterleavingOptions::Disabled = 0, InterleavingOptions::Rem = 1, InterleavingOptions::Tarjan = 2, InterleavingOptions::Type0Reversal = 3, InterleavingOptions::SplittingCompression }
 Defines options for interleaving find/link operations in quickUnion. More...
 
enum  IntersectionType { IntersectionType::None, IntersectionType::SinglePoint, IntersectionType::Overlapping }
 Determines the type of intersection of two geometric objects. More...
 
enum  LabelType { LabelType::End1 = 0, LabelType::Mult1, LabelType::Name, LabelType::End2, LabelType::Mult2, LabelType::NumLabels }
 
enum  LibraryNotSupportedCode { LibraryNotSupportedCode::Unknown, LibraryNotSupportedCode::Coin, LibraryNotSupportedCode::Abacus, LibraryNotSupportedCode::Cgal, LibraryNotSupportedCode::FunctionNotImplemented, LibraryNotSupportedCode::MissingCallbackImplementation, LibraryNotSupportedCode::STOP }
 Code for the library which was intended to get used, but its use is not supported. More...
 
enum  LinkOptions { LinkOptions::Naive = 0, LinkOptions::Index = 1, LinkOptions::Size = 2, LinkOptions::Rank = 3 }
 Defines options for linking two sets. More...
 
enum  MeasureEnum { MeasureEnum::zero, MeasureEnum::log, MeasureEnum::sum, MeasureEnum::squared }
 
enum  OrderComp { OrderComp::SAME, OrderComp::REVERSED, OrderComp::DIFFERENT }
 
enum  OrderEnum { OrderEnum::asc, OrderEnum::desc, OrderEnum::rnd }
 
enum  Orientation { Orientation::topToBottom, Orientation::bottomToTop, Orientation::leftToRight, Orientation::rightToLeft }
 Determines the orientation in hierarchical layouts. More...
 
enum  OrthoBendType : char { OrthoBendType::convexBend = '0', OrthoBendType::reflexBend = '1' }
 
enum  OrthoDir { OrthoDir::North = 0, OrthoDir::East = 1, OrthoDir::South = 2, OrthoDir::West = 3, OrthoDir::Undefined = 4 }
 
enum  RemoveReinsertType { RemoveReinsertType::None, RemoveReinsertType::Inserted, RemoveReinsertType::MostCrossed, RemoveReinsertType::All, RemoveReinsertType::Incremental, RemoveReinsertType::IncInserted }
 The postprocessing method for edge insertion algorithms. More...
 
enum  Shape { Shape::Rect, Shape::RoundedRect, Shape::Ellipse, Shape::Triangle, Shape::Pentagon, Shape::Hexagon, Shape::Octagon, Shape::Rhomb, Shape::Trapeze, Shape::Parallelogram, Shape::InvTriangle, Shape::InvTrapeze, Shape::InvParallelogram, Shape::Image }
 Types for node shapes. More...
 
enum  SpringForceModel { SpringForceModel::FruchtermanReingold, SpringForceModel::FruchtermanReingoldModAttr, SpringForceModel::FruchtermanReingoldModRep, SpringForceModel::Eades, SpringForceModel::Hachul, SpringForceModel::Gronemann }
 The force model used for computing forces on nodes. More...
 
enum  StrokeLineCap : unsigned char { StrokeLineCap::Butt, StrokeLineCap::Round, StrokeLineCap::Square }
 Line cap types of strokes. More...
 
enum  StrokeLineJoin : unsigned char { StrokeLineJoin::Miter, StrokeLineJoin::Round, StrokeLineJoin::Bevel }
 Line join types of strokes. More...
 
enum  StrokeType : unsigned char { StrokeType::None, StrokeType::Solid, StrokeType::Dash, StrokeType::Dot, StrokeType::Dashdot, StrokeType::Dashdotdot }
 Line types of strokes. More...
 
enum  UMLEdgeTypeConstants {
  UMLEdgeTypeConstants::PrimAssociation = 0x1, UMLEdgeTypeConstants::PrimGeneralization = 0x2, UMLEdgeTypeConstants::PrimDependency = 0x4, UMLEdgeTypeConstants::SecExpansion = 0x1, UMLEdgeTypeConstants::SecDissect = 0x2, UMLEdgeTypeConstants::SecFaceSplitter = 0x3, UMLEdgeTypeConstants::SecCluster = 0x4, UMLEdgeTypeConstants::SecClique, UMLEdgeTypeConstants::Merger = 0x1, UMLEdgeTypeConstants::Vertical = 0x2, UMLEdgeTypeConstants::Align = 0x3, UMLEdgeTypeConstants::AssClass = 0x8, UMLEdgeTypeConstants::Brother = 0x1, UMLEdgeTypeConstants::HalfBrother = 0x2,
  UMLEdgeTypeConstants::Cousin = 0x3, UMLEdgeTypeConstants::FifthToMerger = 0x1, UMLEdgeTypeConstants::FifthFromMerger = 0x2
}
 
enum  UMLEdgeTypeOffsets { UMLEdgeTypeOffsets::Primary = 0, UMLEdgeTypeOffsets::Secondary = 4, UMLEdgeTypeOffsets::Tertiary = 8, UMLEdgeTypeOffsets::Fourth = 12, UMLEdgeTypeOffsets::Fifth = 16, UMLEdgeTypeOffsets::User = 24 }
 
enum  UMLEdgeTypePatterns : edgeType { UMLEdgeTypePatterns::Primary = 0x0000000f, UMLEdgeTypePatterns::Secondary = 0x000000f0, UMLEdgeTypePatterns::Tertiary = 0x00000f00, UMLEdgeTypePatterns::Fourth = 0x0000f000, UMLEdgeTypePatterns::User = 0xff000000, UMLEdgeTypePatterns::All = 0xffffffff }
 
enum  UMLNodeTypeConstants { UMLNodeTypeConstants::PrimOriginal = 0x1, UMLNodeTypeConstants::PrimCopy = 0x2, UMLNodeTypeConstants::SecStructural = 0x1, UMLNodeTypeConstants::SecNonStructural = 0x2, UMLNodeTypeConstants::TerCrossing = 0x1, UMLNodeTypeConstants::TerExpander = 0x2, UMLNodeTypeConstants::TerHDExpander = 0x6, UMLNodeTypeConstants::TerLDExpander = 0xA, UMLNodeTypeConstants::FourFlow = 0x1, UMLNodeTypeConstants::FourLabel = 0x2, UMLNodeTypeConstants::FourType = 0x3, UMLNodeTypeConstants::FourCorner = 0x4 }
 
enum  UMLNodeTypeOffsets { UMLNodeTypeOffsets::Primary = 0, UMLNodeTypeOffsets::Secondary = 4, UMLNodeTypeOffsets::Tertiary = 8, UMLNodeTypeOffsets::Fourth = 12, UMLNodeTypeOffsets::Fifth = 16, UMLNodeTypeOffsets::User = 24 }
 
enum  UMLNodeTypePatterns : nodeType { UMLNodeTypePatterns::Primary = 0x0000000f, UMLNodeTypePatterns::Secondary = 0x000000f0, UMLNodeTypePatterns::Tertiary = 0x00000f00, UMLNodeTypePatterns::Fourth = 0x0000f000, UMLNodeTypePatterns::User = 0xff000000, UMLNodeTypePatterns::All = 0xffffffff }
 
enum  UMLOpt { UMLOpt::OpAlign = 0x0001, UMLOpt::OpScale = 0x0002, UMLOpt::OpProg = 0x0004 }
 
enum  UsedLabels { UsedLabels::End1 = (1 << static_cast<int>(LabelType::End1)), UsedLabels::Mult1 = (1 << static_cast<int>(LabelType::Mult1)), UsedLabels::Name = (1 << static_cast<int>(LabelType::Name)), UsedLabels::End2 = (1 << static_cast<int>(LabelType::End2)), UsedLabels::Mult2 = (1 << static_cast<int>(LabelType::Mult2)), UsedLabels::lAll = (1 << static_cast<int>(LabelType::NumLabels)) - 1 }
 
enum  whaType { whaType::W, whaType::B, whaType::H, whaType::A }
 The definitions for W, B, H and A describe the type of a node during the computation of the maximal pertinent sequence. More...
 

Functions

void assertStarCentreAndRay (node centre, node ray)
 Check that one vertex is the centre of star while the other is one of its rays. More...
 
HypergraphRegistry< HyperedgeElement >::iterator begin (const HypergraphRegistry< HyperedgeElement > &self)
 
HypergraphRegistry< HypernodeElement >::iterator begin (const HypergraphRegistry< HypernodeElement > &self)
 
void bendEdge (GraphAttributes &GA, edge e, double bend)
 Add a bendpoint to the middle of an edges that is shifted orthogonally by a certain fraction of the edge's length. More...
 
template<typename TCost >
void bfs_SPAP (const Graph &G, NodeArray< NodeArray< TCost >> &distance, TCost edgeCosts)
 Computes all-pairs shortest paths in G using breadth-first serach (BFS). More...
 
template<typename TCost >
void bfs_SPSS (node s, const Graph &G, NodeArray< TCost > &distanceArray, TCost edgeCosts)
 Computes single-source shortest paths from s in G using breadth-first search (BFS). More...
 
template<class E >
void bucketSort (Array< E > &a, int min, int max, BucketFunc< E > &f)
 Bucket-sort array a using bucket assignment f; the values of f must be in the interval [min,max]. More...
 
int calculateTableSize (int actualCount)
 The default growth function for registered arrays. More...
 
template<typename CONTAINER , typename TYPE >
CONTAINER::const_iterator chooseIteratorFrom (const CONTAINER &container, std::function< bool(const TYPE &)> includeElement=[](const TYPE &) { return true;}, bool isFastTest=true)
 Returns an iterator to a random element in the container. More...
 
template<typename CONTAINER , typename TYPE >
CONTAINER::iterator chooseIteratorFrom (CONTAINER &container, std::function< bool(const TYPE &)> includeElement=[](const TYPE &) { return true;}, bool isFastTest=true)
 Returns an iterator to a random element in the container. More...
 
OrderComp compareCyclicOrder (node n, List< adjEntry > &o, bool full_check=false)
 Cyclically compare the rotation of a node with a given cyclic order. More...
 
int computeSTNumbering (const Graph &G, NodeArray< int > &numbering, node s=nullptr, node t=nullptr, bool randomized=false)
 Computes an st-Numbering of G. More...
 
DPoint contourPointFromAngle (double angle, int n, double rotationOffset=0, const DPoint &center=DPoint(), const DPoint &vSize=DPoint(1, 1))
 returns the point where a vector, pointing from center in direction of angle, intersects with the contour of any regular n-polygon. More...
 
DPoint contourPointFromAngle (double angle, Shape shape, const DPoint &center=DPoint(), const DPoint &vSize=DPoint(1, 1))
 returns the point where a vector, pointing from center in direction of angle, intersects with the contour of any Shape. More...
 
void copyEmbedding (const Graph &from, Graph &to, std::function< adjEntry(adjEntry)> adjMapFromTo)
 
void degreeDistribution (const Graph &G, Array< int > &degdist)
 Fills degdist with the degree distribution of graph G. More...
 
bool dfsGenTree (UMLGraph &UG, List< edge > &fakedGens, bool fakeTree)
 
bool dfsGenTreeRec (UMLGraph &UG, EdgeArray< bool > &used, NodeArray< int > &hierNumber, int hierNum, node v, List< edge > &fakedGens, bool fakeTree)
 
template<typename TCost >
void dijkstra_SPAP (const Graph &G, NodeArray< NodeArray< TCost >> &shortestPathMatrix, const EdgeArray< TCost > &edgeCosts)
 Computes all-pairs shortest paths in graph G using Dijkstra's algorithm. More...
 
template<typename TCost >
double dijkstra_SPAP (const GraphAttributes &GA, NodeArray< NodeArray< TCost >> &shortestPathMatrix)
 Computes all-pairs shortest paths in GA using Dijkstra's algorithm. More...
 
template<typename TCost >
void dijkstra_SPSS (node s, const Graph &G, NodeArray< TCost > &shortestPathMatrix, const EdgeArray< TCost > &edgeCosts)
 Computes single-source shortest paths from node s in G using Disjkstra's algorithm. More...
 
HypergraphRegistry< HyperedgeElement >::iterator end (const HypergraphRegistry< HyperedgeElement > &self)
 
HypergraphRegistry< HypernodeElement >::iterator end (const HypergraphRegistry< HypernodeElement > &self)
 
bool equalIgnoreCase (const string &str1, const string &str2)
 Compares the two strings str1 and str2, ignoring the case of characters. More...
 
bool filter_any_edge (edge e)
 std::function<bool(edge)> that returns true for any edge e More...
 
bool filter_any_node (node n)
 std::function<bool(node)> that returns true for any node n More...
 
edge firstOutGen (UMLGraph &UG, node v, EdgeArray< bool > &)
 
void fixLoops (Graph &G, const std::function< void(edge, edge)> &cb)
 Safely call a function on all self-loops to, e.g., subdivide or remove them. More...
 
void fixParallels (Graph &G, const std::function< void(edge, edge)> &cb)
 Safely call a function on all parallel edges to, e.g., subdivide or remove them. More...
 
template<typename TCost >
void floydWarshall_SPAP (NodeArray< NodeArray< TCost >> &shortestPathMatrix, const Graph &G)
 Computes all-pairs shortest paths in graph G using Floyd-Warshall's algorithm. More...
 
template<class ToClass >
ToClass fromString (string key)
 
node getCentreOfStar (node g_n)
 Given a vertex that is either the centre or ray of a star, return the centre of the respective star. More...
 
template<class NODELISTITERATOR , class EDGELIST >
void inducedSubgraph (Graph &G, NODELISTITERATOR &it, EDGELIST &E)
 Computes the edges in a node-induced subgraph. More...
 
void initFillPatternHashing ()
 
void insertAugmentationEdges (const ClusterGraph &CG, Graph &G, std::vector< std::pair< adjEntry, adjEntry >> &augmentation, EdgeSet<> *added=nullptr, bool embedded=true, bool assert_minimal=true)
 Inserts augmentation edges to make a c-plane graph c-connected while maintaining the combinatorial embedding. More...
 
FillPattern intToFillPattern (int i)
 Converts integer i to fill pattern. More...
 
StrokeType intToStrokeType (int i)
 Converts integer i to stroke type. More...
 
bool isBipartite (const Graph &G)
 Checks whether a graph is bipartite. More...
 
bool isBipartite (const Graph &G, NodeArray< bool > &color)
 Checks whether a graph is bipartite. More...
 
template<typename T >
bool isinf (T value)
 
bool isPlanar (const Graph &G)
 Returns true, if G is planar, false otherwise. More...
 
bool isPointCoveredByNode (const DPoint &point, const DPoint &v, const DPoint &vSize, const Shape &shape)
 Check whether this point lies within a node (using node shapes with same size and aspect as in TikZ). More...
 
bool isRegular (const Graph &G)
 Checks if a graph is regular. More...
 
bool isRegular (const Graph &G, int d)
 Checks if a graph is d-regular. More...
 
bool isSTNumbering (const Graph &G, NodeArray< int > &st_no, int max)
 Tests, whether a numbering of the nodes is an st-numbering. More...
 
bool isSTPlanar (const Graph &graph, const node s, const node t)
 Returns whether G is s-t-planar (i.e. More...
 
bool joinEdge (Graph &G, adjEntry u_adj, adjEntry v_adj, node u, node v)
 Join two edges into one, keeping the two endpoints corresponding to the adjEntries. More...
 
bool joinEdge (Graph &G, adjEntry u_adj, adjEntry v_adj, node u, node v, const std::function< void(edge)> &deleteEdge)
 Join two edges into one, keeping the two endpoints corresponding to the adjEntries and using a custom function for deleting the old edge. More...
 
bool joinEdge (Graph &G, edge u_e, edge v_e, node u, node v)
 Join two edges into one, keeping the two given endpoints. More...
 
bool joinEdge (Graph &G, edge u_e, edge v_e, node u, node v, const std::function< void(edge)> &deleteEdge)
 Join two edges into one, keeping the two given endpoints and using a custom function for deleting the old edge. More...
 
bool maximumDensitySubgraph (Graph &G, NodeSet< true > &subgraphNodes, std::function< node(node)> resultNodeMap=[](node v) { return v;}, int64_t timelimit=-1)
 Calculates the maximum density subgraph of G. More...
 
void moveAdjToBack (Graph &G, adjEntry b)
 Rotate a node to move a given adjEntry to the back of its list. More...
 
void moveAdjToFront (Graph &G, adjEntry f)
 Rotate a node to move a given adjEntry to the front of its list. More...
 
void moveEnd (Graph &G, adjEntry keep_adj, adjEntry new_adj, Direction dir=Direction::after)
 Change one endpoint of an edge observing a certain embedding, no matter its direction. More...
 
void moveEnd (Graph &G, edge e, node keep_end, node new_end)
 Change one endpoint of an edge, no matter its direction. More...
 
void nodeDistribution (const Graph &G, Array< int > &degdist, std::function< int(node)> func)
 Fills dist with the distribution given by a function func in graph G. More...
 
template<class E1 , class E2 >
bool operator!= (const Tuple2< E1, E2 > &t1, const Tuple2< E1, E2 > &t2)
 Inequality operator for 2-tuples. More...
 
bool operator!= (int lhs, BoyerMyrvoldPlanar::EmbeddingGrade rhs)
 
edgeType operator& (edgeType lhs, UMLEdgeTypeConstants rhs)
 
edgeType operator& (edgeType lhs, UMLEdgeTypePatterns rhs)
 
int operator& (int i, TopologyModule::Options b)
 
int operator& (int lhs, UMLOpt rhs)
 
int operator& (int lhs, WInfo::MinorType rhs)
 
edgeType operator& (UMLEdgeTypePatterns lhs, edgeType rhs)
 
int operator+= (int &lhs, UMLOpt rhs)
 
edgeType operator<< (edgeType lhs, UMLEdgeTypeOffsets rhs)
 
edgeType operator<< (edgeType lhs, UMLEdgeTypePatterns rhs)
 
std::ostream & operator<< (std::ostream &os, cluster c)
 
std::ostream & operator<< (std::ostream &os, Configuration::LPSolver lps)
 Output operator for Configuration::LPSolver (uses Configuration::toString(Configuration::LPSolver)). More...
 
std::ostream & operator<< (std::ostream &os, Configuration::MemoryManager mm)
 Output operator for Configuration::MemoryManager (uses Configuration::toString(Configuration::MemoryManager)). More...
 
std::ostream & operator<< (std::ostream &os, Configuration::System sys)
 Output operator for Configuration::System (uses Configuration::toString(Configuration::System)). More...
 
std::ostream & operator<< (std::ostream &os, const BalloonLayout::RootSelection &rs)
 
std::ostream & operator<< (std::ostream &os, const BCTree::BNodeType &obj)
 
std::ostream & operator<< (std::ostream &os, const BCTree::GNodeType &obj)
 
template<class E , class INDEX >
std::ostream & operator<< (std::ostream &os, const BoundedQueue< E, INDEX > &Q)
 Prints BoundedQueue Q to output stream os. More...
 
std::ostream & operator<< (std::ostream &os, const DPolygon &dop)
 Output operator for polygons. More...
 
std::ostream & operator<< (std::ostream &os, const EdgeArrow &ea)
 Output operator. More...
 
std::ostream & operator<< (std::ostream &os, const FillPattern &fp)
 Output operator. More...
 
template<class PointType >
std::ostream & operator<< (std::ostream &os, const GenericLine< PointType > &line)
 Output operator for lines. More...
 
template<typename T >
std::ostream & operator<< (std::ostream &os, const GenericPoint< T > &p)
 Output operator for generic points. More...
 
template<class PointType >
std::ostream & operator<< (std::ostream &os, const GenericSegment< PointType > &dl)
 Output operator for line segments. More...
 
std::ostream & operator<< (std::ostream &os, const Graph::EdgeType &et)
 
std::ostream & operator<< (std::ostream &os, const KuratowskiWrapper::SubdivisionType &obj)
 
template<class E >
std::ostream & operator<< (std::ostream &os, const List< E > &L)
 Prints list L to output stream os. More...
 
template<class E >
std::ostream & operator<< (std::ostream &os, const ListPure< E > &L)
 Prints list L to output stream os. More...
 
std::ostream & operator<< (std::ostream &os, const Module::ReturnType &r)
 
std::ostream & operator<< (std::ostream &os, const NodePair &np)
 
template<class E , class INDEX >
std::ostream & operator<< (std::ostream &os, const ogdf::Array< E, INDEX > &a)
 Prints array a to output stream os. More...
 
template<class E , class INDEX >
std::ostream & operator<< (std::ostream &os, const ogdf::ArrayBuffer< E, INDEX > &a)
 Prints ArrayBuffer a to output stream os. More...
 
template<class E >
std::ostream & operator<< (std::ostream &os, const Queue< E > &Q)
 
template<class E >
std::ostream & operator<< (std::ostream &os, const QueuePure< E > &Q)
 
std::ostream & operator<< (std::ostream &os, const RCCrossings &cr)
 
std::ostream & operator<< (std::ostream &os, const Shape &shape)
 Output operator. More...
 
template<class E >
std::ostream & operator<< (std::ostream &os, const SList< E > &L)
 Output operator. More...
 
template<class E >
std::ostream & operator<< (std::ostream &os, const SListPure< E > &L)
 Output operator. More...
 
std::ostream & operator<< (std::ostream &os, const StrokeType &st)
 Output operator. More...
 
template<class T >
std::ostream & operator<< (std::ostream &os, const SubsetEnumerator< T > &subset)
 
template<class E1 , class E2 >
std::ostream & operator<< (std::ostream &os, const Tuple2< E1, E2 > &t2)
 Output operator for 2-tuples. More...
 
std::ostream & operator<< (std::ostream &os, const UmlModelGraph &modelGraph)
 Output operator for UmlModelGraph. More...
 
std::ostream & operator<< (std::ostream &os, DynamicSPQRForest::TNodeType t)
 
std::ostream & operator<< (std::ostream &os, Logger::Level level)
 
std::ostream & operator<< (std::ostream &os, ogdf::adjEntry adj)
 Output operator for adjacency entries; prints node and twin indices (or "nil"). More...
 
std::ostream & operator<< (std::ostream &os, ogdf::edge e)
 Output operator for edges; prints source and target indices (or "nil"). More...
 
std::ostream & operator<< (std::ostream &os, ogdf::face f)
 Output operator for faces; prints face index (or "nil"). More...
 
std::ostream & operator<< (std::ostream &os, ogdf::node v)
 Output operator for nodes; prints node index (or "nil"). More...
 
std::ostream & operator<< (std::ostream &os, Triconnectivity::CompType type)
 
edgeType operator<< (UMLEdgeTypeConstants lhs, UMLEdgeTypeOffsets rhs)
 
int operator<< (UMLNodeTypeConstants lhs, UMLNodeTypeOffsets rhs)
 
bool operator<= (int lhs, BoyerMyrvoldPlanar::EmbeddingGrade rhs)
 
template<class E1 , class E2 >
bool operator== (const Tuple2< E1, E2 > &t1, const Tuple2< E1, E2 > &t2)
 Equality operator for 2-tuples. More...
 
bool operator== (edgeType lhs, UMLEdgeTypeConstants rhs)
 
bool operator== (int lhs, BoyerMyrvoldPlanar::EmbeddingGrade rhs)
 
bool operator> (int lhs, BoyerMyrvoldPlanar::EmbeddingGrade rhs)
 
edgeType operator>> (edgeType lhs, UMLEdgeTypeOffsets rhs)
 
std::istream & operator>> (std::istream &is, TokenIgnorer token)
 
int operator| (int i, TopologyModule::Options b)
 
int operator| (int lhs, UMLOpt rhs)
 
int operator| (TopologyModule::Options a, TopologyModule::Options b)
 
int operator|= (int &lhs, WInfo::MinorType rhs)
 
unsigned int operator|= (unsigned int &i, CPUFeatureMask fm)
 
int operator~ (UMLOpt rhs)
 
int orientation (const DPoint &p, const DPoint &q, const DPoint &r)
 
int orientation (const DSegment &s, const DPoint &p)
 
bool planarEmbed (Graph &G)
 Returns true, if G is planar, false otherwise. If true is returned, G will be planarly embedded. More...
 
bool planarEmbedPlanarGraph (Graph &G)
 Constructs a planar embedding of G. It assumes that G is planar! More...
 
void planarizeClusterBorderCrossings (const ClusterGraph &CG, Graph &G, EdgeArray< List< std::pair< adjEntry, cluster >>> *subdivisions, const std::function< edge(edge)> &translate)
 Turn cluster borders into cycles of edges and cluster-border-edge-crossings into vertices. More...
 
bool planarSTEmbed (Graph &graph, node s, node t)
 s-t-planarly embeds a graph. More...
 
bool prefixIgnoreCase (const string &prefix, const string &str)
 Tests if prefix is a prefix of str, ignoring the case of characters. More...
 
template<class E , class INDEX >
void print (std::ostream &os, const Array< E, INDEX > &a, char delim=' ')
 Prints array a to output stream os using delimiter delim. More...
 
template<class E , class INDEX >
void print (std::ostream &os, const ArrayBuffer< E, INDEX > &a, char delim=' ')
 Prints ArrayBuffer a to output stream os using delimiter delim. More...
 
template<class E >
void print (std::ostream &os, const List< E > &L, char delim=' ')
 Prints list L to output stream os using delimiter delim. More...
 
template<class E >
void print (std::ostream &os, const ListPure< E > &L, char delim=' ')
 Prints list L to output stream os using delimiter delim. More...
 
template<class E >
void print (std::ostream &os, const Queue< E > &Q, char delim=' ')
 
template<class E >
void print (std::ostream &os, const QueuePure< E > &Q, char delim=' ')
 
template<class E >
void print (std::ostream &os, const SList< E > &L, char delim=' ')
 Prints list L to output stream os using delimiter delim. More...
 
template<class E >
void print (std::ostream &os, const SListPure< E > &L, char delim=' ')
 Prints list L to output stream os using delimiter delim. More...
 
template<class LIST >
void quicksortTemplate (LIST &L)
 
template<class LIST , class COMPARER >
void quicksortTemplate (LIST &L, const COMPARER &comp)
 
double randomDouble (double low, double high)
 Returns a random double value from the interval [low, high). More...
 
double randomDoubleExponential (double beta)
 Returns a random double value from the exponential distribution. More...
 
double randomDoubleNormal (double m, double sd)
 Returns a random double value from the normal distribution with mean m and standard deviation sd. More...
 
int randomNumber (int low, int high)
 Returns random integer between low and high (including). More...
 
long unsigned int randomSeed ()
 Returns a random value suitable as initial seed for a random number engine. More...
 
void reduceLevelPlanarityToClusterPlanarity (const Graph &LG, const std::vector< std::vector< node >> &emb, Graph &G, ClusterGraph &CG, EdgeArray< node > &embMap)
 Perform the reduction from level- to cluster planarity. More...
 
void removeTrailingWhitespace (string &str)
 Removes trailing space, horizontal and vertical tab, feed, newline, and carriage return from str. More...
 
template<typename T >
Reverse< T > reverse (T &container)
 Provides iterators for container to make it easily iterable in reverse. More...
 
template<typename CONTAINER >
void safeForEach (CONTAINER &container, std::function< void(typename CONTAINER::value_type)> func)
 Calls (possibly destructive) func for each element of container. More...
 
template<typename CONTAINER >
bool safeTestForEach (CONTAINER &container, std::function< bool(typename CONTAINER::value_type)> func)
 Like ogdf::safeForEach() but aborts if func returns false. More...
 
template<typename CONTAINER , typename T >
int searchPos (const CONTAINER &C, const T &x)
 Searches for the position of x in container C; returns -1 if not found. More...
 
void setSeed (int val)
 Sets the seed for functions like randomSeed(), randomNumber(), randomDouble(). More...
 
adjEntry splitEdge (Graph &G, adjEntry adj, node new_adj_to_node, node new_adj_to_twin, edge new_edge=nullptr)
 Split an edge, moving the two new middle endpoints to some other vertices observing a certain embedding. More...
 
edge splitEdge (Graph &G, edge old_edge, node new_adj_to_source, node new_adj_to_target, edge new_edge=nullptr)
 Split an edge, moving the two new middle endpoints to some other vertices. More...
 
void spreadParallels (GraphAttributes &GA, double min_spread=0.1, double max_spread=0.6, double max_abs=100)
 A bends to parallel edges to make them distinguishable. More...
 
template<typename E >
static E toEnum (const std::string &str, std::string toString(const E &), const E first, const E last, const E def)
 
template<class FromClass >
string toString (FromClass key)
 
const twosat_var TwoSAT_Var_Undefined (-1)
 
double usedTime (double &T)
 Returns used CPU time from T to current time and assigns current time to T. More...
 

Variables

const std::array< Color, 63 > colors
 An array of 63 different colors to cycle through. More...
 
bool debugMode
 Set to true iff debug mode is used during compilation of the OGDF. More...
 
static constexpr int MIN_TABLE_SIZE = (1 << 4)
 The default minimum table size for registered arrays. More...
 
const EpsilonTest OGDF_GEOM_ET
 
static Initialization s_ogdfInitializer
 

Graph operations

using NodeMap = NodeArray< NodeArray< node > >
 
void graphUnion (Graph &G1, const Graph &G2)
 Forms the disjoint union of G1 and G2. More...
 
void graphUnion (Graph &G1, const Graph &G2, NodeArray< node > &map2to1, bool parallelfree=false, bool directed=false)
 Forms the union of G1 and G2 while identifying nodes from G2 with nodes from G1. More...
 
void graphProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct, const std::function< void(node, node)> &addEdges)
 Computes the graph product of G1 and G2, using a given function to add edges. More...
 
void cartesianProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct)
 Computes the Cartesian product of G1 and G2 and assigns it to product, with \(E = \{(\langle v_1,w_1\rangle, \langle v_1,w_2\rangle) | (w_1,w_2) \in E_2\} \cup \{(\langle v_1,w_1\rangle, \langle v_2,w_1\rangle) | (v_1,v_2) \in E_1\} \). More...
 
void tensorProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct)
 Computes the tensor product of G1 and G2 and assigns it to product, with \(E = \{(\langle v_1,w_1\rangle, \langle v_2,w_2\rangle) | (v_1,v_2) \in E_1 \land (w_1,w_2) \in E_2\} \). More...
 
void lexicographicalProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct)
 Computes the lexicographical product of G1 and G2 and assigns it to product, with \(E = \{(\langle v_1,w_1\rangle, \langle v_2,w_2\rangle) | (v_1,v_2) \in E_1\} \cup \{(\langle v_1,w_1\rangle, \langle v_1,w_2\rangle) | (w_1,w_2) \in E_2\} \). More...
 
void strongProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct)
 Computes the strong product of G1 and G2 and assigns it to product, with \(E = \{(\langle v_1,w_1\rangle, \langle v_1,w_2\rangle) | (w_1,w_2) \in E_2\} \cup \{(\langle v_1,w_1\rangle, \langle v_2,w_1\rangle) | (v_1,v_2) \in E_1\} \cup \{(\langle v_1,w_1\rangle, \langle v_2,w_2\rangle) | (v_1,v_2) \in E_1 \land (w_1,w_2) \in E_2\} \). More...
 
void coNormalProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct)
 Computes the co-normal product of G1 and G2 and assigns it to product, with \(E = \{(\langle v_1,w_1\rangle, \langle v_2,w_2\rangle) | (v_1,v_2) \in E_1 \lor (w_1,w_2) \in E_2\} \). More...
 
void modularProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct)
 Computes the modular product of G1 and G2 and assigns it to product, with \(E = \{(\langle v_1,w_1\rangle, \langle v_2,w_2\rangle) | (v_1,v_2) \in E_1 \land (w_1,w_2) \in E_2\} \cup \{(\langle v_1,w_1\rangle, \langle v_2,w_2\rangle) | (v_1,v_2) \not\in E_1 \land (w_1,w_2) \not\in E_2\} \). More...
 
void rootedProduct (const Graph &G1, const Graph &G2, Graph &product, NodeMap &nodeInProduct, node rootInG2)
 Computes the rooted product of G1 and G2, rooted in rootInG2, and assigns it to product. More...
 

Randomized graph generators

template<typename D >
void randomGeographicalThresholdGraph (Graph &G, Array< int > &weights, D &dist, double threshold, std::function< double(double)> h, int dimension=2)
 Creates a random geometric graph where edges are created based on their distance and the weight of nodes. More...
 
template<typename D >
void randomGeographicalThresholdGraph (Graph &G, Array< int > &weights, D &dist, double threshold, int alpha=2, int dimension=2)
 Creates a random geometric graph where edges are created based on their distance and the weight of nodes. More...
 
void randomRegularGraph (Graph &G, int n, int d)
 Creates a random d-regular graph. More...
 
void randomGraph (Graph &G, int n, int m)
 Creates a random graph. More...
 
bool randomSimpleGraph (Graph &G, int n, int m)
 Creates a random simple graph. More...
 
bool randomSimpleGraphByProbability (Graph &G, int n, double pEdge)
 Creates a random simple graph. More...
 
bool randomSimpleConnectedGraph (Graph &G, int n, int m)
 Creates a random simple and connected graph. More...
 
void randomBiconnectedGraph (Graph &G, int n, int m)
 Creates a random biconnected graph. More...
 
void randomPlanarConnectedGraph (Graph &G, int n, int m)
 Creates a random connected (simple) planar (embedded) graph. More...
 
void randomPlanarBiconnectedGraph (Graph &G, int n, int m, bool multiEdges=false)
 Creates a random planar biconnected (embedded) graph. More...
 
void randomPlanarBiconnectedDigraph (Graph &G, int n, int m, double p=0, bool multiEdges=false)
 Creates a random planar biconnected acyclic (embedded) digraph. More...
 
void randomUpwardPlanarBiconnectedDigraph (Graph &G, int n, int m)
 Creates a random upward planar biconnected (embedded) digraph. More...
 
void randomPlanarCNBGraph (Graph &G, int n, int m, int b)
 Creates a random planar graph, that is connected, but not biconnected. More...
 
void randomTriconnectedGraph (Graph &G, int n, double p1, double p2)
 Creates a random triconnected (and simple) graph. More...
 
void randomPlanarTriconnectedGraph (Graph &G, int n, int m)
 Creates a random planar triconnected (and simple) graph. More...
 
void randomPlanarTriconnectedGraph (Graph &G, int n, double p1, double p2)
 Creates a random planar triconnected (and simple) graph. More...
 
void randomTree (Graph &G, int n)
 Creates a random tree (simpler version. More...
 
void randomTree (Graph &G, int n, int maxDeg, int maxWidth)
 Creates a random tree. More...
 
void randomDigraph (Graph &G, int n, double p)
 Creates a random (simple) directed graph. More...
 
void randomSeriesParallelDAG (Graph &G, int edges, double p=0.5, double flt=0.0)
 Creates a random (simple, biconnected) series parallel DAG. More...
 
void randomGeometricCubeGraph (Graph &G, int nodes, double threshold, int dimension=2)
 Creates a random geometric graph by laying out nodes in a unit n-cube. Nodes with a distance < threshold are connected, 0 <= threshold <= sqrt(dimension). The graph is simple. More...
 
void randomWaxmanGraph (Graph &G, int nodes, double alpha, double beta, double width=1.0, double height=1.0)
 Generates a Waxman graph where nodes are uniformly randomly placed in a grid, then edges are inserted based on nodes' euclidean distances. More...
 
void preferentialAttachmentGraph (Graph &G, int nodes, int minDegree)
 Creates a graph where new nodes are more likely to connect to nodes with high degree. More...
 
void randomWattsStrogatzGraph (Graph &G, int n, int k, double probability)
 Creates a "small world" graph as described by Watts & Strogatz. More...
 
void randomChungLuGraph (Graph &G, Array< int > expectedDegreeDistribution)
 Creates a graph where edges are inserted based on given weights. More...
 
void randomEdgesGraph (Graph &G, std::function< double(node, node)> probability)
 Inserts edges into the given graph based on probabilities given by a callback function. More...
 
void randomProperMaximalLevelPlaneGraph (Graph &G, std::vector< std::vector< node >> &emb, int N, int K, bool radial)
 Generates a random proper, maximal (radial) level-plane graph. More...
 
void randomHierarchy (Graph &G, int n, int m, bool planar, bool singleSource, bool longEdges)
 Creates a random hierarchical graph. More...
 
void pruneEdges (Graph &G, int max_edges, int min_deg)
 Removed random edges from /p G until it has less than /p max_edges edges, not removing edges from nodes with degree less than /p min_deg. More...
 

Detailed Description

The namespace for all OGDF objects.

Typedef Documentation

◆ AdjEntryArray

template<typename Value , bool WithDefault = true>
using ogdf::AdjEntryArray = typedef internal::GraphRegisteredArray<AdjElement, Value , WithDefault , internal::GraphAdjRegistry>

RegisteredArray for labeling the adjEntries in a Graph with an arbitrary Value.

Definition at line 744 of file Graph_d.h.

◆ AdjEntryArrayP

template<typename Value >
using ogdf::AdjEntryArrayP = typedef AdjEntryArray <std::unique_ptr<Value>, false>

Shorthand for AdjEntryArray 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 744 of file Graph_d.h.

◆ AdjEntryMultiArray

template<typename Key2 , typename Value >
using ogdf::AdjEntryMultiArray = typedef RegisteredMultiArray<adjEntry, Key2, Value, internal::AEA>

Definition at line 52 of file GraphMultiArray.h.

◆ adjHypergraphEntry

The type of adjacency entries.

Definition at line 70 of file Hypergraph.h.

◆ ArrayConstIterator

template<class E >
using ogdf::ArrayConstIterator = typedef const E*

Definition at line 51 of file Array.h.

◆ ArrayConstReverseIterator

template<class E >
using ogdf::ArrayConstReverseIterator = typedef ArrayReverseIteratorBase<E, true>

Definition at line 55 of file Array.h.

◆ ArrayIterator

template<class E >
using ogdf::ArrayIterator = typedef E*

Definition at line 53 of file Array.h.

◆ ArrayReverseIterator

template<class E >
using ogdf::ArrayReverseIterator = typedef ArrayReverseIteratorBase<E, false>

Definition at line 57 of file Array.h.

◆ cluster

using ogdf::cluster = typedef ClusterElement*

The type of clusters.

Definition at line 49 of file ClusterGraph.h.

◆ ClusterArray

template<typename Value , bool WithDefault = true>
using ogdf::ClusterArray = typedef ClusterArrayBase< Value , WithDefault >

Definition at line 307 of file ClusterGraph.h.

◆ ClusterArrayP

template<typename Value >
using ogdf::ClusterArrayP = typedef ClusterArray <std::unique_ptr<Value>, false>

Shorthand for ClusterArray 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 307 of file ClusterGraph.h.

◆ ClusterGraphRegistry

◆ CombinatorialEmbeddingRegistry

◆ CrossingMinimalPositionFast

Definition at line 117 of file CrossingMinimalPosition.h.

◆ DLine

using ogdf::DLine = typedef GenericLine<DPoint>

Lines with real coordinates.

Definition at line 620 of file geometry.h.

◆ DPoint

using ogdf::DPoint = typedef GenericPoint<double>

Representing two-dimensional point with real coordinates.

Definition at line 237 of file geometry.h.

◆ DPolyline

Polylines with DPoint points.

Definition at line 445 of file geometry.h.

◆ DSegment

Segments with real coordinates.

Definition at line 786 of file geometry.h.

◆ DualGraph

using ogdf::DualGraph = typedef DualGraphBase<true>

Definition at line 44 of file DualGraph.h.

◆ DynamicDualGraph

using ogdf::DynamicDualGraph = typedef DualGraphBase<false>

Definition at line 46 of file DualGraph.h.

◆ EdgeArray

template<typename Value , bool WithDefault = true>
using ogdf::EdgeArray = typedef internal::EdgeArrayBase2< Value , WithDefault >

RegisteredArray for labeling the edges in a Graph with an arbitrary Value.

Definition at line 738 of file Graph_d.h.

◆ EdgeArrayP

template<typename Value >
using ogdf::EdgeArrayP = typedef EdgeArray <std::unique_ptr<Value>, false>

Shorthand for EdgeArray 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 738 of file Graph_d.h.

◆ EdgeMultiArray

template<typename Key2 , typename Value >
using ogdf::EdgeMultiArray = typedef RegisteredMultiArray<edge, Key2, Value, internal::EA>

Definition at line 50 of file GraphMultiArray.h.

◆ edgeType

using ogdf::edgeType = typedef long long

Definition at line 42 of file EdgeTypePatterns.h.

◆ face

using ogdf::face = typedef FaceElement*

Definition at line 40 of file CombinatorialEmbedding.h.

◆ FaceArray

template<typename Value , bool WithDefault = true>
using ogdf::FaceArray = typedef FaceArrayBase< Value , WithDefault >

Definition at line 183 of file CombinatorialEmbedding.h.

◆ FaceArrayP

template<typename Value >
using ogdf::FaceArrayP = typedef FaceArray <std::unique_ptr<Value>, false>

Shorthand for FaceArray 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 183 of file CombinatorialEmbedding.h.

◆ hyperedge

The type of hyperedges.

Definition at line 67 of file Hypergraph.h.

◆ HyperedgeArray

template<typename Value , bool WithDefault = true>
using ogdf::HyperedgeArray = typedef HypergraphRegisteredArray<HyperedgeElement, Value , WithDefault >

Array for labeling the hyperedges in a Hypergraph with an arbitrary Value.

Definition at line 395 of file Hypergraph.h.

◆ HyperedgeArrayP

template<typename Value >
using ogdf::HyperedgeArrayP = typedef HyperedgeArray <std::unique_ptr<Value>, false>

Shorthand for HyperedgeArray 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 395 of file Hypergraph.h.

◆ hypernode

The type of hypernodes.

Definition at line 64 of file Hypergraph.h.

◆ HypernodeArray

template<typename Value , bool WithDefault = true>
using ogdf::HypernodeArray = typedef HypergraphRegisteredArray<HypernodeElement, Value , WithDefault >

Array for labeling the hypernodes in a Hypergraph with an arbitrary Value.

Definition at line 390 of file Hypergraph.h.

◆ HypernodeArrayP

template<typename Value >
using ogdf::HypernodeArrayP = typedef HypernodeArray <std::unique_ptr<Value>, false>

Shorthand for HypernodeArray 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 390 of file Hypergraph.h.

◆ IPoint

using ogdf::IPoint = typedef GenericPoint<int>

Representing a two-dimensional point with integer coordinates.

Definition at line 234 of file geometry.h.

◆ IPolyline

Polylines with IPoint points.

Definition at line 442 of file geometry.h.

◆ ListConstIterator

template<class E >
using ogdf::ListConstIterator = typedef ListIteratorBase<E, true, false>

Definition at line 48 of file List.h.

◆ ListConstReverseIterator

template<class E >
using ogdf::ListConstReverseIterator = typedef ListIteratorBase<E, true, true>

Definition at line 52 of file List.h.

◆ ListIterator

template<class E >
using ogdf::ListIterator = typedef ListIteratorBase<E, false, false>

Definition at line 50 of file List.h.

◆ ListReverseIterator

template<class E >
using ogdf::ListReverseIterator = typedef ListIteratorBase<E, false, true>

Definition at line 54 of file List.h.

◆ NodeArray

template<typename Value , bool WithDefault = true>
using ogdf::NodeArray = typedef internal::GraphRegisteredArray<NodeElement, Value , WithDefault >

RegisteredArray for labeling the nodes in a Graph with an arbitrary Value.

Definition at line 733 of file Graph_d.h.

◆ NodeArrayP

template<typename Value >
using ogdf::NodeArrayP = typedef NodeArray <std::unique_ptr<Value>, false>

Shorthand for NodeArray 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 733 of file Graph_d.h.

◆ NodeMultiArray

template<typename Key2 , typename Value >
using ogdf::NodeMultiArray = typedef RegisteredMultiArray<node, Key2, Value, internal::NA>

Definition at line 48 of file GraphMultiArray.h.

◆ nodeType

using ogdf::nodeType = typedef long long

Definition at line 44 of file NodeTypePatterns.h.

◆ pa_label

using ogdf::pa_label = typedef PALabel*

Definition at line 120 of file PALabel.h.

◆ PredecessorMap

using ogdf::PredecessorMap = typedef std::unordered_map<node, std::unique_ptr<NodeArray<edge> >>

Definition at line 43 of file StarInserter.h.

◆ SListConstIterator

template<class E >
using ogdf::SListConstIterator = typedef SListIteratorBase<E, true>

Definition at line 43 of file SList.h.

◆ SListIterator

template<class E >
using ogdf::SListIterator = typedef SListIteratorBase<E, false>

Definition at line 45 of file SList.h.

◆ SortedSequenceConstIterator

template<class KEY , class INFO , class CMP >
using ogdf::SortedSequenceConstIterator = typedef SortedSequenceIteratorBase<KEY, INFO, CMP, true, false>

Definition at line 49 of file SortedSequence.h.

◆ SortedSequenceConstReverseIterator

template<class KEY , class INFO , class CMP >
using ogdf::SortedSequenceConstReverseIterator = typedef SortedSequenceIteratorBase<KEY, INFO, CMP, true, true>

Definition at line 55 of file SortedSequence.h.

◆ SortedSequenceIterator

template<class KEY , class INFO , class CMP >
using ogdf::SortedSequenceIterator = typedef SortedSequenceIteratorBase<KEY, INFO, CMP, false, false>

Definition at line 46 of file SortedSequence.h.

◆ SortedSequenceReverseIterator

template<class KEY , class INFO , class CMP >
using ogdf::SortedSequenceReverseIterator = typedef SortedSequenceIteratorBase<KEY, INFO, CMP, false, true>

Definition at line 52 of file SortedSequence.h.

Enumeration Type Documentation

◆ BoyerMyrvoldEdgeType

Type of edge.

Enumerator
Undefined 

undefined

Selfloop 

selfloop

Back 

backedge

Dfs 

DFS-edge.

DfsParallel 

parallel DFS-edge

BackDeleted 

deleted backedge

Definition at line 45 of file BoyerMyrvoldPlanar.h.

◆ CompressionOptions

Defines options for compression search paths.

Enumerator
PathCompression 

Path Compression.

PathSplitting 

Path Splitting (default)

PathHalving 

Path Halving.

Type1Reversal 

Reversal of type 1.

Collapsing 

Collapsing.

Disabled 

No Compression.

Definition at line 52 of file DisjointSets.h.

◆ ConstraintEdgeType

Types of edges in the constraint graph.

Enumerator
BasicArc 
VertexSizeArc 
VisibilityArc 
FixToZeroArc 

can be compacted to zero length, can be fixed

ReducibleArc 

can be compacted to zero length

MedianArc 

inserted to replace some reducible in fixzerolength

Definition at line 42 of file CommonCompactionConstraintGraphBase.h.

◆ Direction

enum ogdf::Direction
strong
Enumerator
before 
after 

Definition at line 148 of file basic.h.

◆ EdgeStandardType

Enumeration class of possible edge standard representations.

Enumerator
clique 

no new dummy nodes are introduced, for every hyperedge e = (v_1, ..., v_l), we add a cliqie K_l connecting hypernodes incident with e

star 

for every hyperedge e = {v_1, ..., v_l} a single new dummy node v_e is introduced, moreover, v_e becomes the center of a new star connecting all hypernodes incident with e (ie. {v_1, v_e}, ..., {v_l, v_e} are added)

tree 

for every hyperedge e a minimal subcubic tree connecting all hypernodes incident with e together is added with all its nodes and edges, leaves of tree are hypernodes, all non-leaf nodes are newly introduced dummy nodes.

Definition at line 51 of file EdgeStandardRep.h.

◆ InterleavingOptions

Defines options for interleaving find/link operations in quickUnion.

Enumerator
Disabled 

No Interleaving (default)

Rem 

Rem's Algorithm (only compatible with LinkOptions::Index)

Tarjan 

Tarjan's and van Leeuwen's Algorithm (only compatible with LinkOptions::Rank)

Type0Reversal 

Interleaved Reversal of Type 0 (only compatible with LinkOptions::Naive)

SplittingCompression 

Interleaved Path Splitting Path Compression (only compatible with LinkOptions::Index)

Definition at line 62 of file DisjointSets.h.

◆ IntersectionType

Determines the type of intersection of two geometric objects.

Enumerator
None 

Two geometric objects do not intersect.

SinglePoint 

Two geometric objects intersect in a single point.

Overlapping 

Two geometric objects intersect in infinitely many points.

Definition at line 56 of file geometry.h.

◆ LabelType

enum ogdf::LabelType
strong
Enumerator
End1 
Mult1 
Name 
End2 
Mult2 
NumLabels 

the number of available labels at an edge

Definition at line 45 of file ELabelInterface.h.

◆ LinkOptions

enum ogdf::LinkOptions
strong

Defines options for linking two sets.

Enumerator
Naive 

Naive Link.

Index 

Link by index (default)

Size 

Link by size.

Rank 

Link by rank.

Definition at line 44 of file DisjointSets.h.

◆ MeasureEnum

enum ogdf::MeasureEnum
strong
Enumerator
zero 
log 
sum 
squared 

Definition at line 41 of file VertexOrder.h.

◆ OrderComp

enum ogdf::OrderComp
strong
Enumerator
SAME 
REVERSED 
DIFFERENT 

Definition at line 80 of file GraphUtils.h.

◆ OrderEnum

enum ogdf::OrderEnum
strong
Enumerator
asc 
desc 
rnd 

Definition at line 40 of file VertexOrder.h.

◆ Orientation

enum ogdf::Orientation
strong

Determines the orientation in hierarchical layouts.

Enumerator
topToBottom 

Edges are oriented from top to bottom.

bottomToTop 

Edges are oriented from bottom to top.

leftToRight 

Edges are oriented from left to right.

rightToLeft 

Edges are oriented from right to left.

Definition at line 48 of file geometry.h.

◆ OrthoBendType

enum ogdf::OrthoBendType : char
strong
Enumerator
convexBend 
reflexBend 

Definition at line 45 of file OrthoRep.h.

◆ OrthoDir

enum ogdf::OrthoDir
strong
Enumerator
North 
East 
South 
West 
Undefined 

Definition at line 50 of file OrthoRep.h.

◆ UMLEdgeTypeConstants

Enumerator
PrimAssociation 
PrimGeneralization 
PrimDependency 
SecExpansion 
SecDissect 
SecFaceSplitter 
SecCluster 
SecClique 
Merger 
Vertical 
Align 
AssClass 
Brother 
HalfBrother 
Cousin 
FifthToMerger 
FifthFromMerger 

Definition at line 65 of file EdgeTypePatterns.h.

◆ UMLEdgeTypeOffsets

Enumerator
Primary 
Secondary 
Tertiary 
Fourth 
Fifth 
User 

Definition at line 106 of file EdgeTypePatterns.h.

◆ UMLEdgeTypePatterns

Enumerator
Primary 
Secondary 
Tertiary 
Fourth 
User 
All 

Definition at line 44 of file EdgeTypePatterns.h.

◆ UMLNodeTypeConstants

Enumerator
PrimOriginal 
PrimCopy 
SecStructural 
SecNonStructural 
TerCrossing 
TerExpander 
TerHDExpander 
TerLDExpander 
FourFlow 
FourLabel 
FourType 
FourCorner 

Definition at line 55 of file NodeTypePatterns.h.

◆ UMLNodeTypeOffsets

Enumerator
Primary 
Secondary 
Tertiary 
Fourth 
Fifth 
User 

Definition at line 82 of file NodeTypePatterns.h.

◆ UMLNodeTypePatterns

Enumerator
Primary 
Secondary 
Tertiary 
Fourth 
User 
All 

Definition at line 46 of file NodeTypePatterns.h.

◆ UMLOpt

enum ogdf::UMLOpt
strong
Enumerator
OpAlign 
OpScale 
OpProg 

Definition at line 53 of file OrthoRep.h.

◆ UsedLabels

enum ogdf::UsedLabels
strong
Enumerator
End1 
Mult1 
Name 
End2 
Mult2 
lAll 

Definition at line 54 of file ELabelInterface.h.

◆ whaType

enum ogdf::whaType
strong

The definitions for W, B, H and A describe the type of a node during the computation of the maximal pertinent sequence.

A pertinent node X in the PQ-tree will be either of type B, W, A or H. Together with some other information stored at every node the pertinent leaves in the frontier of X that have to be deleted. For further description of the types see Jayakumar, Thulasiraman and Swamy 1989.

Enumerator

Definition at line 48 of file whaInfo.h.

Function Documentation

◆ assertStarCentreAndRay()

void ogdf::assertStarCentreAndRay ( node  centre,
node  ray 
)

Check that one vertex is the centre of star while the other is one of its rays.

◆ begin() [1/2]

HypergraphRegistry<HyperedgeElement>::iterator ogdf::begin ( const HypergraphRegistry< HyperedgeElement > &  self)

◆ begin() [2/2]

HypergraphRegistry<HypernodeElement>::iterator ogdf::begin ( const HypergraphRegistry< HypernodeElement > &  self)

◆ bendEdge()

void ogdf::bendEdge ( GraphAttributes GA,
edge  e,
double  bend 
)

Add a bendpoint to the middle of an edges that is shifted orthogonally by a certain fraction of the edge's length.

See also
spreadParallels()

◆ bucketSort()

template<class E >
void ogdf::bucketSort ( Array< E > &  a,
int  min,
int  max,
BucketFunc< E > &  f 
)

Bucket-sort array a using bucket assignment f; the values of f must be in the interval [min,max].

Definition at line 1154 of file SList.h.

◆ calculateTableSize()

int ogdf::calculateTableSize ( int  actualCount)
inline

The default growth function for registered arrays.

Returns
The smallest power of 2 that is no less than actualCount and MIN_TABLE_SIZE.

Definition at line 58 of file RegisteredArray.h.

◆ chooseIteratorFrom() [1/2]

template<typename CONTAINER , typename TYPE >
CONTAINER::const_iterator ogdf::chooseIteratorFrom ( const CONTAINER &  container,
std::function< bool(const TYPE &)>  includeElement = [](const TYPE&) { return true; },
bool  isFastTest = true 
)

Returns an iterator to a random element in the container.

Takes linear time (given that includeElement runs in constant time). An invalid iterator is returned iff no feasible element exists. When includeElement has a non-constant runtime it is recommended to set isFastTest to false.

Template Parameters
CONTAINERType of the container. Any iterable container that implements size() is applicable.
TYPEType of elements returned by the iterator of the container.
Parameters
containerThe container that we want to pick an element from.
includeElementSpecifies for each element whether it is feasible to be chosen. Defaults to all elements being feasible. Must return the same value when called twice with the same element.
isFastTestShould be set to false to prevent querying the same element multiple times for feasibility. Note that this will result in additional space allocated linear in the size of the container.
Returns
An iterator to the picked element or an invalid iterator if no such element exists.

Definition at line 229 of file list_templates.h.

◆ chooseIteratorFrom() [2/2]

template<typename CONTAINER , typename TYPE >
CONTAINER::iterator ogdf::chooseIteratorFrom ( CONTAINER &  container,
std::function< bool(const TYPE &)>  includeElement = [](const TYPE&) { return true; },
bool  isFastTest = true 
)

Returns an iterator to a random element in the container.

Takes linear time (given that includeElement runs in constant time). An invalid iterator is returned iff no feasible element exists. When includeElement has a non-constant runtime it is recommended to set isFastTest to false.

Template Parameters
CONTAINERType of the container. Any iterable container that implements size() is applicable.
TYPEType of elements returned by the iterator of the container.
Parameters
containerThe container that we want to pick an element from.
includeElementSpecifies for each element whether it is feasible to be chosen. Defaults to all elements being feasible. Must return the same value when called twice with the same element.
isFastTestShould be set to false to prevent querying the same element multiple times for feasibility. Note that this will result in additional space allocated linear in the size of the container.
Returns
An iterator to the picked element or an invalid iterator if no such element exists.

Definition at line 219 of file list_templates.h.

◆ compareCyclicOrder()

OrderComp ogdf::compareCyclicOrder ( node  n,
List< adjEntry > &  o,
bool  full_check = false 
)

Cyclically compare the rotation of a node with a given cyclic order.

◆ contourPointFromAngle() [1/2]

DPoint ogdf::contourPointFromAngle ( double  angle,
int  n,
double  rotationOffset = 0,
const DPoint center = DPoint(),
const DPoint vSize = DPoint(1, 1) 
)

returns the point where a vector, pointing from center in direction of angle, intersects with the contour of any regular n-polygon.

angle angle of vector.
n number of polygon sides.
rotationOffset rotational offset of the polygon in RAD.
center center point of the polygon.
vSize Width and height of v.

◆ contourPointFromAngle() [2/2]

DPoint ogdf::contourPointFromAngle ( double  angle,
Shape  shape,
const DPoint center = DPoint(),
const DPoint vSize = DPoint(1, 1) 
)

returns the point where a vector, pointing from center in direction of angle, intersects with the contour of any Shape.

angle angle of vector.
shape shape
center center point of the shape.
vSize Width and height of v.

◆ copyEmbedding()

void ogdf::copyEmbedding ( const Graph from,
Graph to,
std::function< adjEntry(adjEntry)>  adjMapFromTo 
)

◆ dfsGenTree()

bool ogdf::dfsGenTree ( UMLGraph UG,
List< edge > &  fakedGens,
bool  fakeTree 
)

Definition at line 112 of file precondition.h.

◆ dfsGenTreeRec()

bool ogdf::dfsGenTreeRec ( UMLGraph UG,
EdgeArray< bool > &  used,
NodeArray< int > &  hierNumber,
int  hierNum,
node  v,
List< edge > &  fakedGens,
bool  fakeTree 
)

Definition at line 44 of file precondition.h.

◆ end() [1/2]

HypergraphRegistry<HyperedgeElement>::iterator ogdf::end ( const HypergraphRegistry< HyperedgeElement > &  self)

◆ end() [2/2]

HypergraphRegistry<HypernodeElement>::iterator ogdf::end ( const HypergraphRegistry< HypernodeElement > &  self)

◆ equalIgnoreCase()

bool ogdf::equalIgnoreCase ( const string &  str1,
const string &  str2 
)

Compares the two strings str1 and str2, ignoring the case of characters.

◆ filter_any_edge()

bool ogdf::filter_any_edge ( edge  e)

std::function<bool(edge)> that returns true for any edge e

◆ filter_any_node()

bool ogdf::filter_any_node ( node  n)

std::function<bool(node)> that returns true for any node n

◆ firstOutGen()

edge ogdf::firstOutGen ( UMLGraph UG,
node  v,
EdgeArray< bool > &   
)

Definition at line 94 of file precondition.h.

◆ fixLoops()

void ogdf::fixLoops ( Graph G,
const std::function< void(edge, edge)> &  cb 
)

Safely call a function on all self-loops to, e.g., subdivide or remove them.

◆ fixParallels()

void ogdf::fixParallels ( Graph G,
const std::function< void(edge, edge)> &  cb 
)

Safely call a function on all parallel edges to, e.g., subdivide or remove them.

◆ fromString()

template<class ToClass >
ToClass ogdf::fromString ( string  key)
inline

Definition at line 568 of file graphics.h.

◆ getCentreOfStar()

node ogdf::getCentreOfStar ( node  g_n)

Given a vertex that is either the centre or ray of a star, return the centre of the respective star.

◆ inducedSubgraph()

template<class NODELISTITERATOR , class EDGELIST >
void ogdf::inducedSubgraph ( Graph G,
NODELISTITERATOR &  it,
EDGELIST &  E 
)

Computes the edges in a node-induced subgraph.

Template Parameters
NODELISTITERATORis the type of iterators for the input list of nodes.
EDGELISTis the type of the returned edge list.
Parameters
Gis the input graph.
itis a list iterator pointing to the first element in a list of nodes, whose induced subgraph is considered.
Eis assigned the list of edges in the node-induced subgraph.

Definition at line 51 of file extended_graph_alg.h.

◆ initFillPatternHashing()

void ogdf::initFillPatternHashing ( )

◆ insertAugmentationEdges()

void ogdf::insertAugmentationEdges ( const ClusterGraph CG,
Graph G,
std::vector< std::pair< adjEntry, adjEntry >> &  augmentation,
EdgeSet<> *  added = nullptr,
bool  embedded = true,
bool  assert_minimal = true 
)

Inserts augmentation edges to make a c-plane graph c-connected while maintaining the combinatorial embedding.

Parameters
CGthe ClusterGraph.
Gthe corresponding Graph.
augmentationa list of adjEntry pairs pointing to (before) the start and (after) the end point of the augmentation edges.
addedif non-null, will be assigned all newly added edges.
embeddedwhether CG represents a c-plane embedding that need to be maintained throughout the insertion.
assert_minimalwhether we should assert that the set of augmentation edges is minimal for c-connectivity.
See also
SyncPlan::SyncPlan(Graph*, ClusterGraph*, std::vector<std::pair<adjEntry, adjEntry>>*, ClusterGraphAttributes*)

◆ isForest() [1/2]

bool ogdf::isForest ( const Graph G)
inline

Returns true iff G is a forest consisting only of arborescences.

Deprecated:
"isArborescenceForest() should be used instead."
Parameters
Gis the input graph.
Returns
true if G represents an arborescence forest, false otherwise.

Definition at line 955 of file simple_graph_alg.h.

◆ isForest() [2/2]

bool ogdf::isForest ( const Graph G,
List< node > &  roots 
)
inline

Returns true iff G is a forest consisting only of arborescences.

Deprecated:
"isArborescenceForest() should be used instead."
Parameters
Gis the input graph.
rootsis assigned the list of root nodes of the arborescences in the forest. If false is returned, roots is undefined.
Returns
true if G represents an arborescence forest, false otherwise.

Definition at line 947 of file simple_graph_alg.h.

◆ isFreeForest()

bool ogdf::isFreeForest ( const Graph G)
inline

Returns true iff the undirected graph G is acyclic.

Deprecated:
"isAcyclicUndirected() should be used instead."
Parameters
Gis the input graph
Returns
true if G contains no undirected cycle, false otherwise.

Definition at line 905 of file simple_graph_alg.h.

◆ isinf()

template<typename T >
bool ogdf::isinf ( value)
inline

Definition at line 44 of file PivotMDS.h.

◆ isPointCoveredByNode()

bool ogdf::isPointCoveredByNode ( const DPoint point,
const DPoint v,
const DPoint vSize,
const Shape shape 
)

Check whether this point lies within a node (using node shapes with same size and aspect as in TikZ).

Parameters
pointthe point
vthe node.
vSizeWidth and height of v.
shapeof the node.
Returns
true if the point lies within the border of v.

◆ joinEdge() [1/4]

bool ogdf::joinEdge ( Graph G,
adjEntry  u_adj,
adjEntry  v_adj,
node  u,
node  v 
)

Join two edges into one, keeping the two endpoints corresponding to the adjEntries.

◆ joinEdge() [2/4]

bool ogdf::joinEdge ( Graph G,
adjEntry  u_adj,
adjEntry  v_adj,
node  u,
node  v,
const std::function< void(edge)> &  deleteEdge 
)

Join two edges into one, keeping the two endpoints corresponding to the adjEntries and using a custom function for deleting the old edge.

◆ joinEdge() [3/4]

bool ogdf::joinEdge ( Graph G,
edge  u_e,
edge  v_e,
node  u,
node  v 
)

Join two edges into one, keeping the two given endpoints.

◆ joinEdge() [4/4]

bool ogdf::joinEdge ( Graph G,
edge  u_e,
edge  v_e,
node  u,
node  v,
const std::function< void(edge)> &  deleteEdge 
)

Join two edges into one, keeping the two given endpoints and using a custom function for deleting the old edge.

◆ moveAdjToBack()

void ogdf::moveAdjToBack ( Graph G,
adjEntry  b 
)

Rotate a node to move a given adjEntry to the back of its list.

◆ moveAdjToFront()

void ogdf::moveAdjToFront ( Graph G,
adjEntry  f 
)

Rotate a node to move a given adjEntry to the front of its list.

◆ moveEnd() [1/2]

void ogdf::moveEnd ( Graph G,
adjEntry  keep_adj,
adjEntry  new_adj,
Direction  dir = Direction::after 
)

Change one endpoint of an edge observing a certain embedding, no matter its direction.

◆ moveEnd() [2/2]

void ogdf::moveEnd ( Graph G,
edge  e,
node  keep_end,
node  new_end 
)

Change one endpoint of an edge, no matter its direction.

◆ operator!=() [1/2]

template<class E1 , class E2 >
bool ogdf::operator!= ( const Tuple2< E1, E2 > &  t1,
const Tuple2< E1, E2 > &  t2 
)

Inequality operator for 2-tuples.

Definition at line 80 of file tuples.h.

◆ operator!=() [2/2]

bool ogdf::operator!= ( int  lhs,
BoyerMyrvoldPlanar::EmbeddingGrade  rhs 
)
inline

Definition at line 483 of file BoyerMyrvoldPlanar.h.

◆ operator&() [1/6]

edgeType ogdf::operator& ( edgeType  lhs,
UMLEdgeTypeConstants  rhs 
)
inline

Definition at line 98 of file EdgeTypePatterns.h.

◆ operator&() [2/6]

edgeType ogdf::operator& ( edgeType  lhs,
UMLEdgeTypePatterns  rhs 
)
inline

Definition at line 53 of file EdgeTypePatterns.h.

◆ operator&() [3/6]

int ogdf::operator& ( int  i,
TopologyModule::Options  b 
)
inline

Definition at line 201 of file TopologyModule.h.

◆ operator&() [4/6]

int ogdf::operator& ( int  lhs,
UMLOpt  rhs 
)
inline

Definition at line 59 of file OrthoRep.h.

◆ operator&() [5/6]

int ogdf::operator& ( int  lhs,
WInfo::MinorType  rhs 
)
inline

Definition at line 81 of file FindKuratowskis.h.

◆ operator&() [6/6]

edgeType ogdf::operator& ( UMLEdgeTypePatterns  lhs,
edgeType  rhs 
)
inline

Definition at line 57 of file EdgeTypePatterns.h.

◆ operator+=()

int ogdf::operator+= ( int &  lhs,
UMLOpt  rhs 
)
inline

Definition at line 61 of file OrthoRep.h.

◆ operator<<() [1/43]

edgeType ogdf::operator<< ( edgeType  lhs,
UMLEdgeTypeOffsets  rhs 
)
inline

Definition at line 119 of file EdgeTypePatterns.h.

◆ operator<<() [2/43]

edgeType ogdf::operator<< ( edgeType  lhs,
UMLEdgeTypePatterns  rhs 
)
inline

Definition at line 61 of file EdgeTypePatterns.h.

◆ operator<<() [3/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
cluster  c 
)

◆ operator<<() [4/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
Configuration::LPSolver  lps 
)
inline

Output operator for Configuration::LPSolver (uses Configuration::toString(Configuration::LPSolver)).

Definition at line 409 of file config.h.

◆ operator<<() [5/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
Configuration::MemoryManager  mm 
)
inline

◆ operator<<() [6/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
Configuration::System  sys 
)
inline

Output operator for Configuration::System (uses Configuration::toString(Configuration::System)).

Definition at line 403 of file config.h.

◆ operator<<() [7/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const BalloonLayout::RootSelection rs 
)

◆ operator<<() [8/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const BCTree::BNodeType obj 
)

◆ operator<<() [9/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const BCTree::GNodeType obj 
)

◆ operator<<() [10/43]

template<class E , class INDEX >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const BoundedQueue< E, INDEX > &  Q 
)

Prints BoundedQueue Q to output stream os.

Definition at line 235 of file BoundedQueue.h.

◆ operator<<() [11/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const DPolygon dop 
)

Output operator for polygons.

◆ operator<<() [12/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const EdgeArrow ea 
)

Output operator.

◆ operator<<() [13/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const FillPattern fp 
)

Output operator.

◆ operator<<() [14/43]

template<class PointType >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const GenericLine< PointType > &  line 
)

Output operator for lines.

Definition at line 610 of file geometry.h.

◆ operator<<() [15/43]

template<typename T >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const GenericPoint< T > &  p 
)

Output operator for generic points.

Definition at line 228 of file geometry.h.

◆ operator<<() [16/43]

template<class PointType >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const GenericSegment< PointType > &  dl 
)

Output operator for line segments.

Definition at line 780 of file geometry.h.

◆ operator<<() [17/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const Graph::EdgeType et 
)

◆ operator<<() [18/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const KuratowskiWrapper::SubdivisionType obj 
)

◆ operator<<() [19/43]

template<class E >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const List< E > &  L 
)

Prints list L to output stream os.

Definition at line 1813 of file List.h.

◆ operator<<() [20/43]

template<class E >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const ListPure< E > &  L 
)

Prints list L to output stream os.

Definition at line 1806 of file List.h.

◆ operator<<() [21/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const Module::ReturnType r 
)

◆ operator<<() [22/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const NodePair np 
)
inline

Definition at line 2109 of file Graph_d.h.

◆ operator<<() [23/43]

template<class E , class INDEX >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const ogdf::Array< E, INDEX > &  a 
)

Prints array a to output stream os.

Definition at line 978 of file Array.h.

◆ operator<<() [24/43]

template<class E , class INDEX >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const ogdf::ArrayBuffer< E, INDEX > &  a 
)

Prints ArrayBuffer a to output stream os.

Definition at line 511 of file ArrayBuffer.h.

◆ operator<<() [25/43]

template<class E >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const Queue< E > &  Q 
)

Definition at line 365 of file Queue.h.

◆ operator<<() [26/43]

template<class E >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const QueuePure< E > &  Q 
)

Definition at line 359 of file Queue.h.

◆ operator<<() [27/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const RCCrossings cr 
)

◆ operator<<() [28/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const Shape shape 
)

Output operator.

◆ operator<<() [29/43]

template<class E >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const SList< E > &  L 
)

Output operator.

Definition at line 1147 of file SList.h.

◆ operator<<() [30/43]

template<class E >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const SListPure< E > &  L 
)

Output operator.

Definition at line 1140 of file SList.h.

◆ operator<<() [31/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const StrokeType st 
)

Output operator.

◆ operator<<() [32/43]

template<class T >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const SubsetEnumerator< T > &  subset 
)

Definition at line 267 of file SubsetEnumerator.h.

◆ operator<<() [33/43]

template<class E1 , class E2 >
std::ostream& ogdf::operator<< ( std::ostream &  os,
const Tuple2< E1, E2 > &  t2 
)

Output operator for 2-tuples.

Definition at line 86 of file tuples.h.

◆ operator<<() [34/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
const UmlModelGraph modelGraph 
)

Output operator for UmlModelGraph.

◆ operator<<() [35/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
DynamicSPQRForest::TNodeType  t 
)

◆ operator<<() [36/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
Logger::Level  level 
)
inline

Definition at line 318 of file Logger.h.

◆ operator<<() [37/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
ogdf::adjEntry  adj 
)

Output operator for adjacency entries; prints node and twin indices (or "nil").

◆ operator<<() [38/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
ogdf::edge  e 
)

Output operator for edges; prints source and target indices (or "nil").

◆ operator<<() [39/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
ogdf::face  f 
)

Output operator for faces; prints face index (or "nil").

◆ operator<<() [40/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
ogdf::node  v 
)

Output operator for nodes; prints node index (or "nil").

◆ operator<<() [41/43]

std::ostream& ogdf::operator<< ( std::ostream &  os,
Triconnectivity::CompType  type 
)

◆ operator<<() [42/43]

edgeType ogdf::operator<< ( UMLEdgeTypeConstants  lhs,
UMLEdgeTypeOffsets  rhs 
)
inline

Definition at line 123 of file EdgeTypePatterns.h.

◆ operator<<() [43/43]

int ogdf::operator<< ( UMLNodeTypeConstants  lhs,
UMLNodeTypeOffsets  rhs 
)
inline

Definition at line 91 of file NodeTypePatterns.h.

◆ operator<=()

bool ogdf::operator<= ( int  lhs,
BoyerMyrvoldPlanar::EmbeddingGrade  rhs 
)
inline

Definition at line 487 of file BoyerMyrvoldPlanar.h.

◆ operator==() [1/3]

template<class E1 , class E2 >
bool ogdf::operator== ( const Tuple2< E1, E2 > &  t1,
const Tuple2< E1, E2 > &  t2 
)

Equality operator for 2-tuples.

Definition at line 74 of file tuples.h.

◆ operator==() [2/3]

bool ogdf::operator== ( edgeType  lhs,
UMLEdgeTypeConstants  rhs 
)
inline

Definition at line 102 of file EdgeTypePatterns.h.

◆ operator==() [3/3]

bool ogdf::operator== ( int  lhs,
BoyerMyrvoldPlanar::EmbeddingGrade  rhs 
)
inline

Definition at line 479 of file BoyerMyrvoldPlanar.h.

◆ operator>()

bool ogdf::operator> ( int  lhs,
BoyerMyrvoldPlanar::EmbeddingGrade  rhs 
)
inline

Definition at line 475 of file BoyerMyrvoldPlanar.h.

◆ operator>>() [1/2]

edgeType ogdf::operator>> ( edgeType  lhs,
UMLEdgeTypeOffsets  rhs 
)
inline

Definition at line 115 of file EdgeTypePatterns.h.

◆ operator>>() [2/2]

std::istream& ogdf::operator>> ( std::istream &  is,
TokenIgnorer  token 
)

◆ operator|() [1/3]

int ogdf::operator| ( int  i,
TopologyModule::Options  b 
)
inline

Definition at line 207 of file TopologyModule.h.

◆ operator|() [2/3]

int ogdf::operator| ( int  lhs,
UMLOpt  rhs 
)
inline

Definition at line 55 of file OrthoRep.h.

◆ operator|() [3/3]

int ogdf::operator| ( TopologyModule::Options  a,
TopologyModule::Options  b 
)
inline

Definition at line 203 of file TopologyModule.h.

◆ operator|=() [1/2]

int ogdf::operator|= ( int &  lhs,
WInfo::MinorType  rhs 
)
inline

Definition at line 83 of file FindKuratowskis.h.

◆ operator|=() [2/2]

unsigned int ogdf::operator|= ( unsigned int &  i,
CPUFeatureMask  fm 
)

◆ operator~()

int ogdf::operator~ ( UMLOpt  rhs)
inline

Definition at line 57 of file OrthoRep.h.

◆ orientation() [1/2]

int ogdf::orientation ( const DPoint p,
const DPoint q,
const DPoint r 
)

◆ orientation() [2/2]

int ogdf::orientation ( const DSegment s,
const DPoint p 
)
inline

Definition at line 1054 of file geometry.h.

◆ planarizeClusterBorderCrossings()

void ogdf::planarizeClusterBorderCrossings ( const ClusterGraph CG,
Graph G,
EdgeArray< List< std::pair< adjEntry, cluster >>> *  subdivisions,
const std::function< edge(edge)> &  translate 
)

Turn cluster borders into cycles of edges and cluster-border-edge-crossings into vertices.

This subdivides each edge once for each cluster border it crosses and then cyclically connects the subdivision vertices according to their order in adjEntries(), which usually corresponds to a cluster-planar embedding (in which case the resulting graph will also be planarly embedded). Graph /p G may be a copy of the constGraph() of this ClusterGraph, in which case the translate function should translate nodes of constGraph() into nodes of G.

Parameters
CGA cluster-planar embedded ClusterGraph.
G(A copy of) The graph underlying CG, into which we insert the new edges. Must have a corresponding planar embedding.
subdivisionsIf non-null, will be assigned information about the subdivisions that were created.
translateA mapping from the nodes of constGraph() to those of G.
Precondition
CG.adjAvailable() is true

◆ prefixIgnoreCase()

bool ogdf::prefixIgnoreCase ( const string &  prefix,
const string &  str 
)

Tests if prefix is a prefix of str, ignoring the case of characters.

◆ print() [1/8]

template<class E , class INDEX >
void ogdf::print ( std::ostream &  os,
const Array< E, INDEX > &  a,
char  delim = ' ' 
)

Prints array a to output stream os using delimiter delim.

Definition at line 967 of file Array.h.

◆ print() [2/8]

template<class E , class INDEX >
void ogdf::print ( std::ostream &  os,
const ArrayBuffer< E, INDEX > &  a,
char  delim = ' ' 
)

Prints ArrayBuffer a to output stream os using delimiter delim.

Definition at line 500 of file ArrayBuffer.h.

◆ print() [3/8]

template<class E >
void ogdf::print ( std::ostream &  os,
const List< E > &  L,
char  delim = ' ' 
)

Prints list L to output stream os using delimiter delim.

Definition at line 1800 of file List.h.

◆ print() [4/8]

template<class E >
void ogdf::print ( std::ostream &  os,
const ListPure< E > &  L,
char  delim = ' ' 
)

Prints list L to output stream os using delimiter delim.

Definition at line 1788 of file List.h.

◆ print() [5/8]

template<class E >
void ogdf::print ( std::ostream &  os,
const Queue< E > &  Q,
char  delim = ' ' 
)

Definition at line 353 of file Queue.h.

◆ print() [6/8]

template<class E >
void ogdf::print ( std::ostream &  os,
const QueuePure< E > &  Q,
char  delim = ' ' 
)

Definition at line 347 of file Queue.h.

◆ print() [7/8]

template<class E >
void ogdf::print ( std::ostream &  os,
const SList< E > &  L,
char  delim = ' ' 
)

Prints list L to output stream os using delimiter delim.

Definition at line 1134 of file SList.h.

◆ print() [8/8]

template<class E >
void ogdf::print ( std::ostream &  os,
const SListPure< E > &  L,
char  delim = ' ' 
)

Prints list L to output stream os using delimiter delim.

Definition at line 1122 of file SList.h.

◆ quicksortTemplate() [1/2]

template<class LIST >
void ogdf::quicksortTemplate ( LIST &  L)

Definition at line 77 of file list_templates.h.

◆ quicksortTemplate() [2/2]

template<class LIST , class COMPARER >
void ogdf::quicksortTemplate ( LIST &  L,
const COMPARER &  comp 
)

Definition at line 84 of file list_templates.h.

◆ reduceLevelPlanarityToClusterPlanarity()

void ogdf::reduceLevelPlanarityToClusterPlanarity ( const Graph LG,
const std::vector< std::vector< node >> &  emb,
Graph G,
ClusterGraph CG,
EdgeArray< node > &  embMap 
)

Perform the reduction from level- to cluster planarity.

See Section 6.4.4 of https://doi.org/10.15475/cpatp.2024

Parameters
LGthe graph that should be tested for level planarity.
embthe level assignment, containing a list of its contained nodes for each level.
Gwill be assigned the graph resulting from the reduction.
CGwill be assigned the clustering resulting from the reduction.
embMapmaps from some edges in G to the nodes of LG, the order in which they cross the borders of CG will induce a cluster planar embedding

◆ removeTrailingWhitespace()

void ogdf::removeTrailingWhitespace ( string &  str)

Removes trailing space, horizontal and vertical tab, feed, newline, and carriage return from str.

◆ safeForEach()

template<typename CONTAINER >
void ogdf::safeForEach ( CONTAINER &  container,
std::function< void(typename CONTAINER::value_type)>  func 
)
inline

Calls (possibly destructive) func for each element of container.

"Destructive" means that the current iterator of container may be deleted during the processing of func. It works by saving the successor of the current element before calling func.

Definition at line 49 of file list_templates.h.

◆ safeTestForEach()

template<typename CONTAINER >
bool ogdf::safeTestForEach ( CONTAINER &  container,
std::function< bool(typename CONTAINER::value_type)>  func 
)
inline

Like ogdf::safeForEach() but aborts if func returns false.

Returns
false if func returns false, true if the whole container was processed

Definition at line 64 of file list_templates.h.

◆ splitEdge() [1/2]

adjEntry ogdf::splitEdge ( Graph G,
adjEntry  adj,
node  new_adj_to_node,
node  new_adj_to_twin,
edge  new_edge = nullptr 
)

Split an edge, moving the two new middle endpoints to some other vertices observing a certain embedding.

◆ splitEdge() [2/2]

edge ogdf::splitEdge ( Graph G,
edge  old_edge,
node  new_adj_to_source,
node  new_adj_to_target,
edge  new_edge = nullptr 
)

Split an edge, moving the two new middle endpoints to some other vertices.

◆ spreadParallels()

void ogdf::spreadParallels ( GraphAttributes GA,
double  min_spread = 0.1,
double  max_spread = 0.6,
double  max_abs = 100 
)

A bends to parallel edges to make them distinguishable.

◆ toEnum()

template<typename E >
static E ogdf::toEnum ( const std::string &  str,
std::string   toStringconst E &,
const E  first,
const E  last,
const E  def 
)
inlinestatic

Definition at line 55 of file Utils.h.

◆ toString()

template<class FromClass >
string ogdf::toString ( FromClass  key)
inline

Definition at line 557 of file graphics.h.

◆ TwoSAT_Var_Undefined()

const twosat_var ogdf::TwoSAT_Var_Undefined ( 1)

Variable Documentation

◆ colors

const std::array<Color, 63> ogdf::colors

An array of 63 different colors to cycle through.

◆ debugMode

bool ogdf::debugMode

Set to true iff debug mode is used during compilation of the OGDF.

◆ MIN_TABLE_SIZE

constexpr int ogdf::MIN_TABLE_SIZE = (1 << 4)
staticconstexpr

The default minimum table size for registered arrays.

Definition at line 52 of file RegisteredArray.h.

◆ OGDF_GEOM_ET

const EpsilonTest ogdf::OGDF_GEOM_ET

◆ s_ogdfInitializer

Initialization ogdf::s_ogdfInitializer
static

Definition at line 140 of file basic.h.