The inverse of the transformation matrix that transforms user space to surface space (i.e. device space) can transform coordinate input to the coordinate system the user (programmer) is working in.
Depending on the scale of the transformation it's possible for the result to be inaccurate to a degree that the result is inaccurate, but that can easily be cured with a function that returns the input coordinates in surface space, which uses should use if the scaling factor of their transformation from user space to surface space is large enough.
-Mike