00001
00002
00003 #ifndef __CAMERA_GL_H
00004 #define __CAMERA_GL_H
00005
00006 #include <esg/Definitions.h>
00007 #include <gra/camera/Camera.h>
00008 #include <GL/gl.h>
00009
00010
00011
00012
00013
00014 namespace gra {
00015
00016 class GRA_EXPORT CameraGL : public Camera {
00017 protected:
00018 static void _set_orthogonal_proj (const Projection&);
00019 static void _set_perspective_proj (const Projection&);
00020
00021 public:
00027 CameraGL(AutoPtr<Projection> * pAP);
00028
00036 CameraGL(const Camera& src);
00037
00043 static void setOpenGLTransform(const Matrix4& trMat);
00044
00050 virtual void setTransform(const Matrix4& trMat);
00051
00055 virtual void unsetTransform();
00056
00063 virtual void rotateX(float );
00064 virtual void rotateY(float );
00065 virtual void rotateZ(float );
00066 virtual void rotate (float , const Vector3& );
00067
00072 virtual void translate(float , float , float );
00073
00079 virtual void setProjection(AutoPtr<Projection> * );
00080 };
00081
00082 }
00083
00084 #endif // __CAMERA_GL_H