Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Planarity.h
Go to the documentation of this file.
1 
34 #pragma once
35 
36 #include <ogdf/basic/Array2D.h>
38 
39 namespace ogdf {
40 namespace davidson_harel {
41 
42 class Planarity : public EnergyFunction {
43 public:
45  explicit Planarity(GraphAttributes& AG);
46 
47  ~Planarity();
48 
50  void computeEnergy() override;
51 
52 private:
53  struct ChangedCrossing {
54  int edgeNum1;
55  int edgeNum2;
56  bool cross;
57  };
58 
60  bool intersect(const edge, const edge) const;
61 
63  void compCandEnergy() override;
64 
66  void internalCandidateTaken() override;
67 
69  bool lowLevelIntersect(const DPoint&, const DPoint&, const DPoint&, const DPoint&) const;
70 
71 #ifdef OGDF_DEBUG
72  virtual void printInternalData() const override;
73 #endif
74 
77 
83 
85 };
86 
87 }
88 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::GraphAttributes
Stores additional attributes of a graph (like layout information).
Definition: GraphAttributes.h:66
ogdf::GenericPoint< double >
ogdf::davidson_harel::Planarity::~Planarity
~Planarity()
ogdf::davidson_harel::Planarity::lowLevelIntersect
bool lowLevelIntersect(const DPoint &, const DPoint &, const DPoint &, const DPoint &) const
Tests if two lines given by four points intersect.
ogdf::davidson_harel::Planarity::intersect
bool intersect(const edge, const edge) const
Returns 1 if edges cross else 0.
ogdf::davidson_harel::Planarity::compCandEnergy
void compCandEnergy() override
Computes energy of candidate.
ogdf::davidson_harel::Planarity::m_crossingChanges
List< ChangedCrossing > m_crossingChanges
stores for all edges incident to the test node an array with the crossings that change if the candida...
Definition: Planarity.h:82
ogdf::Array2D< bool >
ogdf::davidson_harel::Planarity::Planarity
Planarity(GraphAttributes &AG)
Initializes data structures to speed up later computations.
ogdf::davidson_harel::Planarity::ChangedCrossing
Definition: Planarity.h:53
ogdf::davidson_harel::Planarity::internalCandidateTaken
void internalCandidateTaken() override
Changes internal data if candidate is taken.
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
EnergyFunction.h
Declares class EnergyFunction...
ogdf::davidson_harel::Planarity::ChangedCrossing::edgeNum1
int edgeNum1
Definition: Planarity.h:54
ogdf::davidson_harel::Planarity::ChangedCrossing::cross
bool cross
Definition: Planarity.h:56
ogdf::davidson_harel::EnergyFunction
The interface for energy functions for the Davidson Harel graph drawing method.
Definition: EnergyFunction.h:47
ogdf::davidson_harel::Planarity::m_crossingMatrix
Array2D< bool > * m_crossingMatrix
stores for each pair of edges if they cross
Definition: Planarity.h:76
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:356
ogdf::davidson_harel::Planarity::m_edgeNums
EdgeArray< int > * m_edgeNums
numbers of edges
Definition: Planarity.h:75
ogdf::davidson_harel::Planarity::ChangedCrossing::edgeNum2
int edgeNum2
Definition: Planarity.h:55
ogdf::davidson_harel::Planarity
Definition: Planarity.h:42
ogdf::davidson_harel::Planarity::computeEnergy
void computeEnergy() override
Computes energy of initial layout and stores it in m_energy.
Array2D.h
Declaration and implementation of class Array2D which implements dynamic two dimensional arrays.
ogdf::davidson_harel::Planarity::m_nonSelfLoops
List< edge > m_nonSelfLoops
list of edges that are not slef loops
Definition: Planarity.h:84
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709
ogdf::davidson_harel::Planarity::printInternalData
virtual void printInternalData() const override