Hey Ip, I hope this helps you out a bit. My math skills are terrible so I won't attempt to steer you in the wrong direction as you'll notice below, lol.
function setCameraOnPoint(%client , %point)
{
%distance = 10;
%camera = %client.camera;
%camera.setOrbitPointMode(%point , %distance);
%camera.rotatePoint(%point);
%client.setControlObject(%camera);
}
function camera::rotatePoint(%this , %point)
{
//Trig math and loop
//~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~
}