Hello all,

As part of my process for updating mplot3d, I realized that transforms.py needed to be revamped first.  In many places in transforms.py, there were unnecessary 2-D assumptions that needed to be removed or generalized.  I have started this effort here:

https://github.com/WeatherGod/matplotlib/compare/master...test%2Fmplot3d-ndtransforms

I still have more to do in this file, but this version passes the unit tests, and I would welcome any comments and thoughts.  Part of the efforts have been trying to shoehorn n-d positional arguments into various function signatures.  For example:

def foo(self, x, y) :
    pass

becomes

def foo(self, x, y, *args) :
    pass

In some places, like shrunk_to_aspect(), I decided that I would just allow the operation to continue for just the first two dims.  In other places, I tried to allow for mis-matches of dimensions with reasonable defaults (e.g., shrunk()).

My main problem in pushing forward right now is that there are functions that have signatures like the following:

def foo(self, x, y, ignorex=True, ignorey=True) :
    pass

Unfortunately, it is not until py3k that we can utilize keyword-only arguments that would allow us to place a positional argument in between the *y* and the *ignorex*, and we would run the risk of breaking function calls like "foo(x, y, False, False)" which is valid now.  Therefore, I are going to need to introduce some new functions to transforms.py that would allow n-d arguments and deprecate the problematic functions.

Anyway, this is my progress so far.  I would welcome any input, thoughts, concerns and such.

Thanks,
Ben Root