116 int& crossingNumber)
override;
154#ifndef OGDF_MEMORY_POOL_NTS
161 std::minstd_rand& rng);
165 int& crossingNumber);
Declaration and implementation of Array class and Array algorithms.
Includes declaration of graph class.
Contains logging functionality.
Declaration of interface for planar subgraph algorithms.
Declaration of CrossingMinimization Module, an interface for crossing minimization algorithms.
Declaration of interface for edge insertion algorithms.
Basic declarations, included by all source files.
The parameterized class Array implements dynamic arrays of type E.
Centralized global and local logging facility working on streams like std::cout.
ReturnType
The return type of a module.
Light-weight version of a planarized representation, associated with a PlanRep.
Planarized representation (of a connected component) of a UMLGraph; allows special handling of hierar...
Interface for planar subgraph algorithms.
The planarization approach for UML crossing minimization.
void setSubgraph(PlanarSubgraphModule< int > *pSubgraph)
Sets the module option for the computation of the planar subgraph.
SubgraphPlanarizerUML(const SubgraphPlanarizerUML &planarizer)
Creates an instance of subgraph planarizer with the same settings as planarizer.
unsigned int maxThreads() const
Returns the maximal number of used threads.
int m_permutations
The number of permutations.
std::unique_ptr< PlanarSubgraphModule< int > > m_subgraph
The planar subgraph algorithm.
static void doWorkHelper(ThreadMaster &master, UMLEdgeInsertionModule &inserter, std::minstd_rand &rng)
unsigned int m_maxThreads
The maximal number of used threads.
virtual UMLCrossingMinimizationModule * clone() const override
Returns a new instance of subgraph planarizer with the same option settings.
static bool doSinglePermutation(PlanRepLight &prl, int cc, const EdgeArray< int > *pCost, Array< edge > &deletedEdges, UMLEdgeInsertionModule &inserter, std::minstd_rand &rng, int &crossingNumber)
std::unique_ptr< UMLEdgeInsertionModule > m_inserter
The edge insertion module.
bool setTimeout()
Returns the current setting of options setTimeout.
void setInserter(UMLEdgeInsertionModule *pInserter)
Sets the module option for the edge insertion module.
SubgraphPlanarizerUML()
Creates an instance of subgraph planarizer with default settings.
void maxThreads(unsigned int n)
Sets the maximal number of used threads to n.
bool m_setTimeout
The option for setting timeouts in submodules.
void permutations(int p)
Sets the number of permutations to p.
virtual ReturnType doCall(PlanRepUML &pr, int cc, const EdgeArray< int > *pCostOrig, int &crossingNumber) override
Implements the algorithm call.
void setTimeout(bool b)
Sets the option setTimeout to b.
int permutations()
Returns the number of permutations.
SubgraphPlanarizerUML & operator=(const SubgraphPlanarizerUML &planarizer)
Assignment operator. Copies option settings only.
Base class for UML crossing minimization algorithms.
Interface for UML edge insertion algorithms.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
#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.