# OpenGraph DrawingFramework

v. 2022.02 (Dogwood)

ogdf::GridLayout Class Reference

Representation of a graph's grid layout. More...

#include <ogdf/basic/GridLayout.h>

Inheritance diagram for ogdf::GridLayout:

## Public Member Functions

GridLayout ()
Creates an instance of a grid layout (associated with no graph). More...

GridLayout (const Graph &G)
Creates an instance of a grid layout associated with G. More...

virtual ~GridLayout ()
Destruction. More...

EdgeArray< IPolyline > & bends ()
Returns a reference to the array storing the bend points of edges. More...

const EdgeArray< IPolyline > & bends () const
Returns a reference to the array storing the bend points of edges. More...

IPolylinebends (edge e)
Returns a reference to the bend point list of edge e. More...

const IPolylinebends (edge e) const
Returns a reference to the bend point list of edge e. More...

bool checkLayout ()
Checks if the grid layout is reasonable. More...

void compactAllBends ()
Removes all unnecessary bends. More...

void computeBoundingBox (int &xmin, int &xmax, int &ymin, int &ymax)
Computes the bounding box of the grid layout. More...

IPolyline getCompactBends (edge e) const
Returns the bend point list of edge e without unnecessary bends. More...

void init ()
Initializes the grid layout for no graph (frees memory). More...

void init (const Graph &G)
Initializes the grid layout for graph G. More...

int manhattanEdgeLength (edge e) const

int maxManhattanEdgeLength () const

int numberOfBends () const
Computes the total number of bends in the grid layout. More...

IPolyline polyline (edge e) const
Returns the polyline of edge e (including start and end point!). More...

virtual void remap (Layout &drawing)
Transforms the grid layout to a layout. More...

double totalEdgeLength () const
Computes the total (euclidean) edge length of the grid layout. More...

int totalManhattanEdgeLength () const
Computes the total manhattan edge length of the grid layout. More...

NodeArray< int > & x ()
Returns a reference to the array storing the x-coordinates of nodes. More...

const NodeArray< int > & x () const
Returns a reference to the array storing the x-coordinates of nodes. More...

int & x (node v)
Returns a reference to the x-coordinate of node v. More...

const int & x (node v) const
Returns a reference to the x-coordinate of node v. More...

NodeArray< int > & y ()
Returns a reference to the array storing the y-coordinates of nodes. More...

const NodeArray< int > & y () const
Returns a reference to the array storing the y-coordinates of nodes. More...

int & y (node v)
Returns a reference to the y-coordinate of node v. More...

const int & y (node v) const
Returns a reference to the y-coordinate of node v. More...

## Static Public Member Functions

static double euclideanDistance (const IPoint &ip1, const IPoint &ip2)

static int manhattanDistance (const IPoint &ip1, const IPoint &ip2)

## Protected Attributes

EdgeArray< IPolylinem_bends
The bend points of edges. More...

NodeArray< int > m_x
The x-coordinates of nodes. More...

NodeArray< int > m_y
The y-coordinates of nodes. More...

## Static Private Member Functions

static void compact (IPolyline &ip)

static bool isRedundant (IPoint &p1, IPoint &p2, IPoint &p3)

## Detailed Description

Representation of a graph's grid layout.

Definition at line 46 of file GridLayout.h.

## ◆ GridLayout() [1/2]

 ogdf::GridLayout::GridLayout ( )
inline

Creates an instance of a grid layout (associated with no graph).

Definition at line 50 of file GridLayout.h.

## ◆ GridLayout() [2/2]

 ogdf::GridLayout::GridLayout ( const Graph & G )
inlineexplicit

Creates an instance of a grid layout associated with G.

Definition at line 53 of file GridLayout.h.

## ◆ ~GridLayout()

 virtual ogdf::GridLayout::~GridLayout ( )
inlinevirtual

Destruction.

Definition at line 56 of file GridLayout.h.

## ◆ bends() [1/4]

 EdgeArray& ogdf::GridLayout::bends ( )
inline

Returns a reference to the array storing the bend points of edges.

Definition at line 72 of file GridLayout.h.

## ◆ bends() [2/4]

 const EdgeArray& ogdf::GridLayout::bends ( ) const
inline

Returns a reference to the array storing the bend points of edges.

Definition at line 70 of file GridLayout.h.

## ◆ bends() [3/4]

 IPolyline& ogdf::GridLayout::bends ( edge e )
inline

Returns a reference to the bend point list of edge e.

Definition at line 89 of file GridLayout.h.

## ◆ bends() [4/4]

 const IPolyline& ogdf::GridLayout::bends ( edge e ) const
inline

Returns a reference to the bend point list of edge e.

Definition at line 87 of file GridLayout.h.

## ◆ checkLayout()

 bool ogdf::GridLayout::checkLayout ( )

Checks if the grid layout is reasonable.

In particular, the following checks are performed:

• All nodes have to be assigned to distinct grid points.
• All bend points have to be assigned to distinct points.
• No bend point coincides with the position of a node.

## ◆ compact()

 static void ogdf::GridLayout::compact ( IPolyline & ip )
