I need to allow the user to pan, rotate, zoom in/out of my scene in 3D which uses a parallel projection. Panning and zooming in/out has been pretty straight forward. However, when using the mouse for rotation, I am not sure what to use as the center of rotation. In particular, I am not sure at what depth inside the screen the center of rotation should fall.
Here is what I am doing right now: Take the centroid of the model and use that as the center of rotation. However, the centroid can at times fall outside the visible area (as a result of panning and the zoom level) and the user (and I myself) find it counterintuitive to rotate the model around a point we cannot see.
What is considered the standard for user-interaction in such a case? What could be the most intuitive behaviour here?
PS: I have only one view port (unlike Blender and friends).
Edit: It would be great if experienced parties could evaluate current practices in packages such as Google SketchUp and Blender 3D and post their opinions.