Open
Graph Drawing
Framework

 v.2012.07
 

ogdf Namespace Reference

The namespace for all OGDF objects. More...

Classes

class  AcyclicSubgraphModule
 Base class of algorithms for computing a maximal acyclic subgraph. More...
class  AddNodeComparer
 Node comparer for sorting by decreasing int values. More...
class  AdjacencyOracle
 Tells you in linear time if two nodes are adjacent. More...
class  AdjElement
 Class for adjacency list elements. More...
class  AdjEntryArray
 Dynamic arrays indexed with adjacency entries. More...
class  AdjEntryArrayBase
 Abstract base class for adjacency entry arrays. More...
class  AlgorithmFailureException
 Exception thrown when an algorithm realizes an internal bug that prevents it from continuing. More...
struct  AnyOption
class  Array
 The parameterized class Array<E,INDEX> implements dynamic arrays of type E. More...
class  Array2D
 The parameterized class Array2D<E> 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  Attraction
 Energy function for attraction between two adjacent vertices. 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
class  BaseConstraint
 Basic constraint type. More...
class  BasicPageRank
 Basic page rank calculation. More...
class  BCTree
 Static BC-trees. More...
class  BendString
class  BiconnectedShellingOrder
 Computation of the shelling order for biconnected graphs. More...
class  BinaryHeap
class  BinaryHeap2
 Min-heap priority queue realized by a data array. More...
class  BinaryHeapSimple
 Dynamically growing binary heap tuned for efficiency on a small interface (compared to BinaryHeap). More...
class  BoothLueker
 Booth-Lueker planarity test. More...
class  BoundedQueue
 The parameterized class BoundedQueue<E,INDEX> implements queues with bounded size. More...
class  BoundedStack
 The parameterized class BoundedStack<E,INDEX> implements stacks with bounded size. More...
class  BoyerMyrvold
 Wrapper class used for preprocessing and valid invocation of the planarity test. More...
class  BoyerMyrvoldInit
 This class is used in the Boyer-Myrvold planarity test for preprocessing purposes. 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  BucketLowPoint
 BucketFunction for lowPoint buckets. 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
class  CconnectClusterPlanarEmbed
class  ChunkConnection
class  CirclePlacer
class  CircularLayout
 The circular layout algorithm. More...
class  CliqueFinder
 Finds cliques and dense subgraphs. More...
class  ClusterArray
 Dynamic arrays indexed with clusters. More...
class  ClusterArrayBase
 Abstract base class for cluster arrays. 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
class  ClusterInfo
 Stores information associated with a cluster. More...
class  ClusterOrthoLayout
class  ClusterOrthoShaper
class  ClusterPlanarizationLayout
 The cluster planarization layout algorithm. More...
class  ClusterPlanRep
class  ClusterPQContainer
class  ClusterSet
class  ClusterSetPure
class  ClusterSetSimple
class  CoffmanGrahamRanking
 The coffman graham ranking algorithm. More...
class  CoinCallbacks
class  CoinManager
class  CombinatorialEmbedding
 Combinatorial embeddings of planar graphs with modification functionality. More...
class  CompactionConstraintGraph
class  CompactionConstraintGraphBase
class  ComponentSplitterLayout
struct  CompressionOption
class  ConnectedSubgraph
class  ConstCombinatorialEmbedding
 Combinatorial embeddings of planar graphs. More...
class  Constraint
class  ConstraintManager
class  ConvexHull
class  CPlanarEdgeInserter
class  CPlanarSubClusteredGraph
 Constructs a c-planar subclustered graph of the input on base of a spanning tree. More...
class  CPlanarSubClusteredST
 Constructs a c-planar subclustered spanning tree of the input by setting edgearray values. More...
class  CPlanarSubgraphModule
 Interface of algorithms for the computation of c-planar subgraphs. More...
class  CriticalSection
 Representation of a critical section. More...
class  CrossingMinimizationModule
 Interface for crossing minimization algorithms. More...
class  CrossingsMatrix
class  CutConstraint
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 >
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  DinoLineBuffer
class  DinoLineBufferPosition
class  DinoTools
class  DinoUmlDiagramGraph
class  DinoUmlModelGraph
class  DinoUmlToGraphConverter
class  DinoXmlParser
class  DinoXmlScanner
class  DisjointSets
 A Union/Find data structure for maintaining disjoint sets. More...
class  DLine
 Lines with real coordinates. More...
class  DominanceLayout
class  DPoint
 Real points. More...
class  DPolygon
 Polygons with real coordinates. More...
class  DPolyline
 Polylines with real coordinates. More...
class  DRect
 Rectangles with real coordinates. More...
class  DScaler
 Scaling between coordinate systems. More...
class  DSegment
 Line segments with real coordinates. More...
class  DualGraph
 A dual graph including its combinatorial embedding of an embedded graph. More...
class  DVector
 Vectors with real coordinates. More...
class  DynamicBacktrack
 Extracts all possible paths with backtracking using given edges and special constraints. 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  EdgeArray
 Dynamic arrays indexed with edges. More...
class  EdgeArrayBase
 Abstract base class for edge arrays. More...
class  EdgeAttributes
class  EdgeComparer
 The EdgeComparer compares adjacency entries on base of the position of the nodes given by an Attributed Graph's layout information. More...
class  EdgeComparerSimple
class  EdgeCoverMerger
class  EdgeElement
 Class for the representation of edges. More...
class  EdgeInsertionModule
 Interface for edge insertion algorithms. More...
class  EdgeLabel
class  EdgeLeg
class  EdgeRouter
struct  edgeValue
class  EdgeVar
class  EdgeWeightedGraph
class  EdgeWeightedGraphCopy
class  EFreeList
 Simple implementation of a FreeList which buffers the memory allocation of an embedded list item. More...
class  EFreeListIndexPool
 More complex implementation of a FreeList, which is able to generate indeices for the elements. More...
class  EFreeListTypes
 Type declarations for EFreeList. More...
class  ELabelInterface
class  ELabelPos
class  ELabelPosSimple
class  EList
 The embedded list template. More...
class  EListIterator
 Implementation of an embedded list iterator used by EList. More...
class  EmbedderMaxFace
 Planar graph embedding with maximum external face. More...
class  EmbedderMaxFaceBiconnectedGraphs
 Computes an embedding of a biconnected graph with maximum external face. More...
class  EmbedderMaxFaceBiconnectedGraphsLayers
 Computes an embedding of a biconnected graph with maximum external face (plus layers approach). More...
class  EmbedderMaxFaceLayers
 Planar graph embedding with maximum external face (plus layers approach). More...
class  EmbedderMinDepth
 Planar graph embedding with minimum block-nesting depth. More...
class  EmbedderMinDepthMaxFace
 Planar graph embedding with minimum block-nesting depth and maximum external face. More...
class  EmbedderMinDepthMaxFaceLayers
 Planar graph embedding with minimum block-nesting depth and maximum external face (plus layers approach). More...
class  EmbedderMinDepthPiTa
 Planar graph embedding with minimum block-nesting depth for given embedded blocks. More...
class  EmbedderModule
 Base class for embedder algorithms. More...
class  EmbedIndicator
class  EmbedPQTree
class  EnergyFunction
 The interface for energy functions for the Davidson Harel graph drawing method. More...
class  ENGLayer
class  EStack
 The embedded stack class template. More...
class  Exception
 Base class of all ogdf exceptions. More...
class  ExpansionGraph
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  FaceArray
 Dynamic arrays indexed with faces of a combinatorial embedding. More...
class  FaceArrayBase
 Abstract base class for face arrays. More...
class  FaceElement
 Faces in a combinatorial embedding. More...
class  FaceSet
 maintains a subset S of the faces contained in an associated combinatorial embedding E More...
class  FaceSetPure
 maintains a subset S of the faces contained in an associated combinatorial embedding E More...
class  FaceSetSimple
 Maintains a subset S of the faces contained in an associated combinatorial embedding E. More...
class  FaceSinkGraph
class  FastHierarchyLayout
 Coordinate assignment phase for the Sugiyama algorithm by Buchheim et al.. More...
class  FastMultipoleEmbedder
class  FastMultipoleMultilevelEmbedder
class  FastPlanarSubgraph
 Computation of a planar subgraph using PQ-trees. More...
class  FastSimpleHierarchyLayout
 Coordinate assignment phase for the Sugiyama algorithm by Ulrik Brandes and Boris Köpf. More...
class  FeasibleUpwardPlanarSubgraph
class  FindKuratowskis
 This class collects information about Kuratowski Subdivisions which is used for extraction later. More...
class  FixedEmbeddingInserter
 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  FixedUpwardEmbeddingInserter
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  ForceLayoutModule
 Interface of general layout algorithms. More...
class  FPPLayout
class  FruchtermanReingold
class  FUPSModule
 Interface for feasible upward planar subgraph algorithms. More...
class  FUPSSimple
class  GEMLayout
 The energy-based GEM layout algorithm. More...
class  GenericPoint
 Parameterized base class for points. More...
struct  GmlObject
class  GmlParser
class  Graph
 Data type for general directed graphs (adjacency list representation). More...
class  GraphAttributes
 Stores additional attributes of a graph (like layout information). More...
class  GraphConstraints
class  GraphCopy
 Copies of graphs supporting edge splitting. More...
class  GraphCopyAttributes
class  GraphCopySimple
 Copies of graphs with mapping between nodes and edges. More...
class  GraphElement
 The base class for objects used by graphs like nodes, edges, etc. More...
class  GraphList
 Lists of graph objects (like nodes, edges, etc.). More...
class  GraphListBase
 Base class for GraphElement lists. More...
class  GraphObserver
 Abstract Base class for classes that need to keep track of changes in the graph like addition/deletion of nodes or edges. derived classes have to overload nodeDeleted, nodeAdded edgeDeleted, edgeAdded these functions should be called by Graph before (delete) More...
class  GraphReduction
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
class  GridLayoutModule
 Base class for grid layout algorithms. More...
class  GridLayoutPlanRepModule
 Base class for grid layout algorithms operating on a PlanRep. 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
class  HeapElement
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  HyperGraph
class  HyperGraphTypes
 Type declarations for HyperGraph. More...
class  IncNodeInserter
class  IndependentSetMerger
class  IndInfo
class  Initialization
class  InitialPlacer
class  InsufficientMemoryException
 Exception thrown when not enough memory is available to execute an algorithm. More...
struct  InterleavingOption
class  IntersectionRectangle
class  IPoint
 Integer points. More...
class  IPolyline
 Polylines with integer coordinates. More...
class  KuratowskiConstraint
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  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 UML layout algorithms. More...
class  Level
 Representation of levels in hierarchies. More...
class  LHTreeNode
class  LibraryNotSupportedException
 Exception thrown when an external library shall be used which is not supported. More...
struct  LinkOption
class  List
 The parameterized class ListPure<E> represents doubly linked lists with content type E. More...
class  ListConstIterator
 The parameterized class ListIterator<E> encapsulates a constant pointer to a list element. More...
class  ListElement
 The parameterized class ListElement<E> represents the structure for elements of doubly linked lists. More...
class  ListIterator
 The parameterized class ListIterator<E> encapsulates a pointer to a dlist element. More...
class  ListPure
 The parameterized class ListPure<E> represents doubly linked lists with content type E. More...
class  LocalBiconnectedMerger
class  Logger
 Centralized global and local logging facility working on streams like 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  Master
class  MatchingMerger
class  Math
class  MaximalPlanarSubgraphSimple
class  MaximumCPlanarSubgraph
 Exact computation of a maximum c-planar subgraph. More...
class  MaximumPlanarSubgraph
class  MaxPlanarEdgesConstraint
class  MaxSequencePQTree
class  MDMFLengthAttribute
class  MedianHeuristic
 The median heuristic for 2-layer crossing minimization. More...
class  MedianPlacer
class  MinCostFlowModule
 Interface for min-cost flow algorithms. More...
class  MinCostFlowReinelt
class  MinCut
class  MinimalClusterConnection
class  MinimumEdgeDistances
class  MinPriorityQueue
class  MixedForceLayout
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  MMMExampleFastLayout
 An example Layout using the Modular Mutlievel Mixer. More...
class  MMMExampleNiceLayout
 An example Layout using the Modular Mutlievel Mixer. More...
class  MMMExampleNoTwistLayout
 An example Layout using the Modular Mutlievel Mixer. More...
class  MMSubgraphPlanarizer
 Planarization approach for minor-monotone crossing minimization. More...
class  MMVariableEmbeddingInserter
 Minor-monotone edge insertion with variable embedding. More...
class  ModularMultilevelMixer
 Modular multilevel graph layout. More...
class  Module
 Base class for modules. More...
class  ModuleOption
 The parameterized base class for module options. More...
class  MultiEdgeApproxInserter
class  MultilevelBuilder
class  MultilevelGraph
class  MultilevelLayout
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
class  NMM
class  NodeArray
 Dynamic arrays indexed with nodes. More...
class  NodeArrayBase
 Abstract base class for node arrays. More...
class  NodeAttributes
class  NodeComparer
class  NodeElement
 Class for the representation of nodes. More...
class  NodeInfo
struct  NodeMerge
struct  nodePair
 Struct for storing the two corresponding nodes of an edge. More...
class  NodePair
class  NodePairEnergy
class  NodeSet
class  NodeSetPure
class  NodeSetSimple
class  NonPlanarCore
class  NoStdComparerException
 Exception thrown when a required standard comparer has not been specialized. More...
class  Ogml
class  OgmlParser
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
class  OrthoRep
class  OrthoShaper
class  Overlap
class  PALabel
 auxiliary class for the planar augmentation algorithm More...
class  ParticleInfo
class  ParticleInfoComparer
class  PertinentGraph
 Pertinent graphs of nodes in an SPQR-tree. 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  Planarity
class  PlanarityGrid
class  PlanarityModule
 Module for planarity testing and planar embeddings. More...
class  PlanarizationGridLayout
 The planarization grid layout algorithm. More...
class  PlanarizationLayout
 The planarization layout algorithm. More...
class  PlanarLeafKey
class  PlanarPQTree
class  PlanarSPQRTree
 SPQR-trees of planar graphs. More...
class  PlanarStraightLayout
 Implementation of the Planar-Straight layout algorithm. More...
class  PlanarSubgraphModule
 Interface for planar subgraph algorithms. More...
class  PlanarSubgraphPQTree
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
class  PlanRepUML
class  PointComparer
class  PoolMemoryAllocator
 The class PoolAllocator represents ogdf's pool memory allocator. More...
class  PQBasicKey
class  PQBasicKeyRoot
class  PQInternalKey
class  PQInternalNode
class  PQLeaf
class  PQLeafKey
class  PQNode
class  PQNodeKey
class  PQNodeRoot
class  PQTree
class  PreconditionViolatedException
 Exception thrown when preconditions are violated. More...
class  PreprocessorLayout
 The PreprocessorLayout removes multi-edges and self-loops. More...
class  Prioritized
 Augments any data elements of type X with keys of type Score. More...
class  ProcrustesPointSet
class  ProcrustesSubLayout
 A simple procrustes analysis implementation. More...
class  QuadTreeNM
class  QuadTreeNodeNM
class  Queue
 The parameterized class Queue<E> implements list-based queues. More...
