Hi Robert and All,

in more than one occasion I've noticed that having access to the camera
manipulator in use is not enough to have "full control" over the camera
motion handling.

An example is if you want to temporary disable the manip to set the camera
position explicitly (in this case you need to remove the manipulator from
the viewer, not to get the position overwritten),
or if you want to write a manip for an ortho camera, in which case you need
access to the camera's projection matrix as well.

At the same time we need to preserve the loose coupling between the camera
and its manipulator.

I think that a possible approach would be a virtual method in the base
camera manip like:
virtual void osgGA::CameraManipulator::UpdateCamera(osg::Camera* pCam)
to be invoked by the viewer classes.
Instead of asking the ViewMatrix to the manipulators, they would call this
method passing the reference camera and leaving the matrix assignments to
the implementation.

Do you think it's a reasonable approach?
The porting of the existing manipulators to the new interface would be an
easy task.

Please give me some feedback,
if you like the approach I can submit a patch.

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

Reply via email to