21 #include "generic/generic_tree.h"
22 #include "generic/property.h"
23 #include "generic/containers/polylist.h"
24 #include "interfaces.h"
25 #include "interfaces/updateable.h"
27 #include "managers/window_holder.h"
29 #include "nodes/stage_node_pool.h"
35 typedef sig::signal<void (StageID)> StageAddedSignal;
36 typedef sig::signal<void (StageID)> StageRemovedSignal;
38 template<
typename PoolType,
typename IDType,
typename T,
typename ...Subtypes>
39 class StageNodeManager;
53 std::list<Stage*>::iterator begin();
54 std::list<Stage*>::iterator end();
68 StagePtr new_stage(AvailablePartitioner partitioner=PARTITIONER_FRUSTUM);
71 std::size_t stage_count()
const;
72 bool has_stage(
StageID stage_id)
const;
74 void fixed_update(
float dt)
override;
75 void update(
float dt)
override;
76 void late_update(
float dt)
override;
78 void destroy_all_stages();
83 void destroy_object(
Stage*
object);
84 void destroy_object_immediately(
Stage*
object);
87 void clean_destroyed_stages();