Changeset 5384


Ignore:
Timestamp:
May 30, 2008, 1:29:19 PM (16 years ago)
Author:
jack
Message:

Tracking, Strafing and Zooming are all scaled by domain size.

Location:
anuga_work/development/anugavis/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • anuga_work/development/anugavis/src/camera.h

    r5379 r5384  
    55#define CAMERA_YAW_STEP 0.1
    66#define CAMERA_PITCH_STEP 0.1
    7 #define CAMERA_TRACK_STEP 2.0
    8 #define CAMERA_STRAFE_STEP 2.0
    9 #define CAMERA_ZOOM_STEP 2.0
     7#define CAMERA_TRACK_STEP 0.025
     8#define CAMERA_STRAFE_STEP 0.025
     9#define CAMERA_ZOOM_STEP 0.025
    1010
    1111extern void camera_pitch(float theta);
  • anuga_work/development/anugavis/src/events.c

    r5383 r5384  
    113113  if(anugavis.keys[KEY_PITCH_UP]) camera_pitch(CAMERA_PITCH_STEP);
    114114  if(anugavis.keys[KEY_PITCH_DOWN]) camera_pitch(-CAMERA_PITCH_STEP);
    115   if(anugavis.keys[KEY_FORWARD]) camera_track(-CAMERA_TRACK_STEP);
    116   if(anugavis.keys[KEY_BACKWARD]) camera_track(CAMERA_TRACK_STEP);
    117   if(anugavis.keys[KEY_STRAFE_LEFT]) camera_strafe(CAMERA_STRAFE_STEP);
    118   if(anugavis.keys[KEY_STRAFE_RIGHT]) camera_strafe(-CAMERA_STRAFE_STEP);
    119   if(anugavis.keys[KEY_ZOOM_IN]) camera_zoom(CAMERA_ZOOM_STEP);
    120   if(anugavis.keys[KEY_ZOOM_OUT]) camera_zoom(-CAMERA_ZOOM_STEP);
     115  if(anugavis.keys[KEY_FORWARD]) camera_track(-CAMERA_TRACK_STEP *
     116                                              anugavis.diagonal);
     117  if(anugavis.keys[KEY_BACKWARD]) camera_track(CAMERA_TRACK_STEP *
     118                                               anugavis.diagonal);
     119  if(anugavis.keys[KEY_STRAFE_LEFT]) camera_strafe(CAMERA_STRAFE_STEP *
     120                                                   anugavis.diagonal);
     121  if(anugavis.keys[KEY_STRAFE_RIGHT]) camera_strafe(-CAMERA_STRAFE_STEP *
     122                                                    anugavis.diagonal);
     123  if(anugavis.keys[KEY_ZOOM_IN]) camera_zoom(CAMERA_ZOOM_STEP *
     124                                             anugavis.diagonal);
     125  if(anugavis.keys[KEY_ZOOM_OUT]) camera_zoom(-CAMERA_ZOOM_STEP *
     126                                              anugavis.diagonal);
    121127  gluLookAt(anugavis.eye[0], anugavis.eye[1], anugavis.eye[2],
    122128            anugavis.focus[0], anugavis.focus[1], anugavis.focus[2],
  • anuga_work/development/anugavis/src/globals.h

    r5380 r5384  
    4040  double minY;
    4141  double maxY;
     42  double diagonal;
    4243
    4344  GLfloat eye[3];
  • anuga_work/development/anugavis/src/init.c

    r5380 r5384  
    111111  vsub(anugavis.eye, anugavis.focus, releye);
    112112  anugavis.eye[2] = vlen(releye);
     113  anugavis.diagonal = sqrt((anugavis.maxX - anugavis.minX) *
     114                           (anugavis.maxX - anugavis.minX) +
     115                           (anugavis.maxY - anugavis.minY) *
     116                           (anugavis.maxY - anugavis.minY));
    113117  return 0;
    114118}
Note: See TracChangeset for help on using the changeset viewer.