aboutsummaryrefslogtreecommitdiff
path: root/src/client/render/camera.hh
blob: 018f54f4566bc95e00ff9966650e637dfa86c003 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef CLIENT_RENDER_CAMERA_HH_
#define CLIENT_RENDER_CAMERA_HH_

#include <array>

#include <glm/glm.hpp>
#include <glm/gtc/matrix_access.hpp>
#include <glm/gtc/matrix_transform.hpp>

#include "client/render/render.hh"

namespace client {
namespace render {
namespace camera {

// Call update after modifying references to camera objects.
void update() noexcept;

// modifying
float& get_xfov() noexcept;
glm::vec3& get_pos() noexcept;
glm::vec3& get_front() noexcept;
glm::vec3& get_up() noexcept;
glm::mat4& get_view() noexcept;
glm::mat4& get_proj() noexcept;
using frustum = std::array<glm::vec4, 6>;
frustum& get_frustum() noexcept;
float& get_znear() noexcept;
float& get_zfar() noexcept;

// non-modifying
float get_yfov() noexcept;

} // namespace camera
} // namespace render
} // namespace client

#endif