40class OverlappingGraphCopies;
55 : m_pOGC(&mPOgc), m_vOrig(*this, nullptr), m_eOrig(*this, nullptr) { }
162 using Graph::newNode;
171 using Graph::newEdge;
215 : m_G(&G), m_node_copies(G), m_edge_copies(G) { }
221 const
NA::EntryType& copies(
node n)
const {
return m_node_copies.
get_all(n); }
Includes declaration of graph class.
RegisteredMultiArray for the usual GraphArray classes.
Simple, safe base classes for C++ observables and observers.
Basic declarations, included by all source files.
Class for adjacency list elements.
edge theEdge() const
Returns the edge associated with this adjacency entry.
bool isSource() const
Returns true iff this is the source adjacency entry of the corresponding edge.
Class for the representation of edges.
adjEntry adjSource() const
Returns the corresponding adjacancy entry at source node.
const Graph * graphOf() const
Returns the graph containing this node (debug only).
adjEntry adjTarget() const
Returns the corresponding adjacancy entry at target node.
Data type for general directed graphs (adjacency list representation).
Class for the representation of nodes.
const Graph * graphOf() const
Returns the graph containing this node (debug only).
The manager class for multiple OverlappingGraphCopy instances of the same graph.
const EA::EntryType & copies(edge e) const
OverlappingGraphCopies(const Graph &G)
const Graph * constGraph() const
Version of GraphCopySimple that may efficiently share some overlap with other instances of the same o...
bool isDummy(node v) const
Returns true iff v has no corresponding node in the original graph.
void delEdge(edge e) override
Removes edge e.
node copy(node v) const
Returns the node in the graph copy corresponding to v.
const Graph & original() const
Returns a reference to the original graph.
~OverlappingGraphCopy() override
bool isDummy(edge e) const
Returns true iff e has no corresponding edge in the original graph.
node newNode(node vOrig)
Creates a new node in the graph copy with original node vOrig.
OverlappingGraphCopy(OverlappingGraphCopies &mPOgc)
edge copy(edge e) const
Returns the edge in the graph copy corresponding to e.
NodeArray< node > m_vOrig
The corresponding node in the original graph.
void breakLinkForMasterDeconstruction()
EdgeArray< edge > m_eOrig
The corresponding edge in the original graph.
OverlappingGraphCopies * m_pOGC
The master instance.
edge newEdge(edge eOrig)
Creates a new edge in the graph copy with original edge eOrig.
node original(node v) const
Returns the node in the original graph corresponding to v.
adjEntry original(adjEntry adj) const
Returns the adjacency entry in the original graph corresponding to adj.
edge original(edge e) const
Returns the edge in the original graph corresponding to e.
void clear() override
Removes all nodes and all edges from the graph.
adjEntry copy(adjEntry adj) const
Returns the adjacency entry in the graph copy corresponding to adj.
void delNode(node v) override
Removes node v.
void init(const Base *base=nullptr)
Reinitializes the array. Associates the array with the matching registry of base.
Data structure for two-dimensional mappings that are sparse in the second dimension.
EntryType & get_all(const Key1 &k1)
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
RegisteredArray for nodes, edges and adjEntries of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
#define OGDF_NO_COPY(cls)
Explicitly disables (deletes) copy construction and assignment for class cls.
#define OGDF_NO_MOVE(cls)
Explicitly disables (deletes) move construction and assignment for class cls.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
The namespace for all OGDF objects.
A wrapper around std::map that uses a constant-size array (or only a single value) plus linear search...