# Package org.eclipse.gef.layout.algorithms

package org.eclipse.gef.layout.algorithms
This package provides different implementations of concrete layout algorithms. There are a couple of simple algorithms that arrange nodes in a grid (`GridLayoutAlgorithm`), a single column or row ( `BoxLayoutAlgorithm`), or which simply prevent overlapping of nodes ( `HorizontalShiftAlgorithm`).

Related Packages
Package
Description
org.eclipse.gef.layout
This package provides an interface-based facade to exchange layout information with layout algorithms (within this package), concrete implementations of layout algorithms ( `org.eclipse.gef.layout.algorithms`).
Class
Description
BoxLayoutAlgorithm
Layout algorithm that places all elements in one column or one row, depending on set orientation.
CompositeLayoutAlgorithm
The `CompositeLayoutAlgorithm` combines multiple `ILayoutAlgorithm`s.
GridLayoutAlgorithm
The `GridLayoutAlgorithm` lays out nodes in a grid.
HorizontalShiftAlgorithm
This layout shifts overlapping nodes to the right.
RadialLayoutAlgorithm
This layout will take the given entities, apply a tree layout to them, and then display the tree in a circular fashion with the roots in the center.
SpaceTreeLayoutAlgorithm
Layout algorithm implementing SpaceTree.
SpringLayoutAlgorithm
The SpringLayoutAlgorithm has its own data repository and relation repository.
SugiyamaLayoutAlgorithm
The SugiyamaLayoutAlgorithm class implements an algorithm to arrange a directed graph in a layered tree-like layout.
SugiyamaLayoutAlgorithm.BarycentricCrossingReducer
SugiyamaLayoutAlgorithm.CrossingReducer
An interface for heuristics that reduces edge crossings.
SugiyamaLayoutAlgorithm.DFSLayerProvider
Processing the nodes based on depth first search and creating a list of layers
SugiyamaLayoutAlgorithm.Direction
Specifies the direction for the `SugiyamaLayoutAlgorithm`.
SugiyamaLayoutAlgorithm.GreedyCrossingReducer
Implemented the CrossingReducer interface.
SugiyamaLayoutAlgorithm.LayerProvider
An interface for creating layers.
SugiyamaLayoutAlgorithm.NodeWrapper
Structure to store nodes and their positions in the layers.
SugiyamaLayoutAlgorithm.SimpleLayerProvider
SugiyamaLayoutAlgorithm.SplitCrossingReducer
Implements the CrossingReducer interface.
TreeLayoutAlgorithm
The TreeLayoutAlgorithm class implements a simple algorithm to arrange graph nodes in a layered tree-like layout.
TreeLayoutHelper
A helper class for layout algorithms that are based on tree structure.
TreeLayoutHelper.TreeListener
A superclass for listeners that can be added to this observer to get notification whenever the tree structure changes.
TreeLayoutHelper.TreeNode
Represents a node in a tree structure and stores all information related to it.
TreeLayoutHelper.TreeNodeFactory
`TreeLayoutObserver` uses instance of this class to create instances of `TreeLayoutHelper.TreeNode`.