i made a pointAt in gl back in the days like this. not sure
if anyone want it

Here it is:
// returns the distance between two 3d points in space.
public static float getDistance(Vector4 pnt1, Vector4 pnt2) {
double dx = pnt2.x - pnt1.x;
double dy = pnt2.y - pnt1.y;
double dz = pnt2.z - pnt1.z;
return((float)Math.sqrt(dx*dx + dy*dy + dz*dz));
}
// convert x, y location to an angle - azimuth
public static float getAzimuth(Vector4 pnt1, Vector4 pnt2) {
float x = -(pnt1.x - pnt2.x);
float z = -(pnt1.z - pnt2.z);
float rangle = (float)(Math.atan2(x, z));
return(180.0f * rangle / 3.14159f);
}
// convert x, y, z location to an angle - elevation
public static float getElevation(Vector4 pnt1, Vector4 pnt2) {
float y = (pnt1.y - pnt2.y);
float x = (pnt1.x - pnt2.x);
float z = (pnt1.z - pnt2.z);
float d = (float)Math.sqrt(z*z + x*x);
if(d == 0) d = 0.0001f; // just in case we get a zero distance
float ang = (float)Math.atan(y / d);
return((float)Math.toDegrees(ang));
}
If u want the gl bit:
Vector4 v1 = new Vector4(0f, 0f, 0f);
Vector4 v2 = new Vector4(10f, 5f, -20); // whatever.
float azimuth = Utils.getAzimuth(v1, v2);
float elevation = Utils.getElevation(v1, v2);
float distance = Utils.getDistanceZX(v1, v2);
gl.glRotatef(azimuth, 0f, 1f, 0f);
gl.glRotatef(elevation, 1f, 0f, 0f);
would be cool to have one in Xith3d

part of transform3d or transformGroup maybe?