From maintainers-request at octave dot org Thu Feb 9 10:07:12 2006 Subject: Re: octave gui & mingw From: Sebastien Loisel To: John Swensen Cc: maintainers at octave dot org Date: Thu, 9 Feb 2006 17:05:32 +0100 ------=_Part_1469_22669981.1139501132035 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, First off, let me say that the more octave GUI/IDE projects I know about, the better, so thanks for all the input so far. I would definetly appreciat= e being able to see any other code available. Second, to introduce myself a bit more usefully, I'm a postdoc at the University of Geneva in math (scientific computing and pure analysis). I'm also a good programmer. >From the replies, I'd like to give a few more details about my goals, and specifically answer John and Ole. I want: * To edit code in this GUI/IDE. * To interact with the octave prompt in this GUI/IDE. * To view plot, zoom, change axes, do animations (viz. set(gcf,'DoubleBuffer','on')) and so on. * To export my plots to EPS for inclusion in my papers. * To plot 2d and 3d. * To have rich figure handling like subplot, axes and more generally the se= t command. One of my applications includes viewing an icosahedral grid of the sphere i= n 3d with the solution of a PDE color-coded on it. I need to spin the sphere in real time. On 2/9/06, John Swensen wrote: > > experienced, my problems may have been due to that. I tried using the > QProcess class and redirecting STDIN, STDOUT, and STDERR to talk with an > instance of Octave. The problem lied in the fact that I couldn't get it > think the first step would be to design a good interface control > document (ICD) that defines the data that is passed between the octave *Ole Jacob Hagen wrote: * I am planning to make oplot (http://oplot.sf.net) compatible with Qt4, so Oplot supports Windows natively without any cost for both end user and developer. :-) My intention is simple. QT4 has a text editor, look here for an amazingly short syntax highlighter: http://doc.trolltech.com/4.1/richtext-syntaxhighlighter.html. Furthermore, you can use OpenGL easily: http://doc.trolltech.com/4.1/opengl-hellogl.html= . Given an OpenGL plotting program, you can easily create PS, EPS and PDF files: http://www.geuz.org/gl2ps/. Such a GUI/IDE would be portable anywher= e octave and QT4 currently compile. I also like QT4 because, by my standards, it makes very concise C++ GUI code. I would like to stick all these things and octave into a binary, so that when I plot stuff in octave, I can zoom or spin it and do whatever, just like in Matlab, and include a reasonable text editor. I really don't think it would be that much code, with all the tools I enumerated above. Maybe communicating with octave via pipes is a great idea, but as John points out you end up having to design a communication protocol. Also, most attempts want to reuse gnuplot, which is a great idea, but I don't have the expertise to go and add to gnuplot the features I want to copy from Matlab. It's a lot easier for me to implement this stuff from scratch. On the other hand, if oplot is a QT4 widget that does what I need, then that's one less thing I have to do. Those of you that have struggled with the threading, I am shooting initiall= y for something much like Matlab. The GUI dies during long computations. That can be fixed later, maybe when octave becomes threadsafe or maybe before by adding a giant lock. My idea for the plotter is that I would make available in octave three new functions: a function that draws a Gouraud shaded triangle soup (like Matlab's patch), Gouraud shaded lines and a function to place text. Okay, maybe one for setting a clip rectangle and changing the transformation matrix. Then I would implement all the higher level functionality as .m files on top of that. Matlab also has widgets and stuff but that can wait. QT can have widgets and OpenGL in the same window anyway. Finally, and perhaps most importantly, I should add that if anyone wants to channel their enthusiasm towards one of the custom QT4 widgets I need (the .m file editor, the GL plotter or even the simpler widgets like the prompt, the lower-left working directory pane, a help widget, etc...) then I would definetly want to take advantage of such an effort. Ok, now I have to go to the grocery store. S=E9bastien Loisel ------=_Part_1469_22669981.1139501132035 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi,

First off, let me say that the more octave GUI/IDE projects I know about, the better, so thanks for all the input so far. I would definetly appreciate being able to see any other code available.

Second, to introduce myself a bit more usefully, I'm a postdoc at the University of Geneva in math (scientific computing and pure analysis). I'm also a good programmer.

>From the replies, I'd like to give a few more details about my goals, and s= pecifically answer John and Ole.

I want:
* To edit code in this GUI/IDE.
* To interact with the octave prompt in this GUI/IDE.
* To view plot, zoom, change axes, do animations (viz. set(gcf,'DoubleBuffe= r','on')) and so on.
* To export my plots to EPS for inclusion in my papers.
* To plot 2d and 3d.
* To have rich figure handling like subplot, axes and more generally the se= t command.

One of my applications includes viewing an icosahedral grid of the sphere in 3d with the solution of a PDE color-coded on it. I need to spin the sphere in real time.

On 2/= 9/06, John Swensen <jswensen@intergate dot com> wrote: experienced, my problems may have been due to that.  I tried usin= g the
QProcess class and redirecting STDIN, STDOUT, and STDERR to talk w= ith an
instance of Octave.  The problem lied in the fact that = I couldn't get it

think the f= irst step would be to design a good interface control
document (ICD) tha= t defines the data that is passed between the octave

 Ole Jacob Hagen <waterthrill@yahoo dot no> wrote:

I am planning to make oplot (h= ttp://oplot.sf.net) compatible with Qt4,
so Oplot supports Windows natively  without any cost for both end user=
and developer. :-)

My intention is simple. QT4 has a text editor, look here for an amazingly short syntax highlighter: ht= tp://doc.trolltech.com/4.1/richtext-syntaxhighlighter.html. Furthermore, you can use OpenGL easily: http://doc.tro= lltech.com/4.1/opengl-hellogl.html. Given an OpenGL plotting program, you can easily create PS, EPS and PDF files: http://www.geuz.org/gl2ps/. Such= a GUI/IDE would be portable anywhere octave and QT4 currently compile. I also like QT4 because, by my standards, it makes very concise C++ GUI code.

I would like to stick all these things and octave into a binary, so that when I plot stuff in octave, I can zoom or spin it and do whatever, just like in Matlab, and include a reasonable text editor. I really don't think it would be that much code, with all the tools I enumerated above.

Maybe communicating with octave via pipes is a great idea, but as John points out you end up having to design a communication protocol. Also, most attempts want to reuse gnuplot, which is a great idea, but I don't have the expertise to go and add to gnuplot the features I want to copy from Matlab. It's a lot easier for me to implement this stuff from scratch. On the other hand, if oplot is a QT4 widget that does what I need, then that's one less thing I have to do.

Those of you that have struggled with the threading, I am shooting initially for something much like Matlab. The GUI dies during long computations. That can be fixed later, maybe when octave becomes threadsafe= or maybe before by adding a giant lock.

My idea for the plotter is that I would make available in octave three new functions: a function that draws a Gouraud shaded triangle soup (like Matlab's patch), Gouraud shaded lines and a function to place text. Okay, maybe one for setting a clip rectangle and changing the transformation matrix. Then I would implement all the higher level functionality as .m files on top of that. Matlab also has widgets and stuff= but that can wait. QT can have widgets and OpenGL in the same window anywa= y.

Finally, and perhaps most importantly, I should add that if anyone wants to channel their enthusiasm towards one of the custom QT4 widgets I need (the .m file editor, the GL plotter or even the simpler widgets like the prompt, the lower-left working directory pane, a help widget, etc...) then I would definetly want to take advantage of such an effort.
Ok, now I have to go to the grocery store.

S=E9bastien Loisel

------=_Part_1469_22669981.1139501132035--