My Project
Loading...
Searching...
No Matches
camera.hh
Go to the documentation of this file.
1#pragma once
2// camera movimentent abstration
3#include <glm/glm.hpp>
4#include "inputs.hh"
5
6class Camera
7{
8private:
9 glm::vec3 _position;
10 glm::vec3 _front;
11 glm::vec3 _up;
12 glm::vec3 _right;
13 glm::vec3 _direction_up;
14
17
18 float _yaw;
19 float _pitch;
20 float _fov;
21 float _moviment_speed = 2.5f;
22 float _mouse_sensitivity = 0.1f;
23 float _zoom_sensitivity = 2.0f;
24
27
28 float _z_near;
29 float _z_far;
30
31 void update_camera();
32 void process_keyboard(Keyboard &k, float delta_time);
33 void process_mouse_moviment(Mouse &m, bool constrian_pitch = true);
34 void process_mouse_scroll(float y_offset);
35 void process_NDC();
36
37public:
38 Camera(float position, float width, float height, float up = 0.0f, float yaw = -90.0f, float pitch = 0.0f,
39 float fov = 45.0f, float z_zear = 0.1f, float z_far = 100.0f);
40
41 void update(Keyboard &k, Mouse &m, float delta_time);
42 void update(const float delta_time);
43
44 glm::mat4 &get_view_matrix();
45 glm::mat4 &get_projection();
46
47 inline float
49 {
50 return _fov;
51 };
52 inline glm::vec3 &
54 {
55 return _position;
56 };
57 inline void
59 {
61 };
62};
Definition camera.hh:7
glm::vec3 _position
Definition camera.hh:9
glm::mat4 _perspecitve_projection
Definition camera.hh:16
glm::mat4 & get_view_matrix()
Definition camera.cpp:44
float get_fov()
Definition camera.hh:48
float _yaw
Definition camera.hh:18
glm::mat4 _perspecitve_view
Definition camera.hh:15
float _z_near
Definition camera.hh:28
glm::vec3 _up
Definition camera.hh:11
float _moviment_speed
Definition camera.hh:21
glm::vec3 _right
Definition camera.hh:12
glm::vec3 & get_position()
Definition camera.hh:53
void process_mouse_moviment(Mouse &m, bool constrian_pitch=true)
Definition camera.cpp:50
float _zoom_sensitivity
Definition camera.hh:23
float _pitch
Definition camera.hh:19
float _z_far
Definition camera.hh:29
void process_mouse_scroll(float y_offset)
Definition camera.cpp:77
float _view_width
Definition camera.hh:25
void process_NDC()
Definition camera.cpp:38
void update(Keyboard &k, Mouse &m, float delta_time)
Definition camera.cpp:21
void update_camera()
Definition camera.cpp:103
void set_moviment_speed(float m)
Definition camera.hh:58
float _mouse_sensitivity
Definition camera.hh:22
glm::vec3 _direction_up
Definition camera.hh:13
glm::vec3 _front
Definition camera.hh:10
float _view_height
Definition camera.hh:26
float _fov
Definition camera.hh:20
void process_keyboard(Keyboard &k, float delta_time)
Definition camera.cpp:88
glm::mat4 & get_projection()
Definition camera.cpp:116
Definition inputs.hh:38
Definition inputs.hh:68