Tatooine
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
tatooine::rendering::camera_controller< Real > Struct Template Reference

#include <camera_controller.h>

Inheritance diagram for tatooine::rendering::camera_controller< Real >:
[legend]
Collaboration diagram for tatooine::rendering::camera_controller< Real >:
[legend]

Public Types

using vec3 = vec< Real, 3 >
 
using vec4 = vec< Real, 4 >
 
using mat3 = mat< Real, 3, 3 >
 
using mat4 = mat< Real, 4, 4 >
 

Public Member Functions

 camera_controller (size_t const res_x, size_t const res_y)
 
auto set_orthographic_height (Real const h)
 
auto orthographic_height ()
 
auto active_camera () const -> auto const &
 
auto unproject (Vec2< Real > const &x)
 
auto unproject (Vec4< Real > const &x)
 
void use_perspective_camera ()
 
void use_orthographic_camera ()
 
void use_fps_controller ()
 
void use_orthographic_controller ()
 
auto perspective_camera () -> auto &
 
auto perspective_camera () const -> auto const &
 
auto orthographic_camera () -> auto &
 
auto orthographic_camera () const -> auto const &
 
auto controller () const -> auto const &
 
auto projection_matrix () const
 
auto transform_matrix () const -> mat4
 
auto view_matrix () const
 
auto eye () const
 
auto right_direction () const
 
auto up_direction () const
 
auto view_direction () const
 
auto look_at (vec3 const &eye, vec3 const &lookat, vec3 const &up={0, 1, 0})
 
auto look_at (vec3 const &eye, arithmetic auto const pitch, arithmetic auto const yaw)
 
auto plane_width ()
 
auto plane_height ()
 
auto ray (int x, int y) const
 
void on_key_pressed (gl::key k) override
 
void on_key_released (gl::key k) override
 
void on_button_pressed (gl::button b) override
 
void on_button_released (gl::button b) override
 
void on_cursor_moved (double x, double y) override
 
void on_wheel_up () override
 
void on_wheel_down () override
 
void on_wheel_left () override
 
void on_wheel_right () override
 
void on_resize (int w, int h) override
 
void update (std::chrono::duration< double > const &dt)
 
- Public Member Functions inherited from tatooine::gl::window_listener
virtual void on_cursor_moved (double, double)
 
virtual void on_resize (int, int)
 
virtual void on_close ()
 
virtual void on_key_pressed (key)
 
virtual void on_key_released (key)
 
virtual void on_button_pressed (button)
 
virtual void on_button_released (button)
 
virtual void on_wheel_up ()
 
virtual void on_wheel_down ()
 
virtual void on_wheel_left ()
 
virtual void on_wheel_right ()
 

Public Attributes

Real m_orthographic_height = 1
 
struct perspective_camera< Real > m_pcam
 
struct orthographic_camera< Real > m_ocam
 
camera_interface< Real > * m_active_cam
 
std::unique_ptr< camera_controller_interface< Real > > m_controller
 

Friends

struct camera_controller_interface< Real >
 

Member Typedef Documentation

◆ mat3

template<typename Real >
using tatooine::rendering::camera_controller< Real >::mat3 = mat<Real, 3, 3>

◆ mat4

template<typename Real >
using tatooine::rendering::camera_controller< Real >::mat4 = mat<Real, 4, 4>

◆ vec3

template<typename Real >
using tatooine::rendering::camera_controller< Real >::vec3 = vec<Real, 3>

◆ vec4

template<typename Real >
using tatooine::rendering::camera_controller< Real >::vec4 = vec<Real, 4>

Constructor & Destructor Documentation

◆ camera_controller()

template<typename Real >
tatooine::rendering::camera_controller< Real >::camera_controller ( size_t const  res_x,
size_t const  res_y 
)
inline

Member Function Documentation

◆ active_camera()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::active_camera ( ) const -> auto const&
inline

◆ controller()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::controller ( ) const -> auto const&
inline

◆ eye()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::eye ( ) const
inline

