This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

Camera.h

By: a guest on Jan 21st, 2011  |  syntax: C++  |  size: 1.96 KB  |  views: 39  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #ifndef CAMERA_H
  2. #define CAMERA_H
  3.  
  4. #include "../defines.h"
  5. class Camera
  6. {
  7.     public:
  8.         Camera()
  9.         {
  10.             x = y = z = x_a = y_a = z_a = 0;
  11.         }
  12.         virtual ~Camera() {}
  13.         void Look()
  14.         {
  15.             glRotatef(x_a,0,1,0);
  16.             glRotatef(y_a,1,0,0);
  17.             glRotatef(z_a,0,0,1);
  18.             glTranslatef(x,y,z);
  19.         }
  20.         void MoveTo(float x_m, float y_m, float z_m)
  21.         {
  22.             std::cout<<"MoveTo\n";
  23.             x = -x_m;
  24.             y = -y_m;
  25.             z = -z_m;
  26.         }
  27.         void MoveBy(float x_m, float y_m, float z_m)
  28.         {
  29.             x -= x_m;
  30.             y -= y_m;
  31.             z -= z_m;
  32.         }
  33.         void RotateTo(float x_m,float y_m,float z_m)
  34.         {
  35.             x_a = -x_m;
  36.             y_a = -y_m;
  37.             z_a = -z_m;
  38.         }
  39.         void RotateBy(float x_m, float y_m, float z_m)
  40.         {
  41.             x_a -= x_m;
  42.             y_a -= y_m;
  43.             z_a -= z_m;
  44.         }
  45.         void MoveFoward(float dist)
  46.         {
  47.             //x_a = fmod(x_a,360.0f);
  48.             //y_a = fmod(y_a,360.0f);
  49.             //z_a = fmod(z_a,360.0f);
  50.  
  51.             float xx = 0;
  52.             float yy = 0;
  53.             float zz = dist;
  54.             float xxa, yya, zza;
  55.             xxa = (xx*(cos(y_a)*cos(x_a)))+(yy*(-sin(x_a)*cos(y_a)))+(zz*sin(y_a));
  56.             yya = (xx*((sin(x_a)*cos(z_a))+(sin(z_a)*sin(y_a)*cos(x_a))))+(yy*((cos(x_a)*cos(z_a))-(sin(z_a)*sin(y_a)*sin(x_a))))+(zz*(-sin(z_a)*cos(y_a)));
  57.             zza = (xx*((sin(x_a)*sin(z_a))-(sin(y_a)*cos(z_a)*cos(x_a))))+(yy*((sin(x_a)*sin(y_a)*cos(z_a))+(cos(x_a)*sin(z_a))))+(zz*(cos(z_a)*cos(y_a)));
  58.  
  59.  
  60.  
  61.             printf("XVal: %f YVal: %f ZVal: %f --- ",xxa,yya,zza);
  62.             printf("xA: %f, yA: %f, zA: %f\n",x_a,y_a,z_a);
  63.  
  64.             //SECOND X
  65.             //FIRST Z
  66.             //FIRST Y
  67.             x+=xxa;
  68.             y+=yya;
  69.             z+=zza;
  70.         }
  71.         float x,y,z;
  72.     float x_a,y_a,z_a;
  73.     protected:
  74.     private:
  75.  
  76. };
  77.  
  78. #endif // CAMERA_H
clone this paste RAW Paste Data