Public Member Functions
GEMLayout (const tlp::PropertyContext &)
bool run ()
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),
Volume 894 of Lecture Notes in Computer Science, Springer Verlag, 1995.
The implementation started life as the public-domain code produced by Arne Frick and released at
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.
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).
David Duke, University of Bath, UK: Email: [email protected]
David Auber,University of Bordeaux, FR: Email: [email protected] Version 0.1: 23 July 2001. Version 0.2: September 2006
Constructor & Destructor Documentation
GEMLayout::GEMLayout (const tlp::PropertyContext &)
Member Function Documentation
bool GEMLayout::run ()
Generated automatically by Doxygen for Tulip Plugins Library from the source code.