Main Page | Modules | Namespace List | Class Hierarchy | Compound List | File List | Compound Members | File Members

camera.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * $Id: camera.h,v 1.8 2003/07/16 11:42:15 schou Exp $
00003  * Author: Jakob Schou Jensen <schou@sourceforge.net>
00004  * Licence: GPL
00005  *
00006  * Description: Camera
00007  *
00008  ****************************************************************************/
00009 
00015 #ifndef CAMERA_H
00016 #define CAMERA_H
00017 
00018 #include <adsomath.h>
00019 #include <adsoheightmap.h>
00020 #include "rigidbody.h"
00021 #include "animation.h"
00022 
00023 #define CAMERA_FOLLOW 0
00024 #define CAMERA_VEHICLE 1
00025 #define CAMERA_FLOAT 2
00026 #define CAMERA_FLY 3
00027 #define CAMERA_ROTATE 4
00028 #define CAMERA_MAX_MODE_NUM 2
00029 
00030 struct CameraCtrl {
00031   // input
00032   int forward;
00033   int back;
00034   int left;
00035   int right;
00036   int mouse_dx;
00037   int mouse_dy;
00038   int mouse_button;
00039 
00040   // target location
00041   v3f pos, dir, dup;
00042 
00043   AdsoHeightMap *heightMap;
00044 };
00045 
00046 class Camera : public RigidBody, public PhysicalAnimation {
00047   int mode;
00048   int defMode; // variable for keeping track of user selected mode
00049 
00050  public:
00051   CameraCtrl ctrl;
00052 
00053   int grab_keys;
00054 
00055   float angle; // this is the inverse zoom factor
00056 
00057   // Relative eye location variables
00058   float tilt;
00059   float course;
00060   float dist;
00061 
00062   int changeMode();
00063   void setMode(int m);
00064   void defaultMode(int m){ defMode = m; } // (ie. user selected mode)
00065   int getMode(){return mode;}
00066   int getDefaultMode(){ return defMode; }
00067   char *modeName();
00068 
00069   void update(double delta_time);
00070 
00071   Camera();
00072   friend class ScreenDump;
00073 };
00074 
00075 #endif
00076 

Generated on Mon Jul 21 10:44:47 2003 for Rover by doxygen 1.3.2