Silly Question About Coordinates

Up until now I haven't been too concerned with jME's coordinate system as everything I've done has basically been relative to everything else, and so long as those relationships were kept I wasn't concerned if it was x, y, z or positive/negative.

Now, I'm trying to do something a little more precise and I note something that runs contrary to how I thought jME's coordinate system works.

To explain, let's say that I have a camera at 0,25,-25 looking at 0,0,0 (giving one the perspective of having a sheet of paper, so to speak, on a desk in front of you, and looking at its center).  I'm not concerned with the up/down Y axis in this explanation, since it doesn't figure into this question.  Let's say that I want to drop a box into the scene at 15,0,15.  I expect that the coordinates are set up such that if both x and z are positive then the box would appear to the forward right of the center.  However, that is not the case.  It appears to the forward ~left~ of the center.  And, of course, everything else follows this scheme.

Is this normal?  I really don't care in the end, but if I'm sketching something out on graph paper (like an overhead view of a map that I want to use as my low tech world designer ; - ) that I can think in terms of the jME coordinate system.

If this is not normal… then wth?  What controls the coordinate system?

well yes X+ is right X- is left, that's just the way it is :slight_smile:

I assume you’re considering ‘Forward’ as further away from the camera, right?

Normally, a positive Z means (in your case) that it’s closer to the camera…

Be sure to take a look at the FAQ

Q. Why are the X and Z co-ordinates reversed ?
A. You need to turn the camera round 180 degrees:

cam.setAxes(new Vector3f(-1f, 0, 0), new Vector3f(0, 1, 0), new Vector3f(0, 0, -1f));

Yes I think it depends on how your camera is set up. This is the way SimpleGame has it:

        Vector3f loc = new Vector3f( 0.0f, 0.0f, 25.0f );
        Vector3f left = new Vector3f( -1.0f, 0.0f, 0.0f );
        Vector3f up = new Vector3f( 0.0f, 1.0f, 0.0f );
        Vector3f dir = new Vector3f( 0.0f, 0f, -1.0f );

So by default you are looking along -z. Anything you can see with a positive x will be to the right. If you turn around (like by doing lookat 0,0,0 when you're positioned along -z), then anything in that direction with a positive x will appear to the left.

Thanks for the answers!  Order (or at least understanding) has been restored the the universe!