class  QueuePure
 The parameterized class QueuePure<E> implements list-based queues. More...
class  RadialTreeLayout
 The radial tree layout algorithm. More...
class  RandomMerger
class  RandomPlacer
class  RankingModule
 Interface of algorithms for computing a node ranking. More...
struct  RCCrossings
class  Repulsion
class  RoutingChannel
class  ScalingLayout
 Scales a Graph relative to the ScalingType. More...
class  SchnyderLayout
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
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  SimpleCluster
class  SimpleEmbedder
 Planar graph embedding by using default planarEmbed. 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
 The parameterized class SList<E> represents singly linked lists with content type E. More...
class  SListConstIterator
 The parameterized class SListIterator<E> encapsulates a constant pointer to an slist element. More...
class  SListElement
 The parameterized class SListElement<E> represents the structure for elements of singly linked lists. More...
class  SListIterator
 The parameterized class SListIterator<E> encapsulates a pointer to an slist element. More...
class  SListPure
 The parameterized class SListPure<E> represents singly linked lists with content type E. More...
class  SolarMerger
class  SolarPlacer
class  SplitHeuristic
 The split heuristic for 2-layer crossing minimization. More...
class  SPQRTree
 Linear-time implementation of static SPQR-trees. More...
class  SpringEmbedderFR
 The spring-embedder layout algorithm by Fruchterman and Reingold. More...
class  SpringEmbedderFRExact
class  SpringEmbedderKK
 The spring-embedder layout algorithm by Kamada and Kawai. More...
class  Stack
 The parameterized class Stack<E> implements list-based stacks. More...
class  StackPure
 List-based stacks. More...
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  SteinLibParser
 Reads a SteinLib file and converts it into a weighted graph and a set of terminal nodes. More...
class  StressMajorization
class  String
 Representation of character strings. More...
class  Sub
class  SubgraphPlanarizer
 The planarization approach for crossing minimization. More...
class  SubgraphUpwardPlanarizer
class  SugiyamaLayout
 Sugiyama's layout algorithm. 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
class  TileToRowsCCPacker
 The tile-to-rows algorithm for packing drawings of connected components. More...
class  Timeouter
 class for timeout funtionality More...
class  Top10Heap
 A variant of BinaryHeapSimple which always holds only the X (e.g. X=10) elements with the highest keys. More...
class  TopologyModule
class  TreeLayout
 The tree layout algorithm. More...
class  TriconnectedShellingOrder
class  Tuple2
 Tuples of two elements (2-tuples). More...
class  Tuple3
 Tuples of three elements (3-tuples). More...
class  Tuple4
 Tuples of four elements (4-tuples). More...
class  TutteLayout
class  TwoLayerCrossMin
 Interface of two-layer crossing minimization algorithms. More...
class  TwoLayerCrossMinSimDraw
class  UMLGraph
class  UMLLayoutModule
 Interface of UML layout algorithms. More...
class  UniformGrid
class  UPRLayoutModule
 Interface of hierarchy layout algorithms. More...
class  UpwardEdgeInserterModule
class  UpwardPlanarizationLayout
class  UpwardPlanarizerModule
 Interface for upward planarization algorithms. More...
class  UpwardPlanarModule
class  UpwardPlanarSubgraphModule
 Interface for algorithms for computing an upward planar subgraph. More...
class  UpwardPlanarSubgraphSimple
class  UpwardPlanRep
 Upward planarized representations (of a connected component) of a graph. The upward planarization representation is a single source single sink graph. The single source is s_hat and the single sink is t_hat. s_hat is connected with the sources of the original graph. This muss be done before creating of a instance of UpwardPlanRep. The super sink t_hat is contructed in this class. For technical reason we contruct a sink t and connect the sink of the original graph with t. Then we connect t with t_hat. The edge (t,t_hat) is called the external face handle. Because the right face of the adjEntry of this edge should be the external face. More...
class  VariableEmbeddingInserter
 Optimal edge insertion module. More...
class  VariableEmbeddingInserter2
class  VComparer
 Abstract base class for comparer classes. More...
class  VisibilityLayout
class  WeightComparer
class  whaInfo
struct  WInfo
 Saves information about a pertinent node w between two stopping vertices. More...
struct  XmlAttributeObject
struct  XmlObject
class  XmlParser
struct  XmlTagObject
class  ZeroPlacer

Typedefs

typedef AdjElementadjEntry
 The type of adjacency entries.
typedef ClusterElementcluster
 The type of clusters.
typedef EdgeElementedge
 The type of edges.
typedef long edgeType
typedef FaceElementface
typedef HashElement< String,
int > * 
GmlKey
typedef HashElement< String, int > HashedString
typedef NodeElementnode
 The type of nodes.
typedef long nodeType
typedef PALabelpa_label
typedef PlanarLeafKey< IndInfo * > * PtrPlanarLeafKeyI
typedef PlanarLeafKey< whaInfo * > * PtrPlanarLeafKeyW
typedef PQBasicKey< edge,
IndInfo *, bool > * 
PtrPQBasicKeyEIB
typedef PQLeafKey< edge,
whaInfo *, bool > * 
PtrPQLeafKeyEWB
typedef HashElement< String,
int > * 
XmlKey

Enumerations

enum  AlgorithmFailureCode { afcUnknown, afcIllegalParameter, afcNoFlow, afcSort, afcLabel, afcExternalFace, afcForbiddenCrossing, afcTimelimitExceeded, afcNoSolutionFound, afcSTOP }
 Code for an internal failure condition. More...
enum  bend_type { bend_free, bend_1left, bend_1right, bend_2left, bend_2right, prob_bf, prob_b1l, prob_b1r, prob_b2l, prob_b2r }
 edge types, defined by necessary bends More...
enum  BendType { convexBend = '0', reflexBend = '1' }
enum  candStatus { csAssigned, csFIntersect, csActive, csUsed }
enum  CompressionOptions { PC = 0, PS = 1, PH = 2, R1 = 4, CO = 5, NF = 6 }
enum  ConstraintEdgeType { cetBasicArc, cetVertexSizeArc, cetVisibilityArc, cetFixToZeroArc, cetReducibleArc, cetMedianArc }
enum  CPUFeature { cpufMMX, cpufSSE, cpufSSE2, cpufSSE3, cpufSSSE3, cpufSSE4_1, cpufSSE4_2, cpufVMX, cpufSMX, cpufEST, cpufMONITOR }
 Special features supported by a x86/x64 CPU. More...
enum  CPUFeatureMask { cpufmMMX = 1 << cpufMMX, cpufmSSE = 1 << cpufSSE, cpufmSSE2 = 1 << cpufSSE2, cpufmSSE3 = 1 << cpufSSE3, cpufmSSSE3 = 1 << cpufSSSE3, cpufmSSE4_1 = 1 << cpufSSE4_1, cpufmSSE4_2 = 1 << cpufSSE4_2, cpufmVMX = 1 << cpufVMX, cpufmSMX = 1 << cpufSMX, cpufmEST = 1 << cpufEST, cpufmMONITOR = 1 << cpufMONITOR }
 Bit mask for CPU features. More...
enum  Direction { before, after }
enum  eLabelType { elEnd1 = 0, elMult1, elName, elEnd2, elMult2, elNumLabels }
enum  enumDirection { CCW = 0, CW = 1 }
 Directions for clockwise and counterclockwise traversal. More...
enum  enumEdgeType { EDGE_UNDEFINED = 0, EDGE_SELFLOOP = 1, EDGE_BACK = 2, EDGE_DFS = 3, EDGE_DFS_PARALLEL = 4, EDGE_BACK_DELETED = 5 }
 Type of edge. More...
enum  eUsedLabels { lEnd1 = (1 << elEnd1), lMult1 = (1 << elMult1), lName = (1 << elName), lEnd2 = (1 << elEnd2), lMult2 = (1 << elMult2), lAll = (1 << elNumLabels) -1 }
enum  FileType { ftEntry, ftFile, ftDirectory }
 The type of an entry in a directory. More...
enum  GmlObjectType { gmlIntValue, gmlDoubleValue, gmlStringValue, gmlListBegin, gmlListEnd, gmlKey, gmlEOF, gmlError }
enum  InterleavingOptions { NI = 0, Rem = 1, TvL = 2, IR0 = 3, IPSPC = 4 }
enum  LibraryNotSupportedCode { lnscUnknown, lnscCoin, lnscAbacus, lnscFunctionNotImplemented, lnscMissingCallbackImplementation, lnscSTOP }
 Code for the library which was intended to get used, but its use is not supported. More...
enum  LinkOptions { NL = 0, LI = 1, LS = 2, LR = 3 }
enum  OptionProfile { standard, minBendsperEdge, fullService }
enum  Orientation { topToBottom, bottomToTop, leftToRight, rightToLeft }
 Determines the orientation in hierarchical layouts. More...
enum  OrthoDir { odNorth = 0, odEast = 1, odSouth = 2, odWest = 3, odUndefined = 4 }
enum  OutputParameter { opStandard, opOmitIntersect, opOmitFIntersect, opResult }
enum  paStopCause { paPlanarity, paCDegree, paBDegree, paRoot }
enum  PreconditionViolatedCode {
  pvcUnknown, pvcSelfLoop, pvcTreeHierarchies, pvcAcyclicHierarchies, pvcSingleSource, pvcUpwardPlanar, pvcTree, pvcForest, pvcOrthogonal, pvcPlanar, pvcClusterPlanar, pvcNoCopy, pvcConnected, pvcBiconnected,
  pvcSTOP
}
 Error code for a violated precondition. More...
enum  process_type { unprocessed, processed, used }
enum  UMLEdgeTypeConstants {
  etcPrimAssociation = 0x1, etcPrimGeneralization = 0x2, etcPrimDependency = 0x4, etcSecExpansion = 0x1, etcSecDissect = 0x2, etcSecFaceSplitter = 0x3, etcSecCluster = 0x4, etcSecClique, etcMerger = 0x1, etcVertical = 0x2, etcAlign = 0x3, etcAssClass = 0x8, etcBrother = 0x1, etcHalfBrother = 0x2,
  etcCousin = 0x3, etcFifthToMerger = 0x1, etcFifthFromMerger = 0x2
}
 !!attention sign, 7fffffff More...
enum  UMLEdgeTypeOffsets { etoPrimary = 0, etoSecondary = 4, etoTertiary = 8, etoFourth = 12, etoFifth = 16, etoUser = 24 }
enum  UMLEdgeTypePatterns { etpPrimary = 0x0000000f, etpSecondary = 0x000000f0, etpTertiary = 0x00000f00, etpFourth = 0x0000f000, etpUser = 0xff000000, etpAll = 0xffffffff }
enum  UMLNodeTypeConstants { ntPrimOriginal = 0x1, ntPrimCopy = 0x2, ntSecStructural = 0x1, ntSecNonStructural = 0x2, ntTerCrossing = 0x1, ntTerExpander = 0x2, ntTerHDExpander = 0x6, ntTerLDExpander = 0xA, ntFourFlow = 0x1, ntFourLabel = 0x2, ntFourType = 0x3, ntFourCorner = 0x4 }
 !!attention sign, 7fffffff More...
enum  UMLNodeTypeOffsets { ntoPrimary = 0, ntoSecondary = 4, ntoTertiary = 8, ntoFourth = 12, ntoFifth = 16, ntoUser = 24 }
enum  UMLNodeTypePatterns { ntpPrimary = 0x0000000f, ntpSecondary = 0x000000f0, ntpTertiary = 0x00000f00, ntpFourth = 0x0000f000, ntpUser = 0xff000000, ntpAll = 0xffffffff }
enum  UMLOpt { umlOpAlign = 0x0001, umlOpScale = 0x0002, umlOpProg = 0x0004 }
enum  whaType { W_TYPE, B_TYPE, H_TYPE, A_TYPE }
enum  XmlObjectType { xmlIntValue, xmlDoubleValue, xmlStringValue, xmlListBegin, xmlListEnd, xmlKey, xmlEOF, xmlError }
enum  XmlToken { openingBracket, closingBracket, questionMark, exclamationMark, minus, slash, equalSign, identifier, attributeValue, quotedValue, endOfFile, invalidToken, noToken }

Functions

int biconnectedComponents (const Graph &G, EdgeArray< int > &component)
 Computes the biconnected components of G.
template<class E >
void bucketSort (Array< E > &a, int min, int max, BucketFunc< E > &f)
bool changeDir (const char *dirName)
 Changes current directory to dirName; returns true if successful.
void completeBipartiteGraph (Graph &G, int n, int m)
 Creates t complete bipartite graph \(K_{n,m}\).
void completeGraph (Graph &G, int n)
 Creates the complete graph \(K_n\).
template<typename T >
computeMinST (const Graph &G, const EdgeArray< T > &weight, EdgeArray< bool > &isInTree)
 Computes a minimum spanning tree using Prim's algorithm.
template<typename T >
computeMinST (const Graph &G, const EdgeArray< T > &weight, NodeArray< edge > &pred, EdgeArray< bool > &isInTree)
 Computes a minimum spanning tree (MST) using Prim's algorithm.
template<typename T >
computeMinST (node s, const Graph &G, const EdgeArray< T > &weight, NodeArray< edge > &pred, EdgeArray< bool > &isInTree)
 Computes a minimum spanning tree (MST) using Prim's algorithm.
int connectedComponents (const Graph &G, NodeArray< int > &component)
 Computes the connected components of G.
int connectedIsolatedComponents (const Graph &G, List< node > &isolated, NodeArray< int > &component)
 Computes the connected components of G and returns the list of isolated nodes.
void cubeGraph (Graph &G, int n)
 Creates the graph \(Q^n\): A n-cube graph.
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)
bool DIsEqual (const double &a, const double &b, const double eps=OGDF_GEOM_EPS)
bool DIsGreater (const double &a, const double &b, const double eps=OGDF_GEOM_EPS)
bool DIsGreaterEqual (const double &a, const double &b, const double eps=OGDF_GEOM_EPS)
bool DIsLess (const double &a, const double &b, const double eps=OGDF_GEOM_EPS)
bool DIsLessEqual (const double &a, const double &b, const double eps=OGDF_GEOM_EPS)
template<class E >
bool doDestruction (const E *)
template<>
bool doDestruction (const char *)
template<>
bool doDestruction< adjEntry > (const adjEntry *)
template<>
bool doDestruction< double > (const double *)
template<>
bool doDestruction< edge > (const edge *)
template<>
bool doDestruction< int > (const int *)
template<>
bool doDestruction< node > (const node *)
template<>
bool doDestruction< PtrPlanarLeafKeyI > (const PtrPlanarLeafKeyI *)
template<>
bool doDestruction< PtrPlanarLeafKeyW > (const PtrPlanarLeafKeyW *)
template<>
bool doDestruction< PtrPQBasicKeyEIB > (const PtrPQBasicKeyEIB *)
template<>
bool doDestruction< PtrPQLeafKeyEWB > (const PtrPQLeafKeyEWB *)
double DRound (const double &d, int prec=0)
edge firstOutGen (UMLGraph &UG, node v, EdgeArray< bool > &)
void getEntries (const char *dirName, List< String > &entries, const char *pattern="*")
 Returns in entries the list of all entries contained in directory dirName.
