Dear Robert,

I and my team have gone over the code again, and we feel that we are
comfortable in our current proposal for change. It goes deeper than it did
before, and I explain why:


   1. There was code in the osgViewer/Viewer.cpp and
   osgViewer/CompositeViewer.cpp that transformed the Y-coordinates of an
   event. The code in the composite viewer did however miss the touch-data of
   the event. I thought that it should really be the GUIEventAdapter that
   should know about this, and hence I added the

   GUIEventAdapter::setMouseYOrientationAndUpdateCoords which is
   re-computing the coordinates. First I simply added a boolean to the
   setMouseYOrientation function:

   setMouseYOrientation( MouseYOrientation, bool updatecooreds=false );

   but then the serializer complained.

   This function is called from both the Viewer and the CompositeViewer. We
   have not tested from the viewer, but I cannot see it would not work from
   visual inspection.
   2.

   The other change is in MultiTouchTrackballManipulator::handleMultiTouchDrag.
   I have removed the normalisation. The reason for that is that it normalised
   into screen coordinates from 0,0 to 1,1. The problem with that is that if
   you have a pinch event and you keep the distance say 300 pixels between
   your fingers, these 300 pixels represent 0.20 of the screen in the
   horizontal domain, but 0.3 of the screen in the vertical domain. A rotation
   of the pinch-fingers will hence result in a zoom in, as the normalised
   distance is changing between them.

   A consequence of this is that I have changed the pan-code to use the
   same algorithm as the middle-mouse-pan.
   3.

   The rest of it is very similar from previous revision, and there has
   been some fine-tuning here and there.


I wonder if you please could consider this revision for submittal into the
trunk. We have our own workarounds for the 3.2 release, but we feel this
will provide a solid foundation going forward.


Best regards,


Kristofer Tingdahl

Attachment: touch.tar.gz
Description: GNU Zip compressed data

_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to