Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_cameramanager.hpp
Go to the documentation of this file.
1#pragma once
2#include "../../util/foray_managedubo.hpp"
3#include "../foray_camerauboblock.hpp"
4#include "../foray_component.hpp"
5#include "../foray_scene_declares.hpp"
6#include <unordered_set>
7
8namespace foray::scene::gcomp {
9
12 {
13 public:
15
16 inline VkDescriptorBufferInfo GetVkDescriptorInfo() const { return mUbo.GetVkDescriptorBufferInfo(); }
17
19 virtual void RefreshCameraList();
20 virtual void SelectCamera(ncomp::Camera* camera);
21 virtual ~CameraManager();
22
23 virtual void Update(SceneUpdateInfo& updateInfo) override;
24
25 virtual int32_t GetOrder() const override { return ORDER_DEVICEUPLOAD; }
26
27 void GetCameras(std::vector<ncomp::Camera*>& cameras);
28
29 FORAY_GETTER_V(SelectedCamera)
30
31 protected:
33
34 std::unordered_set<ncomp::Camera*> mCameras;
35
37
39 };
40} // namespace foray::scene
Base class for implementing the update callback.
Definition foray_component.hpp:19
static const int32_t ORDER_DEVICEUPLOAD
Definition foray_component.hpp:29
Definition foray_component.hpp:95
Manages the Camera matrix buffer and maintains a list of cameras in the scene.
Definition foray_cameramanager.hpp:12
void GetCameras(std::vector< ncomp::Camera * > &cameras)
virtual void Update(SceneUpdateInfo &updateInfo) override
VkDescriptorBufferInfo GetVkDescriptorInfo() const
Definition foray_cameramanager.hpp:16
std::unordered_set< ncomp::Camera * > mCameras
Definition foray_cameramanager.hpp:34
virtual void SelectCamera(ncomp::Camera *camera)
util::ManagedUbo< CameraUboBlock > mUbo
Definition foray_cameramanager.hpp:32
CameraManager(core::Context *context)
virtual int32_t GetOrder() const override
Definition foray_cameramanager.hpp:25
ncomp::Camera * mSelectedCamera
Definition foray_cameramanager.hpp:36
Defines a camera with projection matrix.
Definition foray_camera.hpp:10
Template class for managing a UBO. For Host -> Device synchronization this utilises a DualBuffer.
Definition foray_managedubo.hpp:42
#define FORAY_GETTER_V(member)
Return value.
Definition foray_basics.hpp:39
#define FORAY_GETTER_CR(member)
Return constant reference.
Definition foray_basics.hpp:60
Definition foray_scene_declares.hpp:16
Non owning context object.
Definition foray_context.hpp:16
Temporary type passed to components when updating the scene.
Definition foray_scenedrawing.hpp:49