Loading [MathJax]/extensions/TeX/AMSsymbols.js
Radium Engine  1.5.29
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DefaultCameraManager.cpp
1#include <Engine/Scene/DefaultCameraManager.hpp>
2
3#include <Engine/RadiumEngine.hpp>
4#include <Engine/Scene/CameraComponent.hpp>
5
6#include <algorithm>
7
8namespace Ra {
9namespace Engine {
10namespace Scene {
11
12DefaultCameraManager::DefaultCameraManager() {
13 m_data = std::make_unique<DefaultCameraStorage>();
14}
15
17 return ( *m_data )[cam];
18}
19
23
24DefaultCameraStorage::DefaultCameraStorage() = default;
25
27 // m_data.emplace( cam->getType(), cam );
28 m_data.push_back( cam );
29}
30
32 // auto range = m_data.equal_range( cam->getType() );
33 // for ( auto i = range.first; i != range.second; ++i )
34 // {
35 // if ( i->second == cam )
36 // {
37 // m_data.erase( i );
38 // break;
39 // }
40 // }
41 auto itr = std::find( m_data.begin(), m_data.end(), cam );
42 if ( itr != m_data.end() ) m_data.erase( itr );
43}
44
46 return m_data.size();
47}
48
50 m_data.clear();
51}
52
54
55 // auto iterator = m_data.begin();
56 // std::advance( iterator, n );
57 // return iterator->second;
58 return m_data[n];
59}
60
61} // namespace Scene
62} // namespace Engine
63} // namespace Ra
std::unique_ptr< CameraStorage > m_data
Stores the object that stores the Cameras...
void registerComponent(const Entity *entity, Component *component) final
virtual Entity * getEntity() const
Return the entity the component belongs to.
Definition Component.hpp:53
const CameraComponent * getCamera(size_t cam) const override
Return the cam-th camera.
void addCamera(CameraComponent *cam) override
Add cam for management.
void clear() override
Clear the container.
size_t size() const override
Returns the container size.
void remove(CameraComponent *cam) override
Remove a Camera from the container.
void add(CameraComponent *cam) override
Add a Camera to the container.
CameraComponent * operator[](unsigned int n) override
Access the container.
T find(T... args)
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:4