Base class for ogdf::CompactionConstraintGraphBase. More...
#include <ogdf/orthogonal/internal/CommonCompactionConstraintGraphBase.h>
Public Member Functions | |
edge | basicArc (edge e) const |
Returns constraint arc representing input edge e in constraint graph. More... | |
void | computeTopologicalSegmentNum (NodeArray< int > &topNum) |
Computes topological numbering on the segments of the constraint graph. More... | |
void | embed () |
Embeds constraint graph such that all sources and sinks lie in a common face. More... | |
bool | extraNode (node v) const |
Returns node status. More... | |
void | removeRedundantVisibArcs (SListPure< Tuple2< node, node >> &visibArcs) |
Removes "arcs" from visibArcs which we already have in the constraint graph (as basic arcs) More... | |
ConstraintEdgeType | typeOf (edge e) const |
Returns type of edge e . More... | |
const Graph & | getGraph () const |
Returns underlying graph. More... | |
Graph & | getGraph () |
const OrthoRep & | getOrthoRep () const |
Returns underlying OrthoRep. More... | |
const PlanRep & | getPlanRep () const |
const SListPure< node > & | nodesIn (node v) const |
Returns list of nodes contained in segment v . More... | |
node | pathNodeOf (node v) const |
Returns the segment (path node in constraint graph) containing v . More... | |
int | cost (edge e) const |
Returns cost of edge e . More... | |
node | extraRep (node v) const |
Returns extraNode existing anchor representant. More... | |
bool | onBorder (edge e) const |
Returns true if edge lies on cage border. More... | |
bool | fixOnBorder (edge e) const |
Returns true if edge is subject to length fixation if length < sep. More... | |
void | writeGML (const char *fileName) const |
Writes GML output (for debugging) More... | |
void | writeGML (std::ostream &os) const |
void | writeGML (const char *fileName, const NodeArray< bool > &one) const |
void | writeGML (std::ostream &os, const NodeArray< bool > &one) const |
Protected Member Functions | |
CommonCompactionConstraintGraphBase (const OrthoRep &OR, const PlanRep &PG, OrthoDir arcDir, int costAssoc) | |
Build constraint graph with basic arcs. More... | |
virtual string | getLengthString (edge e) const =0 |
Protected Member Functions inherited from ogdf::Graph | |
virtual void * | preInsert (bool copyEmbedding, bool copyIDs, bool notifyObservers, bool edgeFilter, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap, int *newNodes, int *newEdges) |
Callback notifying subclasses that some graph is about to be insert() -ed. More... | |
virtual void | nodeInserted (void *userData, node original, node copy) |
Callback notifying subclasses that insert() copied a node. More... | |
virtual void | edgeInserted (void *userData, edge original, edge copy) |
Callback notifying subclasses that insert() copied an edge. More... | |
virtual void | postInsert (void *userData, int newNodes, int newEdges) |
Callback notifying subclasses that an insert() call has finished. More... | |
Graph () | |
Constructs an empty graph. More... | |
Graph (const Graph ©) | |
Constructs a graph that is a copy of G . More... | |
Graph (Graph &&move)=delete | |
virtual | ~Graph () |
Destructor. More... | |
Graph & | operator= (const Graph ©) |
Overwrites this graph to be a copy of G . More... | |
Graph & | operator= (Graph &&move)=delete |
bool | empty () const |
Returns true iff the graph is empty, i.e., contains no nodes. More... | |
int | numberOfNodes () const |
Returns the number of nodes in the graph. More... | |
int | numberOfEdges () const |
Returns the number of edges in the graph. More... | |
int | maxNodeIndex () const |
Returns the largest used node index. More... | |
int | maxEdgeIndex () const |
Returns the largest used edge index. More... | |
int | maxAdjEntryIndex () const |
Returns the largest used adjEntry index. More... | |
node | firstNode () const |
Returns the first node in the list of all nodes. More... | |
node | lastNode () const |
Returns the last node in the list of all nodes. More... | |
edge | firstEdge () const |
Returns the first edge in the list of all edges. More... | |
edge | lastEdge () const |
Returns the last edge in the list of all edges. More... | |
node | chooseNode (std::function< bool(node)> includeNode=[](node) { return true;}, bool isFastTest=true) const |
Returns a random node. More... | |
edge | chooseEdge (std::function< bool(edge)> includeEdge=[](edge) { return true;}, bool isFastTest=true) const |
Returns a random edge. More... | |
template<class CONTAINER > | |
void | allNodes (CONTAINER &nodeContainer) const |
Returns a container with all nodes of the graph. More... | |
template<class CONTAINER > | |
void | allEdges (CONTAINER &edgeContainer) const |
Returns a container with all edges of the graph. More... | |
node | newNode (int index=-1) |
Creates a new node and returns it. More... | |
edge | newEdge (node v, node w, int index=-1) |
Creates a new edge (v ,w ) and returns it. More... | |
edge | newEdge (node v, adjEntry adjTgt, int index=-1) |
Creates a new edge at predefined positions in the adjacency lists. More... | |
edge | newEdge (adjEntry adjSrc, node w, int index=-1) |
Creates a new edge at predefined positions in the adjacency lists. More... | |
edge | newEdge (adjEntry adjSrc, adjEntry adjTgt, Direction dir=Direction::after, int index=-1) |
Creates a new edge at predefined positions in the adjacency lists. More... | |
template<typename S , typename T > | |
edge | newEdge (S src, Direction dirSrc, T tgt, Direction dirTgt, int index=-1) |
Creates a new edge at predefined positions in the adjacency lists. More... | |
virtual void | delNode (node v) |
Removes node v and all incident edges from the graph. More... | |
virtual void | delEdge (edge e) |
Removes edge e from the graph. More... | |
virtual void | clear () |
Removes all nodes and all edges from the graph. More... | |
void | restoreAllEdges () |
Restore all hidden edges and invalidate all HiddenEdgeSets. More... | |
virtual edge | split (edge e) |
Splits edge e into two edges introducing a new node. More... | |
void | unsplit (node u) |
Undoes a split operation. More... | |
virtual void | unsplit (edge eIn, edge eOut) |
Undoes a split operation. More... | |
node | splitNode (adjEntry adjStartLeft, adjEntry adjStartRight) |
Splits a node while preserving the order of adjacency entries. More... | |
node | contract (edge e, bool keepSelfLoops=false) |
Contracts edge e while preserving the order of adjacency entries. More... | |
void | move (edge e, adjEntry adjSrc, Direction dirSrc, adjEntry adjTgt, Direction dirTgt) |
Moves edge e to a different adjacency list. More... | |
void | moveTarget (edge e, node w) |
Moves the target node of edge e to node w . More... | |
void | moveTarget (edge e, adjEntry adjTgt, Direction dir) |
Moves the target node of edge e to a specific position in an adjacency list. More... | |
void | moveSource (edge e, node w) |
Moves the source node of edge e to node w . More... | |
void | moveSource (edge e, adjEntry adjSrc, Direction dir) |
Moves the source node of edge e to a specific position in an adjacency list. More... | |
edge | searchEdge (node v, node w, bool directed=false) const |
Searches and returns an edge connecting nodes v and w in time O( min(deg(v ), deg(w ))). More... | |
void | reverseEdge (edge e) |
Reverses the edge e , i.e., exchanges source and target node. More... | |
void | reverseAllEdges () |
Reverses all edges in the graph. More... | |
template<class NODELIST > | |
void | collapse (NODELIST &nodesToCollapse) |
Collapses all nodes in the list nodesToCollapse to the first node in the list. More... | |
template<class ADJ_ENTRY_LIST > | |
void | sort (node v, const ADJ_ENTRY_LIST &newOrder) |
Sorts the adjacency list of node v according to newOrder . More... | |
template<class IT > | |
void | sort (node v, IT begin, IT end) |
Sorts the adjacency list of node v according to the range denoted by two iterators. More... | |
void | reverseAdjEdges (node v) |
Reverses the adjacency list of v . More... | |
void | moveAdj (adjEntry adjMove, Direction dir, adjEntry adjPos) |
Moves adjacency entry adjMove before or after adjPos . More... | |
void | moveAdjAfter (adjEntry adjMove, adjEntry adjAfter) |
Moves adjacency entry adjMove after adjAfter . More... | |
void | moveAdjBefore (adjEntry adjMove, adjEntry adjBefore) |
Moves adjacency entry adjMove before adjBefore . More... | |
void | reverseAdjEdges () |
Reverses all adjacency lists. More... | |
void | swapAdjEdges (adjEntry adj1, adjEntry adj2) |
Exchanges two entries in an adjacency list. More... | |
int | genus () const |
Returns the genus of the graph's embedding. More... | |
bool | representsCombEmbedding () const |
Returns true iff the graph represents a combinatorial embedding. More... | |
void | consistencyCheck () const |
Asserts that this graph is consistent. More... | |
internal::GraphNodeRegistry & | nodeRegistry () |
Returns a reference to the registry of node arrays associated with this graph. More... | |
const internal::GraphNodeRegistry & | nodeRegistry () const |
Returns a const reference to the registry of node arrays associated with this graph. More... | |
operator const internal::GraphNodeRegistry & () const | |
internal::GraphEdgeRegistry & | edgeRegistry () |
Returns a reference to the registry of edge arrays associated with this graph. More... | |
const internal::GraphEdgeRegistry & | edgeRegistry () const |
Returns a const reference to the registry of edge arrays associated with this graph. More... | |
operator const internal::GraphEdgeRegistry & () const | |
internal::GraphAdjRegistry & | adjEntryRegistry () |
Returns a reference to the registry of adjEntry arrays associated with this graph. More... | |
const internal::GraphAdjRegistry & | adjEntryRegistry () const |
Returns a const reference to the registry of adjEntry arrays associated with this graph. More... | |
operator const internal::GraphAdjRegistry & () const | |
void | resetEdgeIdCount (int maxId) |
Resets the edge id count to maxId . More... | |
void | resetNodeIdCount (int maxId) |
template<OGDF_NODE_ITER NI, OGDF_EDGE_ITER EI, bool copyEmbedding = true, bool copyIDs = false, bool notifyObservers = true> | |
std::pair< int, int > | insert (const NI &nodesBegin, const NI &nodesEnd, const EI &edgesBegin, const EI &edgesEnd, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap) |
Inserts a copy of a given subgraph into this graph. More... | |
template<OGDF_NODE_ITER NI, OGDF_EDGE_FILTER EF, bool copyIDs = false, bool notifyObservers = true> | |
std::pair< int, int > | insert (const NI &nodesBegin, const NI &nodesEnd, const EF &edgeFilter, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap) |
Inserts a copy of a given subgraph into this graph. More... | |
template<OGDF_NODE_LIST NL> | |
std::pair< int, int > | insert (const NL &nodeList, const EdgeSet< true > &edgeSet, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap) |
Inserts a copy of a given subgraph into this graph. More... | |
template<OGDF_NODE_LIST NL> | |
std::pair< int, int > | insert (const NL &nodeList, const EdgeSet< false > &edgeSet, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap) |
Inserts a copy of a given subgraph into this graph. More... | |
template<OGDF_NODE_LIST NL, OGDF_EDGE_LIST EL> | |
std::pair< int, int > | insert (const NL &nodeList, const EL &edgeList, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap) |
Inserts a copy of a given subgraph into this graph. More... | |
std::pair< int, int > | insert (const CCsInfo &info, int cc, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap) |
Inserts a copy of a given connected component cc into this graph. More... | |
std::pair< int, int > | insert (const Graph &G, NodeArray< node > &nodeMap, EdgeArray< edge > &edgeMap) |
Inserts a copy of a given Graph G into this graph. More... | |
std::pair< int, int > | insert (const Graph &G) |
Inserts a copy of a given Graph G into this graph. More... | |
Protected Member Functions inherited from ogdf::Observable< GraphObserver, Graph > | |
void | clearObservers () |
const ListPure< GraphObserver * > & | getObservers () const |
Observable ()=default | |
Observable (const Observable ©)=delete | |
If you want to copy a subclass of Observable, call the default Observable() constructor. More... | |
Observable (Observable &&move)=delete | |
If you want to move a subclass of Observable, call the default Observable() constructor. More... | |
virtual | ~Observable () |
Observable & | operator= (const Observable ©)=delete |
Observable & | operator= (Observable &&move)=delete |
Protected Attributes | |
OrthoDir | m_arcDir |
EdgeArray< int > | m_border |
only used for cage precompaction in flowcompaction computecoords More... | |
EdgeArray< int > | m_cost |
cost of an edge More... | |
EdgeArray< edge > | m_edgeToBasicArc |
basic arc representing an edge in PG More... | |
NodeArray< bool > | m_extraNode |
Node does not represent drawing node as we dont have positions we save a drawing representant and an offset. More... | |
NodeArray< node > | m_extraRep |
existing representant of extranodes position anchor More... | |
OrthoDir | m_oppArcDir |
NodeArray< edge > | m_originalEdge |
save edge for the basic arcs More... | |
NodeArray< SListPure< node > > | m_path |
list of nodes contained in a segment More... | |
NodeArray< node > | m_pathNode |
segment containing a node in PG More... | |
const OrthoRep * | m_pOR |
const PlanRep * | m_pPR |
SList< node > | m_sinks |
SList< node > | m_sources |
EdgeArray< ConstraintEdgeType > | m_type |
constraint type for each edge More... | |
Protected Attributes inherited from ogdf::Graph | |
internal::GraphObjectContainer< NodeElement > | nodes |
The container containing all node objects. More... | |
internal::GraphObjectContainer< EdgeElement > | edges |
The container containing all edge objects. More... | |
Additional Inherited Members | |
Protected Types inherited from ogdf::Graph | |
enum | EdgeType { EdgeType::association = 0, EdgeType::generalization = 1, EdgeType::dependency = 2 } |
The type of edges (only used in derived classes). More... | |
enum | NodeType { NodeType::vertex = 0, NodeType::dummy = 1, NodeType::generalizationMerger = 2, NodeType::generalizationExpander = 3, NodeType::highDegreeExpander = 4, NodeType::lowDegreeExpander = 5, NodeType::associationClass = 6 } |
The type of nodes. More... | |
using | node_iterator = internal::GraphIterator< node > |
Provides a bidirectional iterator to a node in a graph. More... | |
using | edge_iterator = internal::GraphIterator< edge > |
Provides a bidirectional iterator to an edge in a graph. More... | |
using | adjEntry_iterator = internal::GraphIterator< adjEntry > |
Provides a bidirectional iterator to an entry in an adjacency list. More... | |
Base class for ogdf::CompactionConstraintGraphBase.
Definition at line 59 of file CommonCompactionConstraintGraphBase.h.
|
protected |
Build constraint graph with basic arcs.
Returns constraint arc representing input edge e in constraint graph.
Definition at line 134 of file CommonCompactionConstraintGraphBase.h.
void ogdf::CommonCompactionConstraintGraphBase::computeTopologicalSegmentNum | ( | NodeArray< int > & | topNum | ) |
Computes topological numbering on the segments of the constraint graph.
|
inline |
Returns cost of edge e
.
e
is an edge in the constraint graph Definition at line 117 of file CommonCompactionConstraintGraphBase.h.
void ogdf::CommonCompactionConstraintGraphBase::embed | ( | ) |
Embeds constraint graph such that all sources and sinks lie in a common face.
|
inline |
Returns node status.
Definition at line 168 of file CommonCompactionConstraintGraphBase.h.
Returns extraNode existing anchor representant.
Definition at line 120 of file CommonCompactionConstraintGraphBase.h.
|
inline |
Returns true if edge is subject to length fixation if length < sep.
Definition at line 126 of file CommonCompactionConstraintGraphBase.h.
|
inline |
Definition at line 97 of file CommonCompactionConstraintGraphBase.h.
|
inline |
Returns underlying graph.
Definition at line 95 of file CommonCompactionConstraintGraphBase.h.
|
protectedpure virtual |
Implemented in ogdf::CompactionConstraintGraph< ATYPE >.
|
inline |
Returns underlying OrthoRep.
Definition at line 103 of file CommonCompactionConstraintGraphBase.h.
|
inline |
Definition at line 105 of file CommonCompactionConstraintGraphBase.h.
Returns list of nodes contained in segment v
.
v
is in the constraint graph Definition at line 109 of file CommonCompactionConstraintGraphBase.h.
|
inline |
Returns true if edge lies on cage border.
Definition at line 123 of file CommonCompactionConstraintGraphBase.h.
Returns the segment (path node in constraint graph) containing v
.
v
is a node in the associated planarized representation Definition at line 113 of file CommonCompactionConstraintGraphBase.h.
void ogdf::CommonCompactionConstraintGraphBase::removeRedundantVisibArcs | ( | SListPure< Tuple2< node, node >> & | visibArcs | ) |
Removes "arcs" from visibArcs
which we already have in the constraint graph (as basic arcs)
|
inline |
Returns type of edge e
.
e
is an edge in the constraint graph Definition at line 165 of file CommonCompactionConstraintGraphBase.h.
void ogdf::CommonCompactionConstraintGraphBase::writeGML | ( | const char * | fileName | ) | const |
Writes GML output (for debugging)
Output in GML format with special edge colouring: Arcs with cost 0 are green, other arcs are red.
void ogdf::CommonCompactionConstraintGraphBase::writeGML | ( | const char * | fileName, |
const NodeArray< bool > & | one | ||
) | const |
void ogdf::CommonCompactionConstraintGraphBase::writeGML | ( | std::ostream & | os | ) | const |
void ogdf::CommonCompactionConstraintGraphBase::writeGML | ( | std::ostream & | os, |
const NodeArray< bool > & | one | ||
) | const |
|
protected |
Definition at line 78 of file CommonCompactionConstraintGraphBase.h.
|
protected |
only used for cage precompaction in flowcompaction computecoords
Definition at line 71 of file CommonCompactionConstraintGraphBase.h.
|
protected |
cost of an edge
Definition at line 68 of file CommonCompactionConstraintGraphBase.h.
basic arc representing an edge in PG
Definition at line 66 of file CommonCompactionConstraintGraphBase.h.
|
protected |
Node does not represent drawing node as we dont have positions we save a drawing representant and an offset.
true iff node does not represent drawing node
Definition at line 75 of file CommonCompactionConstraintGraphBase.h.
existing representant of extranodes position anchor
Definition at line 76 of file CommonCompactionConstraintGraphBase.h.
|
protected |
Definition at line 79 of file CommonCompactionConstraintGraphBase.h.
save edge for the basic arcs
Definition at line 81 of file CommonCompactionConstraintGraphBase.h.
list of nodes contained in a segment
Definition at line 64 of file CommonCompactionConstraintGraphBase.h.
segment containing a node in PG
Definition at line 65 of file CommonCompactionConstraintGraphBase.h.
|
protected |
Definition at line 61 of file CommonCompactionConstraintGraphBase.h.
|
protected |
Definition at line 62 of file CommonCompactionConstraintGraphBase.h.
Definition at line 84 of file CommonCompactionConstraintGraphBase.h.
Definition at line 83 of file CommonCompactionConstraintGraphBase.h.
|
protected |
constraint type for each edge
Definition at line 69 of file CommonCompactionConstraintGraphBase.h.