File Camera.h
Go to the documentation of this file
#pragma once
#include "ID.h"
#include "Transform.h"
#include "DebugMesh.h"
#include <vector>
/*#include "Sprite.h"*/
class Camera : public ObjectID, public Transform3D
{
public:
float cam_w;
float cam_h;
float cam_pers;
float cam_near;
float cam_far;
float cam_foc;
glm::vec3 cam_tar = glm::vec3(0.0f, 0.0f, 0.0f);
bool is_frustum_changed = true;
glm::mat4 cam_frustum = glm::mat4(-1.0f);
public:
Camera(float w, float h, float per, float n, float f);
Camera();
public:
// TODO: use std::array
std::vector<float> cam_floatData;
void GenFloatData();
void ChangeCamRatio(float w, float h);
void ChangeCamRatio(const glm::vec2& size);
void ChangeCamPersp(float persp);
void SetCamPos(const glm::vec3& _pos);
void SetTarPos(const glm::vec3& _pos);
void SetCamTrans(const glm::mat4& _trans, bool pos = true, bool rot = true);
void* GetTransform() override { return dynamic_cast<Transform*>(GetTransformPtr()); }
public:
~Camera();
};