87 , extFaceHandle(nullptr)
92 m_isSinkArc.init(*
this,
false);
93 m_isSourceArc.init(*
this,
false);
137 if (v->
indeg() == 0) {
143 if (adj->theEdge()->target() == v && adj->cyclicSucc()->theEdge()->source() == v) {
153 std::cout << std::endl <<
"Face UPR " << std::endl;
155 std::cout <<
"face " << f->index() <<
": ";
158 std::cout << adjNext->
theEdge() <<
"; ";
160 }
while (adjNext != f->firstAdj());
161 std::cout << std::endl;
167 std::cout <<
"no ext. face set." << std::endl;
Declaration of CombinatorialEmbedding and face.
Includes declaration of graph class.
Declaration of graph copy classes.
Decralation of GraphElement and GraphList classes.
Declaration of singly linked lists and iterators.
Basic declarations, included by all source files.
Class for adjacency list elements.
edge theEdge() const
Returns the edge associated with this adjacency entry.
adjEntry faceCycleSucc() const
Returns the cyclic successor in face.
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.
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.
void init(const Graph &G)
Re-initializes the copy using G, creating copies for all nodes and edges in G.
Copies of graphs supporting edge splitting.
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
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),...
The namespace for all OGDF objects.