Unravel Engine C++ Reference
Loading...
Searching...
No Matches
camera_component.cpp
Go to the documentation of this file.
1#include "camera_component.h"
2
3namespace unravel
4{
6{
7 pipeline_camera_.get_camera().set_viewport_size({640, 480});
8}
9
11{
12 // Release the unused fbos and textures
13 pipeline_camera_.get_camera().record_current_matrices();
14 pipeline_camera_.get_camera().look_at(t.get_position(), t.get_position() + t.z_unit_axis(), t.y_unit_axis());
15
16}
17
18
20{
21 pipeline_camera_.get_camera().set_viewport_size(size);
22}
23
25{
26 return pipeline_camera_.get_camera().get_viewport_size();
27}
28
30{
31 return pipeline_camera_.get_camera().get_ortho_size();
32}
33
35{
36 pipeline_camera_.get_camera().set_orthographic_size(size);
37}
38
39auto camera_component::get_ppu() const -> float
40{
41 return pipeline_camera_.get_camera().get_ppu();
42}
43
45{
46 return rview_;
47}
48
49auto camera_component::get_render_view() const -> const gfx::render_view&
50{
51 return rview_;
52}
53
55{
56 return storage_;
57}
58
60{
61 return pipeline_camera_;
62}
63
65{
66 return pipeline_camera_;
67}
68
69void camera_component::set_fov(float fov_degrees)
70{
71 pipeline_camera_.get_camera().set_fov(fov_degrees);
72}
73
75{
76 pipeline_camera_.get_camera().set_near_clip(distance);
77}
78
80{
81 pipeline_camera_.get_camera().set_far_clip(distance);
82}
83
85{
86 pipeline_camera_.get_camera().set_projection_mode(mode);
87}
88
89auto camera_component::get_fov() const -> float
90{
91 return pipeline_camera_.get_camera().get_fov();
92}
94{
95 return pipeline_camera_.get_camera().get_near_clip();
96}
97auto camera_component::get_far_clip() const -> float
98{
99 return pipeline_camera_.get_camera().get_far_clip();
100}
101
103{
104 return pipeline_camera_.get_camera().get_projection_mode();
105}
106
108{
109 return pipeline_camera_.get_camera();
110}
111
113{
114 return pipeline_camera_.get_camera();
115}
116
118{
119 return render_include_mask_;
120}
121
123{
124 render_include_mask_ = mask;
125}
126
128{
129 return render_exclude_mask_;
130}
131
133{
134 render_exclude_mask_ = mask;
135}
136
138{
139 return layer_mask{render_include_mask_.mask & ~render_exclude_mask_.mask};
140}
141} // namespace unravel
General purpose transformation class designed to maintain each component of the transformation separa...
Definition transform.hpp:27
auto get_far_clip() const -> float
Gets the far clipping distance.
auto get_projection_mode() const -> projection_mode
Gets the projection mode.
auto get_pipeline_data() -> pipeline_camera &
auto get_render_exclude_mask() const -> layer_mask
Gets the render exclude mask.
void set_near_clip(float distance)
Sets the near clipping distance.
auto get_render_mask() const -> layer_mask
Gets the effective render mask (include - exclude).
auto get_storage() -> camera_storage &
Gets the camera storage.
void set_viewport_size(const usize32_t &size)
Sets the viewport size.
auto get_render_view() -> gfx::render_view &
Gets the render view.
auto get_viewport_size() const -> const usize32_t &
Gets the viewport size.
auto get_camera() -> camera &
Gets the camera object.
void set_fov(float fov_degrees)
Sets the field of view (FOV).
void set_render_exclude_mask(layer_mask mask)
Sets the render exclude mask.
void set_render_include_mask(layer_mask mask)
Sets the render include mask.
auto get_ortho_size() const -> float
Gets the orthographic size.
void set_projection_mode(projection_mode mode)
Sets the projection mode.
void set_ortho_size(float size)
Sets the orthographic size.
auto get_fov() const -> float
Gets the field of view (FOV).
auto get_near_clip() const -> float
Gets the near clipping distance.
auto get_render_include_mask() const -> layer_mask
Gets the render include mask.
void set_far_clip(float distance)
Sets the far clipping distance.
void update(const math::transform &t)
Updates the camera with the given transform.
camera_component()
Default constructor for camera_component.
auto get_ppu() const -> float
Gets the pixels per unit (PPU).
Class representing a camera. Contains functionality for manipulating and updating a camera....
Definition camera.h:35
auto get_camera() const -> const camera &
Gets the camera object (const version).
projection_mode
Enum representing the projection mode of a camera.
Definition camera.h:16
float distance
Structure for storing camera related context.
Definition camera.h:25