void getEntries (const char *dirName, FileType t, List< String > &entries, const char *pattern="*")
 Returns in entries the list of all entries of type t contained in directory dirName.
void getEntriesAppend (const char *dirName, List< String > &entries, const char *pattern="*")
 Appends to entries the list of all entries contained in directory dirName.
void getEntriesAppend (const char *dirName, FileType t, List< String > &entries, const char *pattern="*")
 Appends to entries the list of all entries of type t contained in directory dirName.
void getFiles (const char *dirName, List< String > &files, const char *pattern="*")
 Returns in files the list of files in directory dirName.
void getFilesAppend (const char *dirName, List< String > &files, const char *pattern="*")
 Appends to files the list of files in directory dirName.
template<class EDGELIST >
void getParallelFreeUndirected (const Graph &G, EdgeArray< EDGELIST > &parallelEdges)
 Computes the bundles of undirected parallel edges in G.
void getSubdirs (const char *dirName, List< String > &subdirs, const char *pattern="*")
 Returns in subdirs the list of directories contained in directory dirName.
void getSubdirsAppend (const char *dirName, List< String > &subdirs, const char *pattern="*")
 Appends to subdirs the list of directories contained in directory dirName.
void gridGraph (Graph &G, int n, int m, bool loopN, bool loopM)
 Creates a (toroidal) grid graph on n x m nodes.
bool hasSingleSink (const Graph &G, node &sink)
 Returns true iff the digraph G contains exactly one sink node (or is empty).
bool hasSingleSink (const Graph &G)
 Returns true iff the digraph G contains exactly one sink node (or is empty).
bool hasSingleSource (const Graph &G, node &source)
 Returns true iff the digraph G contains exactly one source node (or is empty).
bool hasSingleSource (const Graph &G)
 Returns true iff the digraph G contains exactly one source node (or is empty).
template<class LISTITERATOR >
void inducedSubGraph (const Graph &G, LISTITERATOR start, Graph &subGraph)
 Computes the subgraph induced by a list of nodes.
template<class LISTITERATOR >
void inducedSubGraph (const Graph &G, LISTITERATOR start, Graph &subGraph, NodeArray< node > &nodeTableOrig2New)
 Computes the subgraph induced by a list of nodes (plus a mapping from original nodes to new copies).
template<class LISTITERATOR >
void inducedSubGraph (const Graph &G, LISTITERATOR start, Graph &subGraph, NodeArray< node > &nodeTableOrig2New, EdgeArray< edge > &edgeTableOrig2New)
 Computes the subgraph induced by a list of nodes (plus mappings from original nodes and edges to new copies).
template<class NODELISTITERATOR , class EDGELIST >
void inducedSubgraph (Graph &G, NODELISTITERATOR &it, EDGELIST &E)
 Computes the edges in a node-induced subgraph.
bool isAcyclic (const Graph &G, List< edge > &backedges)
 Returns true iff the digraph G is acyclic.
bool isAcyclic (const Graph &G)
 Returns true iff the digraph G is acyclic.
bool isAcyclicUndirected (const Graph &G, List< edge > &backedges)
 Returns true iff the undirected graph G is acyclic.
bool isAcyclicUndirected (const Graph &G)
 Returns true iff the undirected graph G is acyclic.
bool isBiconnected (const Graph &G, node &cutVertex)
 Returns true iff G is biconnected.
bool isBiconnected (const Graph &G)
 Returns true iff G is biconnected.
bool isCConnected (const ClusterGraph &C)
 Returns true iff cluster graph C is c-connected.
bool isConnected (const Graph &G)
 Returns true iff G is connected.
bool isDirectory (const char *fileName)
 Returns true iff fileName is a directory.
bool isFile (const char *fileName)
 Returns true iff fileName is a regular file (not a directory).
bool isForest (const Graph &G, List< node > &roots)
 Returns true iff G represents a forest, i.e., a collection of rooted trees.
bool isForest (const Graph &G)
 Returns true iff G represents a forest, i.e. a collection of rooted trees.
bool isFreeForest (const Graph &G)
 Returns true iff G is a free forest, i.e. contains no undirected cycle.
bool isLoopFree (const Graph &G)
 Returns true iff G contains no self-loop.
bool isParallelFree (const Graph &G)
 Returns true iff G contains no paralle edges.
bool isParallelFreeUndirected (const Graph &G)
 Returns true iff G contains no undirected parallel edges.
bool isPlanar (const Graph &G)
 Returns true, if G is planar, false otherwise.
bool isSimple (const Graph &G)
 Returns true iff G contains neither self-loops nor parallel edges.
bool isSimpleUndirected (const Graph &G)
 Returns true iff G contains neither self-loops nor undirected parallel edges.
bool isStGraph (const Graph &G, node &s, node &t, edge &st)
 Returns true iff G is an st-digraph.
bool isStGraph (const Graph &G)
 Returns true if G is an st-digraph.
bool isTree (const Graph &G, node &root)
 Returns true iff G represents a tree.
bool isTree (const Graph &G)
 Returns true iff G represents a tree.
bool isTriconnected (const Graph &G, node &s1, node &s2)
 Returns true iff G is triconnected.
bool isTriconnected (const Graph &G)
 Returns true iff G is triconnected.
bool isTriconnectedPrimitive (const Graph &G, node &s1, node &s2)
 Returns true iff G is triconnected (using a quadratic time algorithm!).
bool isTriconnectedPrimitive (const Graph &G)
 Returns true iff G is triconnected (using a quadratic time algorithm!).
int localtime (struct tm *ptm, const time_t *timer)
void makeAcyclic (Graph &G)
 Makes the digraph G acyclic by removing edges.
void makeAcyclicByReverse (Graph &G)
 Makes the digraph G acyclic by reversing edges.
void makeBiconnected (Graph &G, List< edge > &added)
 Makes G biconnected by adding edges.
void makeBiconnected (Graph &G)
 Makes G biconnected by adding edges.
void makeCConnected (ClusterGraph &C, Graph &G, List< edge > &addedEdges, bool simple=true)
 Makes a cluster graph c-connected by adding edges.
void makeConnected (Graph &G, List< edge > &added)
 Makes G connected by adding a minimum number of edges.
void makeConnected (Graph &G)
 makes G connected by adding a minimum number of edges.
template<class NODELIST >
void makeLoopFree (Graph &G, NODELIST &L)
 Removes all self-loops from G and returns all nodes with self-loops in L.
void makeLoopFree (Graph &G)
 Removes all self-loops from G.
template<class EDGELIST >
void makeParallelFree (Graph &G, EDGELIST &parallelEdges)
 Removes all but one of each bundle of parallel edges.
void makeParallelFree (Graph &G)
 Removes all but one edge of each bundle of parallel edges in G.
template<class EDGELIST >
void makeParallelFreeUndirected (Graph &G, EDGELIST &parallelEdges)
 Removes all but one of each bundle of undirected parallel edges.
void makeParallelFreeUndirected (Graph &G)
 Removes all but one of each bundle of undirected parallel edges.
template<class EDGELIST >
void makeParallelFreeUndirected (Graph &G, EDGELIST &parallelEdges, EdgeArray< int > &cardPositive, EdgeArray< int > &cardNegative)
 Removes all but one of each bundle of undirected parallel edges.
void makeSimple (Graph &G)
 Removes all self-loops and all but one edge of each bundle of parallel edges.
void makeSimpleUndirected (Graph &G)
 Removes all self-loops and all but one edge of each bundle of undirected parallel edges.
int numParallelEdges (const Graph &G)
 Returns the number of parallel edges in G.
int numParallelEdgesUndirected (const Graph &G)
 Returns the number of undirected parallel edges in G.
