CPP-TOOLBOX
Loading...
Searching...
No Matches
FPSCamera Class Reference

#include <fps_camera.hpp>

Inheritance diagram for FPSCamera:
ICamera

Public Member Functions

void toggle_mouse_freeze ()
 
void freeze_camera ()
 
void unfreeze_camera ()
 
 FPSCamera (unsigned int &screen_width_px, unsigned int &screen_height_px, glm::vec3 start_position=glm::vec3(0.0f, 0.0f, 0.0f), double user_sensitivity=1.0, float fov=90.0f, float zoom_fov=30.0f, float near_plane=0.01f, float far_plane=300.0f)
 
void toggle_zoom ()
 
void change_active_sensitivity (double new_sens)
 
void zoom_in ()
 
void zoom_out ()
 
Frustum get_visible_frustum_world_space () override
 
bool is_visible (const std::vector< glm::vec3 > &xyz_positions, Transform &transform) override
 
bool is_visible (const vertex_geometry::AxisAlignedBoundingBox &aabb, Transform &transform) override
 
void process_input (bool slow_move_pressed, bool fast_move_pressed, bool forward_pressed, bool left_pressed, bool backward_pressed, bool right_pressed, bool up_pressed, bool down_pressed, float delta_time)
 
void mouse_callback (double xpos, double ypos, double sensitivity_override=-1)
 
glm::mat4 get_view_matrix () const override
 this is the matrix that puts the camera in the right place and looking in the right place
 
glm::mat4 get_third_person_view_matrix () const
 
glm::mat4 get_view_matrix_at (glm::vec3 position) const
 
glm::mat4 get_projection_matrix () const override
 the projection matrix is the one that takes the world and applies the perspective view on the world
 
- Public Member Functions inherited from ICamera
virtual ~ICamera ()=default
 

Public Attributes

Mouse mouse
 
float move_speed = 2
 
float fast_move_speed = move_speed * 4
 
float slow_move_speed = move_speed * .25
 
glm::vec3 up = glm::vec3(0.0f, 1.0f, 0.0f)
 
glm::mat4 projection
 
bool camera_frozen = false
 
bool zoomed_in
 
float original_fov
 
float zoom_fov
 
float near_plane
 
float far_plane
 
Observable< float > fov
 
double unscoped_sensitivity
 
double active_sensitivity
 
unsigned int & screen_width_px
 
unsigned int & screen_height_px
 
- Public Attributes inherited from ICamera
Transform transform
 

Constructor & Destructor Documentation

◆ FPSCamera()

FPSCamera::FPSCamera ( unsigned int & screen_width_px,
unsigned int & screen_height_px,
glm::vec3 start_position = glm::vec3(0.0f, 0.0f, 0.0f),
double user_sensitivity = 1.0,
float fov = 90.0f,
float zoom_fov = 30.0f,
float near_plane = 0.01f,
float far_plane = 300.0f )

Member Function Documentation

◆ change_active_sensitivity()

void FPSCamera::change_active_sensitivity ( double new_sens)

◆ freeze_camera()

void FPSCamera::freeze_camera ( )

◆ get_projection_matrix()

glm::mat4 FPSCamera::get_projection_matrix ( ) const
overridevirtual

the projection matrix is the one that takes the world and applies the perspective view on the world

Implements ICamera.

◆ get_third_person_view_matrix()

glm::mat4 FPSCamera::get_third_person_view_matrix ( ) const

◆ get_view_matrix()

glm::mat4 FPSCamera::get_view_matrix ( ) const
overridevirtual

this is the matrix that puts the camera in the right place and looking in the right place

Implements ICamera.

◆ get_view_matrix_at()

glm::mat4 FPSCamera::get_view_matrix_at ( glm::vec3 position) const

◆ get_visible_frustum_world_space()

Frustum FPSCamera::get_visible_frustum_world_space ( )
inlineoverridevirtual

Implements ICamera.

◆ is_visible() [1/2]

bool FPSCamera::is_visible ( const std::vector< glm::vec3 > & xyz_positions,
Transform & transform )
inlineoverridevirtual

Implements ICamera.

◆ is_visible() [2/2]

bool FPSCamera::is_visible ( const vertex_geometry::AxisAlignedBoundingBox & aabb,
Transform & transform )
inlineoverridevirtual

Implements ICamera.

◆ mouse_callback()

void FPSCamera::mouse_callback ( double xpos,
double ypos,
double sensitivity_override = -1 )

◆ process_input()

void FPSCamera::process_input ( bool slow_move_pressed,
bool fast_move_pressed,
bool forward_pressed,
bool left_pressed,
bool backward_pressed,
bool right_pressed,
bool up_pressed,
bool down_pressed,
float delta_time )

◆ toggle_mouse_freeze()

void FPSCamera::toggle_mouse_freeze ( )

◆ toggle_zoom()

void FPSCamera::toggle_zoom ( )

◆ unfreeze_camera()

void FPSCamera::unfreeze_camera ( )

◆ zoom_in()

void FPSCamera::zoom_in ( )

◆ zoom_out()

void FPSCamera::zoom_out ( )

Member Data Documentation

◆ active_sensitivity

double FPSCamera::active_sensitivity

◆ camera_frozen

bool FPSCamera::camera_frozen = false

◆ far_plane

float FPSCamera::far_plane

◆ fast_move_speed

float FPSCamera::fast_move_speed = move_speed * 4

◆ fov

Observable<float> FPSCamera::fov

◆ mouse

Mouse FPSCamera::mouse

◆ move_speed

float FPSCamera::move_speed = 2

◆ near_plane

float FPSCamera::near_plane

◆ original_fov

float FPSCamera::original_fov

◆ projection

glm::mat4 FPSCamera::projection

◆ screen_height_px

unsigned int& FPSCamera::screen_height_px

◆ screen_width_px

unsigned int& FPSCamera::screen_width_px

◆ slow_move_speed

float FPSCamera::slow_move_speed = move_speed * .25

◆ unscoped_sensitivity

double FPSCamera::unscoped_sensitivity

◆ up

glm::vec3 FPSCamera::up = glm::vec3(0.0f, 1.0f, 0.0f)

◆ zoom_fov

float FPSCamera::zoom_fov

◆ zoomed_in

bool FPSCamera::zoomed_in

The documentation for this class was generated from the following files: