Loading [MathJax]/jax/input/TeX/config.js
Radium Engine  1.5.26
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SignalManager.cpp
1#include <Core/CoreMacros.hpp>
2#include <Engine/Scene/ItemEntry.hpp>
3#include <Engine/Scene/SignalManager.hpp>
4
5namespace Ra {
6namespace Engine {
7namespace Scene {
8
10 return m_entityCreatedCallbacks;
11}
12
13SignalManager::ItemObservable& SignalManager::getEntityDestroyedNotifier() {
14 return m_entityDestroyedCallbacks;
15}
16
17SignalManager::ItemObservable& SignalManager::getComponentCreatedNotifier() {
18 return m_componentAddedCallbacks;
19}
20
21SignalManager::ItemObservable& SignalManager::getComponentDestroyedNotifier() {
22 return m_componentRemovedCallbacks;
23}
24
25SignalManager::ItemObservable& SignalManager::getRenderObjectCreatedNotifier() {
26 return m_roAddedCallbacks;
27}
28
29SignalManager::ItemObservable& SignalManager::getRenderObjectDestroyedNotifier() {
30 return m_roRemovedCallbacks;
31}
32
33SignalManager::FrameObservable& SignalManager::getEndFrameNotifier() {
34 return m_frameEndCallbacks;
35}
36
37void SignalManager::fireEntityCreated( const ItemEntry& entity ) const {
38 CORE_ASSERT( entity.isEntityNode(), "Invalid entry" );
39 notify<const ItemEntry&>( m_entityCreatedCallbacks, entity );
40}
41
42void SignalManager::fireEntityDestroyed( const ItemEntry& entity ) const {
43 CORE_ASSERT( entity.isEntityNode(), "Invalid entry" );
44 notify<const ItemEntry&>( m_entityDestroyedCallbacks, entity );
45}
46
47void SignalManager::fireComponentAdded( const ItemEntry& component ) const {
48 CORE_ASSERT( component.isComponentNode(), "Invalid entry" );
49 notify<const ItemEntry&>( m_componentAddedCallbacks, component );
50}
51
52void SignalManager::fireComponentRemoved( const ItemEntry& component ) const {
53 CORE_ASSERT( component.isComponentNode(), "Invalid entry" );
54 notify<const ItemEntry&>( m_componentRemovedCallbacks, component );
55}
56
58 CORE_ASSERT( ro.isRoNode(), "Invalid entry" );
59 notify<const ItemEntry&>( m_roAddedCallbacks, ro );
60}
62 CORE_ASSERT( ro.isRoNode(), "Invalid entry" );
63 notify<const ItemEntry&>( m_roRemovedCallbacks, ro );
64}
65
67 notify<>( m_frameEndCallbacks );
68}
69
70} // namespace Scene
71} // namespace Engine
72} // namespace Ra
void fireEntityDestroyed(const ItemEntry &entity) const
Notifies all observers of an entity removal.
ItemObservable & getEntityCreatedNotifier()
void fireRenderObjectRemoved(const ItemEntry &ro) const
Notifies all observers of a render object removal.
Ra::Core::Utils::Observable<> FrameObservable
Type for frame observable.
void fireComponentAdded(const ItemEntry &component) const
Notifies all observers of a component creation.
void fireEntityCreated(const ItemEntry &entity) const
Notifies all observers of an entity creation.
void fireComponentRemoved(const ItemEntry &component) const
Notifies all observers of a component removal.
void fireRenderObjectAdded(const ItemEntry &ro) const
Notifies all observers of a render object creation.
void fireFrameEnded() const
Notifies all observers of a end of frame event.
Ra::Core::Utils::Observable< const ItemEntry & > ItemObservable
Type for item (entity, component or render object) observable.
hepler function to manage enum as underlying types in VariableSet
Definition Cage.cpp:4
bool isComponentNode() const
Returns true if the item represents a component.
Definition ItemEntry.hpp:84
bool isEntityNode() const
Returns true if the item represents an entity.
Definition ItemEntry.hpp:79
bool isRoNode() const
Returns true if the item represents a render object.
Definition ItemEntry.hpp:89