Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
Fields

Field helper types. More...

Collaboration diagram for Fields:

Classes

struct  flecs::untyped_field
 Unsafe wrapper class around a field. More...
 
struct  flecs::field< T >
 Wrapper class around a field. More...
 

Functions

 flecs::untyped_field::untyped_field (void *array, size_t size, size_t count, bool is_shared=false)
 
void * flecs::untyped_field::operator[] (size_t index) const
 Return element in component array.
 
 flecs::field< T >::field (T *array, size_t count, bool is_shared=false)
 Create field from component array.
 
 flecs::field< T >::field (iter &iter, int field)
 Create field from iterator.
 
T & flecs::field< T >::operator[] (size_t index) const
 Return element in component array.
 
T & flecs::field< T >::operator* () const
 Return first element of component array.
 
T * flecs::field< T >::operator-> () const
 Return first element of component array.
 

Variables

void * flecs::untyped_field::m_data
 
size_t flecs::untyped_field::m_size
 
size_t flecs::untyped_field::m_count
 
bool flecs::untyped_field::m_is_shared
 
T * flecs::field< T >::m_data
 
size_t flecs::field< T >::m_count
 
bool flecs::field< T >::m_is_shared
 

Detailed Description

Field helper types.

Function Documentation

◆ field() [1/2]

template<typename T >
flecs::field< T >::field ( iter & iter,
int field )

Create field from iterator.

Parameters
iterIterator object.
fieldIndex of the signature of the query being iterated over.

◆ field() [2/2]

template<typename T >
flecs::field< T >::field ( T * array,
size_t count,
bool is_shared = false )
inline

Create field from component array.

Parameters
arrayPointer to the component array.
countNumber of elements in component array.
is_sharedIs the component shared or not.

Definition at line 71 of file field.hpp.

◆ operator*()

template<typename T >
T & flecs::field< T >::operator* ( ) const

Return first element of component array.

This operator is typically used when the field is shared.

Returns
Reference to the first element.

Definition at line 36 of file field.hpp.

◆ operator->()

template<typename T >
T * flecs::field< T >::operator-> ( ) const

Return first element of component array.

This operator is typically used when the field is shared.

Returns
Pointer to the first element.

Definition at line 49 of file field.hpp.

◆ operator[]() [1/2]

void * flecs::untyped_field::operator[] ( size_t index) const
inline

Return element in component array.

This operator may only be used if the field is not shared.

Parameters
indexIndex of element.
Returns
Reference to element.

Definition at line 39 of file field.hpp.

◆ operator[]() [2/2]

template<typename T >
T & flecs::field< T >::operator[] ( size_t index) const

Return element in component array.

This operator may only be used if the field is not shared.

Parameters
indexIndex of element.
Returns
Reference to element.

Definition at line 17 of file field.hpp.

◆ untyped_field()

flecs::untyped_field::untyped_field ( void * array,
size_t size,
size_t count,
bool is_shared = false )
inline

Definition at line 27 of file field.hpp.

Variable Documentation

◆ m_count [1/2]

size_t flecs::untyped_field::m_count
protected

Definition at line 50 of file field.hpp.

◆ m_count [2/2]

template<typename T >
size_t flecs::field< T >::m_count
protected

Definition at line 107 of file field.hpp.

◆ m_data [1/2]

void* flecs::untyped_field::m_data
protected

Definition at line 48 of file field.hpp.

◆ m_data [2/2]

template<typename T >
T* flecs::field< T >::m_data
protected

Definition at line 106 of file field.hpp.

◆ m_is_shared [1/2]

bool flecs::untyped_field::m_is_shared
protected

Definition at line 51 of file field.hpp.

◆ m_is_shared [2/2]

template<typename T >
bool flecs::field< T >::m_is_shared
protected

Definition at line 108 of file field.hpp.

◆ m_size

size_t flecs::untyped_field::m_size
protected

Definition at line 49 of file field.hpp.