SDEngine
Game Engine
Loading...
Searching...
No Matches
sd::SparseEntitySet< T > Struct Template Reference

#include <SparseEntitySet.hpp>

+ Collaboration diagram for sd::SparseEntitySet< T >:

Public Member Functions

void ensure_page (USize page)
 
template<typename... Args>
void add (Entity entity, Args &&... args)
 
bool remove (Entity entity)
 
T * get (Entity entity)
 
const T * get (Entity entity) const
 
T * operator[] (Entity idx)
 
const ArenaVec< Entity > & get_dense_entities () const
 
USize size () const
 
void clear ()
 
void serialize_to (std::vector< char > &out) const
 
void deserialize_from (const std::vector< char > &data)
 
void serialize (Serializer &s) const
 
void deserialize (Serializer &s)
 

Public Attributes

Arenaarena = nullptr
 
USize ** sparse_pages = nullptr
 
U64 sparse_count = 0
 
U64 sparse_cap = 0
 
ArenaVec< T > dense_data
 
ArenaVec< Entitydense_entities
 

Static Public 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
 

Member Function Documentation

◆ add()

template<typename T >
template<typename... Args>
void sd::SparseEntitySet< T >::add ( Entity  entity,
Args &&...  args 
)
inline

◆ clear()

template<typename T >
void sd::SparseEntitySet< T >::clear ( )
inline

◆ deserialize()

template<typename T >
void sd::SparseEntitySet< T >::deserialize ( Serializer s)
inline

◆ deserialize_from()

template<typename T >
void sd::SparseEntitySet< T >::deserialize_from ( const std::vector< char > &  data)
inline

◆ ensure_page()

template<typename T >
void sd::SparseEntitySet< T >::ensure_page ( USize  page)
inline

◆ get() [1/2]

template<typename T >
T * sd::SparseEntitySet< T >::get ( Entity  entity)
inline

◆ get() [2/2]

template<typename T >
const T * sd::SparseEntitySet< T >::get ( Entity  entity) const
inline

◆ get_dense_entities()

template<typename T >
const ArenaVec< Entity > & sd::SparseEntitySet< T >::get_dense_entities ( ) const
inline

◆ operator[]()

template<typename T >
T * sd::SparseEntitySet< T >::operator[] ( Entity  idx)
inline

◆ remove()

template<typename T >
bool sd::SparseEntitySet< T >::remove ( Entity  entity)
inline

◆ serialize()

template<typename T >
void sd::SparseEntitySet< T >::serialize ( Serializer s) const
inline

◆ serialize_to()

template<typename T >
void sd::SparseEntitySet< T >::serialize_to ( std::vector< char > &  out) const
inline

◆ size()

template<typename T >
USize sd::SparseEntitySet< T >::size ( ) const
inline

Friends And Related Symbol Documentation

◆ RuntimeStateManager

Member Data Documentation

◆ arena

template<typename T >
Arena* sd::SparseEntitySet< T >::arena = nullptr

◆ dense_data

template<typename T >
ArenaVec<T> sd::SparseEntitySet< T >::dense_data

◆ dense_entities

template<typename T >
ArenaVec<Entity> sd::SparseEntitySet< T >::dense_entities

◆ MASK

template<typename T >
constexpr USize sd::SparseEntitySet< T >::MASK = PAGE_SIZE - 1
staticconstexpr

◆ PAGE_SIZE

template<typename T >
constexpr USize sd::SparseEntitySet< T >::PAGE_SIZE = 1024
staticconstexpr

◆ SHIFT

template<typename T >
constexpr USize sd::SparseEntitySet< T >::SHIFT = math::log2_int(PAGE_SIZE)
staticconstexpr

◆ sparse_cap

template<typename T >
U64 sd::SparseEntitySet< T >::sparse_cap = 0

◆ sparse_count

template<typename T >
U64 sd::SparseEntitySet< T >::sparse_count = 0

◆ sparse_pages

template<typename T >
USize** sd::SparseEntitySet< T >::sparse_pages = nullptr

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