#ifndef _dmsPerspCamera_h_
#define _dmsPerspCamera_h_

#include <GL/gl.h>
#include <dms/Camera.h>

namespace dms
{

class PerspCamera : public Camera
    {
    public:
        PerspCamera(GLdouble fovy = 45.0, GLdouble aspect = 1.0,
                    GLdouble near = 1.0, GLdouble far = 100.0);
        virtual void applyProjection(void) const;
        
        void zoom(GLdouble angle);
        
        GLdouble fovy(void) const;
        GLdouble aspect(void) const;
        GLdouble near(void) const;
        GLdouble far(void) const;
        void setFovy(GLdouble);
        void setAspect(GLdouble);
        void setNear(GLdouble);
        void setFar(GLdouble);
    
    private:
        GLdouble fovy_, aspect_;
        GLdouble near_, far_;
    };

}

#endif
