So, here's the background:

I am making a vector graphics editor system that runs with arbitrary dimensions (i.e. the user could set it up to have two-dimensional points, ten-dimensional points, or even a thousand-dimensional points). The point system operates off of a group of points representing the origin. There's a central origin point, representing the absolute zero in all dimensions, and then there are other points, representing the base-vectors for each dimension (i.e. positive one unit along each axis). The view is merely a transformation of all points, including the origin points, such that the points have their original coordinates as combinations of the transformed origin points. Also, the view only sees the first two dimensions; the other dimensions are conceivably all depth dimensions (sort of...).

Here's the beta version if you need to get an idea of what it is more exactly.

Here's the catch:

Now, I need to allow the user to manipulate this x-dimensional view-space. I have a few keys already grounded:

*shift-click-and-drag*translates the view,

*control-shift-click-and-drag*rotates the view around the center. These are the two-dimensional view transformations. I have two more keys available:

*shift-rightclick-and-drag*and

*control-shift-rightclick-and-drag*. Here's the question: How can I use these keys to rotate the x-dimensional space by the origin points so that the user can view any and every angle of the origin by rotating to it?

My guess:

I thought I might use

*shift-rightclick-and-drag*to rotate 3-dimensional space and use

*control-shift-rightclick-and-drag*to transform in such a way as to "open up" the other dimensions.

Does anyone have any ideas?

**Edited by Agamer, 10 April 2012 - 11:19 PM.**