Capycore Engine  0.1.0
A simple and lightweight game engine written in C++ based on the Unity API architecture.
Loading...
Searching...
No Matches
UIObject Class Reference

Base class for all UI objects. More...

#include <ui_object.h>

Inheritance diagram for UIObject:
[legend]

Public Member Functions

 UIObject (Scene &scene, float width, float height, Point pivot, Point anchor)
 
virtual void update (float dt)
 Update the UI object.
 
virtual void render () const
 Render the UI object.
 
float width () const
 
UIObjectwidth (float width)
 
float height () const
 
UIObjectheight (float height)
 
Point pivot () const
 
UIObjectpivot (Point pivot)
 
Point anchor () const
 
UIObjectanchor (Point anchor)
 
- Public Member Functions inherited from GameObject
 GameObject (Scene &scene)
 
virtual ~GameObject ()=default
 
 GameObject (const GameObject &)=delete
 
GameObjectoperator= (const GameObject &)=delete
 
 GameObject (GameObject &&)=default
 
GameObjectoperator= (GameObject &&)=default
 
std::optional< std::reference_wrapper< GameObject > > parent () const
 
GameObjectparent (GameObject &parent)
 
GameObjectparent (std::nullopt_t null_opt)
 
std::string id () const noexcept
 
bool is_active_in_world () const noexcept
 Retrieves whether the GameObject is active in the world.
 
bool is_active () const noexcept
 Retrieves whether the GameObject is active.
 
void set_inactive () noexcept
 
void set_active () noexcept
 
void set_active_in_world () noexcept
 
void set_inactive_in_world () noexcept
 
GameObjectmark_for_deletion () noexcept
 Marks the GameObject for deletion.
 
bool marked_for_deletion () const noexcept
 
void mark_dont_destroy_on_load (bool dont_destroy) noexcept
 Sets whether the GameObject should not be destroyed on scene load.
 
bool dont_destroy_on_load () const noexcept
 
GameObjectname (const std::string &name)
 
const std::string & name () const
 
GameObjecttag (const std::string &tag)
 
const std::string & tag () const
 
GameObjectprefab_type_id (const std::string &id)
 
const std::string & prefab_type_id () const
 
GameObjectlayer (int layer)
 
int layer () const
 
GameObjecttransform (Transform transform)
 
Transformtransform ()
 
const Transformtransform () const
 
Scenescene () const noexcept
 
void scene (Scene &scene) noexcept
 
std::vector< std::reference_wrapper< GameObject > > & children ()
 
GameObjectadd_child (GameObject &child)
 
GameObjectremove_child (GameObject &child)
 
template<IsComponent T>
std::optional< std::reference_wrapper< T > > get_component () const noexcept
 Get the first component of type T attached to this GameObject.
 
template<IsComponent T>
std::vector< std::reference_wrapper< T > > get_components () const
 Get all components of type T attached to this GameObject.
 
template<IsComponent BS, typename B >
std::optional< std::reference_wrapper< B > > get_script () const noexcept
 Get the first script component of base type BS with behavior of type B.
 
std::vector< std::reference_wrapper< Component > > get_components_all () const
 Get all components attached to this GameObject.
 
template<IsComponent T>
std::vector< std::reference_wrapper< T > > get_components_from_children () const
 Get all components of type T attached to this GameObject and its children.
 
template<IsComponent T, typename... Args>
Tadd_component (Args &&... args)
 Adds a component of type T to this GameObject.
 
template<IsComponent T>
void remove_component (T &component)
 Removes a component of type T from this GameObject.
 
void remove_all_components ()
 
void serialize (std::vector< uint8_t > &out) const
 Serialize this GameObject's own state and its components into out. The format produced is: uint16_t name_len, name bytes uint16_t tag_len, tag bytes uint8_t is_active int32_t layer uint16_t component_count for each component: uint16_t type_name_len, type_name bytes uint32_t payload_len, payload bytes.
 
void deserialize (const std::vector< uint8_t > &data, size_t &offset)
 Deserialize this GameObject's state and dispatch component payloads from data starting at offset. Implementations should advance offset by the number of bytes consumed. Subclasses overriding this method should call GameObject::deserialize first to keep base behavior.
 

Protected Attributes

float width_
 
float height_
 
Point pivot_
 
Point anchor_
 

Detailed Description

Base class for all UI objects.

UIObject represents a user interface element in the scene. It inherits from GameObject and adds properties specific to UI elements, such as width, height, pivot, and anchor points.

Note
UIObjects are intended to be used within a UI system and may have specific rendering and update logic.

Constructor & Destructor Documentation

◆ UIObject()

UIObject::UIObject ( Scene scene,
float  width,
float  height,
Point  pivot,
Point  anchor 
)

Member Function Documentation

◆ anchor() [1/2]

Point UIObject::anchor ( ) const

◆ anchor() [2/2]

UIObject & UIObject::anchor ( Point  anchor)

◆ height() [1/2]

float UIObject::height ( ) const

◆ height() [2/2]

UIObject & UIObject::height ( float  height)

◆ pivot() [1/2]

Point UIObject::pivot ( ) const

◆ pivot() [2/2]

UIObject & UIObject::pivot ( Point  pivot)

◆ render()

virtual void UIObject::render ( ) const
inlinevirtual

Render the UI object.

This should be overridden by derived classes to implement specific rendering logic.

◆ update()

virtual void UIObject::update ( float  dt)
inlinevirtual

Update the UI object.

This should be overridden by derived classes to implement specific update logic. Such as handling animations or state changes (e.g pressed, hovered, etc.).

Parameters
dtDelta time since the last update.

Reimplemented in UIButton, UIInput, UIFPS, UIImage, and UIText.

◆ width() [1/2]

float UIObject::width ( ) const

◆ width() [2/2]

UIObject & UIObject::width ( float  width)

Member Data Documentation

◆ anchor_

Point UIObject::anchor_
protected

◆ height_

float UIObject::height_
protected

◆ pivot_

Point UIObject::pivot_
protected

◆ width_

float UIObject::width_
protected

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