How to make a Actor rotate about an arbitrary axis?

It sounds like a easy thing to do, is there an API for that? Since in my game the character is not always straight up, so it’s really hard to calculate the pitch row yaw for rotate about an arbitrary axis (in my case the central axis of the character). If there is no proper API for that, can someone teach me the math (I know this can be done by vector transformations, just couldn’t recall how to do that from college linear algebra) …

In the case of pitch rotation…you can set by using quaternion.

FQuat ActorQuat = Character->GetActorQuat();

FVector Right = ActorQuat.GetRightVector();

Character->SetActorRotation( FQuat(Right, Angle) );