Hi,
thought I'd share this snippet (derived TrackballManipulator) with you.
I tried and it seems to help, though I thought I should rather move the eye
than the center?
I am using this method to "zoom in" on a selected node.
Code:
void TrackballManipulator::computePosition(const osg::Vec3& eye,const
osg::Vec3& center,const osg::Vec3& up)
{
osg::Vec3 lv(center-eye);
double newDistance = lv.length();
// default behaviour is not to move center
osg::Vec3 newCenter = center;
// this limit is analogous to TrackballManipulator::calcMovement
if (newDistance<_modelScale*_minimumZoomScale) {
newDistance = _modelScale*_minimumZoomScale;
lv.normalize();
newCenter = eye + lv*newDistance;
}
// call base method with newCenter
osgGA::TrackballManipulator::computePosition(eye, newCenter, up);
}
Cheers,
Florian[/code]
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=27480#27480
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org