NAME
GEMLayout -
An implementation of a spring-embedder layout.
SYNOPSIS
#include <GEMLayout.h>
Classes
struct GEMparticule
Public Member Functions
GEMLayout (const tlp::PropertyContext &)
~GEMLayout ()
bool run ()
Detailed Description
An implementation of a spring-embedder layout.
This plugin is an implementation of the GEM-2d layout algorithm first
published as:
A. Frick, A. Ludwig, and H. Mehldau,
’A fast, adaptive layout algorithm for undirected graphs’,
In R. Tamassia and I. Tollis (Eds),
Graph Drawing’94,
Volume 894 of Lecture Notes in Computer Science, Springer Verlag,
1995.
HISTORY
The implementation started life as the public-domain code produced by
Arne Frick and released at
www.frick-consulting.de/publications.html
The core ’embedder’ part of the algorithm was used in the
implementation of a Java plugin for the CWI ’Royere’ tool, and then
this code was ported to C++ to make the implementation given here.
Note:
The embedder algorithm described by Frick involves three phases:
insertion, arrangement, and optimization. Only the first two of
these phases are included here. Experiments with the Java
implementation showed that the optimization phase consumed
significantly more time than the first two and produced apparently
marginal improvements in the final layout.
As GEM, like other spring-embedder algorithms, is computationally
expensive, I have tried to optimize the loops somewhat by storing
all necessary node information into two arrays: ’GemProp’ carries
the (scalar) values associated with each node by the layout
algorithm, while ’Adjacent’ is an array of vectors, one vector per
node, giving the index (integer) of each node.
The new version has been reimplemented to manage edge length it
merges the 3D stuff and removes the use of integers (new CPU do not
require it anymore).
Author:
David Duke, University of Bath, UK: Email: D.Duke@bath.ac.uk
David Auber,University of Bordeaux, FR: Email: david.auber@labri.fr
Version 0.1: 23 July 2001. Version 0.2: September 2006
Constructor & Destructor Documentation
GEMLayout::GEMLayout (const tlp::PropertyContext &)
GEMLayout::~GEMLayout ()
Member Function Documentation
bool GEMLayout::run ()
Author
Generated automatically by Doxygen for Tulip Plugins Library from the
source code.