◆ look_at() [1/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::look_at ( vec3 const &  eye,
arithmetic auto const  pitch,
arithmetic auto const  yaw 
)
inline

◆ look_at() [2/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::look_at ( vec3 const &  eye,
vec3 const &  lookat,
vec3 const &  up = {0, 1, 0} 
)
inline

◆ on_button_pressed()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_button_pressed ( gl::button  b)
inlineoverridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_button_released()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_button_released ( gl::button  b)
inlineoverridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_cursor_moved()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_cursor_moved ( double  x,
double  y 
)
inlineoverridevirtual

Reimplemented from tatooine::gl::window_listener.

◆ on_key_pressed()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_key_pressed ( gl::key  k)
inlineoverridevirtual

Reimplemented from tatooine::gl::keyboard_listener.

◆ on_key_released()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_key_released ( gl::key  k)
inlineoverridevirtual

Reimplemented from tatooine::gl::keyboard_listener.

◆ on_resize()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_resize ( int  w,
int  h 
)
inlineoverridevirtual

Reimplemented from tatooine::gl::window_listener.

◆ on_wheel_down()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_wheel_down ( )
inlineoverridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_wheel_left()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_wheel_left ( )
inlineoverridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_wheel_right()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_wheel_right ( )
inlineoverridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ on_wheel_up()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::on_wheel_up ( )
inlineoverridevirtual

Reimplemented from tatooine::gl::button_listener.

◆ orthographic_camera() [1/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::orthographic_camera ( ) -> auto&
inline

◆ orthographic_camera() [2/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::orthographic_camera ( ) const -> auto const&
inline

◆ orthographic_height()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::orthographic_height ( )
inline

◆ perspective_camera() [1/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::perspective_camera ( ) -> auto&
inline

◆ perspective_camera() [2/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::perspective_camera ( ) const -> auto const&
inline

◆ plane_height()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::plane_height ( )
inline

◆ plane_width()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::plane_width ( )
inline

◆ projection_matrix()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::projection_matrix ( ) const
inline

◆ ray()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::ray ( int  x,
int  y 
) const
inline

◆ right_direction()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::right_direction ( ) const
inline

◆ set_orthographic_height()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::set_orthographic_height ( Real const  h)
inline

◆ transform_matrix()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::transform_matrix ( ) const -> mat4
inline

◆ unproject() [1/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::unproject ( Vec2< Real > const &  x)
inline

◆ unproject() [2/2]

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::unproject ( Vec4< Real > const &  x)
inline

◆ up_direction()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::up_direction ( ) const
inline

◆ update()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::update ( std::chrono::duration< double > const &  dt)
inline

◆ use_fps_controller()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::use_fps_controller ( )
inline

◆ use_orthographic_camera()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::use_orthographic_camera ( )
inline

◆ use_orthographic_controller()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::use_orthographic_controller ( )
inline

◆ use_perspective_camera()

template<typename Real >
void tatooine::rendering::camera_controller< Real >::use_perspective_camera ( )
inline

◆ view_direction()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::view_direction ( ) const
inline

◆ view_matrix()

template<typename Real >
auto tatooine::rendering::camera_controller< Real >::view_matrix ( ) const
inline

Friends And Related Function Documentation

◆ camera_controller_interface< Real >

template<typename Real >
friend struct camera_controller_interface< Real >
friend

Member Data Documentation

◆ m_active_cam

template<typename Real >
camera_interface<Real>* tatooine::rendering::camera_controller< Real >::m_active_cam

◆ m_controller

template<typename Real >
std::unique_ptr<camera_controller_interface<Real> > tatooine::rendering::camera_controller< Real >::m_controller

◆ m_ocam

template<typename Real >
struct orthographic_camera< Real > tatooine::rendering::camera_controller< Real >::m_ocam

◆ m_orthographic_height

template<typename Real >
Real tatooine::rendering::camera_controller< Real >::m_orthographic_height = 1

◆ m_pcam

template<typename Real >
struct perspective_camera< Real > tatooine::rendering::camera_controller< Real >::m_pcam

The documentation for this struct was generated from the following file: