Optimal edge insertion module. More...
#include <ogdf/uml/VariableEmbeddingInserterUML.h>
Inheritance diagram for ogdf::VariableEmbeddingInserterUML:Public Member Functions | |
| VariableEmbeddingInserterUML () | |
| Creates an instance of variable embedding edge inserter with default settings. | |
| VariableEmbeddingInserterUML (const VariableEmbeddingInserterUML &inserter) | |
Creates an instance of variable embedding inserter with the same settings as inserter. | |
| ~VariableEmbeddingInserterUML () | |
| Destructor. | |
| virtual UMLEdgeInsertionModule * | clone () const override |
| Returns a new instance of the variable embedding inserter with the same option settings. | |
| VariableEmbeddingInserterUML & | operator= (const VariableEmbeddingInserterUML &inserter) |
| Assignment operator. Copies option settings only. | |
Optional parameters | |
| void | removeReinsert (RemoveReinsertType rrOption) |
| Sets the remove-reinsert postprocessing method. | |
| RemoveReinsertType | removeReinsert () const |
| Returns the current setting of the remove-reinsert postprocessing method. | |
| void | percentMostCrossed (double percent) |
Sets the option percentMostCrossed to percent. | |
| double | percentMostCrossed () const |
| Returns the current setting of option percentMostCrossed. | |
Public Member Functions inherited from ogdf::UMLEdgeInsertionModule | |
| UMLEdgeInsertionModule () | |
| Initializes a UML edge insertion module (default constructor). | |
| UMLEdgeInsertionModule (const UMLEdgeInsertionModule &eim) | |
| Initializes a UML edge insertion module (copy constructor). | |
| virtual | ~UMLEdgeInsertionModule () |
| Destructor. | |
| ReturnType | call (PlanRepLight &pr, const Array< edge > &origEdges) |
Inserts all edges in origEdges into pr while avoiding crossings between generalizations. | |
| ReturnType | call (PlanRepLight &pr, const Array< edge > &origEdges, const EdgeArray< int > &costOrig) |
Inserts all edges in origEdges with given costs into pr while avoiding crossings between generalizations. | |
| ReturnType | callEx (PlanRepLight &pr, const Array< edge > &origEdges, const EdgeArray< int > *pCostOrig=nullptr, const EdgeArray< uint32_t > *pEdgeSubGraphs=nullptr) |
Inserts all edges in origEdges into pr while avoiding crossings between generalizations, optionally costs and subgraphs may be given. | |
Public Member Functions inherited from ogdf::Module | |
| Module () | |
| Initializes a module. | |
| virtual | ~Module () |
Public Member Functions inherited from ogdf::Timeouter | |
| Timeouter () | |
| timeout is turned of by default | |
| Timeouter (bool t) | |
| timeout is turned off (false) or on (true) (with 0 second) | |
| Timeouter (const Timeouter &t) | |
| Timeouter (double t) | |
| timeout is set to the given value (seconds) | |
| ~Timeouter () | |
| bool | isTimeLimit () const |
| returns whether any time limit is set or not | |
| Timeouter & | operator= (const Timeouter &t) |
| double | timeLimit () const |
| returns the current time limit for the call | |
| void | timeLimit (bool t) |
| shorthand to turn timelimit off or on (with 0 seconds) | |
| void | timeLimit (double t) |
| sets the time limit for the call (in seconds); <0 means no limit. | |
Private Member Functions | |
| virtual ReturnType | doCall (PlanRepLight &pr, const Array< edge > &origEdges, const EdgeArray< int > *pCostOrig, const EdgeArray< uint32_t > *pEdgeSubgraph) override |
| Implements the algorithm call. | |
Private Attributes | |
| double | m_percentMostCrossed |
| The portion of most crossed edges considered. | |
| RemoveReinsertType | m_rrOption |
| The remove-reinsert method. | |
Additional Inherited Members | |
Public Types inherited from ogdf::Module | |
| enum class | ReturnType { Feasible , Optimal , NoFeasibleSolution , TimeoutFeasible , TimeoutInfeasible , Error } |
| The return type of a module. More... | |
Static Public Member Functions inherited from ogdf::Module | |
| static bool | isSolution (ReturnType ret) |
Returns true iff ret indicates that the module returned a feasible solution. | |
Protected Attributes inherited from ogdf::Timeouter | |
| double | m_timeLimit |
| Time limit for module calls (< 0 means no limit). | |
Optimal edge insertion module.
The class VariableEmbeddingInserterUML represents the optimal edge insertion algorithm, which inserts a single edge with a minum number of crossings into a planar graph. This version is specialized for UML class diagrams and makes sure that generalization edges do not cross.
The implementation is based on the following publication:
Carsten Gutwenger, Petra Mutzel, Rene Weiskircher: Inserting an Edge into a Planar Graph. Algorithmica 41(4), pp. 289-308, 2005.
Definition at line 51 of file VariableEmbeddingInserterUML.h.
| ogdf::VariableEmbeddingInserterUML::VariableEmbeddingInserterUML | ( | ) |
Creates an instance of variable embedding edge inserter with default settings.
| ogdf::VariableEmbeddingInserterUML::VariableEmbeddingInserterUML | ( | const VariableEmbeddingInserterUML & | inserter | ) |
Creates an instance of variable embedding inserter with the same settings as inserter.
|
inline |
Destructor.
Definition at line 60 of file VariableEmbeddingInserterUML.h.
|
overridevirtual |
Returns a new instance of the variable embedding inserter with the same option settings.
Implements ogdf::UMLEdgeInsertionModule.
|
overrideprivatevirtual |
Implements the algorithm call.
Implements ogdf::UMLEdgeInsertionModule.
| VariableEmbeddingInserterUML & ogdf::VariableEmbeddingInserterUML::operator= | ( | const VariableEmbeddingInserterUML & | inserter | ) |
Assignment operator. Copies option settings only.
|
inline |
Returns the current setting of option percentMostCrossed.
Definition at line 87 of file VariableEmbeddingInserterUML.h.
Sets the option percentMostCrossed to percent.
This option determines the portion of most crossed edges used if the remove-reinsert method is set to RemoveReinsertType::MostCrossed. This portion is number of edges * percentMostCrossed() / 100.
Definition at line 84 of file VariableEmbeddingInserterUML.h.
|
inline |
Returns the current setting of the remove-reinsert postprocessing method.
Definition at line 77 of file VariableEmbeddingInserterUML.h.
|
inline |
Sets the remove-reinsert postprocessing method.
Definition at line 74 of file VariableEmbeddingInserterUML.h.
|
private |
The portion of most crossed edges considered.
Definition at line 97 of file VariableEmbeddingInserterUML.h.
|
private |
The remove-reinsert method.
Definition at line 96 of file VariableEmbeddingInserterUML.h.