Trackball controls rotate around center of the mass

Dear all,
I have an issue that I am trying to solve.

I have my custom Navigation control similar to Trackball but with additional functionality. target property works exactly as in Trackball controls calling .lookAt(target)

The issue is the following:
I have an API where I want to specify the center of rotation point and the attached Camera should be rotated like around Target but without lookAt. Could you please advise me on the best way to compute the rotation of a camera?

Some thoughts:

  • move the target temporarily to the specified CenterOfRotation point
  • compute rotation normally as it is done in Trackball
  • move the target back where it was and lookAt

Expected result:

Thank you in advance!