staticprivate

## ◆ compactAllBends()

 void ogdf::GridLayout::compactAllBends ( )

Removes all unnecessary bends.

## ◆ computeBoundingBox()

 void ogdf::GridLayout::computeBoundingBox ( int & xmin, int & xmax, int & ymin, int & ymax )

Computes the bounding box of the grid layout.

The returned bounding box is (0,0,0,0) if the associated graph is empty or no graph is associated with the grid layout.

Parameters
 xmin is assigned the minimum x-coordinate in the grid layout. xmax is assigned the maximum x-coordinate in the grid layout. ymin is assigned the minimum y-coordinate in the grid layout. ymax is assigned the maximum y-coordinate in the grid layout.

## ◆ euclideanDistance()

 static double ogdf::GridLayout::euclideanDistance ( const IPoint & ip1, const IPoint & ip2 )
static

## ◆ getCompactBends()

 IPolyline ogdf::GridLayout::getCompactBends ( edge e ) const

Returns the bend point list of edge e without unnecessary bends.

## ◆ init() [1/2]

 void ogdf::GridLayout::init ( )
inline

Initializes the grid layout for no graph (frees memory).

Definition at line 103 of file GridLayout.h.

## ◆ init() [2/2]

 void ogdf::GridLayout::init ( const Graph & G )
inline

Initializes the grid layout for graph G.

Definition at line 96 of file GridLayout.h.

## ◆ isRedundant()

 static bool ogdf::GridLayout::isRedundant ( IPoint & p1, IPoint & p2, IPoint & p3 )
staticprivate

## ◆ manhattanDistance()

 static int ogdf::GridLayout::manhattanDistance ( const IPoint & ip1, const IPoint & ip2 )
static

## ◆ manhattanEdgeLength()

 int ogdf::GridLayout::manhattanEdgeLength ( edge e ) const

## ◆ maxManhattanEdgeLength()

 int ogdf::GridLayout::maxManhattanEdgeLength ( ) const

## ◆ numberOfBends()

 int ogdf::GridLayout::numberOfBends ( ) const

Computes the total number of bends in the grid layout.

## ◆ polyline()

 IPolyline ogdf::GridLayout::polyline ( edge e ) const

Returns the polyline of edge e (including start and end point!).

## ◆ remap()

 virtual void ogdf::GridLayout::remap ( Layout & drawing )
virtual

Transforms the grid layout to a layout.

This implementation only copies the grid coordinates to drawing; the derived class GridLayoutMapped performs the actual transformation of coordinates.

Reimplemented in ogdf::GridLayoutMapped.

## ◆ totalEdgeLength()

 double ogdf::GridLayout::totalEdgeLength ( ) const

Computes the total (euclidean) edge length of the grid layout.

## ◆ totalManhattanEdgeLength()

 int ogdf::GridLayout::totalManhattanEdgeLength ( ) const

Computes the total manhattan edge length of the grid layout.

## ◆ x() [1/4]

 NodeArray& ogdf::GridLayout::x ( )
inline

Returns a reference to the array storing the x-coordinates of nodes.

Definition at line 62 of file GridLayout.h.

## ◆ x() [2/4]

 const NodeArray& ogdf::GridLayout::x ( ) const
inline

Returns a reference to the array storing the x-coordinates of nodes.

Definition at line 60 of file GridLayout.h.

## ◆ x() [3/4]

 int& ogdf::GridLayout::x ( node v )
inline

Returns a reference to the x-coordinate of node v.

Definition at line 78 of file GridLayout.h.

## ◆ x() [4/4]

 const int& ogdf::GridLayout::x ( node v ) const
inline

Returns a reference to the x-coordinate of node v.

Definition at line 76 of file GridLayout.h.

## ◆ y() [1/4]

 NodeArray& ogdf::GridLayout::y ( )
inline

Returns a reference to the array storing the y-coordinates of nodes.

Definition at line 67 of file GridLayout.h.

## ◆ y() [2/4]

 const NodeArray& ogdf::GridLayout::y ( ) const
inline

Returns a reference to the array storing the y-coordinates of nodes.

Definition at line 65 of file GridLayout.h.

## ◆ y() [3/4]

 int& ogdf::GridLayout::y ( node v )
inline

Returns a reference to the y-coordinate of node v.

Definition at line 83 of file GridLayout.h.

## ◆ y() [4/4]

 const int& ogdf::GridLayout::y ( node v ) const
inline

Returns a reference to the y-coordinate of node v.

Definition at line 81 of file GridLayout.h.

## ◆ m_bends

 EdgeArray ogdf::GridLayout::m_bends
protected

The bend points of edges.

Definition at line 163 of file GridLayout.h.

## ◆ m_x

 NodeArray ogdf::GridLayout::m_x
protected

The x-coordinates of nodes.

Definition at line 161 of file GridLayout.h.

## ◆ m_y

 NodeArray ogdf::GridLayout::m_y
protected

The y-coordinates of nodes.

Definition at line 162 of file GridLayout.h.

The documentation for this class was generated from the following file: