#ifndef _dmsOrthoCamera_h_
#define _dmsOrthoCamera_h_

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

namespace dms
{

class OrthoCamera : public Camera
    {
    public:
        OrthoCamera(void);
        OrthoCamera(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top,
                    GLdouble near=-1, GLdouble far=1);
        virtual void applyProjection(void) const;
        
        void setEdges(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top,
                    GLdouble near=-1, GLdouble far=1);
        void setLeft(GLdouble);
        void setRight(GLdouble);
        void setBottom(GLdouble);
        void setTop(GLdouble);
        void setNear(GLdouble);
        void setFar(GLdouble);
        GLdouble left(void) const { return left_; }
        GLdouble right(void) const { return right_; }
        GLdouble bottom(void) const { return bottom_; }
        GLdouble top(void) const { return top_; }
        GLdouble near(void) const { return near_; }
        GLdouble far(void) const { return far_; }
    
    private:
        GLdouble left_, right_, bottom_, top_, near_, far_;
    };

}

#endif
