Is there any reason why you can't just set the origin to the centre, rotate it, then set the origin back to wherever you had it? If you needed to, you could store what the origin was before rotating, set it to the centre, then rotate and set it to the value you stored.