43 lines
790 B
C++
43 lines
790 B
C++
#pragma once
|
|
#ifndef REAL_BUILD
|
|
# include "externals.hh"
|
|
#endif
|
|
|
|
|
|
/*= T_Camera =================================================================*/
|
|
|
|
struct T_Camera
|
|
{
|
|
glm::vec3 lookAt = glm::vec3( 0 );
|
|
glm::vec3 angles = glm::vec3( 0 );
|
|
float distance = 10;
|
|
float fov = 90;
|
|
|
|
// Everything below is updated by update()
|
|
glm::vec3 dir;
|
|
glm::vec3 up;
|
|
glm::vec3 pos;
|
|
float np;
|
|
|
|
T_Camera()
|
|
{ update( ); }
|
|
|
|
void handleDND(
|
|
__rd__ ImVec2 const& move ,
|
|
__rd__ const bool hasCtrl ,
|
|
__rd__ const bool hasShift ,
|
|
__rd__ const bool lmb // Left mouse button
|
|
);
|
|
void handleWheel(
|
|
__rd__ const float wheel ,
|
|
__rd__ const bool hasCtrl ,
|
|
__rd__ const bool hasShift
|
|
);
|
|
|
|
void makeUI( );
|
|
|
|
private:
|
|
glm::mat3x3 rotMat;
|
|
float rotationMatrix[ 9 ];
|
|
void update( );
|
|
};
|