class Camera { private: Vec3 position; Vec3 target; Vec3 up; Vec3 local_up; float fov, aspectRatio; float n, f; public: Mat4 projMat; Mat4 viewMat; void setPosition(Vec3 q); Vec3 getPosition(void); void setTarget(Vec3 q); Vec3 getTarget(void); float getHeading(void); void turn(float yaw, float pitch); void orbit(float yaw, float pitch); void dolly(float dist); void zoom(float dist); void pan(float x, float y); void setFov(float f); float getFov(void); void setAspectRatio(float r); void setNearFar(float n, float f); void look(void); float distanceTo(Vec3 q); float sqDistanceTo(Vec3 q); Camera(void); };