Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
foray::scene::ncomp::Camera Class Reference

Defines a camera with projection matrix. More...

#include <foray_camera.hpp>

Inheritance diagram for foray::scene::ncomp::Camera:
foray::scene::NodeComponent foray::scene::Component::OnResizedCallback foray::scene::Component foray::Polymorphic foray::NoMoveDefaults foray::Polymorphic

Public Member Functions

void InitDefault ()
 
glm::mat4 & ProjectionMat ()
 
void SetProjectionMatrix ()
 
void SetProjectionMatrix (float verticalFov, float aspect, float near, float far)
 
virtual void UpdateUbo (CameraUboBlock &uboblock)
 
virtual void OnResized (VkExtent2D extent) override
 Invoked when the primary render resolution changes.
 
- Public Member Functions inherited from foray::scene::NodeComponent
NodeGetNode ()
 Node this component is attached to. Casts mRegistry to Node.
 
virtual SceneGetScene () override
 Scene this component is a part of. Casts mRegistry->mCallbackDispatcher to Scene.
 
virtual RegistryGetGlobals () override
 Global component registry. Casts mRegistry->mCallbackDispatcher to Scene and returns Scene->GetGlobals()
 
virtual core::ContextGetContext () override
 Vulkan Context. Casts mRegistry->mCallbackDispatcher to Scene and returns Scene->GetContext()
 
- Public Member Functions inherited from foray::scene::Component
virtual ~Component ()
 Destructor. Provide virtual constructors in inheriting classes, to make sure they get finalized correctly.
 
- Public Member Functions inherited from foray::NoMoveDefaults
 NoMoveDefaults ()=default
 
 NoMoveDefaults (const NoMoveDefaults &other)=delete
 
 NoMoveDefaults (NoMoveDefaults &&other)=default
 
NoMoveDefaultsoperator= (const NoMoveDefaults &other)=delete
 
- Public Member Functions inherited from foray::scene::Component::OnResizedCallback
void Invoke (TArg event)
 

Static Public Member Functions

static float CalculateAspect (const VkExtent2D extent)
 

Protected Attributes

float mVerticalFov = 0
 
float mAspect = 0.f
 
float mNear = 0
 
float mFar = 0
 
glm::vec3 mUpDirection = glm::vec3(0.f, 1.f, 0.f)
 
glm::mat4 mProjectionMatrix = glm::mat4(1)
 
- Protected Attributes inherited from foray::scene::Component
RegistrymRegistry = nullptr
 
std::string mName = ""
 

Additional Inherited Members

- Public Types inherited from foray::scene::Component::OnResizedCallback
using TArg = VkExtent2D
 
- Public Attributes inherited from foray::scene::Component
friend Registry
 
- Static Public Attributes inherited from foray::scene::Component::OnResizedCallback
static const bool ORDERED_EXECUTION = false
 
- Protected Member Functions inherited from foray::Polymorphic
virtual void __makeMePolymorphic ()
 

Detailed Description

Defines a camera with projection matrix.

Member Function Documentation

◆ CalculateAspect()

float foray::scene::ncomp::Camera::CalculateAspect ( const VkExtent2D  extent)
inlinestatic

◆ InitDefault()

void foray::scene::ncomp::Camera::InitDefault ( )

◆ OnResized()

virtual void foray::scene::ncomp::Camera::OnResized ( VkExtent2D  extent)
overridevirtual

Invoked when the primary render resolution changes.

Implements foray::scene::Component::OnResizedCallback.

◆ ProjectionMat()

glm::mat4 & foray::scene::ncomp::Camera::ProjectionMat ( )
inline

◆ SetProjectionMatrix() [1/2]

void foray::scene::ncomp::Camera::SetProjectionMatrix ( )

◆ SetProjectionMatrix() [2/2]

void foray::scene::ncomp::Camera::SetProjectionMatrix ( float  verticalFov,
float  aspect,
float  near,
float  far 
)

◆ UpdateUbo()

virtual void foray::scene::ncomp::Camera::UpdateUbo ( CameraUboBlock uboblock)
virtual

Member Data Documentation

◆ mAspect

float foray::scene::ncomp::Camera::mAspect = 0.f
protected

◆ mFar

float foray::scene::ncomp::Camera::mFar = 0
protected

◆ mNear

float foray::scene::ncomp::Camera::mNear = 0
protected

◆ mProjectionMatrix

glm::mat4 foray::scene::ncomp::Camera::mProjectionMatrix = glm::mat4(1)
protected

◆ mUpDirection

glm::vec3 foray::scene::ncomp::Camera::mUpDirection = glm::vec3(0.f, 1.f, 0.f)
protected

◆ mVerticalFov

float foray::scene::ncomp::Camera::mVerticalFov = 0
protected

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