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

3D图形编程

开发平台:

Visual C++

  1. // Projector.h       Classes for easily simulating OpenGL
  2. //                   projection/unprojection
  3. // created 5/5/99    magi@cs.stanford.edu
  4. #ifndef _PROJECTOR_H_
  5. #define _PROJECTOR_H_
  6. #include "Xform.h"
  7. class Trackball;
  8. class TbObj;
  9. // class for projecting world coordinates into screen coordinates
  10. class Projector
  11. {
  12.  public:
  13.   Projector (Trackball* tb = NULL, TbObj* tbObj = NULL);
  14.   Pnt3 operator() (const Pnt3& world) const;
  15.   void xformBy (const Xform<float>& xfRel);
  16.  protected:
  17.   int width, height;
  18.   Xform<float> xfForward;
  19. };
  20. // class for unprojecting screen coordinates into world coordinates
  21. class Unprojector: public Projector
  22. {
  23.  public:
  24.   Unprojector (Trackball* tb = NULL, TbObj* tbObj = NULL);
  25.   Pnt3 operator() (int x, int y, unsigned int z) const;
  26.   Pnt3 operator() (int x, int y, float z) const;
  27.   Pnt3 forward (const Pnt3& world) const;
  28.   void xformBy (const Xform<float>& xfRel);
  29.  private:
  30.   Xform<float> xfBack;
  31. };
  32. #endif // _PROJECTOR_H_