Plugin developed by [Andrew Pitts](https://github.com/apitts) and published under the [MIT](LICENSE) license. Original algorithm by [Mathieu Jacomy](https://github.com/jacomyma) and ported to sigma.js with permission.
---
This plugin runs an algorithm which distributes nodes in the network, ensuring that they do not overlap and providing a margin where specified.
## Methods
**configure**
Changes the layout's configuration.
```js
varlistener=s.configNoverlap(config);
```
**start**
Starts the layout. It is possible to pass a configuration if this is the first time you start the layout.
```js
s.startNoverlap();
```
**isRunning**
Returns whether the layout is running.
```js
s.isNoverlapRunning();
```
## Configuration
***nodes**: *array*: the subset of nodes to apply the layout.
*Algorithm configuration*
***nodeMargin**: *number*`5.0`: The additional minimum space to apply around each and every node.
***scaleNodes**: *number*`1.2`: A multiplier to apply to nodes such that larger nodes will have more space around them if this multiplier is greater than zero.
***gridSize**: *integer*`20`: The number of rows and columns to use when dividing the nodes up into cells which the algorithm is applied to. Use more rows and columns for larger graphs for a more efficient algorithm.
***permittedExpansion***number*`1.1`: At every step, this is the maximum ratio to apply to the bounding box, i.e. the maximum by which the network is permitted to expand.
***rendererIndex***integer*`0`: The index of the renderer to use to compute overlap and collisions of the nodes.
***speed***number*`2`: A larger value increases the speed with which the algorithm will convergence at the cost of precision.
***maxIterations***number*`500`: The maximum number of iterations to run the algorithm for before stopping it.
*Easing configuration*
***easing***string*: if specified, ease the transition between nodes positions if background is `true`. The duration is specified by the Sigma settings `animationsTime`. See [sigma.utils.easing](../../src/utils/sigma.utils.js#L723) for available values.
***duration***number*: duration of the transition for the easing method. Default value is Sigma setting `animationsTime`.
## Events
The plugin dispatches the following events:
-`start`: on layout start.
-`interpolate`: at the beginning of the layout animation if an *easing* function is specified and the layout is ran on background.
-`stop`: on layout stop, will be dispatched after `interpolate`.
grid={};//An object of objects where grid[row][col] is an array of node ids representing nodes that fall in that grid. Nodes can fall in more than one grid
Plugin developed by [Alexis Jacomy](https://github.com/jacomyal).
---
This plugin provides a method to animate a sigma instance by interpolating some node properties. Check the `sigma.plugins.animate` function doc or the `examples/animate.html` code sample to know more.