wren
Vulkan-based game engine
Toggle main menu visibility
Loading...
Searching...
No Matches
camera.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
wren/math/geometry.hpp
>
4
#include <
wren/math/matrix.hpp
>
5
#include <
wren/math/vector.hpp
>
6
#include <
wren/scene/components/transform.hpp
>
7
8
namespace
editor
{
9
class
Camera
{
10
public
:
11
Camera
() =
default
;
12
Camera
(
float
fov,
float
aspect_ratio,
float
z_near,
float
z_far)
13
:
fov_
(fov),
aspect_ratio_
(aspect_ratio),
z_near_
(z_near),
z_far_
(z_far) {
14
transform_
.position.z(-5);
15
update_projection_matrix
();
16
}
17
18
static
auto
create
();
19
20
auto
aspect
(
float
aspect
) {
21
aspect_ratio_
=
aspect
;
22
update_projection_matrix
();
23
}
24
[[nodiscard]]
auto
aspect
()
const
{
return
aspect_ratio_
; }
25
26
[[nodiscard]]
auto
projection
()
const
{
return
projection_
; }
27
28
[[nodiscard]]
auto
transform
()
const
{
return
transform_
; }
29
30
private
:
31
void
update_projection_matrix
() {
32
projection_
=
wren::math::perspective
(
wren::math::radians
(
fov_
),
33
aspect_ratio_
,
z_near_
,
z_far_
);
34
}
35
36
wren::scene::components::Transform
transform_
;
37
38
float
fov_
{};
39
float
aspect_ratio_
{};
40
float
z_near_
{};
41
float
z_far_
{};
42
43
wren::math::Mat4f
projection_
;
44
};
45
46
}
// namespace editor
editor::Camera::create
static auto create()
editor::Camera::aspect
auto aspect() const
Definition
camera.hpp:24
editor::Camera::fov_
float fov_
Definition
camera.hpp:38
editor::Camera::projection
auto projection() const
Definition
camera.hpp:26
editor::Camera::z_far_
float z_far_
Definition
camera.hpp:41
editor::Camera::aspect_ratio_
float aspect_ratio_
Definition
camera.hpp:39
editor::Camera::z_near_
float z_near_
Definition
camera.hpp:40
editor::Camera::aspect
auto aspect(float aspect)
Definition
camera.hpp:20
editor::Camera::update_projection_matrix
void update_projection_matrix()
Definition
camera.hpp:31
editor::Camera::Camera
Camera(float fov, float aspect_ratio, float z_near, float z_far)
Definition
camera.hpp:12
editor::Camera::transform
auto transform() const
Definition
camera.hpp:28
editor::Camera::projection_
wren::math::Mat4f projection_
Definition
camera.hpp:43
editor::Camera::transform_
wren::scene::components::Transform transform_
Definition
camera.hpp:36
editor::Camera::Camera
Camera()=default
geometry.hpp
matrix.hpp
editor
Definition
camera.hpp:8
wren::math::perspective
auto perspective(T fov_y, T aspect, T z_near, T z_far)
Definition
geometry.hpp:59
wren::math::radians
auto radians(float degrees) -> float
Definition
geometry.hpp:14
wren::math::Mat4f
Definition
matrix.hpp:86
wren::scene::components::Transform
Definition
transform.hpp:10
transform.hpp
vector.hpp
editor
src
camera.hpp
Generated by
1.17.0