85 m_isSinkArc.init(*
this,
false);
86 m_isSourceArc.init(*
this,
false);
130 if (v->
indeg() == 0) {
136 if (adj->theEdge()->target() == v && adj->cyclicSucc()->theEdge()->source() == v) {
146 std::cout << std::endl <<
"Face UPR " << std::endl;
148 std::cout <<
"face " <<
f->index() <<
": ";
154 std::cout << std::endl;
160 std::cout <<
"no ext. face set." << std::endl;
Declaration of graph copy classes.
Class for adjacency list elements.
edge theEdge() const
Returns the edge associated with this adjacency entry.
Combinatorial embeddings of planar graphs with modification functionality.
face externalFace() const
Returns the external face.
internal::GraphObjectContainer< FaceElement > faces
The container containing all face objects.
Dynamic arrays indexed with edges.
Class for the representation of edges.
Faces in a combinatorial embedding.
int index() const
Returns the index of the face.
Edge insertion module that inserts each edge optimally into a fixed embedding.
Copies of graphs supporting edge splitting.
void init(const Graph &G)
Re-initializes the copy using the graph G.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
int indeg() const
Returns the indegree of the node.
internal::GraphObjectContainer< AdjElement > adjEntries
The container containing all entries in the adjacency list of this node.
Singly linked lists (maintaining the length of the list).
Takes an acyclic connected non-upward-planar graph and planarizes it, i.e., we obtain an upward-plana...
Upward planarized representations (of a connected component) of a graph.
void copyMe(const UpwardPlanRep &UPR)
UpwardPlanRep(const GraphCopy &GC, adjEntry adj_ext)
EdgeArray< bool > m_isSourceArc
void removeSinkArcs(SList< adjEntry > &crossedEdges)
NodeArray< adjEntry > m_sinkSwitchOf
CombinatorialEmbedding m_Gamma
bool augmented() const
return true if graph is augmented to a single source single sink graph
void computeSinkSwitches()
CombinatorialEmbedding & getEmbedding()
void augment()
convert to a single source single sink graph (result is not necessary a st-graph!).
node s_hat
the super source
UpwardPlanRep(const CombinatorialEmbedding &Gamma)
UpwardPlanRep()
standart constructor
UpwardPlanRep(const UpwardPlanRep &UPR)
copy constructor
void outputFaces(const CombinatorialEmbedding &embedding) const
bool isSourceArc(edge e) const
adjEntry getAdjEntry(const CombinatorialEmbedding &Gamma, node v, face f) const
return the adjEntry of v which right face is f.
bool isAugmented
the UpwardPlanRep is augmented to a single source and single sink graph
int numberOfCrossings() const
EdgeArray< bool > m_isSinkArc
const CombinatorialEmbedding & getEmbedding() const
return the upward planar embedding
void constructSinkArcs(face f, node t)
void insertEdgePathEmbedded(edge eOrig, SList< adjEntry > crossedEdges, EdgeArray< int > &cost)
same as insertEdgePath, but assumes that the graph is embedded
node getSuperSource() const
node getSuperSink() const
UpwardPlanRep & operator=(const UpwardPlanRep ©)
Assignment operator.
bool isSinkArc(edge e) const
adjEntry leftInEdge(node v) const
void initMe()
only for planarizer !!!
adjEntry sinkSwitchOf(node v)
0 if node v is not a sink switch (not the top sink switch !!) of an internal face....
node t_hat
< embedding og this UpwardPlanRep
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.