OK I really need help. I can't make heads or tails of these problems. Again I'm using a variation of the Car sample. The Object selection code works great, and I have nice selection "disks" under my MD2 guys who are running around the screen. Progress! Yay! So now I'm trying to click in front of my guys and get them to walk over to the point I clicked at (like Neverwinter Nights etc).
I thought that would be easy but its not. My first problem is conceptual. I realize I'm totally disoriented on the y Axis in JPCT. I'm confused why my MD2 gets a more negative y (getTransformedCenter) when he is taller than the car? If I walk forward and to the right the x and z axis increase (from 0's) which makes sense. Interact2D.reproject2D3D return negative as you go up too. The negative y axis is driving me crazy!
I'm sure you are laughing at me now and that is OK I'm a total noob at 3D vectors.

The second problem is that the function below (found on the forum) seems to return a reasonable x axis value when I click on the flat terrain but the y and z values are wildly negative. For example, if I click on the terrain as close to my MD2 as possible without moving the MD2 from its initial position (close to 0,0,0) I get x:y:z -1.19205055E-7:-328.108:-753.85815. Vector.x makes sense to me. Vector.z gets deeper negative as I click toward the horizon. I can't even speak for y.
I'm lost! Any assistance would be great.
public static SimpleVector getAbsoluteCoordinate(Camera camera, FrameBuffer buffer, int x, int y, Object3D object) {
SimpleVector rezult = null;
if (camera != null && buffer != null) {
SimpleVector rayTemp = Interact2D.reproject2D3D(camera, buffer, x, y);
rayTemp.normalize();
Matrix orient = camera.getFront();
float[] dump = orient.getDump();
SimpleVector ray = new SimpleVector();
ray.x = dump[0] * rayTemp.x + dump[1] * rayTemp.y + dump[2] * rayTemp.z + dump[3] * 1;
ray.y = dump[4] * rayTemp.x + dump[5] * rayTemp.y + dump[6] * rayTemp.z + dump[7] * 1;
ray.z = dump[8] * rayTemp.x + dump[9] * rayTemp.y + dump[10] * rayTemp.z + dump[11] * 1;
float distance = object.rayIntersectsAABB(camera.getPosition(), ray);
System.out.println("getAbsoluteCoordinate() distance: " + distance);
if (distance != Object3D.RAY_MISSES_BOX) {
rezult = new SimpleVector(camera.getPosition());
ray.scalarMul(distance);
rezult.add(ray);
}
}
return rezult;
}