The method I've always used to determine the "click point" works like this (I've not done this in an Android project, but the concept should be the same):

1) Use Interact2D.reproject2D3D to convert 2D click coordinates into 3D camera space

2) Use SimpleVector.matMul and SimpleVector.add to converted that to world space

3) Use SimpleVector.calcSub and SimpleVector.normalize to calculate the direction vector

4) Use World.calcMinDistance to obtain the distance

5) Use SimpleVector.add to obtain the 3D coordinates of the "click point".

So in an applet, I've used this procedure as follows:

` // Get the mouse's coordinates on the applet window:`

int x = e.getX();

int y = e.getY();

// Get the 3D coordinates in Camera space:

SimpleVector position = new SimpleVector( Interact2D.reproject2D3D(

camera, buffer, x, y ) );

// Convert the coordinates to World space:

position.matMul( camera.getBack().invert3x3() );

position.add( camera.getPosition() );

// Determine the direction from the camera position to the click point:

SimpleVector direction = position.calcSub( camera.getPosition() ).normalize();

// Calculate the distance to whatever was clicked on:

float distance = world.calcMinDistance( position, direction, 10000 );

// Check if we clicked on something:

if( distance == Object3D.COLLISION_NONE )

{

// Nope, didn't click on anything.

}

else

{

// Calculate the exact 3D coordinates for the point that was clicked:

SimpleVector collisionPoint = new SimpleVector( direction );

collisionPoint.scalarMul( distance );

collisionPoint.add( position );

}