From graphics-request at octave dot org Mon Jul 5 13:11:59 2004 Subject: Re: Re: OctPlot - yes it's yet another handle graphics package for octave From: Shai Ayal To: Ole Jacob Hagen , graphics@octave.org Date: Mon, 05 Jul 2004 21:07:59 +0300 Ole, I do not mean to start a holy war here, but I think installing the whole qt/kde GIANT codebase for someone who is just out to get octave for windows is really asking too much. Even in linux, trying to upgrade in rh 7.2 to the new version of KDE (so I could try out knewplot) took me over a week (I had to install a new gcc, qt, and KDE in what amounted to 100s of MB downloads and hours of compilation). One of my goals is to be able to add octplot to one of the octave installers for windows so that a normal windows user could get octave with graphics using a simple one file installer. Anyway now that I'm done not starting a holy war, I am sure that because oplot is maintained by a large group of people it is probably much better then octplot in many senses: more features, cleaner code and more. I will look at the oplot code and if I have any insightfull comments, I will not keep them to myself. And yes, I am interested in reinventingg the wheel, because to me it is interesting to go through all the steps (from the first draft of square wheels to ultra-modern roller blades style things). Happy coding to all Shai A Ole Jacob Hagen wrote: > Hi, Octave graphics people. > > I am the "project manager" and one of few developers of Oplot. > We have separated Handle Graphics functionality from the Widget- and > VisualisationPart of Oplot. > We have tried to make it clean, but it will also need som polishing to > make more cleanly. > > Oplot uses Coin (OpenGL C++ library, based on Open Inventor from SGI), > and Qt for widgets. > A-ha, you say? Qt is not available on Windows in GPL lisence, only in a > professional lisence. > > My counter-reply for this is one link: > http://kde-cygwin.sourceforge.net/qt3-win32/compile-msvc.php also known > as Qt3/Win32 where you can download Qt-3.1 and compile it using MSVC > yourself. I have actually tested it out, and will give some code to the > OpenGL widgets. Qt-3.1 is old, but there will be a Qt-3.2 or Qt-3.3 > soon, I guess. > Most of the qt examples and tutorials works. If a python wrapper, or if > PyQt works with this Qt, that would be great news for scripters. > > Therefore we can ensure that Oplot will be kind a OS independent...As > long porting from Qt/X11 to Qt/Win32 continues. > The kde-cygwin peoples are also trying to make KDE run in native Windows > without cygwin, same as Qt/Win32 does. > > Shai, you are welcome to contribute code to us, or give insigthful > comments if you're interested in not reinventing the wheel. > If other graphic developers wants to contribute code to Oplot, please > send me an email and get our "Software Development Document", which > describes Oplot and how we are working. There are some steps in doing > software. A patch to the oplot source, needs to be overviewed by all the > developers of Oplot. The reason is quite obvious really, since everybody > will have knowledge of all modules in Oplot. And therefore if someone > bails out from developing Oplot, the rest of oplot developers won't suffer. > > We have Axes, Figure, Line, Patch and Image objects done, and can > actually make a subplot using H*ndle G*** routines. > > Cheers, > > Ole J. > > > > > > Paul Kienzle wrote: > >> Shai, >> >> Please keep a clean separation between graphics toolkit and >> plotting. E.g., 3D plots should only have the open gl window >> handle, not the handle of the toolkit which wraps them. Work >> with other groups. Find code in knewplot and oplot that you >> can use (much easier if either were implemented independently >> from a particular toolkit). Separate it cleanly, improve it and feed >> it back to them. >> >> Do the UI in a high level scripting language. Either octave (eat >> your own dogfood), or Tcl or Python. I know Tcl/Tk has an >> active community developing UI widgets, which means less work >> for you. Unfortunately, it is not as organized as it should be, so >> you get lots of different implementations of the same widgets >> (sound familiar?). I suppose Gtk/Fltk/Qt offers the same benefits, >> except that the widgets are in C. For the common widgets, use a >> common interface so that another toolkit can be substituted when >> fltk gets crufty. This is pretty much dictated by the desire for >> compatibility anyway. >> >> Don't short change printing. Working scientists need to include >> plots in their log books. BTW, TeX-like math markup in plot >> labels would be nice. You might want to look at some mathml >> renderers (e.g., gtkmathml or amaya), or others (e.g., texmacs). >> >> To paraphrase Newton, we can see farther standing on each >> other's shoulders. >> >> Paul Kienzle >> pkienzle at users dot sf dot net >> >> On Jul 4, 2004, at 2:41 PM, Shai Ayal wrote: >> >>> Hi all >>> >>> I'm happy to announce release 0.1 of OctPlot, a handle graphics >>> package for Octave, striving to become a superset of M*tlab handle >>> graphics. It is available on >>> >>> http://sourceforge.net/projects/octplot/ >>> >>> Octplot's claim to fame is that is it based on fltk, the small fast >>> toolkit. It is cross platform and runs natively on linux and cygwin >>> (no X required for cygwin). It is tested on Linux (rh9, fc1) and >>> cygwin, and should theoretically work on the Mac OS X also. >>> >>> As most of the other packages out there, it also utilizes OpenGL for >>> possible hardware acceleration. >>> >>> Currently octplot does the following: >>> 2D line plots using the commands "plot" , "line" >>> property setting and query using the commands "set" ,"get" >>> multiple figures using "figure" >>> axis limits set and query using the command "axis" >>> axis zoom using the mouse (zoom using left button, unzoom using right). >>> Quality postscript output using the command "print" >>> >>> A sample session: >>> >>> cd octplot-0.1/src ## sorry, no install script yet >>> octave ## tested with 2.1.49, 2.1.50 and 2.1.57, and octave-forge >>> setup_octplot ## this sets up dispatch etc... >>> h=plot(sin((0:10000)/10000*2*pi,'g-"); ## plot a line & get handle >>> get(h); ## shows all available properties >>> set(h,linestyle,"--","linewidth,3,marker,"+"); ## set a few of them >>> ## now play with the mouse to zoom in and out :) >>> >>> As you see release 0.1 has limited functionality and I put it out >>> there mainly to get feedback, so don't hesitate. Please use the >>> sourceforge feedback mechanism. >>> >>> future plans -- >>> add patch, subplots, TeX parsing of text, uicontrols, 3D ... >>> >>> >>> Enjoy It, I know I did >>> Shai >>> >> >> > >