19class Scene :
public std::enable_shared_from_this<Scene>
24 template <CLASS_INHERITS( SceneT, ga::Scene )>
25 static std::shared_ptr<SceneT>
create();
26 static std::shared_ptr<Scene>
create() {
return Scene::create<Scene>(); }
34 template <CLASS_INHERITS( NodeT, ga::Node )>
35 std::shared_ptr<NodeT>
addNode( std::shared_ptr<NodeT> child =
nullptr );
36 std::shared_ptr<ga::Node>
addNode();
41 bool hasNode( std::shared_ptr<Node> node );
44 std::vector<std::shared_ptr<Node>>
getNodes();
45 void forEachNode( std::function<
void( std::shared_ptr<Node> )> fn );
47 void setName(
const std::string& name );
85template <
class SceneT,
typename>
88 auto scene = std::shared_ptr<SceneT>(
new SceneT() );
93template <
class NodeT,
typename>
94std::shared_ptr<NodeT>
Scene::addNode( std::shared_ptr<NodeT> node )
void drawTree()
Definition: node.cpp:219
void setScene(std::shared_ptr< Scene > scene)
Definition: node.cpp:265
size_t getSceneDrawIndex() const
Definition: node.cpp:103
Scene is a view controller.
Definition: scene.h:20
virtual void update()
Definition: scene.cpp:21
Signal< KeyEvent & > onKeyEvent
Definition: scene.h:55
Signal< MouseEvent & > onMouseEvent
Definition: scene.h:56
bool hasNode(std::shared_ptr< Node > node)
Definition: scene.cpp:47
ga::TimeoutManager m_timeoutManager
Definition: scene.h:77
void clearNodes()
Definition: scene.cpp:42
virtual void draw()
Definition: scene.cpp:27
void updateNodes()
Definition: scene.cpp:99
size_t nextDrawIndex(std::shared_ptr< Node > node)
Definition: scene.cpp:112
bool removeNode(std::shared_ptr< Node > node)
Definition: scene.cpp:37
void setName(const std::string &name)
Definition: scene.cpp:69
std::shared_ptr< ga::Node > addNode()
Definition: scene.cpp:32
virtual void handleMouseEvent(MouseEvent &mouseEvent)
Definition: scene.cpp:79
Scene()
Definition: scene.cpp:5
std::string m_name
Definition: scene.h:75
Signal< TouchEvent & > onTouchEvent
Definition: scene.h:57
void drawNodes()
Definition: scene.cpp:105
std::shared_ptr< Node > m_rootNode
Definition: scene.h:76
virtual void handleTouchEvent(TouchEvent &touchEvent)
Definition: scene.cpp:85
static std::shared_ptr< Scene > create()
Definition: scene.h:26
std::vector< std::weak_ptr< Node > > m_drawnNodes
Definition: scene.h:79
void forEachNode(std::function< void(std::shared_ptr< Node >)> fn)
Definition: scene.cpp:62
virtual ~Scene()
Definition: scene.cpp:10
std::shared_ptr< NodeT > addNode(std::shared_ptr< NodeT > child=nullptr)
std::vector< std::shared_ptr< Node > > getNodes()
Definition: scene.cpp:57
std::shared_ptr< Node > getRootNode()
Definition: scene.cpp:52
virtual void setup()
Definition: scene.cpp:15
void forceAssignDrawIndices()
Definition: scene.cpp:120
static std::shared_ptr< SceneT > create()
const std::string & getName()
Definition: scene.cpp:74
virtual void handleKeyEvent(KeyEvent &keyEvent)
Definition: scene.cpp:91
Definition: sigslot.hpp:1134