2 #include "../systems/input_manager.h"
3 #include "../systems/logging_sys.h"
44 void rotate(
float radians);
46 void scale(
float sx,
float sy);
64 virtual void process(
double delta_time);
78 [[nodiscard]]
const std::string&
get_name()
const;
101 Node2D* _parent =
nullptr;
106 template <
typename T>
108 if (
auto self_as_t =
dynamic_cast<T*
>(
this)) {
112 for (
auto& [name, child] : _nodes) {
113 if (
auto val =
dynamic_cast<T*
>(child)) {
118 for (
auto& [name, child] : _nodes) {
119 if (
auto val = child->get_node<T>()) {
124 LOG_WARN(
"Node of requested type %s was not found.",
typeid(T).name());
2D Node base class for scene graph.
Definition: node.h:25
void change_visibility(bool visible)
Definition: node.cpp:153
int get_effective_z_index() const
Definition: node.cpp:31
virtual void ready()
Definition: node.cpp:157
bool _is_visible
Definition: node.h:95
HashMap< std::string, Node2D * > & get_tree()
Definition: node.cpp:144
virtual void draw(Renderer *renderer)
Definition: node.cpp:189
Transform2D _transform
Definition: node.h:89
void print_tree(int indent=0) const
Definition: node.cpp:38
void rotate(float radians)
Definition: node.cpp:8
virtual void draw_hierarchy()
Definition: node.cpp:256
int _z_index
Definition: node.h:93
std::string _name
Definition: node.h:91
virtual void draw_inspector()
Definition: node.cpp:210
virtual void process(double delta_time)
Definition: node.cpp:171
bool is_visible() const
Definition: node.cpp:130
Transform2D get_transform() const
Definition: node.cpp:65
void add_child(const std::string &base_name, Node2D *node)
Definition: node.cpp:85
void translate(float dx, float dy)
Definition: node.cpp:4
void set_transform(const Transform2D &transform)
Definition: node.cpp:69
Node2D(std::string name)
Definition: node.h:29
const std::string & get_name() const
Definition: node.cpp:126
void set_z_index(int index)
Definition: node.cpp:18
bool _is_ready
Definition: node.h:97
bool is_alive() const
Definition: node.cpp:148
void queue_free()
Definition: node.cpp:306
Transform2D get_global_transform() const
Definition: node.cpp:50
virtual ~Node2D()
Definition: node.cpp:74
T * get_node()
Definition: node.h:107
bool _to_free
Definition: node.h:99
int get_z_index() const
Definition: node.cpp:27
virtual void input(const InputManager *input)
Definition: node.cpp:199
bool is_effective_visible() const
Definition: node.cpp:134
void scale(float sx, float sy)
Definition: node.cpp:12
Base class for all renderers.
Definition: ember_core.h:109
std::unordered_map< K, V > HashMap
Definition: imports.h:12
#define LOG_WARN(...)
WARNING logging.
Definition: logging_sys.h:120
Node2D * g_selected_node
Definition: node.h:130