Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Graph_d.h File Reference

Pure declaration header, find template implementation in Graph.h. More...

#include <ogdf/basic/GraphList.h>
#include <ogdf/basic/Observer.h>
#include <ogdf/basic/RegisteredArray.h>
#include <ogdf/basic/internal/graph_iterators.h>
#include <array>
#include <memory>
#include <mutex>
#include <set>
#include <ogdf/basic/InducedSubgraph.h>

Go to the source code of this file.

Classes

class  ogdf::AdjElement
 Class for adjacency list elements. More...
 
class  ogdf::BucketSourceIndex
 Bucket function using the index of an edge's source node as bucket. More...
 
class  ogdf::BucketTargetIndex
 Bucket function using the index of an edge's target node as bucket. More...
 
class  ogdf::EdgeElement
 Class for the representation of edges. More...
 
class  ogdf::EdgeSet< SupportFastSizeQuery >
 Edge sets. More...
 
class  ogdf::Graph
 Data type for general directed graphs (adjacency list representation). More...
 
class  ogdf::Graph::CCsInfo
 Info structure for maintaining connected components. More...
 
class  ogdf::Graph::HiddenEdgeSet
 Functionality for temporarily hiding edges in constant time. More...
 
class  ogdf::GraphAdjIterator
 Iterator for AdjEntries of a graph. More...
 
class  ogdf::GraphObserver
 Abstract Base class for graph observers. More...
 
class  ogdf::internal::EdgeArrayBase1< Value, WithDefault >
 RegisteredArray for edges of a graph. More...
 
class  ogdf::internal::EdgeArrayBase2< Value, WithDefault >
 RegisteredArray for edges of a graph, specialized for EdgeArray<edge>. More...
 
class  ogdf::internal::EdgeArrayBase2< edge, WithDefault >
 
class  ogdf::internal::GraphRegisteredArray< Key, Value, WithDefault, Registry >
 RegisteredArray for nodes, edges and adjEntries of a graph. More...
 
class  ogdf::internal::GraphRegistry< Key, Iterable, Factor >
 Registry for nodes, edges and adjEntries of a graph. More...
 
class  ogdf::NodeElement
 Class for the representation of nodes. More...
 
struct  ogdf::NodePair
 

Namespaces

 ogdf
 The namespace for all OGDF objects.
 
 ogdf::internal
 

Macros

#define OGDF_CHECK_CONCEPT(...)
 
#define OGDF_DECL_REG_ARRAY_TYPE(v, c)   internal::GraphRegisteredArray<NodeElement, v, c>
 
#define OGDF_DECL_REG_ARRAY_TYPE(v, c)   internal::EdgeArrayBase2<v, c>
 
#define OGDF_DECL_REG_ARRAY_TYPE(v, c)   internal::GraphRegisteredArray<AdjElement, v, c, internal::GraphAdjRegistry>
 
#define OGDF_EDGE_FILTER   typename
 
#define OGDF_EDGE_ITER   typename
 
#define OGDF_EDGE_LIST   typename
 
#define OGDF_NODE_FILTER   typename
 
#define OGDF_NODE_ITER   typename
 
#define OGDF_NODE_LIST   typename
 

Typedefs

using ogdf::adjEntry = AdjElement *
 The type of adjacency entries. More...
 
template<typename Value , bool WithDefault = true>
using ogdf::AdjEntryArray = internal::GraphRegisteredArray< AdjElement, Value, WithDefault, internal::GraphAdjRegistry >
 RegisteredArray for labeling the adjEntries in a Graph with an arbitrary Value. More...
 
template<typename Value >
using ogdf::AdjEntryArrayP = AdjEntryArray< std::unique_ptr< Value >, false >
 Shorthand for AdjEntryArray storing std::unique_ptr<Value>. More...
 
using ogdf::edge = EdgeElement *
 The type of edges. More...
 
template<typename Value , bool WithDefault = true>
using ogdf::EdgeArray = internal::EdgeArrayBase2< Value, WithDefault >
 RegisteredArray for labeling the edges in a Graph with an arbitrary Value. More...
 
template<typename Value >
using ogdf::EdgeArrayP = EdgeArray< std::unique_ptr< Value >, false >
 Shorthand for EdgeArray storing std::unique_ptr<Value>. More...
 
