esp::gfx::DrawableGroup class

Group of drawables, and shared group parameters.

Constructors, destructors, conversion operators

~DrawableGroup() override

Public functions

auto add(Drawable& drawable) -> DrawableGroup&
Add a drawable to the group.
auto remove(Drawable& drawable) -> DrawableGroup&
Remove a drawable from the group.
auto hasDrawable(uint64_t id) const -> bool
Given drawable id, returns if drawable is in the group.
auto getDrawable(uint64_t id) const -> Drawable*
Given drawable id, returns nullptr if the id is not in this drawable group, otherwise the raw pointer to the object.
auto prepareForDraw(const RenderCamera&) -> bool virtual
Prepare to draw group with given RenderCamera.

Protected functions

auto registerDrawable(Drawable& drawable) -> bool
Add the drawable to the lookup table, and update the state in the drawable.
auto unregisterDrawable(Drawable& drawable) -> bool
Remove the drawable from the lookup table, and update the state in the drawable.

Protected variables

std::unordered_map<uint64_t, Drawable*> idToDrawable_

Function documentation

DrawableGroup& esp::gfx::DrawableGroup::add(Drawable& drawable)

Add a drawable to the group.

Returns Reference to self (for method chaining)

If the drawable is part of another group, it is removed from it.

DrawableGroup& esp::gfx::DrawableGroup::remove(Drawable& drawable)

Remove a drawable from the group.

Returns Reference to self (for method chaining)

The feature must be part of the group.

bool esp::gfx::DrawableGroup::hasDrawable(uint64_t id) const

Given drawable id, returns if drawable is in the group.

Parameters
id drawable id
Returns true if the drawable is in the group, otherwise false

Drawable* esp::gfx::DrawableGroup::getDrawable(uint64_t id) const

Given drawable id, returns nullptr if the id is not in this drawable group, otherwise the raw pointer to the object.

Parameters
id drawable id
Returns raw pointer to the drawable, or nullptr

bool esp::gfx::DrawableGroup::prepareForDraw(const RenderCamera&) virtual

Prepare to draw group with given RenderCamera.

Returns Whether the DrawableGroup is in a valid state to be drawn

bool esp::gfx::DrawableGroup::registerDrawable(Drawable& drawable) protected

Add the drawable to the lookup table, and update the state in the drawable.

Returns return true, if the drawable was newly registered, otherwise false

bool esp::gfx::DrawableGroup::unregisterDrawable(Drawable& drawable) protected

Remove the drawable from the lookup table, and update the state in the drawable.

Returns return true, if the drawable was in the group, otherwise false

Variable documentation

std::unordered_map<uint64_t, Drawable*> esp::gfx::DrawableGroup::idToDrawable_ protected

a lookup table, that maps a drawable id to the drawable object