A working (!!!!) implementation of transform_surface(). Supports arbitary surface centering, optional double-sided-ness and lots more!