turbo::GameObject Class Referencefinal

Basic scene object. More...

#include <GameObject.hpp>

+ Inheritance diagram for turbo::GameObject:
+ Collaboration diagram for turbo::GameObject:

Public Member Functions

 GameObject (GameObject *parent, std::string name)
 Construct a new GameObject object. More...
 
void add_component (Component *comp)
 Add a component to the GameObject. More...
 
void remove_component (Component *comp)
 Remove a component to the GameObject. More...
 
unsigned short get_component_amount () const
 
void render (void *transform)
 
void update (int delta_time)
 
void set_drawable (Drawable *drawable)
 
Drawableget_drawable () const
 
std::string get_name () const
 
template<typename T , typename = std::enable_if_t<std::is_base_of_v<Component, T>>>
T * get_component ()
 Get the component object. More...
 
- Public Member Functions inherited from turbo::Transform
 Transform (const Vector2< float > &position, float angle=0, const Vector2< float > &scale=Vector2< float >(1, 1), const Vector2< int > &center=Vector2< int >())
 
 Transform (float x, float y=0, int scaleX=1, int scaleY=1, float angle=0, int centerX=0, int centerY=0)
 
void translate (float x, float y)
 Translate the object in 2D. More...
 
void translate (const Vector2< float > &offset)
 Translate the object in 22. More...
 
void set_position (float x, float y)
 Set the position of the object. More...
 
void set_position (const Vector2< float > &pos)
 Set the position of the object. More...
 
void rotate (float deg)
 Rotate the current object by deg degrees. More...
 
void set_rotation (float deg)
 Set the rotation of the object. More...
 
void set_center (int x, int y)
 Set the center of rotation of the object (Start in 0,0 , position in pixel) More...
 
void set_center (const Vector2< int > &center)
 Set the center of rotation of the object (Start in 0,0 , position in pixel) More...
 
void set_scale (const Vector2< float > &scale)
 Set the scale of the object (base scale == 1.0) More...
 
void set_scale (float scale_x, float scale_y)
 Set the scale of the object (base scale == 1.0) More...
 
const Vector2< float > & get_position () const
 
const Vector2< float > & get_scale () const
 
const Vector2< int > & get_center () const
 
float get_angle () const
 

Public Attributes

bool show = true
 
std::vector< GameObject * > childs {}
 
std::vector< Component * > components {}
 

Additional Inherited Members

- Protected Member Functions inherited from turbo::Transform
ALLEGRO_TRANSFORM * get_transformer ()
 
- Protected Attributes inherited from turbo::Transform
float angle = 0
 angle of the object More...
 
Vector2< float > position = Vector2<float>()
 
Vector2< float > scale = Vector2<float>(1, 1)
 
Vector2< int > center = Vector2<int>()
 
ALLEGRO_TRANSFORM * transform = new ALLEGRO_TRANSFORM()
 
bool property_has_changed = true
 
- Static Protected Attributes inherited from turbo::Transform
static ALLEGRO_TRANSFORM default_transform = ALLEGRO_TRANSFORM()
 

Detailed Description

Basic scene object.

Constructor & Destructor Documentation

◆ GameObject()

turbo::GameObject::GameObject ( GameObject parent,
std::string  name 
)
explicit

Construct a new GameObject object.

Parameters
parentparent GameObject or null if root node
nameGameObject name

Member Function Documentation

◆ add_component()

void turbo::GameObject::add_component ( Component comp)

Add a component to the GameObject.

Parameters
compcomponent instance

◆ get_component()

template<typename T , typename = std::enable_if_t<std::is_base_of_v<Component, T>>>
T* turbo::GameObject::get_component ( )
inline

Get the component object.

Template Parameters
TType of component
Returns
T* instance of the component

◆ remove_component()

void turbo::GameObject::remove_component ( Component comp)

Remove a component to the GameObject.

Parameters
compcomponent instance

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