|
SDEngine
Game Engine
|
#include <SparseEntitySet.hpp>
Inheritance diagram for sd::SparseEntitySet< T >:
Collaboration diagram for sd::SparseEntitySet< T >:Public Member Functions | |
| template<typename... Args> | |
| void | add (Entity entity, Args &&... args) |
| bool | remove (Entity entity) override |
| T * | get (Entity entity) |
| const T * | get (Entity entity) const |
| std::optional< ComponentDebugInfo > | get_debug_info (Entity e) override |
| T * | operator[] (const Entity idx) |
| const std::vector< Entity > & | get_dense_entities () const |
| usize | size () const |
| void | serialize_to (std::vector< char > &out) const |
| void | deserialize_from (const std::vector< char > &data) |
| void | serialize (Serializer &s) const override |
| void | deserialize (Serializer &s) override |
| template<typename... Args> | |
| void | add (Entity entity, Args &&... args) |
Public Member Functions inherited from sd::SparseEntitySetBase | |
| ~SparseEntitySetBase () override=default | |
Public Member Functions inherited from sd::Serializable | |
| virtual | ~Serializable ()=default |
Private Member Functions | |
| void | ValidateInvariants () const |
Private Attributes | |
| std::vector< std::unique_ptr< usize[]> > | sparse |
| std::vector< T > | dense_data |
| std::vector< Entity > | dense_entities |
Static Private Attributes | |
| static constexpr usize | PAGE_SIZE = 1024 |
| static constexpr usize | SHIFT = math::log2_int(PAGE_SIZE) |
| static constexpr usize | MASK = PAGE_SIZE - 1 |
Friends | |
| class | RuntimeStateManager |
Sparse -> Dense set for enitities.
| T | Data associated, for instance component structs |
| void sd::SparseEntitySet< T >::add | ( | Entity | entity, |
| Args &&... | args | ||
| ) |
| void sd::SparseEntitySet< T >::add | ( | Entity | entity, |
| Args &&... | args | ||
| ) |
|
inlineoverridevirtual |
Implements sd::Serializable.
|
inline |
Retrieve data for this entity
| entity |
| const T * sd::SparseEntitySet< T >::get | ( | Entity | entity | ) | const |
|
overridevirtual |
Implements sd::SparseEntitySetBase.
|
inline |
|
inline |
Remove an entity from the set
| entity | Entity to remove |
Implements sd::SparseEntitySetBase.
|
inlineoverridevirtual |
Implements sd::Serializable.
|
inline |
|
inline |
|
inlineprivate |
|
friend |
|
private |
|
private |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
staticconstexprprivate |
|
private |