gpRotate* brings the polygon to the origin (created gpTranslatePolyListOrigin for this purpose) and does the rotation then.
This allows for 'real' rotations (check example)