"translate" volume position

hi guys, I have a problem… my program reads a volume from a file and needs to position this volume into the world where the user wants… the question is: what’s the easy way to transform the volume position in translate and rotate operations? I mean… I 've thinked at 2 possible techniques:
1-I create the volume in a standard position ( f.e. in the origin), and then the user says how much translate and rotate the volume… ( f.e I create the volume, the user watch it and says "I want to translate it 5 on z, and rotate 20 on x)
2- I must find an universal reference point that I can use for all the volumes and calculate all the trasformations on it. ( f.e. the center of the object, or anything else…); when the user says “I want the object in -1,-2,3” I must know how transform the request in a series of gltranslate and glrotate…

All opinions and suggestions will be appreciated!