From: <ba...@ph...> - 2003-02-25 13:48:54
|
Hi, I am thinking of converting from pgplot to plplot and I have a question concerning using the mouse in plplot: Namely, in Python I would like to wait for a mouse-click and get its coordinates. With ppgplot and the "/xwin" this works via ch=pgcurs(x, y) # wait for mouse-click x,y=ch[0],ch[1] I could not find a pendant for this in plplot. Digging a bit it turns out that there is a plGetcursor in bindings/python/plmodule.c. However, in plplotcapi.i the corresponding section is commented out (quite at the end of the text ...). This leaves me with several questions: - is it save to uncomment this part and give it a try ? - what is the reason for excluding this routine ? - if it works with an xwin under Linux, would it also work in M$Windows ? Generally I think that the possibility of interactively using the mouse is quite important. There seem to be very few packages available which do this in an easy way. (for example some tools which can do this keep an id for any plotted point, which leads to problems when plotting several 10000 points ...) ((Side remark: More generally I would find it nice to have routine which does not wait for a mouse-click but just returns the corresponding information (button and position) whenever you invoke the routine (of course only if there was a mouse-event). But for the moment the above functionality would be fine ...)) Many thanks, Arnd |
From: Alan W. I. <ir...@be...> - 2003-02-25 19:09:31
|
On Tue, 25 Feb 2003 ba...@ph... wrote: > Hi, > > I am thinking of converting from pgplot to plplot and I have > a question concerning using the mouse in plplot: > > Namely, in Python I would like to wait for a mouse-click and get its > coordinates. With ppgplot and the "/xwin" this works via > ch=pgcurs(x, y) # wait for mouse-click > x,y=ch[0],ch[1] > > I could not find a pendant for this in plplot. > Digging a bit it turns out that there > is a plGetcursor in bindings/python/plmodule.c. I am impressed with how far you dug for this! We have just undergone the transition from a hand-crafted interface (plmodule.c) to a swig-generated one. We only keep plmodule.c around for historical reasons, but it has paid off this time. I had no clue that plGetcursor was in plmodule.c until you pointed it out. > However, in plplotcapi.i the corresponding section is commented out > (quite at the end of the text ...). This file together with plplotcmodule.i provides the input to swig that it needs to generate the plplot interface. I just tried uncommenting that section in plplotcapi.i, and it generated a reasonable-looking interface file that built and installed okay so I am committing the change to CVS. I did one crude test, where this functionality seemed to work, but the result needs further testing. Could you give that a try and let me know (off list) how it goes? Note, you will need swig-1.3.17. Earlier versions won't work. > > This leaves me with several questions: > - is it save to uncomment this part and give it a try ? Yes, with swig-1.3.17. > - what is the reason for excluding this routine ? I wanted to limit the API to the so-called common API, that subset of the public API that we make available for all interfaces. However, that is not a hard and fast rule, and certainly with the swig-generated interfaces it is possible with some effort to wrap all the public API, not just the common API subset. Certainly if the API was available before in the old plmodule.c it should be available in the swig-generated interface. > - if it works with an xwin under Linux, would it also work in > M$Windows ? You should ask Olof Svensson who is in charge of that effort. > > Generally I think that the possibility of interactively using > the mouse is quite important. I agree. Our C front end with the xwin driver has some capability in this direction (see the locate mode in the examples/c/x01c.c example). It should be straightforward to generalize examples/python/xw01.py to test this xwin driver capability in the same way. Alan __________________________ Alan W. Irwin email: ir...@be... phone: 250-727-2902 Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the Canadian Centre for Climate Modelling and Analysis (www.cccma.bc.ec.gc.ca) and the PLplot scientific plotting software package (plplot.org). __________________________ Linux-powered Science __________________________ |