Optimal edge insertion module. More...
#include <ogdf/uml/VariableEmbeddingInserterUML.h>
 Inheritance diagram for ogdf::VariableEmbeddingInserterUML:
 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 origEdgesintoprwhile avoiding crossings between generalizations. | |
| ReturnType | call (PlanRepLight &pr, const Array< edge > &origEdges, const EdgeArray< int > &costOrig) | 
| Inserts all edges in origEdgeswith given costs intoprwhile 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 origEdgesintoprwhile 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 retindicates 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 57 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 66 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 93 of file VariableEmbeddingInserterUML.h.
| 
 | inline | 
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 90 of file VariableEmbeddingInserterUML.h.
| 
 | inline | 
Returns the current setting of the remove-reinsert postprocessing method.
Definition at line 83 of file VariableEmbeddingInserterUML.h.
| 
 | inline | 
Sets the remove-reinsert postprocessing method.
Definition at line 80 of file VariableEmbeddingInserterUML.h.
| 
 | private | 
The portion of most crossed edges considered.
Definition at line 103 of file VariableEmbeddingInserterUML.h.
| 
 | private | 
The remove-reinsert method.
Definition at line 102 of file VariableEmbeddingInserterUML.h.