Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added support for pre and post relative transforms on cameranode.
  • Loading branch information
Robert OSFIELD committed Dec 8, 2005
1 parent fc90dfd commit e9f0403
Showing 1 changed file with 24 additions and 5 deletions.
29 changes: 24 additions & 5 deletions src/osgUtil/IntersectVisitor.cpp
Expand Up @@ -726,10 +726,29 @@ void PickVisitor::apply(osg::CameraNode& camera)
{
if (!camera.isRenderToTextureCamera())
{
runNestedPickVisitor( camera,
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
camera.getProjectionMatrix(),
camera.getViewMatrix(),
_mx, _my );
if (camera.getReferenceFrame()==osg::CameraNode::ABSOLUTE_RF)
{
runNestedPickVisitor( camera,
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
camera.getProjectionMatrix(),
camera.getViewMatrix(),
_mx, _my );
}
else if (camera.getTransformOrder()==osg::CameraNode::POST_MULTIPLE)
{
runNestedPickVisitor( camera,
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
_lastProjectionMatrix * camera.getProjectionMatrix(),
_lastViewMatrix * camera.getViewMatrix(),
_mx, _my );
}
else // PRE_MULTIPLE
{
runNestedPickVisitor( camera,
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
camera.getProjectionMatrix() * _lastProjectionMatrix,
camera.getViewMatrix() * _lastViewMatrix,
_mx, _my );
}
}
}

0 comments on commit e9f0403

Please sign in to comment.