[vtkusers] GUI for VTK (was [DEMO] amira)

Prabhu Ramachandran prabhu at aero.iitm.ernet.in
Sat Jun 17 16:45:30 EDT 2000


hi,

	This seems to be a good time to get started on this project.
A lot of others have said they'd be willing to help.  I myself can try 
to do what little I can.

>>>>> "Sebastien" == Sebastien BARRE <seb-ml-a at barre.nom.fr> writes:

    Sebastien> ************************** - OpenSource, and free

    Sebastien>          - platform independent

    Sebastien>          - scriptable (i.e., integrated console so that
    Sebastien> we can simultaneously use both the GUI and the whole
    Sebastien> range of VTK functions in a programmatic way).

    Sebastien>          - visual pipeline (like Visualization Studio
    Sebastien> or Amira), as well as an object browser

    Sebastien>          - completeness and consistency (i.e., access
    Sebastien> to ALL VTK functions, and unified access, meaning that
    Sebastien> it has to be done automatically, see below).

	Your ideas sound really nice.  Another useful thing would be
to have a large set of simple and complex examples.  A newbie user
could use this tool for some rapid VTK application development.  I
find that there are a large number of folks who dont want to get into
the messy details of learning VTK etc. (It does have a fairly steep
learning curve esp. if one is not enthusiastic about graphics).
These users could easily develop their applications by using the
examples as some kind of a template.  

	The other advantage that such a tool has is that it is much
easier to learn VTK using it.  As you have mentioned below VTK is so
huge that it can be a big pain sorting thru the classes and figuring
out things.  With a builder it should be rather painless finding
things about the VTK classes.

    Sebastien> This leaves Python, which is a free, opened, modern and
    Sebastien> powerful scripting language, with builtin
    Sebastien> object-oriented support. It's also natively stuffed
    Sebastien> with lot of interesting modules and network access. I
    Sebastien> guess David Gobbi could advertise it better than I do
    Sebastien> :)

	That is great, I am a pythoner (not an advanced one though).

    Sebastien> Now for the GUI... I guess we need :

    Sebastien>          - GTK looks nice, is heavily
    Sebastien> supported/developed, but I'm not sure it has been
    Sebastien> seriously ported to Windows (without using cygwin I
    Sebastien> mean). It won't be discontinued, but who is ready to
    Sebastien> enter the GTK/KDE war ? :) I'd rather not see our
    Sebastien> task-force divided between VTKGTK and VTKKDE.

GTK: A long while back I tried without much success to integrate gtk
and vtk.  Matt Howlett took over and I believe got something working.
The biggest problem I had way back then was that GTK was developing
way too fast for my liking.  There wasnt a nice stable library that I
could use.  Every new derivative from gtk would use the latest version
which would make all the apps I ran incompatible.  I tried to use
gtk-- but the bindings were not complete.  Things are better now.  GTK
is also very well documented and the python bindings are good. But I
guess WxWindows or FLTK may be better from a portability perspective.

FLTK: I admit FLTK is light but it is rather powerful and has a great
gui builder and is well documented in terms of a useable user guide.

wxWindows: wxWindows is a more serious toolkit but it isnt as well
documented as FLTK is.  There is class documentation but that isnt
enough to get started quickly (There is no substitute to a well
written guide/tutorial).  The python bindings are much easier to
learn.  The tutorial isnt complete.  Id be glad if someone can point
me to any better documentation.

    Sebastien> => my favorite "candidate" is wxWindows :
    Sebastien> http://www.wxwindows.org/, but I've NOT been playing
    Sebastien> with it for the moment. It looks serious, and seems
    Sebastien> easy to install. "It'a free C++ framework supporting
    Sebastien> Windows 3.1/95/98/NT, and Unix with
    Sebastien> GTK/Motif/Lesstif. A Mac port at version 2.0 is
    Sebastien> available.  Other ports are under consideration." It
    Sebastien> has Python support : http://wxpython.org/.

    Sebastien> I guess there is two issues to solve :

    Sebastien>          - implement "serialization" in VTK, i.e. a way
    Sebastien> to save/load/store/restore objects (not scene) and
    Sebastien> their parameters in files, and therefore whole
    Sebastien> pipelines too (object by object, or by following the
    Sebastien> pipeline graph). Maybe a vtkSerialize class, and
    Sebastien> subclasses that would help objects to store themselves
    Sebastien> in different forms : portable and readable textual
    Sebastien> form, compressed binary form, Tcl form, Java form, C++
    Sebastien> form, so that by building a pipeline in Tcl, one could
    Sebastien> save it in a file as a readable C++ pipeline, and
    Sebastien> vice-versa (restore it from a C++ example, even if it
    Sebastien> is called from a Tcl program). It's not too difficult
    Sebastien> to do in Tcl, but I think it has too be natively
    Sebastien> implemented in the VTK C++ API.  (I'm quite sure
    Sebastien> Serilalization has been done also by some of you,
    Sebastien> please feel free to give some feedbacks).

	Seems to be the logical direction to take.  

    Sebastien> Completeness and consistency ****************** Meaning
    Sebastien> : access to ALL VTK functions (keyword : ALL :)). And
    Sebastien> access in a unified way.

	Yeah, but lets get started in a small way first. :)

<snipped off features - I agree whole heartedly to all of them>

    Sebastien> Therefore, I think we might need a tool that will parse
    Sebastien> the VTK sources, and build a kind of database (or
    Sebastien> listing) of all objects, functions, and parameters
    Sebastien> (VTKDB). This file would be read by the GUI, and used
    Sebastien> to build a database and provide a reliable and unified
    Sebastien> way to connect objects, or implement a full-featured
    Sebastien> object browser. It could be available for download, or
    Sebastien> updated remotely or locally when you update your VTK
    Sebastien> version, whatever.

	Sounds fabulous.  Just what I was thinking.

    Sebastien> That kind of parser is already available in some form,
    Sebastien> it is (they are) used to build the API bindings between
    Sebastien> the C++ lib and Python, Tcl, Java, and stuff. There is
    Sebastien> one parser per language, and correct me if I'm wrong,
    Sebastien> the C++ source is parsed for *every* language to build
    Sebastien> the binding. To be honest, I've not reverse-engineered
    Sebastien> the parser for the moment, it looks a bit freaky
    Sebastien> (Yacc/Bison or something like that, I'm just a poor
    Sebastien> Perl adept).  Maybe it would be a good opportunity to
    Sebastien> write a tool unifying and simplifying the stuff :
    Sebastien> something that would build that previously described
    Sebastien> VTKDB, then simple functions that would generate the
    Sebastien> bindings from the VTKDB, without re-reading the source.

	I guess you do already have a rudimentary parser in your
doxygen perl scripts?

	Are you folks going to create a separate mailing list or
something like that?  So what are we going to call the tool? 

	VTKBUILDER??

	Id like to help with this project and would appreciate if you
could let me know what you'd like me to do.

prabhu




More information about the vtkusers mailing list