Robert,

Here is a fix for the RotateCylinderDragger.  This patch fixes the case where 
the picking direction is close to the cylinder axis.  The current behavior is 
this:

* If the eyepoint and cylinder axis are close to parallel (given some 
tolerance), then it uses a plane perpendicular to the cylinder axis.
* Otherwise it uses a plane parallel to the cylinder axis oriented towards the 
eyepoint (previous behavior).  This gives decent behavior and is the only path 
that was taken in the previous code.   I kept with previous behavior and that 
allowed a good bit of code to be removed, simplifying things.  There is now no 
need for the _onCylinder flag, but since there is a public accessor, I wasn't 
sure how to handle it for backwards compatibility, so I left it in.  NOTE - 
there is no default initialized value, so if it is kept in, it should be set to 
'false' to keep same behavior as before.  I am not quite sure how the 
_onCylinder case was supposed to behave as even forcing that path gave 
undesirable behavior, even with carefully controlled dragging.

Please take a look and let me know if you have any questions or feedback.

Thanks
Chuck Seberino

Attachment: Projector
Description: Binary data

Attachment: Projector.cpp
Description: Binary data

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

Reply via email to