[Bf-committers] Trackpad multi-touch gestures (scroll/pinch/rotate) handling patch

Damien Plisson damien.plisson at yahoo.fr
Tue Jan 5 21:10:50 CET 2010

It uses the keymap, but MOUSEROTATE is hard coded to the third axis.

So I've made a quick update to the patch : trackpad_multitouch_orbit.patch


Le 5 janv. 2010 à 20:19, William Reynish a écrit :

> Hi Damien,
> I'll test the patch soon. Thanks for the awesome work.
> What I meant about the controls was this: I love that you've included  
> support for the rotate gesture, but rotating around the view plane  
> isn't very useful. Alt+scrolling works for orbiting, but is a bit  
> cumbersome compared to simpler gestures sans modifier. Since orbiting  
> is a very common action I'd advise that it be mapped to the rotate  
> gesture, replacing the view plane rotation.
> Though I wonder if all of this is customisable through the input  
> editor? Or is it hard coded?
> Cheers
> William Reynish
> On 05/01/2010, at 18.33, Damien Plisson <damien.plisson at yahoo.fr> wrote:
>> Hi William,
>> All two fingers API return float incremental values that can be  
>> quite precise.
>> That's why you can zoom in tiny increments.
>> Following Shaul feedback, I've decrease by a factor of 4 the zoom  
>> speed.
>> The issue is with panning which has an idle threshold that may be  
>> too high, and that explains the jerkiness you observed. To try to  
>> lessen this effect, I've implemented (in the updated patch) a  
>> quadratic acceleration. Tell me what you think of it !
>> I don't get exactly suggestion for rotation, as orbital rotation is  
>> available through Alt+panning when in "turntable" mode.
>> BTW, a funny thing is that thx to obj-C runtime binding, even if  
>> Blender is compiled for ppc 10.4 (systems way before multitouch  
>> trackpads), multitouch works fine on a recent mbp !
>> I've updated the patch, but if it seems ok, I'll commit it soon...
>> Cheers,
>> Damien
>> Le 4 janv. 2010 à 16:56, William Reynish a écrit :
>>> Hi Damien,
>>> I've tested your patch today - works really nicely. I was even  
>>> surprised to see how the zooming is butter smooth - either it's  
>>> implemented in a different way, or it moves in very tiny,  
>>> unnoticable increments. Regular panning and orbiting is more jerky  
>>> though. I agree with others that the zooming is a bit too  
>>> sensitive, and there seems to be a tiny amount of lag before the  
>>> pinch gesture starts to react, after which it's perfectly smooth  
>>> and responsive.
>>> The controls are quite nice, though you seldom want to rotate  
>>> around the view plane. I'd prefer if it rotated around the y axis  
>>> when using the rotate gesture. Either that or the two finger  
>>> scrolling should default to orbiting, which is after all the most  
>>> common movement you'll want to do in 3d.
>>> Yes, I think it should be kept as auto, detecting whether the user  
>>> is using a mouse, or trackpad. Laptop users attach or detach mice  
>>> frequently and it would be a hassle to manually set it up each time.
>>> Thanks a bunch for this work. I'll definitely propose that we  
>>> include this.
>>> William
>>> On 3 Jan, 2010, at 6:59 PM, Damien Plisson wrote:
>>>> Hi all,
>>>> During the vacation time, I was stuck in an Internet-free place  
>>>> (an issue), but without a mouse (more serious issue), so to keep  
>>>> my Blender experience as good as possible, I needed to get these  
>>>> shiny trackpad multitouch features operational !
>>>> So, based on trackpad pan work initiated by James Deery [his mail  
>>>> of Nov 5th 2009], I've implemented the handling of the trackpad 2- 
>>>> fingers gestures :
>>>> - 2 fingers scroll (MOUSEPAN / GHOST_kTrackpadEventScroll event)  
>>>> pans the view
>>>> - 2 fingers pinch (MOUSEZOOM / GHOST_kTrackpadEventMagnify event)  
>>>> zooms the view
>>>> And in 3D view:
>>>> - alt + 2 fingers scroll rotates the view
>>>> - 2 fingers rotation (MOUSEROTATE / GHOST_kTrackpadEventRotate)  
>>>> rotates the view around the axis orthogonal to the screen (the 3rd  
>>>> axis !)
>>>> This is currently fully implemented for OSX (GHOST Cocoa fires the  
>>>> new events), but there must be some PC laptops with similar  
>>>> features that'll take advantage of this... PC users, can you  
>>>> confirm ? (I remember using a laptop with the 2D scroll features  
>>>> on its trackpad).
>>>> FYI, OSX implementation compiles from 10.4, though the
>>>> In Ghost, I've currently implemented an auto-detection of the  
>>>> source peripheral, so that a regular mouse still sends MOUSEWHEEL  
>>>> events.
>>>> Apple special mice behave like trackpad (not configurable from  
>>>> documented API), so the mighty mouse trackball sends 2D scroll  
>>>> events. And the magic mouse touch gestures must be like trackpad's.
>>>> Do you think it should be kept in "auto" mode (wheel events for  
>>>> regular mouse, scroll/zoom/rotate events for trackpad/special  
>>>> mouse), or be an option user configurable ?
>>>> I've posted this as patch #20555 in the patch tracker : https://projects.blender.org/tracker/index.php?func=detail&aid=20555&group_id=9&atid=127
>>>> for your reviews, comments & suggestions.
>>>> Damien
>>>> _______________________________________________
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-committers
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list