Retrieving new object coordinates after translation/rotation

I have a plane loaded in from 3ds max, i have performed many translations / rotations on it. However i'm now adding collision detection and having great difficulty getting the exact coordinates of the plane.

I've tried keeping track using an x,y and z variable however it doesn't seem work 100% after a rotation.

I remember having a lecture at uni on this problem; but i appear to have lost my notes

What probably would most convenient is to keep track of your object's position and orientation with a vector and a quaternion. Given how you phrased "performed many translations / rotations on it", it sounds like you're just letting transforms accumulate in the modelview matrix across frames. Instead, what you'll probably want is to call glLoadIdintity and do your transformations from scratch for each object every time you draw. Then, when you want to get information about current position and orientation in your code, you can simply multiply by the orientation quaternion and add the position vector.

I'm using push and pop around the movements of the plane, sorry i should have mentioned that before.

I did find something on this problem, not sure exactly how to implement it but it might be useful:

9.120 How do I find the coordinates of a vertex transformed only by the ModelView matrix?

It's often useful to obtain the eye coordinate space value of a vertex (i.e., the object space vertex transformed by the ModelView matrix). You can obtain this by retrieving the current ModelView matrix and performing simple vector / matrix multiplication.

It's now working I did look at that quaternion idea however i would have had to change alot of my code so i implemented a method using that Matrices tutorial, which i have to say was better than i found.

Ive included a screenshot, which shows a wireframe sphere for my bounding sphere collision detection (i displayed the sphere so i can see where the point is) and thanks to you, the sphere stays with the plane lol.