bool operator!= (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
template<class E1 , class E2 >
bool operator!= (const Tuple2< E1, E2 > &t1, const Tuple2< E1, E2 > &t2)
 Inequality operator for 2-tuples.
template<class E1 , class E2 , class E3 >
bool operator!= (const Tuple3< E1, E2, E3 > &t1, const Tuple3< E1, E2, E3 > &t2)
 Inequality operator for 3-tuples.
template<class E1 , class E2 , class E3 , class E4 >
bool operator!= (const Tuple4< E1, E2, E3, E4 > &t1, const Tuple4< E1, E2, E3, E4 > &t2)
 Inequality operator for 4-tuples.
MDMFLengthAttribute operator+ (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
MDMFLengthAttribute operator+= (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
MDMFLengthAttribute operator- (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
MDMFLengthAttribute operator-= (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
bool operator< (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
ostream & operator<< (ostream &os, ogdf::node v)
 Output operator for nodes; prints node index (or "nil").
ostream & operator<< (ostream &os, ogdf::edge e)
 Output operator for edges; prints source and target indices (or "nil").
std::ostream & operator<< (std::ostream &os, const nodePair &v)
ostream & operator<< (ostream &os, ogdf::adjEntry adj)
 Output operator for adjacency entries; prints node and twin indices (or "nil").
ostream & operator<< (ostream &s, const MDMFLengthAttribute &x)
template<class E1 , class E2 >
ostream & operator<< (ostream &os, const Tuple2< E1, E2 > &t2)
 Output operator for 2-tuples.
ostream & operator<< (ostream &os, const DinoUmlModelGraph &modelGraph)
ostream & operator<< (ostream &os, const RCCrossings &cr)
template<class E1 , class E2 , class E3 >
ostream & operator<< (ostream &os, const Tuple3< E1, E2, E3 > &t3)
 Output operator for 3-tuples.
ostream & operator<< (ostream &os, const IPoint &ip)
 Output operator for integer points.
ostream & operator<< (ostream &os, const DinoUmlDiagramGraph &diagramGraph)
template<class E , class INDEX >
ostream & operator<< (ostream &os, const BoundedQueue< E, INDEX > &Q)
template<class E , class INDEX >
ostream & operator<< (ostream &os, const BoundedStack< E, INDEX > &S)
ostream & operator<< (ostream &os, const String &str)
 Output operator for strings.
template<class E >
ostream & operator<< (ostream &os, const QueuePure< E > &Q)
template<class E >
ostream & operator<< (ostream &os, const Queue< E > &Q)
template<class E >
ostream & operator<< (ostream &os, const StackPure< E > &S)
template<class E >
ostream & operator<< (ostream &os, const Stack< E > &S)
template<class E1 , class E2 , class E3 , class E4 >
ostream & operator<< (ostream &os, const Tuple4< E1, E2, E3, E4 > &t4)
 Output operator for 4-tuples.
ostream & operator<< (ostream &os, const DPoint &dp)
 Output operator for real points.
ostream & operator<< (ostream &O, const NodeInfo &inf)
ostream & operator<< (ostream &os, const DinoXmlParser &parser)
ostream & operator<< (ostream &os, const DLine &dl)
 Output operator for lines.
template<class E , class INDEX >
ostream & operator<< (ostream &os, const ogdf::Array< E, INDEX > &a)
ostream & operator<< (ostream &os, const DRect &dr)
 Output operator for rectangles.
ostream & operator<< (ostream &os, const DScaler &ds)
 Output operator for scalers.
ostream & operator<< (ostream &os, const DPolygon &dop)
 Output operator for polygons.
template<typename T >
static std::ostream & operator<< (std::ostream &outStream, HyperGraph::NodeArray< T > &array)
template<typename T >
static std::ostream & operator<< (std::ostream &outStream, HyperGraph::EdgeArray< T > &array)
template<typename T >
static std::ostream & operator<< (std::ostream &outStream, HyperGraph::AdjArray< T > &array)
ostream & operator<< (ostream &os, ogdf::cluster c)
static std::ostream & operator<< (std::ostream &outStream, HyperGraph &graph)
template<class E >
ostream & operator<< (ostream &os, const SListPure< E > &L)
template<class E >
ostream & operator<< (ostream &os, const SList< E > &L)
template<class E >
ostream & operator<< (ostream &os, const ListPure< E > &L)
template<class E >
ostream & operator<< (ostream &os, const List< E > &L)
bool operator<= (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
bool operator== (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
template<class E1 , class E2 >
bool operator== (const Tuple2< E1, E2 > &t1, const Tuple2< E1, E2 > &t2)
 Equality operator for 2-tuples.
template<class E1 , class E2 , class E3 >
bool operator== (const Tuple3< E1, E2, E3 > &t1, const Tuple3< E1, E2, E3 > &t2)
 Equality operator for 3-tuples.
template<class E1 , class E2 , class E3 , class E4 >
bool operator== (const Tuple4< E1, E2, E3, E4 > &t1, const Tuple4< E1, E2, E3, E4 > &t2)
 Equality operator for 4-tuples.
bool operator> (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
bool operator>= (const MDMFLengthAttribute &x, const MDMFLengthAttribute &y)
template<typename T >
static std::istream & operator>> (std::istream &inStream, HyperGraph::NodeArray< T > &array)
template<typename T >
static std::istream & operator>> (std::istream &inStream, HyperGraph::EdgeArray< T > &array)
template<typename T >
static std::istream & operator>> (std::istream &inStream, HyperGraph::AdjArray< T > &array)
static std::istream & operator>> (std::istream &inStream, HyperGraph &graph)
void parallelFreeSort (const Graph &G, SListPure< edge > &edges)
 Sorts the edges of G such that parallel edges come after each other in the list.
void parallelFreeSortUndirected (const Graph &G, SListPure< edge > &edges, EdgeArray< int > &minIndex, EdgeArray< int > &maxIndex)
 Sorts the edges of G such that undirected parallel edges come after each other in the list.
void petersenGraph (Graph &G, int n, int m)
 Creates a generalized Petersen graph.
void planarBiconnectedGraph (Graph &G, int n, int m, bool multiEdges=false)
 Creates a planar biconnected (embedded) graph.
void planarCNBGraph (Graph &G, int n, int m, int b)
 Creates a planar graph, that is connected, but not biconnected.
void planarConnectedGraph (Graph &G, int n, int m)
 Creates a connected (simple) planar (embedded) graph.
bool planarEmbed (Graph &G)
 Returns true, if G is planar, false otherwise. If true is returned, G will be planarly embedded.
bool planarEmbedPlanarGraph (Graph &G)
 Constructs a planar embedding of G. It assumes that G is planar!
void planarTriconnectedGraph (Graph &G, int n, int m)
 Creates a planar triconnected (and simple) graph.
void planarTriconnectedGraph (Graph &G, int n, double p1, double p2)
 Creates a planar triconnected (and simple) graph.
template<class E , class INDEX >
void print (ostream &os, const BoundedQueue< E, INDEX > &S, char delim= ' ')
template<class E , class INDEX >
void print (ostream &os, const BoundedStack< E, INDEX > &S, char delim= ' ')
template<class E >
void print (ostream &os, const QueuePure< E > &Q, char delim= ' ')
template<class E >
void print (ostream &os, const Queue< E > &Q, char delim= ' ')
template<class E , class INDEX >
void print (ostream &os, const Array< E, INDEX > &a, char delim= ' ')
template<class E >
void print (ostream &os, const SListPure< E > &L, char delim= ' ')
template<class E >
void print (ostream &os, const SList< E > &L, char delim= ' ')
template<class E >
void print (ostream &os, const ListPure< E > &L, char delim= ' ')
template<class E >
void print (ostream &os, const List< E > &L, char delim= ' ')
template<class LIST >
void quicksortTemplate (LIST &L)
template<class LIST , class COMPARER >
void quicksortTemplate (LIST &L, COMPARER &comp)
void randomBiconnectedGraph (Graph &G, int n, int m)
 Creates a random biconnected graph.
void randomClusterGraph (ClusterGraph &C, Graph &G, int cNum)
 Assigns random clusters to a given graph G.
void randomClusterGraph (ClusterGraph &C, const Graph &G, const node root, int moreInLeaves)
 Assigns a specified cluster-structure to a given graph G, and assigns vertices to clusters.
void randomClusterPlanarGraph (ClusterGraph &C, Graph &G, int cNum)
 Assigns random clusters to a given graph G.
void randomDiGraph (Graph &G, int n, double p)
 Creates a random (simple) directed graph.
double randomDouble (double low, double high)
 Returns random double value between low and high.
double randomDoubleNormal (double m, double sd)
void randomGraph (Graph &G, int n, int m)
 Creates a random graph.
void randomHierarchy (Graph &G, int n, int m, bool planar, bool singleSource, bool longEdges)
 Creates a random hierarchical graph.
int randomNumber (int low, int high)
 Returns random integer between low and high (including).
bool randomSimpleGraph (Graph &G, int n, int m)
 Creates a random simple graph.
void randomTree (Graph &G, int n)
 Creates a random tree (simpler version.
void randomTree (Graph &G, int n, int maxDeg, int maxWidth)
 Creates a random tree.
void randomTriconnectedGraph (Graph &G, int n, double p1, double p2)
 Creates a random triconnected (and simple) graph.
template<typename ListType , typename ArrayType >
static void readFromStream (std::istream &inStream, ArrayType &array)
void regularTree (Graph &G, int n, int children)
 Creates a regular tree.
int sprintf (char *buffer, size_t, const char *format,...)
int stNumber (const Graph &G, NodeArray< int > &numbering, node s=0, node t=0, bool randomized=false)
 Computes an st-Numbering of G.
int strcat (char *strDest, size_t, const char *strSource)
int strcpy (char *strDest, size_t, const char *strSource)
int strncpy (char *strDest, size_t, const char *strSource, size_t count)
int strongComponents (const Graph &G, NodeArray< int > &component)
 Computes the strongly connected components of the digraph G.
void suspension (Graph &G, int s)
 Modifies G by adding its n-th suspension.
bool test_forall_adj_edges (adjEntry &adj, edge &e)
bool test_forall_adj_edges_of_cluster (ListIterator< adjEntry > &it, edge &e)
bool test_forall_adj_edges_of_cluster (adjEntry &adj, edge &e)
bool test_forall_adj_entries_of_cluster (ListIterator< adjEntry > &it, adjEntry &adj)
bool testSTnumber (const Graph &G, NodeArray< int > &st_no, int max)
 Tests, whether a numbering of the nodes is an st-numbering.
void topologicalNumbering (const Graph &G, NodeArray< int > &num)
 Computes a topological numbering of an acyclic digraph G.
void triangulate (Graph &G)
 Triangulates a planarly embedded graph G by adding edges.
double usedTime (double &T)
int vsprintf (char *buffer, size_t, const char *format, va_list argptr)
void wheelGraph (Graph &G, int n)
 Creates the graph \(W_n^{(d)}\): A wheel graph.
template<typename ListType , typename ArrayType >
static void writeToStream (std::ostream &outStream, ArrayType &array)
Simple graph formats (without layout)

These functions load graphs stored in some common, simple text-based file formats. They just read the graph structure and not any layout specific data.

bool loadRomeGraph (Graph &G, istream &is)
 Loads a graph G stored in the Rome-Graph-format from an input stream is.
bool loadRomeGraph (Graph &G, const char *fileName)
 Loads a graph G stored in the Rome-Graph-format from a file fileName.
bool loadChacoGraph (Graph &G, istream &is)
 Loads a graph G stored in the chaco file format from an input stream is.
bool loadChacoGraph (Graph &G, const char *fileName)
 Loads a graph G stored in the chaco file format from a file fileName.
bool loadSimpleGraph (Graph &G, istream &is)
 Loads a graph G stored in a simple format from an input stream is.
bool loadSimpleGraph (Graph &G, const char *fileName)
 Loads a graph G stored in a simple format from a file fileName.
bool loadYGraph (Graph &G, FILE *lineStream)
 Loads a graph G stored in the Y-graph-format from file stream (one line) lineStream.
Simple graph formats (with layout)

These functions load and save graphs in some common, simple text-based file formats, which also store layout specific data in some limited way.

bool loadChallengeGraph (Graph &G, GridLayout &gl, istream &is)
 Loads a graph G with layout gl stored in GD-Challenge-format from stream is.
bool loadChallengeGraph (Graph &G, GridLayout &gl, const char *fileName)
 Loads a graph G with layout gl stored in GD-Challenge-format from file fileName.
bool saveChallengeGraph (const Graph &G, const GridLayout &gl, ostream &os)
 Writes graph G with layout gl in GD-Challenge-format to stream os.
bool saveChallengeGraph (const Graph &G, const GridLayout &gl, const char *fileName)
 Writes graph G with layout gl in GD-Challenge-format to file fileName.
Simple graph formats (with subgraph)

These functions load and store graphs in a simple text-based file format that also specifies a subgraph (given as a list of edges).

bool loadEdgeListSubgraph (Graph &G, List< edge > &delEdges, istream &is)
 Loads graph G with subgraph defined by delEdges from stream is.
bool loadEdgeListSubgraph (Graph &G, List< edge > &delEdges, const char *fileName)
 Loads graph G with subgraph defined by delEdges from file fileName.
bool saveEdgeListSubgraph (const Graph &G, const List< edge > &delEdges, ostream &os)
 Writes graph G with subgraph defined by delEdges to stream os.
bool saveEdgeListSubgraph (const Graph &G, const List< edge > &delEdges, const char *fileName)
 Writes graph G with subgraph defined by delEdges to file fileName.
Hypergraphs

These functions load hypergraphs stored in file formats used for electrical circuits. The hypergraphs are directly transformed into their point-based expansions (and hence stored in a usual Graph and not a Hypergraph).

bool loadBenchHypergraph (Graph &G, List< node > &hypernodes, List< edge > *shell, istream &is)
 Loads a hypergraph in the BENCH-format from input stream is.
bool loadBenchHypergraph (Graph &G, List< node > &hypernodes, List< edge > *shell, const char *fileName)
 Loads a hypergraph in the BENCH-format from the specified file.
bool loadPlaHypergraph (Graph &G, List< node > &hypernodes, List< edge > *shell, istream &is)
 Loads a hypergraph in the PLA-format from input stream is.
bool loadPlaHypergraph (Graph &G, List< node > &hypernodes, List< edge > *shell, const char *fileName)
 Loads a hypergraph in the PLA-format from file fileName.

Variables

const char * compressionOptionNames []
const char * interleavingOptionNames []
const char * linkOptionNames []
static Initialization s_ogdfInitializer

Detailed Description

The namespace for all OGDF objects.


Typedef Documentation

The type of adjacency entries.

Definition at line 366 of file Graph_d.h.

The type of clusters.

Definition at line 193 of file ClusterGraph.h.

The type of edges.

Definition at line 365 of file Graph_d.h.

typedef long ogdf::edgeType

Definition at line 58 of file EdgeTypePatterns.h.

Definition at line 58 of file CombinatorialEmbedding.h.

Definition at line 62 of file GmlParser.h.

Definition at line 65 of file DinoXmlParser.h.

The type of nodes.

Definition at line 364 of file Graph_d.h.

typedef long ogdf::nodeType

Definition at line 60 of file NodeTypePatterns.h.

Definition at line 169 of file PALabel.h.

Definition at line 66 of file EmbedPQTree.h.

Definition at line 77 of file PlanarSubgraphPQTree.h.

Definition at line 60 of file EmbedPQTree.h.

Definition at line 72 of file PlanarSubgraphPQTree.h.

Definition at line 56 of file XmlObject.h.


Enumeration Type Documentation

Code for an internal failure condition.

See also:
AlgorithmFailureException
Enumerator:
afcUnknown 
afcIllegalParameter 

function parameter is illegal

afcNoFlow 

min-cost flow could not find a legal flow

afcSort 

sequence not sorted

afcLabel 

labelling failed

afcExternalFace 

external face not correct

afcForbiddenCrossing 

crossing forbidden but necessary

afcTimelimitExceeded 

it took too long

afcNoSolutionFound 

couldn't solve the problem

afcSTOP 

Definition at line 120 of file exceptions.h.

edge types, defined by necessary bends

Enumerator:
bend_free 
bend_1left 
bend_1right 
bend_2left 
bend_2right 
prob_bf 
prob_b1l 
prob_b1r 
prob_b2l 
prob_b2r 

Definition at line 68 of file EdgeRouter.h.

Enumerator:
convexBend 
reflexBend 

Definition at line 66 of file OrthoRep.h.

Enumerator:
csAssigned 
csFIntersect 
csActive 
csUsed 

Definition at line 109 of file EdgeLabel.h.

Defines options for compression search paths. PC = Path Compression, PS = Path Splitting (default), PH = Path Halving, R1 = Reversal of type 1, CO = Collapsing, NF = No Compression

Enumerator:
PC 
PS 
PH 
R1 
CO 
NF 

Definition at line 63 of file DisjointSets.h.

Enumerator:
cetBasicArc 
cetVertexSizeArc 
cetVisibilityArc 
cetFixToZeroArc 
cetReducibleArc 
cetMedianArc 

Definition at line 65 of file CompactionConstraintGraph.h.

Special features supported by a x86/x64 CPU.

This enumeration is used to specify spcial additional features that are supported by the CPU, in particular extended instruction sets such as SSE.

Enumerator:
cpufMMX 

Intel MMX Technology.

cpufSSE 

Streaming SIMD Extensions (SSE)

cpufSSE2 

Streaming SIMD Extensions 2 (SSE2)

cpufSSE3 

Streaming SIMD Extensions 3 (SSE3)

cpufSSSE3 

Supplemental Streaming SIMD Extensions 3 (SSSE3)

cpufSSE4_1 

Streaming SIMD Extensions 4.1 (SSE4.1)

cpufSSE4_2 

Streaming SIMD Extensions 4.2 (SSE4.2)

cpufVMX 

Virtual Machine Extensions.

cpufSMX 

Safer Mode Extensions.

cpufEST 

Enhanced Intel SpeedStep Technology.

cpufMONITOR 

Processor supports MONITOR/MWAIT instructions.

Definition at line 125 of file System.h.

Bit mask for CPU features.

Enumerator:
cpufmMMX 

Intel MMX Technology.

cpufmSSE 

Streaming SIMD Extensions (SSE)

cpufmSSE2 

Streaming SIMD Extensions 2 (SSE2)

cpufmSSE3 

Streaming SIMD Extensions 3 (SSE3)

cpufmSSSE3 

Supplemental Streaming SIMD Extensions 3 (SSSE3)

cpufmSSE4_1 

Streaming SIMD Extensions 4.1 (SSE4.1)

cpufmSSE4_2 

Streaming SIMD Extensions 4.2 (SSE4.2)

cpufmVMX 

Virtual Machine Extensions.

cpufmSMX 

Safer Mode Extensions.

cpufmEST 

Enhanced Intel SpeedStep Technology.

cpufmMONITOR 

Processor supports MONITOR/MWAIT instructions.

Definition at line 140 of file System.h.

Enumerator:
before 
after 

Definition at line 340 of file basic.h.

Enumerator:
elEnd1 
elMult1 
elName 
elEnd2 
elMult2 
elNumLabels 

the number of available labels at an edge

Definition at line 63 of file ELabelInterface.h.

Directions for clockwise and counterclockwise traversal.

Enumerator:
CCW 
CW 

Definition at line 62 of file BoyerMyrvoldPlanar.h.

Type of edge.

Parameters:
0undefined
1selfloop
2backedge
3DFS-edge
4parallel DFS-edge
5deleted backedge
Enumerator:
EDGE_UNDEFINED 
EDGE_SELFLOOP 
EDGE_BACK 
EDGE_DFS 
EDGE_DFS_PARALLEL 
EDGE_BACK_DELETED 

Definition at line 75 of file BoyerMyrvoldPlanar.h.

Enumerator:
lEnd1 
lMult1 
lName 
lEnd2 
lMult2 
lAll 

Definition at line 72 of file ELabelInterface.h.

The type of an entry in a directory.

Enumerator:
ftEntry 

file or directory

ftFile 

file

ftDirectory 

directory

Definition at line 403 of file basic.h.

Enumerator:
gmlIntValue 
gmlDoubleValue 
gmlStringValue 
gmlListBegin 
gmlListEnd 
gmlKey 
gmlEOF 
gmlError 

Definition at line 63 of file GmlParser.h.

Enumerator:
NI 
Rem 
TvL 
IR0 
IPSPC 

Definition at line 75 of file DisjointSets.h.

Code for the library which was intended to get used, but its use is not supported.

See also:
LibraryNotSupportedException
Enumerator:
lnscUnknown 
lnscCoin 

COIN not supported.

lnscAbacus 

ABACUS not supported.

lnscFunctionNotImplemented 

the used library doesn't support that function

lnscMissingCallbackImplementation 
lnscSTOP 

Definition at line 139 of file exceptions.h.

Defines options for linking two sets. NL = Naive Link, LI = Link by Index (default), LS = Link by Size, LR = Link by Rank

Enumerator:
NL 
LI 
LS 
LR 

Definition at line 55 of file DisjointSets.h.

Enumerator:
standard 
minBendsperEdge 
fullService 

Definition at line 61 of file OrthoLayout.h.

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 61 of file geometry.h.

Enumerator:
odNorth 
odEast 
odSouth 
odWest 
odUndefined 

Definition at line 71 of file OrthoRep.h.

Enumerator:
opStandard 
opOmitIntersect 
opOmitFIntersect 
opResult 

Definition at line 98 of file EdgeLabel.h.

Enumerator:
paPlanarity 
paCDegree 
paBDegree 
paRoot 

Definition at line 56 of file PALabel.h.

Error code for a violated precondition.

See also:
PreconditionViolatedException
Enumerator:
pvcUnknown 
pvcSelfLoop 

graph contains a self-loop

pvcTreeHierarchies 

hierarchies are not only trees

pvcAcyclicHierarchies 

hierarchies are not acyclic

pvcSingleSource 

graph has not a single source

pvcUpwardPlanar 

graph is not upward planar

pvcTree 

graph is not a rooted tree

pvcForest 

graph is not a rooted forest

pvcOrthogonal 

layout is not orthogonal

pvcPlanar 

graph is not planar

pvcClusterPlanar 

graph is not c-planar

pvcNoCopy 

graph is not a copy of the corresponding graph

pvcConnected 

graph is not connected

pvcBiconnected 

graph is not twoconnected

pvcSTOP 

Definition at line 97 of file exceptions.h.

Enumerator:
unprocessed 
processed 
used 

Definition at line 83 of file EdgeRouter.h.

!!attention sign, 7fffffff

Enumerator:
etcPrimAssociation 
etcPrimGeneralization 
etcPrimDependency 
etcSecExpansion 
etcSecDissect 
etcSecFaceSplitter 
etcSecCluster 
etcSecClique 
etcMerger 
etcVertical 
etcAlign 
etcAssClass 
etcBrother 
etcHalfBrother 
etcCousin 
etcFifthToMerger 
etcFifthFromMerger 

Definition at line 69 of file EdgeTypePatterns.h.

Enumerator:
etoPrimary 
etoSecondary 
etoTertiary 
etoFourth 
etoFifth 
etoUser 

Definition at line 90 of file EdgeTypePatterns.h.

Enumerator:
etpPrimary 
etpSecondary 
etpTertiary 
etpFourth 
etpUser 
etpAll 

Definition at line 60 of file EdgeTypePatterns.h.

!!attention sign, 7fffffff

Enumerator:
ntPrimOriginal 
ntPrimCopy 
ntSecStructural 
ntSecNonStructural 
ntTerCrossing 
ntTerExpander 
ntTerHDExpander 
ntTerLDExpander 
ntFourFlow 
ntFourLabel 
ntFourType 
ntFourCorner 

Definition at line 71 of file NodeTypePatterns.h.

Enumerator:
ntoPrimary 
ntoSecondary 
ntoTertiary 
ntoFourth 
ntoFifth 
ntoUser 

Definition at line 90 of file NodeTypePatterns.h.

Enumerator:
ntpPrimary 
ntpSecondary 
ntpTertiary 
ntpFourth 
ntpUser 
ntpAll 

Definition at line 62 of file NodeTypePatterns.h.

Enumerator:
umlOpAlign 
umlOpScale 
umlOpProg 

Definition at line 62 of file LayoutPlanRepModule.h.

The definitions for W_TYPE, B_TYPE, H_TYPE and A_TYPE 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:
W_TYPE 
B_TYPE 
H_TYPE 
A_TYPE 

Definition at line 68 of file whaInfo.h.

Enumerator:
xmlIntValue 
xmlDoubleValue 
xmlStringValue 
xmlListBegin 
xmlListEnd 
xmlKey 
xmlEOF 
xmlError 

Definition at line 57 of file XmlObject.h.

This enum type represents the values, which are returned by the function DinoXmlScanner::getNextToken().

See also:
DinoXmlScanner::getNextToken()
Enumerator:
openingBracket 

<

closingBracket 

>

questionMark 

?

exclamationMark 

!

minus 
slash 

/

equalSign 

=

identifier 

(a..z|A..Z){(a..z|A..Z|0..9|.|_|:)}

attributeValue 

a sequence of characters, digits, minus - and dot .

quotedValue 

all quoted content " ... " or ' ... '

endOfFile 

End of file detected.

invalidToken 

No token identified.

noToken 

Used for the m_lookAheadToken to indicate that there is no lookahead token

Definition at line 62 of file DinoXmlScanner.h.


Function Documentation

int ogdf::biconnectedComponents ( const Graph &  G,
EdgeArray< int > &  component 
)

Computes the biconnected components of G.

Assigns component numbers (0, 1, ...) to the edges of \ G. The component number of each edge is stored in the edge array component.

Parameters:
Gis the input graph.
componentis assigned a mapping from edges to component numbers.
Returns:
the number of biconnected components (including isolated nodes).
template<class E >
void ogdf::bucketSort ( Array< E > &  a,
int  min,
int  max,
BucketFunc< E > &  f 
)

Definition at line 1020 of file SList.h.

bool ogdf::changeDir ( const char *  dirName)

Changes current directory to dirName; returns true if successful.

void ogdf::completeBipartiteGraph ( Graph &  G,
int  n,
int  m 
)

Creates t complete bipartite graph \(K_{n,m}\).

Parameters:
Gis assigned the generated graph.
nis the number of nodes of the first partition set.
mis the number of nodes of the second partition set.
void ogdf::completeGraph ( Graph &  G,
int  n 
)

Creates the complete graph \(K_n\).

Parameters:
Gis assigned the generated graph.
nis the number of nodes of the generated graph.
template<typename T >
T ogdf::computeMinST ( const Graph &  G,
const EdgeArray< T > &  weight,
EdgeArray< bool > &  isInTree 
)

Computes a minimum spanning tree using Prim's algorithm.

Template Parameters:
Tis the numeric type for edge weights.
Parameters:
Gis the input graph.
weightis an edge array with the edge weights.
isInTreeis assigned the result, i.e. isInTree[e] is true iff edge e is in the computed MST.
Returns:
the sum of the edge weights in the computed tree.

Definition at line 274 of file extended_graph_alg.h.

template<typename T >
T ogdf::computeMinST ( const Graph &  G,
const EdgeArray< T > &  weight,
NodeArray< edge > &  pred,
EdgeArray< bool > &  isInTree 
)

Computes a minimum spanning tree (MST) using Prim's algorithm.

Template Parameters:
Tis the numeric type for edge weights.
Parameters:
Gis the input graph.
weightis an edge array with the edge weights.
isInTreeis assigned the result, i.e. isInTree[e] is true iff edge e is in the computed MST.
predis assigned for each node the edge from its parent in the MST.
Returns:
the sum of the edge weights in the computed tree.

Definition at line 290 of file extended_graph_alg.h.

template<typename T >
T ogdf::computeMinST ( node  s,
const Graph &  G,
const EdgeArray< T > &  weight,
NodeArray< edge > &  pred,
EdgeArray< bool > &  isInTree 
)

Computes a minimum spanning tree (MST) using Prim's algorithm.

Template Parameters:
Tis the numeric type for edge weights.
Parameters:
sis the start node for Prim's algorithm and will be the root of the MST.
Gis the input graph.
weightis an edge array with the edge weights.
isInTreeis assigned the result, i.e. isInTree[e] is true iff edge e is in the computed MST.
predis assigned for each node the edge from its parent in the MST.
Returns:
the sum of the edge weights in the computed tree.

Definition at line 306 of file extended_graph_alg.h.

int ogdf::connectedComponents ( const Graph &  G,
NodeArray< int > &  component 
)

Computes the connected components of G.

Assigns component numbers (0, 1, ...) to the nodes of G. The component number of each node is stored in the node array component.

Parameters:
Gis the input graph.
componentis assigned a mapping from nodes to component numbers.
Returns:
the number of connected components.
int ogdf::connectedIsolatedComponents ( const Graph &  G,
List< node > &  isolated,
NodeArray< int > &  component 
)

Computes the connected components of G and returns the list of isolated nodes.

Assigns component numbers (0, 1, ...) to the nodes of G. The component number of each node is stored in the node array component.

Parameters:
Gis the input graph.
isolatedis assigned the list of isolated nodes. An isolated node is a node without incident edges.
componentis assigned a mapping from nodes to component numbers.
Returns:
the number of connected components.
void ogdf::cubeGraph ( Graph &  G,
int  n 
)

Creates the graph \(Q^n\): A n-cube graph.

Parameters:
Gis assigned the generated graph.
nis the number of the cube's dimensions (n>=0).
bool ogdf::dfsGenTree ( UMLGraph &  UG,
List< edge > &  fakedGens,
bool  fakeTree 
)

Definition at line 121 of file precondition.h.

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

Definition at line 60 of file precondition.h.

bool ogdf::DIsEqual ( const double &  a,
const double &  b,
const double  eps = OGDF_GEOM_EPS 
)
inline

Definition at line 71 of file geometry.h.

bool ogdf::DIsGreater ( const double &  a,
const double &  b,
const double  eps = OGDF_GEOM_EPS 
)
inline

Definition at line 83 of file geometry.h.

bool ogdf::DIsGreaterEqual ( const double &  a,
const double &  b,
const double  eps = OGDF_GEOM_EPS 
)
inline

Definition at line 77 of file geometry.h.

bool ogdf::DIsLess ( const double &  a,
const double &  b,
const double  eps = OGDF_GEOM_EPS 
)
inline

Definition at line 95 of file geometry.h.

bool ogdf::DIsLessEqual ( const double &  a,
const double &  b,
const double  eps = OGDF_GEOM_EPS 
)
inline

Definition at line 89 of file geometry.h.

template<class E >
bool ogdf::doDestruction ( const E *  )
inline

doDestruction() returns false if a data type does not require to call its destructor (e.g. build-in data types).

Definition at line 390 of file basic.h.

template<>
bool ogdf::doDestruction ( const char *  )
inline

Definition at line 393 of file basic.h.

template<>
bool ogdf::doDestruction< adjEntry > ( const adjEntry *  )
inline

Definition at line 601 of file Graph_d.h.

template<>
bool ogdf::doDestruction< double > ( const double *  )
inline

Definition at line 395 of file basic.h.

template<>
bool ogdf::doDestruction< edge > ( const edge *  )
inline

Definition at line 600 of file Graph_d.h.

template<>
bool ogdf::doDestruction< int > ( const int *  )
inline

Definition at line 394 of file basic.h.

template<>
bool ogdf::doDestruction< node > ( const node *  )
inline

Definition at line 599 of file Graph_d.h.

template<>
bool ogdf::doDestruction< PtrPlanarLeafKeyI > ( const PtrPlanarLeafKeyI *  )
inline

Definition at line 69 of file EmbedPQTree.h.

template<>
bool ogdf::doDestruction< PtrPlanarLeafKeyW > ( const PtrPlanarLeafKeyW *  )
inline

Definition at line 80 of file PlanarSubgraphPQTree.h.

template<>
bool ogdf::doDestruction< PtrPQBasicKeyEIB > ( const PtrPQBasicKeyEIB *  )
inline

Definition at line 63 of file EmbedPQTree.h.

template<>
bool ogdf::doDestruction< PtrPQLeafKeyEWB > ( const PtrPQLeafKeyEWB *  )
inline

Definition at line 75 of file PlanarSubgraphPQTree.h.

double ogdf::DRound ( const double &  d,
int  prec = 0 
)
inline

Definition at line 101 of file geometry.h.

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

Definition at line 104 of file precondition.h.

void ogdf::getEntries ( const char *  dirName,
List< String > &  entries,
const char *  pattern = "*" 
)

Returns in entries the list of all entries contained in directory dirName.

Entries may be files or directories. The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
void ogdf::getEntries ( const char *  dirName,
FileType  t,
List< String > &  entries,
const char *  pattern = "*" 
)

Returns in entries the list of all entries of type t contained in directory dirName.

The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
void ogdf::getEntriesAppend ( const char *  dirName,
List< String > &  entries,
const char *  pattern = "*" 
)

Appends to entries the list of all entries contained in directory dirName.

Entries may be files or directories. The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
void ogdf::getEntriesAppend ( const char *  dirName,
FileType  t,
List< String > &  entries,
const char *  pattern = "*" 
)

Appends to entries the list of all entries of type t contained in directory dirName.

The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
void ogdf::getFiles ( const char *  dirName,
List< String > &  files,
const char *  pattern = "*" 
)

Returns in files the list of files in directory dirName.

The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
void ogdf::getFilesAppend ( const char *  dirName,
List< String > &  files,
const char *  pattern = "*" 
)

Appends to files the list of files in directory dirName.

The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
template<class EDGELIST >
void ogdf::getParallelFreeUndirected ( const Graph &  G,
EdgeArray< EDGELIST > &  parallelEdges 
)

Computes the bundles of undirected parallel edges in G.

Stores for one (arbitrarily chosen) reference edge all edges belonging to the same bundle of undirected parallel edges; no edge is removed from the graph.

Template Parameters:
EDGELISTis the type of edge list that is assigned the list of edges.
Parameters:
Gis the input graph.
parallelEdgesis assigned for each reference edge the list of edges belonging to the bundle of undirected parallel edges.

Definition at line 346 of file simple_graph_alg.h.

void ogdf::getSubdirs ( const char *  dirName,
List< String > &  subdirs,
const char *  pattern = "*" 
)

Returns in subdirs the list of directories contained in directory dirName.

The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
void ogdf::getSubdirsAppend ( const char *  dirName,
List< String > &  subdirs,
const char *  pattern = "*" 
)

Appends to subdirs the list of directories contained in directory dirName.

The optional argument pattern can be used to filter files.

Precondition:
dirName is a directory
void ogdf::gridGraph ( Graph &  G,
int  n,
int  m,
bool  loopN,
bool  loopM 
)

Creates a (toroidal) grid graph on n x m nodes.

Parameters:
Gis assigned the generated graph.
nis the number of nodes on first axis.
mis the number of nodes on second axis.
loopNif the grid is cyclic on first axis
loopMif the grid is cyclic on second axis
bool ogdf::hasSingleSink ( const Graph &  G,
node &  sink 
)

Returns true iff the digraph G contains exactly one sink node (or is empty).

Parameters:
Gis the input graph.
sinkis assigned the single sink if true is returned, or 0 otherwise.
Returns:
true if G has a single sink, false otherwise.
bool ogdf::hasSingleSink ( const Graph &  G)
inline

Returns true iff the digraph G contains exactly one sink node (or is empty).

Parameters:
Gis the input graph.
Returns:
true if G has a single sink, false otherwise.

Definition at line 689 of file simple_graph_alg.h.

bool ogdf::hasSingleSource ( const Graph &  G,
node &  source 
)

Returns true iff the digraph G contains exactly one source node (or is empty).

Parameters:
Gis the input graph.
sourceis assigned the single source if true is returned, or 0 otherwise.
Returns:
true if G has a single source, false otherwise.
bool ogdf::hasSingleSource ( const Graph &  G)
inline

Returns true iff the digraph G contains exactly one source node (or is empty).

Parameters:
Gis the input graph.
Returns:
true if G has a single source, false otherwise.

Definition at line 669 of file simple_graph_alg.h.

template<class LISTITERATOR >
void ogdf::inducedSubGraph ( const Graph &  G,
LISTITERATOR  start,
Graph &  subGraph 
)

Computes the subgraph induced by a list of nodes.

Template Parameters:
NODELISTITERATORis the type of iterators for the input list of nodes.
Parameters:
Gis the input graph.
startis a list iterator pointing to the first element in a list of nodes, for which an induced subgraph shall be computed.
subGraphis assigned the computed subgraph.

Definition at line 72 of file extended_graph_alg.h.

template<class LISTITERATOR >
void ogdf::inducedSubGraph ( const Graph &  G,
LISTITERATOR  start,
Graph &  subGraph,
NodeArray< node > &  nodeTableOrig2New 
)

Computes the subgraph induced by a list of nodes (plus a mapping from original nodes to new copies).

Template Parameters:
NODELISTITERATORis the type of iterators for the input list of nodes.
Parameters:
Gis the input graph.
startis a list iterator pointing to the first element in a list of nodes, for which an induced subgraph shall be computed.
subGraphis assigned the computed subgraph.
nodeTableOrig2Newis assigned a mapping from the nodes in G to the nodes in subGraph.

Definition at line 88 of file extended_graph_alg.h.

template<class LISTITERATOR >
void ogdf::inducedSubGraph ( const Graph &  G,
LISTITERATOR  start,
Graph &  subGraph,
NodeArray< node > &  nodeTableOrig2New,
EdgeArray< edge > &  edgeTableOrig2New 
)

Computes the subgraph induced by a list of nodes (plus mappings from original nodes and edges to new copies).

Template Parameters:
NODELISTITERATORis the type of iterators for the input list of nodes.
Parameters:
Gis the input graph.
startis a list iterator pointing to the first element in a list of nodes, for which an induced subgraph shall be computed.
subGraphis assigned the computed subgraph.
nodeTableOrig2Newis assigned a mapping from the nodes in G to the nodes in subGraph.
edgeTableOrig2Newis assigned a mapping from the edges in G to the egdes in subGraph.

Definition at line 131 of file extended_graph_alg.h.

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 180 of file extended_graph_alg.h.

bool ogdf::isAcyclic ( const Graph &  G,
List< edge > &  backedges 
)

Returns true iff the digraph G is acyclic.

Parameters:
Gis the input graph
backedgesis assigned the backedges of a DFS-tree.
Returns:
true if G contains no directed cycle, false otherwise.
bool ogdf::isAcyclic ( const Graph &  G)
inline

Returns true iff the digraph G is acyclic.

Parameters:
Gis the input graph
Returns:
true if G contains no directed cycle, false otherwise.

Definition at line 610 of file simple_graph_alg.h.

bool ogdf::isAcyclicUndirected ( const Graph &  G,
List< edge > &  backedges 
)

Returns true iff the undirected graph G is acyclic.

Parameters:
Gis the input graph
backedgesis assigned the backedges of a DFS-tree.
Returns:
true if G contains no undirected cycle, false otherwise.
bool ogdf::isAcyclicUndirected ( const Graph &  G)
inline

Returns true iff the undirected graph G is acyclic.

Parameters:
Gis the input graph
Returns:
true if G contains no undirected cycle, false otherwise.

Definition at line 630 of file simple_graph_alg.h.

bool ogdf::isBiconnected ( const Graph &  G,
node &  cutVertex 
)

Returns true iff G is biconnected.

Parameters:
Gis the input graph.
cutVertexIf false is returned, cutVertex is assigned either 0 if G is not connected, or a cut vertex in G.
bool ogdf::isBiconnected ( const Graph &  G)
inline

Returns true iff G is biconnected.

Parameters:
Gis the input graph.

Definition at line 486 of file simple_graph_alg.h.

bool ogdf::isCConnected ( const ClusterGraph &  C)

Returns true iff cluster graph C is c-connected.

bool ogdf::isConnected ( const Graph &  G)

Returns true iff G is connected.

Parameters:
Gis the input graph.
Returns:
true if G is connected, false otherwise.
bool ogdf::isDirectory ( const char *  fileName)

Returns true iff fileName is a directory.

bool ogdf::isFile ( const char *  fileName)

Returns true iff fileName is a regular file (not a directory).

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

Returns true iff G represents a forest, i.e., a collection of rooted trees.

Parameters:
Gis the input graph.
rootsis assigned the list of root nodes of the trees in the forest.
Returns:
true if G represents a forest, false otherwise.
bool ogdf::isForest ( const Graph &  G)
inline

Returns true iff G represents a forest, i.e. a collection of rooted trees.

Parameters:
Gis the input graph.
Returns:
true if G represents a forest, false otherwise.

Definition at line 771 of file simple_graph_alg.h.

bool ogdf::isFreeForest ( const Graph &  G)

Returns true iff G is a free forest, i.e. contains no undirected cycle.

Parameters:
Gis the input graph.
Returns:
true if \ G is contains no undirected cycle, false otherwise.
bool ogdf::isLoopFree ( const Graph &  G)

Returns true iff G contains no self-loop.

Parameters:
Gis the input graph.
Returns:
true if G contains no self-loops (edges whose two endpoints are the same), false otherwise.
bool ogdf::isParallelFree ( const Graph &  G)

Returns true iff G contains no paralle edges.

A parallel edge is an edge e1=(v,w) such that there exists another edge e2=(v,w) in the graph. Reversal edges (e.g. (v,w) and (w,v)) are not parallel edges. If you want to test if a graph contains no undirected parallel edges, use isParallelFreeUndirected().

Parameters:
Gis the input graph.
Returns:
true if G contains no multi-edges (edges with the same source and target).
bool ogdf::isParallelFreeUndirected ( const Graph &  G)

Returns true iff G contains no undirected parallel edges.

An undirected parallel edges is an edge e1=(v,w) such that there exists another edge e2=(v,w) or (w,v) in the graph.

Parameters:
Gis the input graph.
Returns:
true if G contains no undirected parallel edges.
bool ogdf::isPlanar ( const Graph &  G)
inline

Returns true, if G is planar, false otherwise.

This is a shortcut for BoyerMyrvold::isPlanar().

Parameters:
Gis the input graph.
Returns:
true if G is planar, false otherwise.

Definition at line 385 of file extended_graph_alg.h.

bool ogdf::isSimple ( const Graph &  G)
inline

Returns true iff G contains neither self-loops nor parallel edges.

Parameters:
Gis the input graph.
Returns:
true if G is simple, i.e. contains neither self-loops nor parallel edges, false otherwise.

Definition at line 377 of file simple_graph_alg.h.

bool ogdf::isSimpleUndirected ( const Graph &  G)
inline

Returns true iff G contains neither self-loops nor undirected parallel edges.

Parameters:
Gis the input graph.
Returns:
true if G is (undirected) simple, i.e. contains neither self-loops nor undirected parallel edges, false otherwise.

Definition at line 398 of file simple_graph_alg.h.

bool ogdf::isStGraph ( const Graph &  G,
node &  s,
node &  t,
edge &  st 
)

Returns true iff G is an st-digraph.

A directed graph is an st-digraph if it is acyclic, contains exactly one source s and one sink t, and the edge (s,t).

Parameters:
Gis the input graph.
sis assigned the single source (if true is returned).
tis assigned the single sink (if true is returned).
stis assigned the edge (s,t) (if true is returned).
Returns:
true if G is an st-digraph, false otherwise.
bool ogdf::isStGraph ( const Graph &  G)
inline

Returns true if G is an st-digraph.

A directed graph is an st-digraph if it is acyclic, contains exactly one source s and one sink t, and the edge (s,t).

Parameters:
Gis the input graph.
Returns:
true if G is an st-digraph, false otherwise.

Definition at line 716 of file simple_graph_alg.h.

bool ogdf::isTree ( const Graph &  G,
node &  root 
)

Returns true iff G represents a tree.

Parameters:
Gis the input graph.
rootis assigned the root node (if true is returned).
Returns:
true if G represents a tree, false otherwise.
bool ogdf::isTree ( const Graph &  G)
inline

Returns true iff G represents a tree.

Parameters:
Gis the input graph.
Returns:
true if G represents a tree, false otherwise.

Definition at line 792 of file simple_graph_alg.h.

bool ogdf::isTriconnected ( const Graph &  G,
node &  s1,
node &  s2 
)

Returns true iff G is triconnected.

If true is returned, then either

  • s1 and s2 are either both 0 if G is not connected; or
  • s1 is a cut vertex and s2 = 0 if G is not biconnected; or
  • s1 and s2 are a separation pair otherwise.
Parameters:
Gis the input graph.
s1is assigned a cut vertex of one node of a separation pair, if G is not triconnected (see above).
s2is assigned one node of a separation pair, if G is not triconnected (see above).
Returns:
true if G is triconnected, false otherwise.
bool ogdf::isTriconnected ( const Graph &  G)
inline

Returns true iff G is triconnected.

Parameters:
Gis the input graph.
Returns:
true if G is triconnected, false otherwise.

Definition at line 542 of file simple_graph_alg.h.

bool ogdf::isTriconnectedPrimitive ( const Graph &  G,
node &  s1,
node &  s2 
)

Returns true iff G is triconnected (using a quadratic time algorithm!).

If true is returned, then either

  • s1 and s2 are either both 0 if G is not connected; or
  • s1 is a cut vertex and s2 = 0 if G is not biconnected; or
  • s1 and s2 are a separation pair otherwise.
Warning:
This method has quadratic running time. An efficient linear time version is provided by isTriconnected().
Parameters:
Gis the input graph.
s1is assigned a cut vertex of one node of a separation pair, if G is not triconnected (see above).
s2is assigned one node of a separation pair, if G is not triconnected (see above).
Returns:
true if G is triconnected, false otherwise.
bool ogdf::isTriconnectedPrimitive ( const Graph &  G)
inline

Returns true iff G is triconnected (using a quadratic time algorithm!).

Warning:
This method has quadratic running time. An efficient linear time version is provided by isTriconnected().
Parameters:
Gis the input graph.
Returns:
true if G is triconnected, false otherwise.

Definition at line 574 of file simple_graph_alg.h.

bool ogdf::loadBenchHypergraph ( Graph &  G,
List< node > &  hypernodes,
List< edge > *  shell,
istream &  is 
)

Loads a hypergraph in the BENCH-format from input stream is.

A hypergraph in OGDF is represented by its point-based expansion, i.e., for each hyperedge h we have a corresponding hypernode n. All nodes originally incident to h are incident to n, i.e., have regular edges to n.

Parameters:
Gis assigned the graph (point-based expansion of the hypergraph).
hypernodesis assigned the list of nodes which have to be interpreted as hypernodes.
shellif 0 only the BENCH-hypergraph is loaded. Otherwise we extend the loaded graph by a simple edge e=(i,o) and two hyperedges: one hyperedges groups all input nodes and i together, the other hyperedge groups all output edges and o. These additional edges are then also collocated in shell.
isis the input stream from which the hypergraph is read.
Warning:
This is a very simple implementation only usable for very properly formatted files!
bool ogdf::loadBenchHypergraph ( Graph &  G,
List< node > &  hypernodes,
List< edge > *  shell,
const char *  fileName 
)

Loads a hypergraph in the BENCH-format from the specified file.

Parameters:
Gis assigned the graph (point-based expansion of the hypergraph).
hypernodesis assigned the list of nodes which have to be interpreted as hypernodes.
shellif 0 only the BENCH-hypergraph is loaded. Otherwise we extend the loaded graph by a simple edge e=(i,o) and two hyperedges: one hyperedges groups all input nodes and i together, the other hyperedge groups all output edges and o. These additional edges are then also collocated in shell.
fileNameis the name of the file from which the hypergraph is read.
See also:
loadBenchHypergraph(Graph &G, List<node>& hypernodes, List<edge>* shell, istream &is)
bool ogdf::loadChacoGraph ( Graph &  G,
istream &  is 
)

Loads a graph G stored in the chaco file format from an input stream is.

Graphs stored in the chaco file format are typically used in graph partitioning and use the file extension .graph.

The first line contains two integers separated by spacing: #nodes #edges A third entry indicates node and edge weights (not supported here yet). Each of the following #nodes lines from 1 to #nodes contains the space separated index list of the adjacent nodes for the node associated with that line (where node indices are from 1 to n). Macro SIMPLE_LOAD_BUFFER_SIZE defines the length of the line read buffer and should be adjusted according to the maximum read size.

Parameters:
Gis assigned the loaded graph.
isis the input stream from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
bool ogdf::loadChacoGraph ( Graph &  G,
const char *  fileName 
)

Loads a graph G stored in the chaco file format from a file fileName.

Parameters:
Gis assigned the loaded graph.
fileNameis the name of the file from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
See also:
loadChacoGraph(Graph &, istream&)
bool ogdf::loadChallengeGraph ( Graph &  G,
GridLayout &  gl,
istream &  is 
)

Loads a graph G with layout gl stored in GD-Challenge-format from stream is.

Parameters:
Gis assigned the loaded graph.
glis assigned the grid layout.
isis the input stream from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
bool ogdf::loadChallengeGraph ( Graph &  G,
GridLayout &  gl,
const char *  fileName 
)

Loads a graph G with layout gl stored in GD-Challenge-format from file fileName.

Parameters:
Gis assigned the loaded graph.
glis assigned the grid layout.
fileNameis the name of the file from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
bool ogdf::loadEdgeListSubgraph ( Graph &  G,
List< edge > &  delEdges,
istream &  is 
)

Loads graph G with subgraph defined by delEdges from stream is.

Parameters:
Gis assigned the loaded graph.
delEdgesis assigned the edges of the subgraph.
isis the input stream from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
bool ogdf::loadEdgeListSubgraph ( Graph &  G,
List< edge > &  delEdges,
const char *  fileName 
)

Loads graph G with subgraph defined by delEdges from file fileName.

Parameters:
Gis assigned the loaded graph.
delEdgesis assigned the edges of the subgraph.
fileNameis the name of the file from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
bool ogdf::loadPlaHypergraph ( Graph &  G,
List< node > &  hypernodes,
List< edge > *  shell,
istream &  is 
)

Loads a hypergraph in the PLA-format from input stream is.

A hypergraph in OGDF is represented by its point-based expansion, i.e., for each hyperedge h we have a corresponding hypernode n. All nodes originally incident to h are incident to n, i.e., have regular edges to n.

Parameters:
Gis assigned the graph (point-based expansion of the hypergraph).
hypernodesis assigned the list of nodes which have to be interpreted as hypernodes.
shellif 0 only the PLA-hypergraph is loaded. Otherwise we extend the loaded graph by a simple edge e=(i,o) and two hyperedges: one hyperedges groups all input nodes and i together, the other hyperedge groups all output edges and o. These additional edges are then also collocated in shell.
isis the input stream from which the hypergraph is read.
Warning:
This is a very simple implementation only usable for very properly formatted files!
bool ogdf::loadPlaHypergraph ( Graph &  G,
List< node > &  hypernodes,
List< edge > *  shell,
const char *  fileName 
)

Loads a hypergraph in the PLA-format from file fileName.

Parameters:
Gis assigned the graph (point-based expansion of the hypergraph).
hypernodesis assigned the list of nodes which have to be interpreted as hypernodes.
shellif 0 only the PLA-hypergraph is loaded. Otherwise we extend the loaded graph by a simple edge e=(i,o) and two hyperedges: one hyperedges groups all input nodes and i together, the other hyperedge groups all output edges and o. These additional edges are then also collocated in shell.
fileNameis the name of the file from which the hypergraph is read.
See also:
loadPlaHypergraph(Graph &G, List<node>& hypernodes, List<edge> *shell, istream &is)
bool ogdf::loadRomeGraph ( Graph &  G,
istream &  is 
)

Loads a graph G stored in the Rome-Graph-format from an input stream is.

The Rome format contains (in this order) n "node-lines", 1 "separator-line", m "edge-lines". These lines are as follows (whereby all IDs are integer numbers):

  • node-line: NodeId 0
  • separator-line: starts with a #-sign
  • edge-line: EdgeId 0 SourceNodeId TargetNodeId
Parameters:
Gis assigned the loaded graph.
isis the input stream from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
Warning:
This is a very simple implementation only usable for very properly formatted files!
bool ogdf::loadRomeGraph ( Graph &  G,
const char *  fileName 
)

Loads a graph G stored in the Rome-Graph-format from a file fileName.

Parameters:
Gis assigned the loaded graph.
fileNameis the name of the file from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
See also:
loadRomeGraph(Graph &, istream&)
bool ogdf::loadSimpleGraph ( Graph &  G,
istream &  is 
)

Loads a graph G stored in a simple format from an input stream is.

Simple format has a leading line stating the name of the graph and a following line stating the size of the graph.

 *BEGIN unknown_name.numN.numE
 *GRAPH numN numE UNDIRECTED UNWEIGHTED
 
Parameters:
Gis assigned the loaded graph.
isis the input stream from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
bool ogdf::loadSimpleGraph ( Graph &  G,
const char *  fileName 
)

Loads a graph G stored in a simple format from a file fileName.

This format is used e.g. for the graphs from Petra Mutzel's Ph.D. Thesis.

Parameters:
Gis assigned the loaded graph.
fileNameis the name of the file from which the graph is read.
Returns:
true if the graph was loaded successfully, false otherwise.
See also:
loadSimpleGraph(Graph &G, istream &is)
bool ogdf::loadYGraph ( Graph &  G,
FILE *  lineStream 
)

Loads a graph G stored in the Y-graph-format from file stream (one line) lineStream.

This format is e.g. produced by NAUTY (http://www.cs.sunysb.edu/~algorith/implement/nauty/implement.shtml)

Details on the format, as given in NAUTYs graph generator (see above link): "[A] graph occupies one line with a terminating newline. Except for the newline, each byte has the format 01xxxxxx, where each "x" represents one bit of data.

First byte: xxxxxx is the number of vertices n

Other ceiling(n(n-1)/12) bytes: These contain the upper triangle of the adjacency matrix in column major order. That is, the entries appear in the order (0,1),(0,2),(1,2),(0,3),(1,3),(2,3),(0,4),... . The bits are used in left to right order within each byte. Any unused bits on the end are set to zero.

int ogdf::localtime ( struct tm *  ptm,
const time_t *  timer 
)
inline

Definition at line 622 of file basic.h.

void ogdf::makeAcyclic ( Graph &  G)

Makes the digraph G acyclic by removing edges.

The implementation removes all backedges of a DFS tree.

Parameters:
Gis the input graph
void ogdf::makeAcyclicByReverse ( Graph &  G)

Makes the digraph G acyclic by reversing edges.

Remarks:
The implementation ignores self-loops and reverses the backedges of a DFS-tree.
Parameters:
Gis the input graph
void ogdf::makeBiconnected ( Graph &  G,
List< edge > &  added 
)

Makes G biconnected by adding edges.

Parameters:
Gis the input graph.
addedis assigned the list of inserted edges.
void ogdf::makeBiconnected ( Graph &  G)
inline

Makes G biconnected by adding edges.

Parameters:
Gis the input graph.

Definition at line 504 of file simple_graph_alg.h.

void ogdf::makeCConnected ( ClusterGraph &  C,
Graph &  G,
List< edge > &  addedEdges,
bool  simple = true 
)

Makes a cluster graph c-connected by adding edges.

Parameters:
Cis the input cluster graph.
Gis the graph associated with the cluster graph C; the function adds new edges to this graph.
addedEdgesis assigned the list of newly created edges.
simpleselects the method used: If set to true, a simple variant that does not guarantee to preserve planarity is used.
void ogdf::makeConnected ( Graph &  G,
List< edge > &  added 
)

Makes G connected by adding a minimum number of edges.

Parameters:
Gis the input graph.
addedis assigned the added edges.
void ogdf::makeConnected ( Graph &  G)
inline

makes G connected by adding a minimum number of edges.

Parameters:
Gis the input graph.

Definition at line 438 of file simple_graph_alg.h.

template<class NODELIST >
void ogdf::makeLoopFree ( Graph &  G,
NODELIST &  L 
)

Removes all self-loops from G and returns all nodes with self-loops in L.

Template Parameters:
NODELISTis the type of the node list for returning the nodes with self-loops.
Parameters:
Gis the input graph.
Lis assigned the list of nodes with self-loops.

Definition at line 77 of file simple_graph_alg.h.

void ogdf::makeLoopFree ( Graph &  G)

Removes all self-loops from G.

Parameters:
Gis the input graph.
template<class EDGELIST >
void ogdf::makeParallelFree ( Graph &  G,
EDGELIST &  parallelEdges 
)

Removes all but one of each bundle of parallel edges.

A parallel edge is an edge e1=(v,w) such that there exists another edge e2=(v,w) in the graph. Reversal edges (e.g. (v,w) and (w,v)) are not multi-edges. If you want to remove parallel and reversal edges, use makeParallelFreeUndirected(Graph&,EDGELIST&).

Template Parameters:
EDGELISTis the type of edge list that will be assigned the list of parallel edges.
Parameters:
Gis the input graph.
parallelEdgesis assigned the list of remaining edges in G that were part of a bundle of parallel edges in the input graph.

Definition at line 148 of file simple_graph_alg.h.

void ogdf::makeParallelFree ( Graph &  G)
inline

Removes all but one edge of each bundle of parallel edges in G.

A parallel edge is an edge e1=(v,w) such that there exists another edge e2=(v,w) in the graph. Reversal edges (e.g. (v,w) and (w,v)) are not parallel edges. If you want to remove parallel and reversal edges, use makeParallelFreeUndirected(Graph&).

Parameters:
Gis the input graph.

Definition at line 179 of file simple_graph_alg.h.

template<class EDGELIST >
void ogdf::makeParallelFreeUndirected ( Graph &  G,
EDGELIST &  parallelEdges 
)

Removes all but one of each bundle of undirected parallel edges.

An undirected parallel edges is an edge e1=(v,w) such that there exists another edge e2=(v,w) or (w,v) in the graph. The function removes unordered pair {v,w} of nodes all but one of the edges with endpoints v and w (in any order).

Template Parameters:
EDGELISTis the type of edge list that will be assigned the list of edges.
Parameters:
Gis the input graph.
parallelEdgesis assigned the list of remaining edges that were part of a bundle of undirected parallel edges in the input graph.

Definition at line 238 of file simple_graph_alg.h.

void ogdf::makeParallelFreeUndirected ( Graph &  G)
inline

Removes all but one of each bundle of undirected parallel edges.

An undirected parallel edges is an edge e1=(v,w) such that there exists another edge e2=(v,w) or (w,v) in the graph. The function removes unordered pair {v,w} of nodes all but one of the edges with endpoints v and w (in any order).

Parameters:
Gis the input graph.

Definition at line 270 of file simple_graph_alg.h.

template<class EDGELIST >
void ogdf::makeParallelFreeUndirected ( Graph &  G,
EDGELIST &  parallelEdges,
EdgeArray< int > &  cardPositive,
EdgeArray< int > &  cardNegative 
)

Removes all but one of each bundle of undirected parallel edges.

An undirected parallel edges is an edge e1=(v,w) such that there exists another edge e2=(v,w) or (w,v) in the graph. The function removes unordered pair {v,w} of nodes all but one of the edges with endpoints v and w (in any order).

Template Parameters:
EDGELISTis the type of edge list that is assigned the list of edges.
Parameters:
Gis the input graph.
parallelEdgesis assigned the list of remaining edges that were part of a bundle of undirected parallel edges in the input graph.
cardPositivecontains for each edge the number of removed undirected parallel edges pointing in the same direction.
cardNegativecontains for each edge the number of removed undirected parallel edges pointing in the opposite direction.

Definition at line 292 of file simple_graph_alg.h.

void ogdf::makeSimple ( Graph &  G)
inline

Removes all self-loops and all but one edge of each bundle of parallel edges.

Parameters:
Gis the input graph.

Definition at line 386 of file simple_graph_alg.h.

void ogdf::makeSimpleUndirected ( Graph &  G)
inline

Removes all self-loops and all but one edge of each bundle of undirected parallel edges.

Parameters:
Gis the input graph.

Definition at line 407 of file simple_graph_alg.h.

int ogdf::numParallelEdges ( const Graph &  G)

Returns the number of parallel edges in G.

A parallel edge is an edge e1=(v,w) such that there exists another edge e2=(v,w) in the graph. Reversal edges (e.g. (v,w) and (w,v)) are not parallel edges. If you want to also take reversal edges into account, use numParallelEdgesUndirected().

Parameters:
Gis the input graph.
Returns:
is the number of parallel edges: for each bundle of parallel edges between two nodes v and w, all but one are counted.
int ogdf::numParallelEdgesUndirected ( const Graph &  G)

Returns the number of undirected parallel edges in G.

An undirected parallel edges is an edge e1=(v,w) such that there exists another edge e2=(v,w) or (w,v) in the graph.

Parameters:
Gis the input graph.
Returns:
the number of undirected parallel edges; for each unordered pair {v,w} of nodes, all but one of the edges with endpoints v and w (in any order) are counted.
bool ogdf::operator!= ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
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 100 of file tuples.h.

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

Inequality operator for 3-tuples.

Definition at line 163 of file tuples.h.

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

Inequality operator for 4-tuples.

Definition at line 233 of file tuples.h.

MDMFLengthAttribute ogdf::operator+ ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
MDMFLengthAttribute ogdf::operator+= ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
MDMFLengthAttribute ogdf::operator- ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
MDMFLengthAttribute ogdf::operator-= ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
bool ogdf::operator< ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
ostream& ogdf::operator<< ( ostream &  os,
ogdf::node  v 
)

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

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

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

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

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

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

Output operator for 2-tuples.

Definition at line 107 of file tuples.h.

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

Output operator for DinoUmlModelGraph.

ostream& ogdf::operator<< ( ostream &  os,
const RCCrossings &  cr 
)
template<class E1 , class E2 , class E3 >
ostream& ogdf::operator<< ( ostream &  os,
const Tuple3< E1, E2, E3 > &  t3 
)

Output operator for 3-tuples.

Definition at line 170 of file tuples.h.

ostream& ogdf::operator<< ( ostream &  os,
const IPoint &  ip 
)

Output operator for integer points.

ostream& ogdf::operator<< ( ostream &  os,
const DinoUmlDiagramGraph &  diagramGraph 
)

Output operator for DinoUmlDiagramGraph.

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

Definition at line 194 of file BoundedQueue.h.

template<class E , class INDEX >
ostream& ogdf::operator<< ( ostream &  os,
const BoundedStack< E, INDEX > &  S 
)

Definition at line 200 of file BoundedStack.h.

ostream& ogdf::operator<< ( ostream &  os,
const String &  str 
)
inline

Output operator for strings.

Definition at line 215 of file String.h.

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

Definition at line 215 of file Queue.h.

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

Definition at line 221 of file Queue.h.

template<class E >
ostream& ogdf::operator<< ( ostream &  os,
const StackPure< E > &  S 
)

Definition at line 232 of file Stack.h.

template<class E >
ostream& ogdf::operator<< ( ostream &  os,
const Stack< E > &  S 
)

Definition at line 240 of file Stack.h.

template<class E1 , class E2 , class E3 , class E4 >
ostream& ogdf::operator<< ( ostream &  os,
const Tuple4< E1, E2, E3, E4 > &  t4 
)

Output operator for 4-tuples.

Definition at line 241 of file tuples.h.

ostream& ogdf::operator<< ( ostream &  os,
const DPoint &  dp 
)

Output operator for real points.

ostream& ogdf::operator<< ( ostream &  O,
const NodeInfo &  inf 
)
ostream& ogdf::operator<< ( ostream &  os,
const DinoXmlParser &  parser 
)

Output operator for DinoXmlParser.

ostream& ogdf::operator<< ( ostream &  os,
const DLine &  dl 
)

Output operator for lines.

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

Definition at line 578 of file Array.h.

ostream& ogdf::operator<< ( ostream &  os,
const DRect &  dr 
)

Output operator for rectangles.

ostream& ogdf::operator<< ( ostream &  os,
const DScaler &  ds 
)

Output operator for scalers.

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

Output operator for polygons.

template<typename T >
static std::ostream& ogdf::operator<< ( std::ostream &  outStream,
HyperGraph::NodeArray< T > &  array 
)
static

Definition at line 800 of file HyperGraph.h.

template<typename T >
static std::ostream& ogdf::operator<< ( std::ostream &  outStream,
HyperGraph::EdgeArray< T > &  array 
)
static

Definition at line 807 of file HyperGraph.h.

template<typename T >
static std::ostream& ogdf::operator<< ( std::ostream &  outStream,
HyperGraph::AdjArray< T > &  array 
)
static

Definition at line 814 of file HyperGraph.h.

ostream& ogdf::operator<< ( ostream &  os,
ogdf::cluster  c 
)
static std::ostream& ogdf::operator<< ( std::ostream &  outStream,
HyperGraph &  graph 
)
static

Definition at line 859 of file HyperGraph.h.

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

Definition at line 1004 of file SList.h.

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

Definition at line 1011 of file SList.h.

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

Definition at line 1614 of file List.h.

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

Definition at line 1622 of file List.h.

bool ogdf::operator<= ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
bool ogdf::operator== ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
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 93 of file tuples.h.

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

Equality operator for 3-tuples.

Definition at line 156 of file tuples.h.

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

Equality operator for 4-tuples.

Definition at line 225 of file tuples.h.

bool ogdf::operator> ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
bool ogdf::operator>= ( const MDMFLengthAttribute &  x,
const MDMFLengthAttribute &  y 
)
template<typename T >
static std::istream& ogdf::operator>> ( std::istream &  inStream,
HyperGraph::NodeArray< T > &  array 
)
static

Definition at line 829 of file HyperGraph.h.

template<typename T >
static std::istream& ogdf::operator>> ( std::istream &  inStream,
HyperGraph::EdgeArray< T > &  array 
)
static

Definition at line 837 of file HyperGraph.h.

template<typename T >
static std::istream& ogdf::operator>> ( std::istream &  inStream,
HyperGraph::AdjArray< T > &  array 
)
static

Definition at line 845 of file HyperGraph.h.

static std::istream& ogdf::operator>> ( std::istream &  inStream,
HyperGraph &  graph 
)
static

Definition at line 885 of file HyperGraph.h.

void ogdf::parallelFreeSort ( const Graph &  G,
SListPure< edge > &  edges 
)

Sorts the edges of G such that parallel edges come after each other in the list.

Parameters:
Gis the input graph.
edgesis assigned the list of sorted edges.
void ogdf::parallelFreeSortUndirected ( const Graph &  G,
SListPure< edge > &  edges,
EdgeArray< int > &  minIndex,
EdgeArray< int > &  maxIndex 
)

Sorts the edges of G such that undirected parallel edges come after each other in the list.

An undirected parallel edges is an edge e1=(v,w) such that there exists another edge e2=(v,w) or (w,v) in the graph.

Parameters:
Gis the input graph.
edgesis assigned the list of sorted edges.
minIndexis assigned for each edge (v,w) the index min(index(v),index(w)).
maxIndexis assigned for each edge (v,w) the index max(index(v),index(w)).
void ogdf::petersenGraph ( Graph &  G,
int  n,
int  m 
)

Creates a generalized Petersen graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes on outer cycle.
mis the number of jumps.
void ogdf::planarBiconnectedGraph ( Graph &  G,
int  n,
int  m,
bool  multiEdges = false 
)

Creates a planar biconnected (embedded) graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes of the generated graph.
mis the number of edges of the generated graph.
multiEdgesdetermines if the generated graph may contain multi-edges.
void ogdf::planarCNBGraph ( Graph &  G,
int  n,
int  m,
int  b 
)

Creates a planar graph, that is connected, but not biconnected.

void ogdf::planarConnectedGraph ( Graph &  G,
int  n,
int  m 
)

Creates a connected (simple) planar (embedded) graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes of the generated graph.
mis the number of edges of the generated graph.
bool ogdf::planarEmbed ( Graph &  G)
inline

Returns true, if G is planar, false otherwise. If true is returned, G will be planarly embedded.

This is a shortcut for BoyerMyrvold::planarEmbed

Parameters:
Gis the input graph.
Returns:
true if G is planar, false otherwise.

Definition at line 397 of file extended_graph_alg.h.

bool ogdf::planarEmbedPlanarGraph ( Graph &  G)
inline

Constructs a planar embedding of G. It assumes that G is planar!

This routine is slightly faster than planarEmbed(), but requires G to be planar. If G is not planar, the graph will be destroyed while trying to embed it!

This is a shortcut for BoyerMyrvold::planarEmbedPlanarGraph().

Parameters:
Gis the input graph.
Returns:
true if the embedding was successful; false, if the given graph was non-planar (in this case the graph will be left in an at least partially deleted state).

Definition at line 414 of file extended_graph_alg.h.

void ogdf::planarTriconnectedGraph ( Graph &  G,
int  n,
int  m 
)

Creates a planar triconnected (and simple) graph.

This graph generator works in two steps.

  1. A planar triconnected 3-regular graph is constructed using successive splitting of pairs of nodes. The constructed graph has n nodes and 1.5n edges.
  2. The remaining edges are inserted by successive splitting of faces with degree four or greater. The resulting graph also represents a combinatorial embedding.
Parameters:
Gis assigned the generated graph.
nis the number of nodes in the generated graph.
mis the number of edges in the generated graph.
Precondition:
  • n \(\geq\) 4 and n must be even; otherwise, n is adjusted to the next feasible integer.
  • 1.5n \(\leq\) m \(\leq\) 3n-6; otherwise, m is adjusted to a feasible value.
void ogdf::planarTriconnectedGraph ( Graph &  G,
int  n,
double  p1,
double  p2 
)

Creates a planar triconnected (and simple) graph.

This graph generator creates a planar triconnected graph by successive node splitting. It starts with the \(K_4\) and performs n-4 node splits. Each such split operation distributes a node's neighbors to the two nodes resulting from the split. Aftewards, two further edges can be added; the probability for adding these edges is given by p1 and p2. The higher these probabilities, the denser the resulting graph. Note that a simple planar triconnected graph has between 1.5n and 3n-6 edges.

Precondition:
0.0 \(\le\) p1, p2 \(\le\) 1.0.
Parameters:
Gis assigned the generated graph.
nis the number of nodes in the generated graph.
p1is the probability for the first additional edge to be added.
p2is the probability for the second additional edge to be added.
template<class E , class INDEX >
void ogdf::print ( ostream &  os,
const BoundedQueue< E, INDEX > &  S,
char  delim = ' ' 
)
template<class E , class INDEX >
void ogdf::print ( ostream &  os,
const BoundedStack< E, INDEX > &  S,
char  delim = ' ' 
)
template<class E >
void ogdf::print ( ostream &  os,
const QueuePure< E > &  Q,
char  delim = ' ' 
)

Definition at line 204 of file Queue.h.

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

Definition at line 209 of file Queue.h.

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

Definition at line 567 of file Array.h.

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

Definition at line 985 of file SList.h.

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

Definition at line 997 of file SList.h.

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

Definition at line 1595 of file List.h.

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

Definition at line 1607 of file List.h.

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

Definition at line 60 of file list_templates.h.

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

Definition at line 79 of file list_templates.h.

void ogdf::randomBiconnectedGraph ( Graph &  G,
int  n,
int  m 
)

Creates a random biconnected graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes of the generated graph.
mis the number of edges of the generated graph.
void ogdf::randomClusterGraph ( ClusterGraph &  C,
Graph &  G,
int  cNum 
)

Assigns random clusters to a given graph G.

This function is called with a graph G and creates randomly clusters.

Parameters:
Gis the input graph.
Cis a cluster graph for G.
cNumis the maximal number of clusters introduced.
Precondition:
G is connected and not empty and C is initialized with G.
void ogdf::randomClusterGraph ( ClusterGraph &  C,
const Graph &  G,
const node  root,
int  moreInLeaves 
)

Assigns a specified cluster-structure to a given graph G, and assigns vertices to clusters.

This function is called with a graph G and the root of a second graph, resembling a tree, that gives the cluster structure. Then, the vertices of G are randomly assigned to the clusters, where we can guarantee that any leaf-cluster has (on average) moreInLeaves-times more vertices than a non-leaf cluster. (E.g. if moreInLeaves = 5, any leaf will contain roughly 5 times more vertices than an inner cluster)

Parameters:
Cis a cluster graph for G, to be assigned the solution.
Gis the input graph.
rootis a node in some other graph (say T). T is a tree that we will consider rooted at root. T is the pattern for the cluster hierarchy.
moreInLeavesis a factor such that leaf-clusters have on average moreInLeaves-times more vertices than inner clusters
Precondition:
G contains at least twice as many nodes as T has leaves.
void ogdf::randomClusterPlanarGraph ( ClusterGraph &  C,
Graph &  G,
int  cNum 
)

Assigns random clusters to a given graph G.

This function is called with a graph G and creates randomly clusters. The resulting cluster graph is always c-connected and, if G is planar, also c-planar.

Parameters:
Gis the input graph.
Cis a cluster graph for G.
cNumis the maximal number of Clusters introduced.
Precondition:
G is connected and not empty and C is initialized with G.
void ogdf::randomDiGraph ( Graph &  G,
int  n,
double  p 
)

Creates a random (simple) directed graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes in the generated graph.
pis the probability that an edge is created (for each node pair)
double ogdf::randomDouble ( double  low,
double  high 
)
inline

Returns random double value between low and high.

Definition at line 356 of file basic.h.

double ogdf::randomDoubleNormal ( double  m,
double  sd 
)
inline

Returns a random double value from the normal distribution with mean m and standard deviation sd

Definition at line 364 of file basic.h.

void ogdf::randomGraph ( Graph &  G,
int  n,
int  m 
)

Creates a random graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes of the generated graph.
mis the number of edges of the generated graph.
void ogdf::randomHierarchy ( Graph &  G,
int  n,
int  m,
bool  planar,
bool  singleSource,
bool  longEdges 
)

Creates a random hierarchical graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes.
mis the number of edges.
planardetermines if the resulting graph is (level-)planar.
singleSourcedetermines if the graph is a single-source graph.
longEdgesdetermines if the graph has long edges (spanning 2 layers or more); otherwise the graph is proper.
int ogdf::randomNumber ( int  low,
int  high 
)
inline

Returns random integer between low and high (including).

Definition at line 343 of file basic.h.

bool ogdf::randomSimpleGraph ( Graph &  G,
int  n,
int  m 
)

Creates a random simple graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes of the generated graph.
mis the number of edges of the generated graph.
void ogdf::randomTree ( Graph &  G,
int  n 
)

Creates a random tree (simpler version.

Parameters:
Gis assigned the tree.
nis the number of nodes of the tree.
void ogdf::randomTree ( Graph &  G,
int  n,
int  maxDeg,
int  maxWidth 
)

Creates a random tree.

Parameters:
Gis assigned the tree.
nis the number of nodes of the tree.
maxDegis the maximal allowed node degree; 0 means no restriction.
maxWidthis the maximal allowed width of a level; 0 means no restriction.
void ogdf::randomTriconnectedGraph ( Graph &  G,
int  n,
double  p1,
double  p2 
)

Creates a random triconnected (and simple) graph.

The graph generator proceeds as follows. It starts with a \(K_4\) and performs then n-4 split node operations on randomly selected nodes of the graph constructed so far. Each such operation splits a node v into two nodes x and y and distributes v's neighbors to the two nodes such that each node gets at least two neighbors. Additionally, the edge (x,y) is inserted.

The neighbors are distributed such that a neighbor of v becomes

  • only a neighbor of x with probability p1;
  • only a neighbor of y with probability p1;
  • a neighbor of both x and y with probability 1.0 - p1 - p2.
Parameters:
Gis assigned the generated graph.
nis the number of nodes in the generated graph.
p1is the probability that an edge is moved only to the left node after splitting a node.
p2is the probability that an edge is moved only to the right node after splitting a node.

The probability for a neighbor to be moved to both split nodes is 1.0 - p1 - p2. The higher this probability, the higher the density of the resulting graph.

Precondition:
The probabilities p1 and p2 must lie between 0.0 and 1.0, and p1 + p2 \(\leq\) 1.0.
template<typename ListType , typename ArrayType >
static void ogdf::readFromStream ( std::istream &  inStream,
ArrayType &  array 
)
static

Definition at line 791 of file HyperGraph.h.

void ogdf::regularTree ( Graph &  G,
int  n,
int  children 
)

Creates a regular tree.

Parameters:
Gis assigned the tree.
nis the number of nodes of the tree.
childrenis the number of children per node. root has index 0, the next level has indizes 1...children, the children of node 1 have indizes children+1...2*children, etc. if number of nodes does not allow a regular node, the "last" node will have fewer children.
bool ogdf::saveChallengeGraph ( const Graph &  G,
const GridLayout &  gl,
ostream &  os 
)

Writes graph G with layout gl in GD-Challenge-format to stream os.

Parameters:
Gis the graph to be stored.
glis the grid layout to be stored.
osis the output stream to which the graph is written.
Returns:
true if the graph was stored successfully, false otherwise.
bool ogdf::saveChallengeGraph ( const Graph &  G,
const GridLayout &  gl,
const char *  fileName 
)

Writes graph G with layout gl in GD-Challenge-format to file fileName.

Parameters:
Gis the graph to be stored.
glis the grid layout to be stored.
fileNameis the name of the file to which the graph is written.
Returns:
true if the graph was stored successfully, false otherwise.
bool ogdf::saveEdgeListSubgraph ( const Graph &  G,
const List< edge > &  delEdges,
ostream &  os 
)

Writes graph G with subgraph defined by delEdges to stream os.

Parameters:
Gis the graph to be stored.
delEdgesspecifies the edges of the subgraph to be stored.
osis the output stream to which the graph is written.
Returns:
true if the graph was stored successfully, false otherwise.
bool ogdf::saveEdgeListSubgraph ( const Graph &  G,
const List< edge > &  delEdges,
const char *  fileName 
)

Writes graph G with subgraph defined by delEdges to file fileName.

Parameters:
Gis the graph to be stored.
delEdgesspecifies the edges of the subgraph to be stored.
fileNameis the name of the file to which the graph is written.
Returns:
true if the graph was stored successfully, false otherwise.
int ogdf::sprintf ( char *  buffer,
size_t  ,
const char *  format,
  ... 
)
inline

Definition at line 589 of file basic.h.

int ogdf::stNumber ( const Graph &  G,
NodeArray< int > &  numbering,
node  s = 0,
node  t = 0,
bool  randomized = false 
)

Computes an st-Numbering of G.

Precondition:
G must be biconnected and simple, with the exception that the graph is allowed to have isolated nodes. If both s and t are set to nodes (both are not 0), they must be adjacent.
Parameters:
Gis the input graph.
numberingis assigned the st-number for each node.
sis the source node for the st-numbering.
tis the target node for the st-numbering.
randomizedis only used when both s and t are not set (both are 0); in this case a random edge (s,t) is chosen; otherwise the first node s with degree > 0 is chosen and its first neighbor is used as t.
Returns:
the number assigned to t, or 0 if no st-numbering could be computed.
int ogdf::strcat ( char *  strDest,
size_t  ,
const char *  strSource 
)
inline

Definition at line 604 of file basic.h.

int ogdf::strcpy ( char *  strDest,
size_t  ,
const char *  strSource 
)
inline

Definition at line 610 of file basic.h.

int ogdf::strncpy ( char *  strDest,
size_t  ,
const char *  strSource,
size_t  count 
)
inline

Definition at line 616 of file basic.h.

int ogdf::strongComponents ( const Graph &  G,
NodeArray< int > &  component 
)

Computes the strongly connected components of the digraph G.

The function implements the algorithm by Tarjan.

Parameters:
Gis the input graph.
componentis assigned a mapping from nodes to component numbers (0, 1, ...).
Returns:
the number of strongly connected components.
void ogdf::suspension ( Graph &  G,
int  s 
)

Modifies G by adding its n-th suspension.

Parameters:
Gis the graph to extend.
sis the suspension.
bool ogdf::test_forall_adj_edges ( adjEntry &  adj,
edge &  e 
)
inline

Definition at line 515 of file Graph_d.h.

bool ogdf::test_forall_adj_edges_of_cluster ( ListIterator< adjEntry > &  it,
edge &  e 
)
inline

Definition at line 219 of file ClusterGraph.h.

bool ogdf::test_forall_adj_edges_of_cluster ( adjEntry &  adj,
edge &  e 
)
inline

Definition at line 226 of file ClusterGraph.h.

bool ogdf::test_forall_adj_entries_of_cluster ( ListIterator< adjEntry > &  it,
adjEntry &  adj 
)
inline

Definition at line 213 of file ClusterGraph.h.

bool ogdf::testSTnumber ( const Graph &  G,
NodeArray< int > &  st_no,
int  max 
)

Tests, whether a numbering of the nodes is an st-numbering.

Precondition:
G must be biconnected and simple, with the exception that the graph is allowed to have isolated nodes.
void ogdf::topologicalNumbering ( const Graph &  G,
NodeArray< int > &  num 
)

Computes a topological numbering of an acyclic digraph G.

Precondition:
G is an acyclic directed graph.
Parameters:
Gis the input graph.
numis assigned the topological numbering (0, 1, ...).
void ogdf::triangulate ( Graph &  G)

Triangulates a planarly embedded graph G by adding edges.

The result of this function is that G is made maximally planar by adding new edges. G will also be planarly embedded such that each face is a triangle.

Precondition:
G is planar, simple and represents a combinatorial embedding (i.e. G is planarly embedded).
Parameters:
Gis the input graph to which edges will be added.
double ogdf::usedTime ( double &  T)

Returns used CPU time from T to current time and assigns current time to T.

int ogdf::vsprintf ( char *  buffer,
size_t  ,
const char *  format,
va_list  argptr 
)
inline

Definition at line 598 of file basic.h.

void ogdf::wheelGraph ( Graph &  G,
int  n 
)

Creates the graph \(W_n^{(d)}\): A wheel graph.

Parameters:
Gis assigned the generated graph.
nis the number of nodes on the rim of the wheel (W_n).
template<typename ListType , typename ArrayType >
static void ogdf::writeToStream ( std::ostream &  outStream,
ArrayType &  array 
)
static

Definition at line 781 of file HyperGraph.h.


Variable Documentation

const char* ogdf::compressionOptionNames[]
const char* ogdf::interleavingOptionNames[]
const char* ogdf::linkOptionNames[]
Initialization ogdf::s_ogdfInitializer
static

Definition at line 326 of file basic.h.