public float snap_cam_z_hud(float eye[], float center[], float up[]) { float lookAt[] = new float[16]; float eye2[] = new float[3]; for (int a = 0; a < 3; a++) { eye2[a] = eye[a]; } for (float ez = 1; ez < 100; ez += 0.05) { float cordx = mCanvasW; float cordy = 0; eye2[2] = ez; float win[] = new float[3]; GMath.lookAtf(lookAt, eye2, center, up); if (GLU.gluProject(cordx, cordy, 0.0f, lookAt, 0, mProjectionHud, 0, mViewport, 0, win, 0) == GL10.GL_TRUE && win[0] > 0 && win[0] < mViewport[2]) { mCameraEyeHud[0] = 0; mCameraEyeHud[1] = 0; mCameraEyeHud[2] = ez; saveLookAtHud(mCameraEyeHud, mCameraLookAtHud, mUpZHud); return ez; } } return 0; }
public void saveLookAtHud(float[] eye, float[] center, float[] up) { for (int a = 0; a < 16; a++) { mLookAtHud[a] = 0; } GMath.lookAtf(mLookAtHud, eye, center, up); }