Help! How can I do this?

Hi all,
I have met a problem, I have some objects in the viewport, and the program should let someone to move them, rotate and and scale them.

While, if I rotate object a and move it to somewhere, what if I want rotate in the future? I mean sure I can use one rotatef() to do it, but once I have done that rotation, I lost the axis and the degree it rotated about, then how can I start it to move or ratate again about another axis and dgree?

Sure I can maintain an array of all the action it do, but seems costly.

My idea is to make it rotate about x, y, z seperately instead of use the rotatef(degree, x, y, z), but do OPENGL has a function that return’s the different degrees on the x, y, z?

No i think you’d need to set up a coordinate axis for that