TurnToward does not aim correctly while seated on a rotated prim. Apparently just subtracting the parent prim's rotation is not the answer. The following math seems to work:
Quaternion between = Vector3.RotationBetween(Vector3.UnitX, Vector3.Normalize(target - Client.Self.SimPosition));
Quaternion rot = between * (Quaternion.Identity / parentRot);
Description
TurnToward does not aim correctly while seated on a rotated prim. Apparently just subtracting the parent prim's rotation is not the answer. The following math seems to work:
Quaternion between = Vector3.RotationBetween(Vector3.UnitX, Vector3.Normalize(target - Client.Self.SimPosition));
Quaternion rot = between * (Quaternion.Identity / parentRot);