Ember
A C++ 20 'game engine' built with SDL3 with wide platform support.
Public Member Functions | Protected Attributes | List of all members
Node2D Class Reference

2D Node base class for scene graph. More...

#include <node.h>

Inheritance diagram for Node2D:
Camera2D Circle2D Label PhysicsObject2D Polygon2D Sprite2D RigidBody2D

Public Member Functions

 Node2D ()
 
 Node2D (std::string name)
 
void set_z_index (int index)
 
int get_z_index () const
 
int get_effective_z_index () const
 
void print_tree (int indent=0) const
 
void change_visibility (bool visible)
 
void translate (float dx, float dy)
 
void rotate (float radians)
 
void scale (float sx, float sy)
 
Transform2D get_global_transform () const
 
Transform2D get_transform () const
 
void set_transform (const Transform2D &transform)
 
void add_child (const std::string &base_name, Node2D *node)
 
Node2Dget_node (const std::string &path)
 
template<typename T >
T * get_node ()
 
virtual void ready ()
 
virtual void process (double delta_time)
 
virtual void draw (Renderer *renderer)
 
virtual void input (const InputManager *input)
 
virtual void draw_inspector ()
 
virtual void draw_hierarchy ()
 
void queue_free ()
 
virtual ~Node2D ()
 
const std::string & get_name () const
 
bool is_visible () const
 
bool is_effective_visible () const
 
HashMap< std::string, Node2D * > & get_tree ()
 
bool is_alive () const
 

Protected Attributes

Transform2D _transform = {}
 
std::string _name = "Node"
 
int _z_index = 0
 
bool _is_visible = true
 
bool _is_ready = false
 
bool _to_free = false
 

Detailed Description

2D Node base class for scene graph.

Version
0.5.0

Constructor & Destructor Documentation

◆ Node2D() [1/2]

Node2D::Node2D ( )
default

◆ Node2D() [2/2]

Node2D::Node2D ( std::string  name)
inlineexplicit

◆ ~Node2D()

Node2D::~Node2D ( )
virtual

Member Function Documentation

◆ add_child()

void Node2D::add_child ( const std::string &  base_name,
Node2D node 
)

◆ change_visibility()

void Node2D::change_visibility ( bool  visible)

◆ draw()

void Node2D::draw ( Renderer renderer)
virtual

◆ draw_hierarchy()

void Node2D::draw_hierarchy ( )
virtual

Reimplemented in Sprite2D, RigidBody2D, and Label.

◆ draw_inspector()

void Node2D::draw_inspector ( )
virtual

Reimplemented in Sprite2D, RigidBody2D, and Label.

◆ get_effective_z_index()

int Node2D::get_effective_z_index ( ) const

◆ get_global_transform()

Transform2D Node2D::get_global_transform ( ) const

◆ get_name()

const std::string & Node2D::get_name ( ) const

◆ get_node() [1/2]

template<typename T >
T * Node2D::get_node

◆ get_node() [2/2]

Node2D * Node2D::get_node ( const std::string &  path)

◆ get_transform()

Transform2D Node2D::get_transform ( ) const

◆ get_tree()

HashMap< std::string, Node2D * > & Node2D::get_tree ( )

◆ get_z_index()

int Node2D::get_z_index ( ) const

◆ input()

void Node2D::input ( const InputManager input)
virtual

Reimplemented in Sprite2D, RigidBody2D, and Label.

◆ is_alive()

bool Node2D::is_alive ( ) const

◆ is_effective_visible()

bool Node2D::is_effective_visible ( ) const

◆ is_visible()

bool Node2D::is_visible ( ) const

◆ print_tree()

void Node2D::print_tree ( int  indent = 0) const

◆ process()

void Node2D::process ( double  delta_time)
virtual

◆ queue_free()

void Node2D::queue_free ( )

◆ ready()

void Node2D::ready ( )
virtual

◆ rotate()

void Node2D::rotate ( float  radians)

◆ scale()

void Node2D::scale ( float  sx,
float  sy 
)

◆ set_transform()

void Node2D::set_transform ( const Transform2D transform)

◆ set_z_index()

void Node2D::set_z_index ( int  index)

◆ translate()

void Node2D::translate ( float  dx,
float  dy 
)

Member Data Documentation

◆ _is_ready

bool Node2D::_is_ready = false
protected

◆ _is_visible

bool Node2D::_is_visible = true
protected

◆ _name

std::string Node2D::_name = "Node"
protected

◆ _to_free

bool Node2D::_to_free = false
protected

◆ _transform

Transform2D Node2D::_transform = {}
protected

◆ _z_index

int Node2D::_z_index = 0
protected

The documentation for this class was generated from the following files: