Radium Engine  1.5.0
DefaultCameraManager.hpp
1 #pragma once
2 
3 #include <Core/Asset/Camera.hpp>
4 #include <Engine/Scene/CameraComponent.hpp>
5 #include <Engine/Scene/CameraManager.hpp>
6 #include <Engine/Scene/CameraStorage.hpp>
7 #include <memory>
8 #include <vector>
9 
10 namespace Ra {
11 namespace Engine {
12 namespace Scene {
13 
17 class RA_ENGINE_API DefaultCameraStorage : public CameraStorage
18 {
19  public:
21  void add( CameraComponent* cam ) override;
22  void remove( CameraComponent* cam ) override;
23  size_t size() const override;
24  void clear() override;
25  CameraComponent* operator[]( unsigned int n ) override;
26 
27  private:
29  // std::multmmap<Ra::Core::Asset::Camera::ProjType, CameraComponent*> m_data;
30  std::vector<CameraComponent*> m_data;
31 };
32 
36 class RA_ENGINE_API DefaultCameraManager : public CameraManager
37 {
38  public:
40 
42  const CameraComponent* getCamera( size_t cam ) const override;
43 
45  void addCamera( CameraComponent* cam ) override;
46 };
47 
48 } // namespace Scene
49 } // namespace Engine
50 } // namespace Ra
DefaultCameraManager. A simple Camera Manager with a list of Cameras.
Definition: Cage.cpp:3