using ogdf::internal::GraphAdjRegistry = GraphRegistry< AdjElement, GraphAdjIterator, 2 >
 
using ogdf::internal::GraphEdgeRegistry = GraphRegistry< EdgeElement >
 
using ogdf::internal::GraphNodeRegistry = GraphRegistry< NodeElement >
 
using ogdf::node = NodeElement *
 The type of nodes. More...
 
template<typename Value , bool WithDefault = true>
using ogdf::NodeArray = internal::GraphRegisteredArray< NodeElement, Value, WithDefault >
 RegisteredArray for labeling the nodes in a Graph with an arbitrary Value. More...
 
template<typename Value >
using ogdf::NodeArrayP = NodeArray< std::unique_ptr< Value >, false >
 Shorthand for NodeArray storing std::unique_ptr<Value>. More...
 

Functions

node ogdf::internal::adjToNode (adjEntry adj)
 
node ogdf::internal::adjToNode (node n)
 
bool ogdf::filter_any_edge (edge e)
 std::function<bool(edge)> that returns true for any edge e More...
 
bool ogdf::filter_any_node (node n)
 std::function<bool(node)> that returns true for any node n More...
 
template<>
void ogdf::internal::getAllEdges (const Graph &G, Array< edge > &edges)
 
template<typename CONTAINER >
void ogdf::internal::getAllEdges (const Graph &G, CONTAINER &edges)
 
template<>
void ogdf::internal::getAllNodes (const Graph &G, Array< node > &nodes)
 
template<typename CONTAINER >
void ogdf::internal::getAllNodes (const Graph &G, CONTAINER &nodes)
 
std::ostream & ogdf::operator<< (std::ostream &os, const Graph::EdgeType &et)
 
std::ostream & ogdf::operator<< (std::ostream &os, const NodePair &np)
 

Detailed Description

Pure declaration header, find template implementation in Graph.h.

Declaration of NodeElement, EdgeElement, and Graph classes.

Author
Carsten Gutwenger, Simon D. Fink
License:
This file is part of the Open Graph Drawing Framework (OGDF).
Copyright (C)
See README.md in the OGDF root directory for details.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 2 or 3 as published by the Free Software Foundation; see the file LICENSE.txt included in the packaging of this file for details.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/copyleft/gpl.html

Definition in file Graph_d.h.

Macro Definition Documentation

◆ OGDF_CHECK_CONCEPT

#define OGDF_CHECK_CONCEPT (   ...)

Definition at line 127 of file Graph_d.h.

◆ OGDF_DECL_REG_ARRAY_TYPE [1/3]

#define OGDF_DECL_REG_ARRAY_TYPE (   v,
 
)    internal::GraphRegisteredArray<NodeElement, v, c>

Definition at line 741 of file Graph_d.h.

◆ OGDF_DECL_REG_ARRAY_TYPE [2/3]

#define OGDF_DECL_REG_ARRAY_TYPE (   v,
 
)    internal::EdgeArrayBase2<v, c>

Definition at line 741 of file Graph_d.h.

◆ OGDF_DECL_REG_ARRAY_TYPE [3/3]

#define OGDF_DECL_REG_ARRAY_TYPE (   v,
 
)    internal::GraphRegisteredArray<AdjElement, v, c, internal::GraphAdjRegistry>

Definition at line 741 of file Graph_d.h.

◆ OGDF_EDGE_FILTER

#define OGDF_EDGE_FILTER   typename

Definition at line 121 of file Graph_d.h.

◆ OGDF_EDGE_ITER

#define OGDF_EDGE_ITER   typename

Definition at line 123 of file Graph_d.h.

◆ OGDF_EDGE_LIST

#define OGDF_EDGE_LIST   typename

Definition at line 125 of file Graph_d.h.

◆ OGDF_NODE_FILTER

#define OGDF_NODE_FILTER   typename

Definition at line 120 of file Graph_d.h.

◆ OGDF_NODE_ITER

#define OGDF_NODE_ITER   typename

Definition at line 122 of file Graph_d.h.

◆ OGDF_NODE_LIST

#define OGDF_NODE_LIST   typename

Definition at line 124 of file Graph_d.h.