Home » Eclipse Projects » GEF » 3D opengl diagrams contribution to GEF offer
3D opengl diagrams contribution to GEF offer [message #231093] |
Mon, 26 February 2007 16:36 |
Jean-Denis Boudreault Messages: 55 Registered: July 2009 |
Member |
|
|
Hello,
for my own purposes, i extended the GEF to support 3D diagrams based on
the eclipse openGL bindings. The 3D diagram supports selection
(+multi-selection), cameras, container objects, etc. Since it is based on
GEF, it also has the editparts, Figures3D (extends figure) and
editPolicies allow for all types of 3D manipulations. It is suboptimal
since the lightweightSystem2D is not meant for 3D, but with some
refactoring, it could be made 2D or 3D with great performances.
the resulting digrams (in 3D) are really neat, with all opengl effects
useable such as transparencies, etc.
if anyone is interrested, i would be willing to contribute this code,
although i have no idea how to do it since im not to familiar with the
eclipse development process and open source contribution. I also can not
maintain it, so this would be a donation. It could surely be adapted to
GEF/GMF helping to make great diagrams easily.
if anyone is interested, just raise a flag. otherwise, at least i offered.
thanks and have a nice day!
note: i also posted this on the GMF newsgroup.
|
|
|
Re: 3D opengl diagrams contribution to GEF offer [message #231174 is a reply to message #231093] |
Wed, 28 February 2007 06:12 |
Eclipse User |
|
|
|
Originally posted by: none.unknown.com
You can open a bug report against GEF and attach your code to it. Some
screenshots would be nice too.
"Jean-Denis Boudreault" <jdboudreault@gmail.com> wrote in message
news:9f0ad24dc94c56038fe06d691f4e71d6$1@www.eclipse.org...
> Hello,
>
>
> for my own purposes, i extended the GEF to support 3D diagrams based on
> the eclipse openGL bindings. The 3D diagram supports selection
> (+multi-selection), cameras, container objects, etc. Since it is based on
> GEF, it also has the editparts, Figures3D (extends figure) and
> editPolicies allow for all types of 3D manipulations. It is suboptimal
> since the lightweightSystem2D is not meant for 3D, but with some
> refactoring, it could be made 2D or 3D with great performances.
>
> the resulting digrams (in 3D) are really neat, with all opengl effects
> useable such as transparencies, etc.
>
>
> if anyone is interrested, i would be willing to contribute this code,
> although i have no idea how to do it since im not to familiar with the
> eclipse development process and open source contribution. I also can not
> maintain it, so this would be a donation. It could surely be adapted to
> GEF/GMF helping to make great diagrams easily.
>
>
> if anyone is interested, just raise a flag. otherwise, at least i offered.
>
>
> thanks and have a nice day!
>
>
> note: i also posted this on the GMF newsgroup.
>
|
|
| | |
Re: 3D opengl diagrams contribution to GEF offer [message #231908 is a reply to message #231093] |
Tue, 20 March 2007 13:42 |
|
Hello,
I've done a GEF 3D port, too. That is, I've implemented a 3D version of
GEF based on Java3D. Since Java3D is Swing based, I had to change GEF,
so I decided to use the GEF 3.2 code and created a completely new
plug-in. The following important changes were applied:
- use float instead of integer for all coordinates
- add a z attribute to point
- added support for Swing events (the core is now more or less
independent from SWT)
- changed some basic classes in order to support different types of
environments,
e.g. creating feedback figures using a factory
- added JDK 1.5 features (such as @override and generic colletions)
- refactored and splitted the original plug-ins to separate the
different envrionments
I have created a web page (primarily for students writing thesises
using GEF 3D, GEF 3D is part of my ph.d. project):
http://gef3d.org
The plug-in is working pretty well (on Linux and Windows), the
following things are (more or less) working:
- creating nodes and vertexes
- selection
- moving nodes, resizing nodes
- direct edit, using my own Java3D-editor instead of SWT or Swing components
- orbit tool (that is moving the camera)
So I think the most important things are working more or less. Since
GEF is used, undo/redo and other GEF related features are working, too.
Since Java3D is used features like printing or multiple camera
positions (leading to outline like window) should be easy to implement.
The performance is astonishing! Moving around in very big graphs (I
tried 1000 nodes) is like playing a first person scifi game. It really
makes fun! There are currently some performance problems with text, but
I hope to solve these problems in the future.
I've written a manual (unfortunately in German language only, the code
and UML diagrams of the tutorial might be interesting even if you don't
understand german) which can be downloaded from the website above.
Working with GEF 3D is pretty easy if you know GEF. Java3D is
scenegraph based and there exists a Figure3D class which is a GEF
figure and part of this scene graph as well. So it is very easy to
create new 3D figures as well.
GEF 3D supports two "environments": J3D and D2D. While the first is a
3D environment based on Java3D, the later is the original Draw2D, using
floats instead of integers. The code is more or less identically for
GEF, GEF3D J3D and GEF3D D2D, as you can read in the tutorial.
Due to Swing, GEF 3D is currently not working on Mac OS X (the
Swing-SWT-Bridge is only working on Linux and Windows). This is why I
plan to switch to Aviatrix 3D when version 2.0 of this framework is
finished. The Aviatrix 3D project has already implemented a Draw2D
canvas based on Aviatrix 3D, but I don't know its performance. If you
have already implemented a GEF version with the Open GL bindings, maybe
this solution could be used, too.
I'm planing to translate the tutorial sooner or later and add new
features to GEF 3D. I didn't plan to announce this project yet, since
GEF 3D is in an really early stage of development. There are currently
several students working on enhancements of GEF 3D and special
applications (i.e. special editors). But I think we should share our
experiences, so I'm writing this posting.
Regards,
Jens
|
|
|
Goto Forum:
Current Time: Sun Sep 22 14:16:57 GMT 2024
Powered by FUDForum. Page generated in 0.03783 seconds
|