cameraparams.h
上传用户:kellyonhid
上传日期:2013-10-12
资源大小:932k
文件大小:1k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. #ifndef CAMERAPARAMS_H
  2. #define CAMERAPARAMS_H
  3. /*
  4. Szymon Rusinkiewicz
  5. Stanford Graphics Lab
  6. Digital Michelangelo Project
  7. cameraparams.h
  8. Manipulates points and camera parameters.
  9. */
  10. class CameraParams {
  11. private:
  12. double *matrix;
  13. void compute_matrix();
  14. public:
  15. int imgwidth, imgheight;
  16. double Tx, Ty, Tz;
  17. double Rx, Ry, Rz;   // in radians
  18. double Cx, Cy;
  19. double S;
  20. double pixels_per_radian;
  21. CameraParams(int _imgwidth, int _imgheight,
  22.      double _Tx, double _Ty, double _Tz,
  23.      double _Rx, double _Ry, double _Rz,
  24.      double _Cx, double _Cy, double _Scale,
  25.      double _pixels_per_radian) :
  26. imgwidth(_imgwidth), imgheight(_imgheight),
  27. Tx(_Tx), Ty(_Ty), Tz(_Tz),
  28. Rx(_Rx), Ry(_Ry), Rz(_Rz),
  29. Cx(_Cx), Cy(_Cy), S(_Scale),
  30. pixels_per_radian(_pixels_per_radian)
  31. {
  32. compute_matrix();
  33. }
  34. static CameraParams *Read(const char *tsaifile);
  35. ~CameraParams()
  36. {
  37. delete [] matrix;
  38. }
  39. void Transform(const float *in, float *out) const;
  40. void Project(const float *in, float *out) const;
  41. const double *GLmodelmatrix() const;
  42. const double *GLprojmatrix(double z_near, double z_far) const;
  43. };
  44. #endif