Added new Transform::ReferenceType enum ABSOLUTE_RF_INHERIT_VIEWPOINT to support
internal RTT cameras that wish to use the main cameras view/eye point for LOD and other distance based tests.
This commit is contained in:
@@ -804,7 +804,26 @@ void PickVisitor::apply(osg::Camera& camera)
|
||||
{
|
||||
if (!camera.isRenderToTextureCamera())
|
||||
{
|
||||
if (camera.getReferenceFrame()==osg::Camera::ABSOLUTE_RF)
|
||||
if (camera.getReferenceFrame()==osg::Camera::RELATIVE_RF)
|
||||
{
|
||||
if (camera.getTransformOrder()==osg::Camera::POST_MULTIPLY)
|
||||
{
|
||||
runNestedPickVisitor( camera,
|
||||
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
|
||||
_lastProjectionMatrix * camera.getProjectionMatrix(),
|
||||
_lastViewMatrix * camera.getViewMatrix(),
|
||||
_mx, _my );
|
||||
}
|
||||
else // PRE_MULTIPLY
|
||||
{
|
||||
runNestedPickVisitor( camera,
|
||||
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
|
||||
camera.getProjectionMatrix() * _lastProjectionMatrix,
|
||||
camera.getViewMatrix() * _lastViewMatrix,
|
||||
_mx, _my );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
runNestedPickVisitor( camera,
|
||||
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
|
||||
@@ -812,21 +831,5 @@ void PickVisitor::apply(osg::Camera& camera)
|
||||
camera.getViewMatrix(),
|
||||
_mx, _my );
|
||||
}
|
||||
else if (camera.getTransformOrder()==osg::Camera::POST_MULTIPLY)
|
||||
{
|
||||
runNestedPickVisitor( camera,
|
||||
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
|
||||
_lastProjectionMatrix * camera.getProjectionMatrix(),
|
||||
_lastViewMatrix * camera.getViewMatrix(),
|
||||
_mx, _my );
|
||||
}
|
||||
else // PRE_MULTIPLY
|
||||
{
|
||||
runNestedPickVisitor( camera,
|
||||
camera.getViewport() ? camera.getViewport() : _lastViewport.get(),
|
||||
camera.getProjectionMatrix() * _lastProjectionMatrix,
|
||||
camera.getViewMatrix() * _lastViewMatrix,
|
||||
_mx, _my );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user