160 bool l_saveCliqueHandling = m_processCliques;
161 m_processCliques =
false;
166 preProcess(umlGraph);
169 doSimpleCall(umlGraph);
175 postProcess(umlGraph);
178 m_processCliques = l_saveCliqueHandling;
190 virtual void callSimDraw(
UMLGraph ¨Graph);
193 * \brief Calls planarization layout with fixed embedding given by \p umlGraph.
194 * \pre The graph has no self-loops.
195 * @param umlGraph is the input graph and will also be assigned the layout information.
196 * The fixed embedding is obtained from the layout information (
node
197 * coordinates, bend points) in \p umlGraph.
199 virtual void callFixEmbed(
UMLGraph ¨Graph);
233 int opts = m_planarLayouter->getOptions();
236 m_planarLayouter->setOptions(opts | UMLOpt::OpAlign);
238 m_planarLayouter->setOptions(opts & ~UMLOpt::OpAlign);
270 m_planarLayouter.reset(pPlanarLayouter);
Declaration and implementation of Array class and Array algorithms.
Declaration of interface for algorithms that arrange/pack layouts of connected components.
Declaration of CombinatorialEmbedding and face.
Defines ogdf::EmbedderModule.
Includes declaration of graph class.
Declaration of class GraphAttributes which extends a Graph by additional attributes.
Declaration and implementation of HashArray class.
Declaration of interface for planar layout algorithms for UML diagrams (used in planarization approac...
Declaration of doubly linked lists and iterators.
Declaration of orthogonal representation of planar graphs.
Declaration of CrossingMinimization Module, an interface for crossing minimization algorithms.
Declaration of class UMLGraph.
Declaration of interface for layout algorithms for UML diagrams.
Declaration of classes GenericPoint, GenericPolyline, GenericLine, GenericSegment,...
Basic declarations, included by all source files.
The parameterized class Array implements dynamic arrays of type E.
Base class of algorithms that arrange/pack layouts of connected components.
Combinatorial embeddings of planar graphs with modification functionality.
Base class for embedder algorithms.
Faces in a combinatorial embedding.
Stores additional attributes of a graph (like layout information).
void removeUnnecessaryBendsHV()
Removes unnecessary bend points in orthogonal segements.
Indexed arrays using hashing for element access.
Interface for planar UML layout algorithms.
Doubly linked lists (maintaining the length of the list).
Class for the representation of nodes.
Planarized representations (of a connected component) of a graph.
Planarized representation (of a connected component) of a UMLGraph; allows special handling of hierar...
The planarization layout algorithm.
PlanarizationLayoutUML()
Creates an instance of planarization layout and sets options to default values.
void pageRatio(double ratio)
Sets the option pageRatio to ratio.
void call(GraphAttributes &GA)
Calls planarization layout for GraphAttributes GA and computes a layout.
std::unique_ptr< LayoutPlanRepUMLModule > m_planarLayouter
The module for computing a planar layout.
virtual void postProcess(UMLGraph &UG)
double pageRatio() const
Returns the current setting of option pageRatio.
void getFixationDistance(node startNode, HashArray< int, int > &distance, const NodeArray< bool > &fixedNodes)
void setPlanarLayouter(LayoutPlanRepUMLModule *pPlanarLayouter)
Sets the module option for the planar layout algorithm.
void simpleCall(UMLGraph ¨Graph)
Simple call function that does not care about cliques etc.
virtual void callIncremental(UMLGraph ¨graph, NodeArray< bool > &fixedNodes, const EdgeArray< bool > &fixedEdges)
Incremental call function.
void doSimpleCall(GraphAttributes &GA)
void setLayouterOptions(int ops)
void setCrossMin(UMLCrossingMinimizationModule *pCrossMin)
Sets the module option for UML crossing minimization.
double m_pageRatio
The desired page ratio.
bool m_arrangeLabels
Option for re-arranging labels.
void simpleCall(GraphAttributes &GA)
Simple call function.
virtual void preProcess(UMLGraph &UG)
void reembed(PlanRepUML &PG, int ccNumber, bool l_align=false, bool l_gensExist=false)
std::unique_ptr< EmbedderModule > m_embedder
The module for planar embedding.
void setPacker(CCLayoutPackModule *pPacker)
Sets the module option for the arrangement of connected components.
std::unique_ptr< UMLCrossingMinimizationModule > m_crossMin
The moule for UML crossing minimization.
int m_nCrossings
The number of crossings in the computed layout.
void arrangeCCs(PlanRep &PG, GraphAttributes &GA, Array< DPoint > &boundingBox)
face findBestExternalFace(const PlanRep &PG, const CombinatorialEmbedding &E)
virtual void call(UMLGraph ¨Graph) override
Calls planarization layout for UML-graph umlGraph and computes a mixed-upward layout.
void assureDrawability(UMLGraph ¨Graph)
std::unique_ptr< CCLayoutPackModule > m_packer
The module for arranging connected components.
void sortIncrementalNodes(List< node > &addNodes, const NodeArray< bool > &fixedNodes)
virtual ~PlanarizationLayoutUML()
int numberOfCrossings() const
Returns the number of crossings in computed layout.
void setEmbedder(EmbedderModule *pEmbedder)
Sets the module option for the graph embedding algorithm.
Base class for UML crossing minimization algorithms.
void insertGenMergers()
Merges generalizations at a common superclass.
Interface of UML layout algorithms.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
RegisteredArray for nodes, edges and adjEntries of a graph.
#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.