Home » Eclipse Projects » GEF3D » 3D Editor Force Directed Layout
|3D Editor Force Directed Layout [message #511138]
||Sat, 30 January 2010 05:33
Registered: July 2009
I have an 3D editor (which is nestable) displaying a simple graph. My requirement is to apply an force directed layout to this graph. Unfortunately, I'm not very experienced with gef-layouts. What is the best way to do that with gef3D? Can I use one of the gef2D layouts (how can this be done?) or should I change the x and y coordinates manually using the XY3DLayoutPolicy and an third party layout algorithm applying to my model?
|Re: 3D Editor Force Directed Layout [message #511164 is a reply to message #511138]
||Sat, 30 January 2010 11:41
|| Jens von Pilgrim
Registered: July 2009
GEF3D/Draw3D is not different to GEF/Draw2D concerning layouts. As in
GEF, a (Draw2D's) LayoutManager (of a parent figure) layout the figures
(i.e. the child figures of a figure). Since Figure3D is derived from
Figure, it is possible to layout a 3D figure exactly as if it were a 2D
figure (actually, we spent a lot of effort to achieve that ;-) ). Of
course, 2D layout algorithms do not set the z coordinates. In the
context of GEF/GEF3D, layout managers are used with LayoutEditPolicy
(and derived classes).
Unfortunately, I'm not an GEF/Draw2D layout expert. There is some kind
of graph layout algorithm in Draw2D, but I don't know how it is
working. Zest provides a whole bunch of layouts, but Zest is only using
Draw2D (and not GEF) and uses a special graph model.
However, layouts are in fact a big issue in GEF3D
(http://bugs.eclipse.org/300336 ), and we have added this issue to our
GEF3D todo list (see http://wiki.eclipse.org/GEF3D_Todos ). IMHO, there
are two major issues with layouts:
- model awareness
(The algorithms themselves certainly are tricky as well, but in most
cases, research papers exist describing them...)
There are classes called Animator and LayoutAnimator in Draw2D, but I
haven't used them myself so far. I'm not sure whether these animation
classes can be used with GEF3D. In 3D, we may have to optimize the
animations, pay attention to the refresh rate, and make the animation
independent from the systems speed. We have added a bug
(http://bugs.eclipse.org/300316 ) to investigate in that direction.
Another problem is model awareness. Most layout algorithms simply
layout a graph. I think that in some cases, different kinds of
connections or nodes may be weighted differently. E.g., a
generalization connections may be weighted more than a simple
dependency in a class model. Moreover, in some cases there may be no
visualized connections between nodes, i.e. the order of the nodes in
the graph is not visualized and may vary. I think this makes a layout
API necessary, which works in the context of EditParts and the model
and not with the figures. I have tutored a diploma thesis [Ste08]
investigating in that direction. This certainly is no 3D specific
problem. I could ask the author if the thesis if he gives me the
permission to send it to you (it's in German).
IMHO, especially for interactive layouts, animation of the layout is
very important, so we have to combine the layout with an animation
system. Actually, if we have model aware layouts and a good animation
system, we could implement algorithms such as force feedback layout and
other things such as coverflow (from Os X) in a very similar manner.
Do you have an algorithm for 3D force feedback layout? Are you using
Tim Dwyer's algorithm [Dwy01]? Are you interested in other algorithms
from the graph drawing community, such as [HH06] (an overview of 3D
approaches can be found in [Lan01])? (You probably now these papers..).
Maybe you can also have a look at Ian Bull's thesis [Bul08], at least
he is the author of Zest.
If you work in that direction, it would be great if you could
contribute your solutions to GEF3D!
[Bul08] Bull, R. I.: Model Driven Visualization: Towards A Model Driven
Engineering Approach For Information Visualization. Canada, University
of Victoria, Ph.D. thesis, 2008.
http://www.cs.uvic.ca/~chisel/thesis/irbull_phd.pdf – Online–Ressource
[Dwy01] Dwyer, Tim: Three dimensional UML using force directed layout.
In: APVis ’01: Proceedings of the 2001 Asia-Pacific symposium on
Information visualisation. Australian Computer Society, Inc.. – ISBN
[Lan01] Landgraf, Britta: 3D Graph Drawing. Version: 2001.
http://www.springerlink.com/content/l3vv18dd6mn63ap8 In: Kaufmann,
Michael (Hrsg.) ; Wagner, Dorothea (Hrsg.): Drawing Graphs: Methods and
Models. Springer-Verlag (Lecture Notes in Computer Science 2025),
172–192. – ISBN 3–540–42062–2
[HH06] Ho, Joshua ; Hong, Seok-Hee: Drawing Clustered Graphs in Three
Dimensions. In: Graph Drawing. 13th International Symposium, GD 2005,
Limerick, Ireland, September 12-14, 2005. Revised Papers,
Springer-Verlag (Lecture Notes in Computer Science 3843). – ISBN
[Ste08] Stein, Marc: Eine API zum automatischen Layouten von
graphbasierten Diagrammen in Raum und Ebene. Hagen, Germany,
FernUniversität in Hagen, Diplomarbeit, Januar 2008
|Re: 3D Editor Force Directed Layout [message #563904 is a reply to message #511164]
||Fri, 05 February 2010 05:26
Registered: July 2009
thank you for the detailed and very interesting answer. As for now a 2D-Force directed layout on the planes is sufficient for me. I have used ZEST to achieve this, mapping my model to the data structure required by ZEST. Applying the Layout algorithm then, has worked surprisingly well.
Anyway, a 3D force directed layout algorithm in GEF3D would be very enriching and I'm sure, also interessting for future requirements of my project. I'm very curious to see the progress on this topic in GEF3D.
Current Time: Fri Apr 18 01:39:41 EDT 2014
Powered by FUDForum
. Page generated in 0.03257 seconds