GPX-Visualizer/camera/Camera.h

37 lines
782 B
C++

#ifndef __CAMERA_H__
#define __CAMERA_H__
/*
Generic camera class by Nghia Ho
*/
class Camera
{
public:
Camera() { Init(); }
~Camera(){}
void Init();
void Refresh();
void SetPos(float x, float y, float z);
void GetPos(float &x, float &y, float &z);
void GetDirectionVector(float &x, float &y, float &z);
void SetYaw(float angle);
void SetPitch(float angle);
// Navigation
void Move(float incr);
void Strafe(float incr);
void Fly(float incr);
void RotateYaw(float angle);
void RotatePitch(float angle);
private:
float m_x, m_y, m_z; // Position
float m_lx, m_ly, m_lz; // Direction vector of where we are looking at
float m_yaw, m_pitch; // Various rotation angles
float m_strafe_lx, m_strafe_lz; // Always 90 degree to direction vector
};
#endif