Declaration of CombinatorialEmbedding and face.
Declaration of interface for edge insertion algorithms.
Declaration of class UpwardPlanarity, which implements different types of algorithms testing upward p...
Class for adjacency list elements.
Dynamic arrays indexed with edges.
Class for the representation of edges.
Faces in a combinatorial embedding.
Edge insertion module that inserts each edge optimally into a fixed embedding.
void constraintFIP(UpwardPlanRep &UPR, List< edge > &origEdges, EdgeArray< int > &cost, edge e_orig, SList< adjEntry > &path)
compute a constraint feasible insertion path usig heuristic.
bool isConstraintFeasible(UpwardPlanRep &UPR, List< edge > &origEdges, edge e_orig, SList< adjEntry > &path)
return true if current insertion path is contraint feasible
bool isUpwardPlanar(Graph &G) const
void dynamicLock(UpwardPlanRep &UPR, EdgeArray< bool > &locked, face f, adjEntry e_cur)
compute a list of dynamic locked edges
void feasibleEdges(UpwardPlanRep &UPR, face f, adjEntry adj, EdgeArray< bool > &locked, List< adjEntry > &feasible, bool heuristic)
compute the feasible edges of the face f with respect to e
~FixedEmbeddingUpwardEdgeInserter()
void markDown(const Graph &G, node v, EdgeArray< bool > &markedEdges)
mark the edges which dominate node v
bool isConstraintFeasible(UpwardPlanRep &UPR, const List< edge > &orig_edges, edge e_orig, adjEntry adjCurrent, adjEntry adjNext, EdgeArray< adjEntry > &predAdj)
return true if current insertion path is contraint feasible
void markUp(const Graph &G, node v, EdgeArray< bool > &markedEdges)
mark the edges which are dominates by node v
void nextFeasibleEdges(UpwardPlanRep &UPR, List< adjEntry > &nextEdges, face f, adjEntry e_cur, EdgeArray< bool > &locked, bool heuristic)
void getPath(UpwardPlanRep &UPR, List< edge > &origEdges, EdgeArray< int > &cost, edge e_orig, SList< adjEntry > &path, bool heuristic)
compute an insertion path
void minFIP(UpwardPlanRep &UPR, List< edge > &origEdges, EdgeArray< int > &cost, edge e_orig, SList< adjEntry > &path)
compute the minimal feasible insertion path
void staticLock(UpwardPlanRep &UPR, EdgeArray< bool > &locked, const List< edge > &origEdges, edge e_orig)
compute a list of static locked edges, i.e. eges which a priory cannot included in a feasible inserti...
FixedEmbeddingUpwardEdgeInserter()
Creates an instance of fixed-embedding edge inserter.
ReturnType insertAll(UpwardPlanRep &UPR, List< edge > &toInsert, EdgeArray< int > &cost)
virtual ReturnType doCall(UpwardPlanRep &UPR, const List< edge > &origEdges, const EdgeArray< int > *costOrig=nullptr, const EdgeArray< bool > *forbiddenEdgeOrig=nullptr) override
Data type for general directed graphs (adjacency list representation).
Doubly linked lists (maintaining the length of the list).
ReturnType
The return type of a module.
Class for the representation of nodes.
Singly linked lists (maintaining the length of the list).
Upward planarized representations (of a connected component) of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.