octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: help with pan, rotate3d, and zoom functions


From: Michael Goffioul
Subject: Re: help with pan, rotate3d, and zoom functions
Date: Sun, 14 Sep 2014 10:53:40 -0400

On Sun, Sep 14, 2014 at 4:19 AM, Andreas Weber <address@hidden> wrote:
Am 14.09.2014 04:53, schrieb Michael Goffioul:
> On Sat, Sep 13, 2014 at 11:47 AM, Andreas Weber <address@hidden
> <mailto:address@hidden>> wrote:
>
>     Am 12.09.2014 21:32, schrieb John W. Eaton:
>     > I'm working on adding the zoom function to Octave.  I see we already
>     > have the pan and rotate3d functions.  I'd like to make all three of
>     > these as compatible with Matlab as possible.
>     >
>     > Currently, Octave's rotate3d and pan functions add a property to axes
>     > objects but in Matlab, pan and zoom work on figures instead of axes and
>     > rotate3d can apply to either figures or axes.
>
>     The reason that I implemented rotate3d and pan as axes properties was
>     because of subplots where the user might want to pan in one plot and
>     rotate in another. How does Matlab behave with subplots, especially if
>     there are mixed 2D (where rotate3D should be disabled) and 3D plots?
>
>
> I don't think that how it's supposed to be working. I haven't used
> Matlab for years, but from documentation, it seems that "rotate3d" is
> just the same as using the rotate toolbar button in the figure window.
> And as such, it makes sense the property is set at the figure level. It
> would actually be very difficult to render in the UI (with the toolbar
> toggle buttons) if you wanted different "mouse modes" in subplots within
> the same figure.

Have you tried the current implementation in the default branch?

graphics_toolkit fltk
subplot (1, 3, 1)
sombrero
subplot (1, 3, 2)
plot (sin (0:0.1:10))
subplot (1, 3, 3)
peaks

Now all 3 axes are in pan mode. Now click on the sombrero and then the
"R" button in the toolbar. Now only the sombrero has rotate3d enabled,
peaks is still in panning mode.

If you want to enable pan or rotate3d on all axes use "Edit"->"GUI
Mode"->...

I don't understand this:

> It would actually be very difficult to render in the UI (with the
toolbar toggle buttons) if you wanted different "mouse modes" in
subplots within the same figure

Isn't this the case with the current implementation?

I was referring to my recollection of Matlab UI, not octave's FLTK toolkit. Philip's screenshot actually illustrates it pretty well, with the rotate toggle button in the toolbar (I suppose that the toolbar button is toggled automatically when you call "rotate3d" on the command line, so the GUI is in sync with the current mouse mode). This is something that would be difficult to render on a per-axis basis. The FLTK backend can get away with it, because the UI doesn't show any state, it's only using push button. But this also means that a user can't know what is the current mouse mode until he/she starts using the mouse on an axes. I don't think this absence of any visual hint can be considered good GUI practice.
 

I think the current implementation on default makes it better and is
more flexible than Matlab.

Personally, I think it's more confusing. At least, until we can figure out a way to render the current mouse mode on the GUI on a per-axes object basis.

Michael.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]