Coordinate system

Sorry, my English is not good… (I'm not sure if "coordinate system" is the exact definition).



This should be a very easy question. I already coded some parts of the game but I am having some problems with my coordinates. Since the beginning they were reversed. For example:

Vector3f (X,Y,Z) is Vector3f(X,Z,Y) in my world.

I started creating a root Node and then I attached to it: Quad("floor",width, height).

But instead of a floor I had a wall  :?

So I had to rotate it like this:

floor.setLocalRotation(new Quaternion(new float[] {90 * FastMath.DEG_TO_RAD, 0, 0 }));


In that way I can see the floor as I want.
However, if I place elements on it, I have perform all the calculations changing Y for Z.
Maybe I'm mistaken and that is how it should be...

If it is possible, I would like to use Z as altitude where 0 is floor level. How should I proceed?

Thank you.

There's nothing wrong with what you are doing.  You can use a right-handed coord system with Z+ to sky.  But you will always have to deal with translation rotations and incompatibility issues.



jMonkeyEngine's the same as most (but definitley not all!) of the 3D dev world and usually assumes convention of Z+ FORWARD.  High-level input handlers will default the camera to move +Z if you use the forward key and will lock rotation to keep you upright with +Y overhead, etc.  There are always ways to change these defaults, but some of those settings require a solid understanding of the math.  If you want to use some other user's "wall" constructor, you should assume that the wall is +Z forward, and your own models will not be compatible with a normal jME user's world.

Thank you blaine (again) for your answer. So in general that is normal… hmmm… In your case do you work with Z+ FORWARD always? or you transform it? If I understand correctly, you are suggesting to stay as it is, right? I think it would be simpler if I only change that in my mind than in the code…