Ejemplo n.º 1
0
void idle(void) {
  if(reality_mode) {
    static long oldtime = 0;
    long newtime = get_time();
    long dt = newtime - oldtime;
    oldtime = newtime;

    elevation += (double)dt*MULTIPLIER*ELEV_RATE*
		(int)((double)(mousey - ae_window_width()/2)/5);
    while(elevation > M_PI_2) {
		elevation -= M_PI;
		azimuth -= 2*M_PI;
	}
    while(elevation < -M_PI_2) {
		elevation += M_PI;
		azimuth += 2*M_PI;
	}

    azimuth += (double)dt*MULTIPLIER*AZI_RATE*
		(int)((double)(mousex - ae_window_width()/2)/5);
    while(azimuth > M_PI) azimuth -= 2.0*M_PI;
    while(azimuth < -M_PI) azimuth += 2.0*M_PI;

    if(action & ROLL) {
      roll += (double)dt*MULTIPLIER*ROLL_RATE*
		(int)((double)(mousex - ae_window_width()/2)/5);
      while (roll > 2.0*M_PI) roll = roll - 4.0*M_PI;
    
		if (compass_win_exists) {
			glutSetWindow(compass_win);
			glutPostRedisplay();
			glutSetWindow(disp_win);
		}
    }

    glutSetWindow(ae_win);
    glutPostRedisplay();
    glutSetWindow(disp_win);
    recalc_view_and_up_from_AER();
    really_look_at_it();
  } else {
    if (action & ROLL) {
      roll_clockwise();
      if (compass_win_exists) {
	glutSetWindow(compass_win);
	glutPostRedisplay();
	glutSetWindow(disp_win);
      }
    }
  }
  if (action & ZOOM_IN)
    zoom();
  else if (action & ZOOM_OUT)
    zoom();
  if (action & SPIN)
    do_spin();
  glutSetWindow(disp_win);
  glutPostRedisplay();
}
Ejemplo n.º 2
0
static void recalc_AE(int win_x, int win_y) {
  /* from window coords */
  azimuth = M_PI * (-1.0 + 2.0*(Real)win_x/(Real)ae_window_width());
  while (azimuth > M_PI) azimuth -= 2.0*M_PI;
  while (azimuth < -M_PI) azimuth += 2.0*M_PI;
  elevation = (M_PI_2)*(1.0 - 2.0*(Real)win_y/(Real)ae_window_height());
  while (elevation > M_PI_2) elevation -= M_PI;
  while (elevation < -M_PI_2) elevation += M_PI;
}
Ejemplo n.º 3
0
static void recalc_AE(int win_x, int win_y) {
  /* from window coords */
  azimuth = M_PI * (-1.0 + 2.0*(Real)win_x/(Real)ae_window_width());
  elevation = (M_PI_2)*(1.0 - 2.0*(Real)win_y/(Real)ae_window_height());
}