Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
VarEdgeInserterDynCore.h
Go to the documentation of this file.
1
33#pragma once
34
35#include <ogdf/basic/Array.h>
36#include <ogdf/basic/Graph.h>
37#include <ogdf/basic/Module.h>
39#include <ogdf/basic/basic.h>
41
42#include <cstdint>
43
44namespace ogdf {
45enum class RemoveReinsertType;
46template<class E>
47class List;
48template<class E>
49class SList;
50
52public:
54 const EdgeArray<bool>* pForbiddenOrig, const EdgeArray<uint32_t>* pEdgeSubgraphs)
55 : m_pr(pr), m_pCost(pCostOrig), m_pForbidden(pForbiddenOrig), m_pSubgraph(pEdgeSubgraphs) { }
56
58
60 double percentMostCrossed);
61
62 int runsPostprocessing() const { return m_runsPostprocessing; }
63
64protected:
65 class BCandSPQRtrees;
66 class ExpandedGraph;
67
68 int costCrossed(edge eOrig) const;
69
70 void insert(edge eOrig, SList<adjEntry>& eip);
72
73 virtual void storeTypeOfCurrentEdge(edge eOrig) { }
74
75 virtual BCandSPQRtrees* createBCandSPQRtrees();
76 virtual ExpandedGraph* createExpandedGraph(BCandSPQRtrees& BC);
77
78 virtual void buildSubpath(node v, node vPred, node vSucc, List<adjEntry>& L, ExpandedGraph& Exp,
79 node s, node t);
80
81 static const int c_bigM = 10000;
83
87
88 BCandSPQRtrees* m_pBC;
89
91};
92
94public:
96 const EdgeArray<uint32_t>* pEdgeSubgraph)
97 : VarEdgeInserterDynCore(pr, pCostOrig, nullptr, pEdgeSubgraph) { }
98
99protected:
100 class BCandSPQRtreesUML;
101 class ExpandedGraphUML;
102
104
105 virtual BCandSPQRtrees* createBCandSPQRtrees() override;
106 virtual ExpandedGraph* createExpandedGraph(BCandSPQRtrees& BC) override;
107 virtual void buildSubpath(node v, node vPred, node vSucc, List<adjEntry>& L, ExpandedGraph& Exp,
108 node s, node t) override;
109
111};
112
113
114}
Declaration and implementation of Array class and Array algorithms.
Includes declaration of graph class.
Declares base class for all module types.
Declaration of class PlanRepLight.
Declares base class for modules with timeout functionality.
Basic declarations, included by all source files.
The parameterized class Array implements dynamic arrays of type E.
Definition Array.h:219
Class for the representation of edges.
Definition Graph_d.h:364
EdgeType
The type of edges (only used in derived classes).
Definition Graph_d.h:906
Doubly linked lists (maintaining the length of the list).
Definition List.h:1451
ReturnType
The return type of a module.
Definition Module.h:52
Class for the representation of nodes.
Definition Graph_d.h:241
Light-weight version of a planarized representation, associated with a PlanRep.
EdgeType typeOrig(edge eOrig) const
Singly linked lists (maintaining the length of the list).
Definition SList.h:845
class for timeout funtionality.
Definition Timeouter.h:46
virtual BCandSPQRtrees * createBCandSPQRtrees()
Module::ReturnType call(const Array< edge > &origEdges, RemoveReinsertType rrPost, double percentMostCrossed)
virtual void buildSubpath(node v, node vPred, node vSucc, List< adjEntry > &L, ExpandedGraph &Exp, node s, node t)
const EdgeArray< uint32_t > * m_pSubgraph
VarEdgeInserterDynCore(PlanRepLight &pr, const EdgeArray< int > *pCostOrig, const EdgeArray< bool > *pForbiddenOrig, const EdgeArray< uint32_t > *pEdgeSubgraphs)
const EdgeArray< int > * m_pCost
virtual void storeTypeOfCurrentEdge(edge eOrig)
int m_runsPostprocessing
Runs of remove-reinsert method.
const EdgeArray< bool > * m_pForbidden
void insert(edge eOrig, SList< adjEntry > &eip)
int costCrossed(edge eOrig) const
virtual ExpandedGraph * createExpandedGraph(BCandSPQRtrees &BC)
void blockInsert(node s, node t, List< adjEntry > &L)
virtual ExpandedGraph * createExpandedGraph(BCandSPQRtrees &BC) override
void storeTypeOfCurrentEdge(edge eOrig) override
virtual BCandSPQRtrees * createBCandSPQRtrees() override
VarEdgeInserterDynUMLCore(PlanRepLight &pr, const EdgeArray< int > *pCostOrig, const EdgeArray< uint32_t > *pEdgeSubgraph)
virtual void buildSubpath(node v, node vPred, node vSucc, List< adjEntry > &L, ExpandedGraph &Exp, node s, node t) override
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition Graph_d.h:717
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
RemoveReinsertType
The postprocessing method for edge insertion algorithms.
The namespace for all OGDF objects.