OpenImageIO
OpenImageIO copied to clipboard
iv pan & zoom controls should be standard
Jeremy says: Pan and zoom should work the same as every other app. Middle mouse pans. Right mouse zooms. The 'bottom-left to top-right' diagonal should determine the zoom amount, such that moving the mouse either to the right or down zooms. Middle mouse scroll wheel should zoom, and lock to the nearest integer zoom size. +/- on keyboard should also step to next zoom size. (AND also map "=" to "+", so you dont have to hold down shift).
LG says: double check other important image apps to make sure that these assumptions are nearly universal before changing any current behaviors.
This interaction setup is basically referred to as 'maya' style. (They did it first)
Additional details:
- Zoom is actually Alt + right click (forgot to mention the Alt)
- Pan is both alt+middle mouse and plain middle mouse
- This leaves plain right-click for popup menus, and left mouse unused.
- (In 3d viewers, alt+left mouse does a tumble around the center of interest).
- When you right click to zoom, the point you clicked on should stay stationary and be the zoom 'focus'.
Applications that use this control approach are:
- Maya (both 2d + 3d)
- Katana (in both 2D + 3D contexts)
- itview (internal SPI image viewer)
- Mari (both 2d + 3d)
Others?
Applications which do something different by default:
- Silhoutte (Paint+Roto) uses middle/alt middle to pan, and scroll wheel zoom increment. But... uses shift middle to zoom.
- Nuke defaults to middle mouse pan, and scroll wheel zoom increment. But... alt middle is zoom. Nuke also provides a user preference to switch controls to 'maya style' (our suggested approach) / Houdini / Lightwave. This implies those 3 apps have different control methods.
- Frame cycler does middle mouse pan. Ctrl+middle mouse wheel for zoom increment. No way to do non-incremented zoom.
- I spoke too soon about Houdini. Just launched version 11 and confirmed that it's controls match maya in both 2D + 3D contexts by default.
So it looks like middle mouse is universal for pan (independent of modifier keys). But that there's a bit of variation in how to trigger zoom. I personally prefer maya style, but am open to alternate suggestions.
iv already supports the 'Alt' Maya zoom and pan controls.
We also support the right and left click to zoom and unzoom, which the Gelato 'iv' also did, because the Entropy 'iv' did it, because I wrote that I liked that behavior in the proprietary viewer of the studio I left the week before I wrote Entropy's iv.
I'm willing to reconsider the click-to-zoom behavior, but I don't want to remove it if it's not hurting anybody and we don't have anything particularly useful to use those clicks for.
We already have middle mouse pan, Maya Alt-mouse zoom and pan, and mouse wheel zoom.
Since there's not cross-app agreement on much else, must we also remove the click-zoom? I vote no, unless there's a universal something to replace it with.
Oh I see! My mistake! iv does support middle mouse pan, but I never noticed due to the 'cant pan outside the image' #307. Apologies. (If you launch iv on an image that fits in your screen, and dont zoom, pan is locked).
So it looks like what's left to do is:
- When you right click to zoom, the point you clicked on should stay stationary and be the zoom 'focus'. (Same with scroll wheel)
- Fix the scroll wheel zoom increment (it's a bit small compared to other apps), and also have it lock to common zoom ratios.
I'm fine with leaving in click to zoom, though I would expect that pixels probes and/or context menus may want to steal those at some point.
Cool?
Wow, iv is way closer than I had remembered to maya-style. ;)
Still need to support the mouse focused centering. Also, many applications hide the cursor during mouse zoom + pan. This is cool, and worth throwing in if easy.