2#include "../definitions.hpp"
3#include "../../services/services.hpp"
4#include "../../utils/utils.hpp"
6#include "../../services/input/keycode.hpp"
9#include <cereal/types/vector.hpp>
10#include <cereal/types/memory.hpp>
30class Node :
public std::enable_shared_from_this<Node>
42 Node(
const std::string &
name =
"Node");
48 void setWindow(std::shared_ptr<Window> window);
51 void addChild(std::shared_ptr<Node> child);
65 return std::dynamic_pointer_cast<T>(
components[i]);
73 virtual void update(
float deltaTime);
78 virtual void exit()
const;
80 template <
class Archive>
81 void save(Archive &ar)
const
86 template <
class Archive>
100 child->parent =
this;
109 std::shared_ptr<Window> window;
Definition graphics.hpp:26
virtual void update(float deltaTime)
Definition node.cpp:96
std::shared_ptr< Node > getChild(std::string name)
Definition node.cpp:196
void addChild(std::shared_ptr< Node > child)
Definition node.cpp:36
void removeComponent(std::shared_ptr< Component > component)
Definition node.cpp:68
Transform transform
Definition node.hpp:34
std::shared_ptr< Window > getWindow()
Definition node.cpp:236
std::shared_ptr< Component > getComponentByIndex(int index)
Definition node.cpp:217
std::vector< std::shared_ptr< Node > > children
Definition node.hpp:39
Transform globalTransform
Definition node.hpp:35
void addComponent(std::shared_ptr< Component > component)
Definition node.cpp:60
virtual void postLoad()
Definition node.cpp:181
void save(Archive &ar) const
Definition node.hpp:81
virtual void exit() const
Definition node.cpp:119
virtual void input(InputEvent &event)
Definition node.cpp:168
void load(Archive &ar)
Definition node.hpp:87
std::shared_ptr< T > getComponent()
Definition node.hpp:60
virtual ~Node()
Definition node.cpp:16
std::string name
Definition node.hpp:33
virtual void initialize()
Definition node.cpp:145
Node * getOwner()
Definition node.cpp:226
void removeChild(std::shared_ptr< Node > child)
Definition node.cpp:46
virtual void physicsUpdate() const
Definition node.cpp:132
std::shared_ptr< Node > getChildByIndex(int index)
Definition node.cpp:208
void setWindow(std::shared_ptr< Window > window)
Definition node.cpp:251
void free()
Definition node.cpp:24
Node * parent
Definition node.hpp:37
std::vector< std::shared_ptr< Component > > components
Definition node.hpp:40
virtual void render(Graphics &graphics, Engine *engine, std::shared_ptr< Window > window) const
Definition node.cpp:80
Definition definitions.hpp:64