Hi Nick,
I'm not sure my scenario is like mine but hope this code snippet may help:


Code:

void setViewTowardsXMinus()
{
   
nodeTrackerManipulator->setTransformation(computeEye(osg::Vec3d(nodeTrackerManipulator->getDistance(),
 0.0, 0.0)), osg::Vec3d(0.0, 0.0, 0.0), 
nodeTrackerManipulator->getHomeUpPosition());
}

void setViewTowardsXPlus()
{
   
nodeTrackerManipulator->setTransformation(computeEye(osg::Vec3d(-nodeTrackerManipulator->getDistance(),
 0.0, 0.0)), osg::Vec3d(0.0, 0.0, 0.0), 
nodeTrackerManipulator->getHomeUpPosition());
}

void setViewTowardsYMinus()
{
   nodeTrackerManipulator->setTransformation(computeEye(osg::Vec3d(0.0, 
nodeTrackerManipulator->getDistance(), 0.0)), osg::Vec3d(0.0, 0.0, 0.0), 
nodeTrackerManipulator->getHomeUpPosition());
}

void setViewTowardsYPlus()
{
   nodeTrackerManipulator->setTransformation(computeEye(osg::Vec3d(0.0, 
-nodeTrackerManipulator->getDistance(), 0.0)), osg::Vec3d(0.0, 0.0, 0.0), 
nodeTrackerManipulator->getHomeUpPosition());
}

void setViewTowardsZMinus()
{
   nodeTrackerManipulator->setTransformation(computeEye(osg::Vec3d(0.0, 0.0, 
nodeTrackerManipulator->getDistance())), osg::Vec3d(0.0, 0.0, 0.0), 
nodeTrackerManipulator->getHomeUpPosition());
}

void setViewTowardsZPlus()
{
   nodeTrackerManipulator->setTransformation(computeEye(osg::Vec3(0.0f, 0.0f, 
-nodeTrackerManipulator->getDistance())), osg::Vec3d(0.0, 0.0, 0.0), 
nodeTrackerManipulator->getHomeUpPosition());
}

osg::Vec3d computeEye(const osg::Vec3d& iEye)
{
   osg::Vec3d eye = iEye;
   ...
   double psi, theta, phi;
   graphicObject->getInitialRotation(psi, theta, phi);
   osg::Quat initAttitude = viosg::quatFromBody313(psi, theta, phi);
   eye = initAttitude * graphicObject->getTransformNode()->getAttitude() * eye;
   return eye;
}




Cheers,
Gianni

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=71564#71564





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

Reply via email to