31 lines
670 B
C++
31 lines
670 B
C++
#ifndef TRACKBALLCAMERA_H
|
|
#define TRACKBALLCAMERA_H
|
|
|
|
#include "camera.h"
|
|
#include <glm/vec2.hpp>
|
|
#include <glm/vec3.hpp>
|
|
|
|
class TrackBallCamera : public BasicCamera
|
|
{
|
|
private:
|
|
// camera position
|
|
glm::vec3 m_center;
|
|
glm::vec3 m_direction;
|
|
float m_dist;
|
|
|
|
void computeView();
|
|
|
|
public:
|
|
TrackBallCamera(float myFov = 70.f, float myNear = 0.1f, float myFar = 1000.f);
|
|
|
|
void rotateCamera(float dx, float dy);
|
|
void moveCamera(float dx, float dy);
|
|
void moveCamera(const glm::vec3 &diff);
|
|
void lookAt(const glm::vec3 &pos);
|
|
void zoom(int nbScrolls);
|
|
void reset();
|
|
glm::vec3 getDefaultPxInfo();
|
|
};
|
|
|
|
#endif // TRACKBALLCAMERA_H
|