Flecs v3.1
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
flecs::entity_view Struct Reference

Entity view. More...

#include <entity_view.hpp>

Inheritance diagram for flecs::entity_view:
flecs::id flecs::entity_builder< entity > flecs::entity_builder< Self > flecs::entity flecs::observer flecs::pipeline< Components > flecs::system flecs::timer flecs::untyped_component flecs::component< T >

Public Member Functions

 entity_view (flecs::world_t *world, flecs::id_t id)
 Wrap an existing entity id. More...
 
 entity_view (entity_t id)
 Implicit conversion from flecs::entity_t to flecs::entity_view. More...
 
entity_t id () const
 Get entity id. More...
 
bool is_valid () const
 Check is entity is valid. More...
 
 operator bool () const
 
bool is_alive () const
 Check is entity is alive. More...
 
flecs::string_view name () const
 Return the entity name. More...
 
flecs::string_view symbol () const
 Return the entity symbol. More...
 
flecs::string path (const char *sep="::", const char *init_sep="::") const
 Return the entity path. More...
 
bool enabled () const
 
flecs::type type () const
 Get the entity's type. More...
 
flecs::table table () const
 Get the entity's table. More...
 
flecs::table_range range () const
 Get table range for the entity. More...
 
template<typename Func >
void each (const Func &func) const
 Iterate (component) ids of an entity. More...
 
template<typename Func >
void each (flecs::id_t first, flecs::id_t second, const Func &func) const
 Iterate matching pair ids of an entity. More...
 
template<typename Func >
void each (const flecs::entity_view &rel, const Func &func) const
 Iterate targets for a given relationship. More...
 
template<typename First , typename Func >
void each (const Func &func) const
 Iterate targets for a given relationship. More...
 
template<typename Func >
void children (flecs::entity_t rel, Func &&func) const
 Iterate children for entity. More...
 
template<typename Rel , typename Func >
void children (Func &&func) const
 Iterate children for entity. More...
 
template<typename Func >
void children (Func &&func) const
 Iterate children for entity. More...
 
template<typename T , if_t< is_actual< T >::value > = 0>
const T * get () const
 Get component value. More...
 
template<typename T , typename A = actual_type_t<T>, if_t< flecs::is_pair< T >::value > = 0>
const A * get () const
 Get component value. More...
 
template<typename First , typename Second , typename P = pair<First, Second>, typename A = actual_type_t<P>, if_not_t< flecs::is_pair< First >::value > = 0>
const A * get () const
 Get a pair. More...
 
template<typename First , typename Second , if_not_t< is_enum< Second >::value > = 0>
const First * get (Second second) const
 Get a pair. More...
 
template<typename First , typename Second , if_t< is_enum< Second >::value > = 0>
const First * get (Second constant) const
 Get a pair. More...
 
const void * get (flecs::id_t comp) const
 Get component value (untyped). More...
 
const void * get (flecs::entity_t first, flecs::entity_t second) const
 Get a pair (untyped). More...
 
template<typename Func , if_t< is_callable< Func >::value > = 0>
bool get (const Func &func) const
 Get 1..N components. More...
 
template<typename T , if_t< is_enum< T >::value > = 0>
const T * get () const
 Get enum constant. More...
 
template<typename Second >
const Second * get_second (flecs::entity_t first) const
 Get the second part for a pair. More...
 
template<typename First , typename Second >
const Second * get_second () const
 Get the second part for a pair. More...
 
template<typename First >
flecs::entity target (int32_t index=0) const
 Get target for a given pair. More...
 
flecs::entity target (flecs::entity_t first, int32_t index=0) const
 Get target for a given pair. More...
 
flecs::entity target_for (flecs::entity_t relationship, flecs::id_t id) const
 Get the target of a pair for a given relationship id. More...
 
template<typename T >
flecs::entity target_for (flecs::entity_t relationship) const
 
template<typename First , typename Second >
flecs::entity target_for (flecs::entity_t relationship) const
 
int32_t depth (flecs::entity_t rel) const
 Get depth for given relationship. More...
 
template<typename Rel >
int32_t depth () const
 Get depth for given relationship. More...
 
flecs::entity parent () const
 Get parent of entity. More...
 
flecs::entity lookup (const char *path) const
 Lookup an entity by name. More...
 
bool has (flecs::id_t e) const
 Check if entity has the provided entity. More...
 
template<typename T >
bool has () const
 Check if entity has the provided component. More...
 
template<typename E , if_t< is_enum< E >::value > = 0>
bool has (E value) const
 Check if entity has the provided enum constant. More...
 
template<typename First , typename Second >
bool has () const
 Check if entity has the provided pair. More...
 
template<typename First , typename Second , if_not_t< is_enum< Second >::value > = 0>
bool has (Second second) const
 Check if entity has the provided pair. More...
 
template<typename Second >
bool has_second (flecs::entity_t first) const
 Check if entity has the provided pair. More...
 
template<typename First , typename E , if_t< is_enum< E >::value > = 0>
bool has (E value) const
 Check if entity has the provided pair. More...
 
bool has (flecs::id_t first, flecs::id_t second) const
 Check if entity has the provided pair. More...
 
bool owns (flecs::id_t e) const
 Check if entity owns the provided entity. More...
 
template<typename First >
bool owns (flecs::id_t second) const
 Check if entity owns the provided pair. More...
 
bool owns (flecs::id_t first, flecs::id_t second) const
 Check if entity owns the provided pair. More...
 
template<typename T >
bool owns () const
 Check if entity owns the provided component. More...
 
template<typename First , typename Second >
bool owns () const
 Check if entity owns the provided pair. More...
 
bool enabled (flecs::id_t id) const
 Test if id is enabled. More...
 
template<typename T >
bool enabled () const
 Test if component is enabled. More...
 
bool enabled (flecs::id_t first, flecs::id_t second) const
 Test if pair is enabled. More...
 
template<typename First >
bool enabled (flecs::id_t second) const
 Test if pair is enabled. More...
 
template<typename First , typename Second >
bool enabled () const
 Test if pair is enabled. More...
 
ecs_ftime_t delta_time () const
 Get current delta time. More...
 
flecs::entity clone (bool clone_value=true, flecs::entity_t dst_id=0) const
 
flecs::entity mut (const flecs::world &stage) const
 Return mutable entity handle for current stage When an entity handle created from the world is used while the world is in staged mode, it will only allow for readonly operations since structural changes are not allowed on the world while in staged mode. More...
 
flecs::entity mut (const flecs::iter &it) const
 Same as mut(world), but for iterator. More...
 
flecs::entity mut (const flecs::entity_view &e) const
 Same as mut(world), but for entity. More...
 
template<typename E >
to_constant () const
 Convert entity to enum constant. More...
 
flecs::string to_json (const flecs::entity_to_json_desc_t *desc=nullptr)
 Serialize entity to JSON. More...
 
- Public Member Functions inherited from flecs::id
 id (flecs::id_t value)
 
 id (flecs::world_t *world, flecs::id_t value=0)
 
 id (flecs::world_t *world, flecs::id_t first, flecs::id_t second)
 
 id (flecs::id_t first, flecs::id_t second)
 
 id (const flecs::id &first, const flecs::id &second)
 
bool is_pair () const
 Test if id is pair (has first, second) More...
 
bool is_wildcard () const
 Test if id is a wildcard. More...
 
bool is_entity () const
 Test if id is entity. More...
 
flecs::entity entity () const
 Return id as entity (only allowed when id is valid entity) More...
 
flecs::entity add_flags (flecs::id_t flags) const
 Return id with role added. More...
 
flecs::entity remove_flags (flecs::id_t flags) const
 Return id with role removed. More...
 
flecs::entity remove_flags () const
 Return id without role. More...
 
flecs::entity remove_generation () const
 Return id without role. More...
 
flecs::entity type_id () const
 Return component type of id. More...
 
bool has_flags (flecs::id_t flags) const
 Test if id has specified role. More...
 
bool has_flags () const
 Test if id has any role. More...
 
flecs::entity flags () const
 Return id flags set on id. More...
 
bool has_relation (flecs::id_t first) const
 Test if id has specified first. More...
 
flecs::entity first () const
 Get first element from a pair. More...
 
flecs::entity second () const
 Get second element from a pair. More...
 
flecs::string str () const
 
flecs::string flags_str () const
 Convert role of id to string. More...
 
flecs::id_t raw_id () const
 Return flecs::id_t value. More...
 
 operator flecs::id_t () const
 
flecs::world world () const
 
Self & unit (const char *symbol, flecs::entity_t prefix=0, flecs::entity_t base=0, flecs::entity_t over=0, int32_t factor=0, int32_t power=0)
 Make entity a unit. More...
 
Self & unit (flecs::entity_t prefix=0, flecs::entity_t base=0, flecs::entity_t over=0, int32_t factor=0, int32_t power=0)
 Make entity a derived unit. More...
 
Self & unit_prefix (const char *symbol, int32_t factor=0, int32_t power=0)
 Make entity a derived unit. More...
 
Self & quantity (flecs::entity_t quantity)
 Add quantity to unit. More...
 
template<typename Quantity >
Self & quantity ()
 Make entity a unity prefix. More...
 
Self & quantity ()
 Make entity a quantity. More...
 

Additional Inherited Members

- Protected Attributes inherited from flecs::id
flecs::world_t * m_world
 
flecs::id_t m_id
 

Detailed Description

Entity view.

Class with read operations for entities. Base for flecs::entity.

Definition at line 28 of file entity_view.hpp.

Constructor & Destructor Documentation

◆ entity_view() [1/3]

flecs::entity_view::entity_view ( )
inline

Definition at line 30 of file entity_view.hpp.

◆ entity_view() [2/3]

flecs::entity_view::entity_view ( flecs::world_t *  world,
flecs::id_t  id 
)
inlineexplicit

Wrap an existing entity id.

Parameters
worldThe world in which the entity is created.
idThe entity id.

Definition at line 37 of file entity_view.hpp.

◆ entity_view() [3/3]

flecs::entity_view::entity_view ( entity_t  id)
inline

Implicit conversion from flecs::entity_t to flecs::entity_view.

Definition at line 44 of file entity_view.hpp.

Member Function Documentation

◆ children() [1/3]

template<typename Func >
void flecs::entity_view::children ( flecs::entity_t  rel,
Func &&  func 
) const
inline

Iterate children for entity.

The function parameter must match the following signature: void(*)(flecs::entity target)

Parameters
relThe relationship to follow.
funcThe function invoked for each child.

Definition at line 172 of file entity_view.hpp.

◆ children() [2/3]

template<typename Rel , typename Func >
void flecs::entity_view::children ( Func &&  func) const
inline

Iterate children for entity.

The function parameter must match the following signature: void(*)(flecs::entity target)

Template Parameters
RelThe relationship to follow.
Parameters
funcThe function invoked for each child.

Definition at line 203 of file entity_view.hpp.

◆ children() [3/3]

template<typename Func >
void flecs::entity_view::children ( Func &&  func) const
inline

Iterate children for entity.

The function parameter must match the following signature: void(*)(flecs::entity target)

This operation follows the ChildOf relationship.

Parameters
funcThe function invoked for each child.

Definition at line 216 of file entity_view.hpp.

◆ clone()

flecs::entity flecs::entity_view::clone ( bool  clone_value = true,
flecs::entity_t  dst_id = 0 
) const
inline

Definition at line 190 of file impl.hpp.

◆ delta_time()

ecs_ftime_t flecs::entity_view::delta_time ( ) const
inline

Get current delta time.

Convenience function so system implementations can get delta_time, even if they are using the .each() function.

Returns
Current delta_time.

Definition at line 672 of file entity_view.hpp.

◆ depth() [1/2]

template<typename Rel >
int32_t flecs::entity_view::depth ( ) const
inline

Get depth for given relationship.

Template Parameters
RelThe relationship.
Returns
The depth.

Definition at line 439 of file entity_view.hpp.

◆ depth() [2/2]

int32_t flecs::entity_view::depth ( flecs::entity_t  rel) const
inline

Get depth for given relationship.

Parameters
relThe relationship.
Returns
The depth.

Definition at line 429 of file entity_view.hpp.

◆ each() [1/4]

template<typename Func >
void flecs::entity_view::each ( const flecs::entity_view rel,
const Func &  func 
) const
inline

Iterate targets for a given relationship.

The function parameter must match the following signature: void(*)(flecs::entity target)

Parameters
relThe relationship for which to iterate the targets.
funcThe function invoked for each target.

Definition at line 172 of file impl.hpp.

◆ each() [2/4]

template<typename Func >
void flecs::entity_view::each ( const Func &  func) const
inline

Iterate (component) ids of an entity.

The function parameter must match the following signature: void(*)(flecs::id id)

Parameters
funcThe function invoked for each id.

Definition at line 117 of file impl.hpp.

◆ each() [3/4]

template<typename First , typename Func >
void flecs::entity_view::each ( const Func &  func) const
inline

Iterate targets for a given relationship.

The function parameter must match the following signature: void(*)(flecs::entity target)

Template Parameters
FirstThe relationship for which to iterate the targets.
Parameters
funcThe function invoked for each target.

Definition at line 160 of file entity_view.hpp.

◆ each() [4/4]

template<typename Func >
void flecs::entity_view::each ( flecs::id_t  first,
flecs::id_t  second,
const Func &  func 
) const
inline

Iterate matching pair ids of an entity.

The function parameter must match the following signature: void(*)(flecs::id id)

Parameters
funcThe function invoked for each id.

Definition at line 141 of file impl.hpp.

◆ enabled() [1/6]

bool flecs::entity_view::enabled ( ) const
inline

Definition at line 99 of file entity_view.hpp.

◆ enabled() [2/6]

template<typename T >
bool flecs::entity_view::enabled ( ) const
inline

Test if component is enabled.

Template Parameters
TThe component to test.
Returns
True if enabled, false if not.

Definition at line 630 of file entity_view.hpp.

◆ enabled() [3/6]

template<typename First , typename Second >
bool flecs::entity_view::enabled ( ) const
inline

Test if pair is enabled.

Template Parameters
FirstThe first element of the pair.
SecondThe second element of the pair.
Returns
True if enabled, false if not.

Definition at line 662 of file entity_view.hpp.

◆ enabled() [4/6]

bool flecs::entity_view::enabled ( flecs::id_t  first,
flecs::id_t  second 
) const
inline

Test if pair is enabled.

Parameters
firstThe first element of the pair.
secondThe second element of the pair.
Returns
True if enabled, false if not.

Definition at line 640 of file entity_view.hpp.

◆ enabled() [5/6]

bool flecs::entity_view::enabled ( flecs::id_t  id) const
inline

Test if id is enabled.

Parameters
idThe id to test.
Returns
True if enabled, false if not.

Definition at line 620 of file entity_view.hpp.

◆ enabled() [6/6]

template<typename First >
bool flecs::entity_view::enabled ( flecs::id_t  second) const
inline

Test if pair is enabled.

Template Parameters
FirstThe first element of the pair.
Parameters
secondThe second element of the pair.
Returns
True if enabled, false if not.

Definition at line 651 of file entity_view.hpp.

◆ get() [1/9]

template<typename T , if_t< is_enum< T >::value > >
const T * flecs::entity_view::get
inline

Get component value.

Template Parameters
TThe component to get.
Returns
Pointer to the component value, nullptr if the entity does not have the component.

Definition at line 227 of file entity_view.hpp.

◆ get() [2/9]

template<typename T , typename A = actual_type_t<T>, if_t< flecs::is_pair< T >::value > = 0>
const A * flecs::entity_view::get ( ) const
inline

Get component value.

Overload for when T is not the same as the actual type, which happens when using pair types.

Template Parameters
TThe component to get.
Returns
Pointer to the component value, nullptr if the entity does not have the component.

Definition at line 243 of file entity_view.hpp.

◆ get() [3/9]

template<typename First , typename Second , typename P = pair<First, Second>, typename A = actual_type_t<P>, if_not_t< flecs::is_pair< First >::value > = 0>
const A * flecs::entity_view::get ( ) const
inline

Get a pair.

This operation gets the value for a pair from the entity.

Template Parameters
FirstThe first element of the pair.
Secondthe second element of a pair.

Definition at line 257 of file entity_view.hpp.

◆ get() [4/9]

template<typename T , if_t< is_enum< T >::value > = 0>
const T * flecs::entity_view::get ( ) const

Get enum constant.

Template Parameters
TThe enum type for which to get the constant
Returns
Constant entity if found, 0 entity if not.

◆ get() [5/9]

template<typename Func , if_t< is_callable< Func >::value > >
bool flecs::entity_view::get ( const Func &  func) const
inline

Get 1..N components.

This operation accepts a callback with as arguments the components to retrieve. The callback will only be invoked when the entity has all the components.

This operation is faster than individually calling get for each component as it only obtains entity metadata once.

While the callback is invoked the table in which the components are stored is locked, which prevents mutations that could cause invalidation of the component references. Note that this is not an actual lock: invalid access causes a runtime panic and so it is still up to the application to ensure access is protected.

The component arguments must be references and can be either const or non-const. When all arguments are const, the function will read-lock the table (see ecs_read_begin). If one or more arguments are non-const the function will write-lock the table (see ecs_write_begin).

Example: e.get([](Position& p, Velocity& v) { // write lock p.x += v.x; });

e.get([](const Position& p) { // read lock std::cout << p.x << std::endl; });

Parameters
funcThe callback to invoke.
Returns
True if the entity has all components, false if not.

Definition at line 180 of file impl.hpp.

◆ get() [6/9]

const void * flecs::entity_view::get ( flecs::entity_t  first,
flecs::entity_t  second 
) const
inline

Get a pair (untyped).

This operation gets the value for a pair from the entity. If neither the first nor the second part of the pair are components, the operation will fail.

Parameters
firstThe first element of the pair.
secondThe second element of the pair.

Definition at line 306 of file entity_view.hpp.

◆ get() [7/9]

const void * flecs::entity_view::get ( flecs::id_t  comp) const
inline

Get component value (untyped).

Parameters
compThe component to get.
Returns
Pointer to the component value, nullptr if the entity does not have the component.

Definition at line 294 of file entity_view.hpp.

◆ get() [8/9]

template<typename First , typename Second , if_t< is_enum< Second >::value > = 0>
const First * flecs::entity_view::get ( Second  constant) const
inline

Get a pair.

This operation gets the value for a pair from the entity.

Template Parameters
FirstThe first element of the pair.
Parameters
constantthe enum constant.

Definition at line 282 of file entity_view.hpp.

◆ get() [9/9]

template<typename First , typename Second , if_not_t< is_enum< Second >::value > = 0>
const First * flecs::entity_view::get ( Second  second) const
inline

Get a pair.

This operation gets the value for a pair from the entity.

Template Parameters
FirstThe first element of the pair.
Parameters
secondThe second element of the pair.

Definition at line 268 of file entity_view.hpp.

◆ get_second() [1/2]

template<typename First , typename Second >
const Second * flecs::entity_view::get_second ( ) const
inline

Get the second part for a pair.

This operation gets the value for a pair from the entity. The first part of the pair should not be a component.

Template Parameters
FirstThe first element of the pair.
Secondthe second element of a pair.

Definition at line 375 of file entity_view.hpp.

◆ get_second() [2/2]

template<typename Second >
const Second * flecs::entity_view::get_second ( flecs::entity_t  first) const
inline

Get the second part for a pair.

This operation gets the value for a pair from the entity. The first part of the pair should not be a component.

Template Parameters
Secondthe second element of a pair.
Parameters
firstThe first part of the pair.

Definition at line 360 of file entity_view.hpp.

◆ has() [1/7]

template<typename T >
bool flecs::entity_view::has ( ) const
inline

Check if entity has the provided component.

Template Parameters
TThe component to check.
Returns
True if the entity has the provided component, false otherwise.

Definition at line 474 of file entity_view.hpp.

◆ has() [2/7]

template<typename First , typename Second >
bool flecs::entity_view::has ( ) const
inline

Check if entity has the provided pair.

Template Parameters
FirstThe first element of the pair.
SecondThe second element of the pair.
Returns
True if the entity has the provided component, false otherwise.

Definition at line 508 of file entity_view.hpp.

◆ has() [3/7]

template<typename E , if_t< is_enum< E >::value > = 0>
bool flecs::entity_view::has ( value) const
inline

Check if entity has the provided enum constant.

Template Parameters
EThe enum type (can be deduced).
Parameters
valueThe enum constant to check.
Returns
True if the entity has the provided constant, false otherwise.

Definition at line 495 of file entity_view.hpp.

◆ has() [4/7]

template<typename First , typename E , if_t< is_enum< E >::value > = 0>
bool flecs::entity_view::has ( value) const
inline

Check if entity has the provided pair.

Template Parameters
FirstThe first element of the pair.
Parameters
valueThe enum constant.
Returns
True if the entity has the provided component, false otherwise.

Definition at line 542 of file entity_view.hpp.

◆ has() [5/7]

bool flecs::entity_view::has ( flecs::id_t  e) const
inline

Check if entity has the provided entity.

Parameters
eThe entity to check.
Returns
True if the entity has the provided entity, false otherwise.

Definition at line 464 of file entity_view.hpp.

◆ has() [6/7]

bool flecs::entity_view::has ( flecs::id_t  first,
flecs::id_t  second 
) const
inline

Check if entity has the provided pair.

Parameters
firstThe first element of the pair.
secondThe second element of the pair.
Returns
True if the entity has the provided component, false otherwise.

Definition at line 554 of file entity_view.hpp.

◆ has() [7/7]

template<typename First , typename Second , if_not_t< is_enum< Second >::value > = 0>
bool flecs::entity_view::has ( Second  second) const
inline

Check if entity has the provided pair.

Template Parameters
FirstThe first element of the pair.
Parameters
secondThe second element of the pair.
Returns
True if the entity has the provided component, false otherwise.

Definition at line 519 of file entity_view.hpp.

◆ has_second()

template<typename Second >
bool flecs::entity_view::has_second ( flecs::entity_t  first) const
inline

Check if entity has the provided pair.

Template Parameters
SecondThe second element of the pair.
Parameters
firstThe first element of the pair.
Returns
True if the entity has the provided component, false otherwise.

Definition at line 531 of file entity_view.hpp.

◆ id()

entity_t flecs::entity_view::id ( ) const
inline

Get entity id.

Returns
The integer entity id.

Definition at line 50 of file entity_view.hpp.

◆ is_alive()

bool flecs::entity_view::is_alive ( ) const
inline

Check is entity is alive.

Returns
True if the entity is alive, false otherwise.

Definition at line 70 of file entity_view.hpp.

◆ is_valid()

bool flecs::entity_view::is_valid ( ) const
inline

Check is entity is valid.

Returns
True if the entity is alive, false otherwise.

Definition at line 58 of file entity_view.hpp.

◆ lookup()

flecs::entity flecs::entity_view::lookup ( const char *  path) const
inline

Lookup an entity by name.

Lookup an entity in the scope of this entity. The provided path may contain double colons as scope separators, for example: "Foo::Bar".

Parameters
pathThe name of the entity to lookup.
Returns
The found entity, or entity::null if no entity matched.

Definition at line 184 of file impl.hpp.

◆ mut() [1/3]

flecs::entity flecs::entity_view::mut ( const flecs::entity_view e) const
inline

Same as mut(world), but for entity.

This operation allows for the construction of a mutable entity handle from another entity. This is useful in each() functions, which only provide a handle to the entity being iterated over.

Parameters
eAnother mutable entity.
Returns
An entity handle that allows for mutations in the current stage.

Definition at line 89 of file impl.hpp.

◆ mut() [2/3]

flecs::entity flecs::entity_view::mut ( const flecs::iter it) const
inline

Same as mut(world), but for iterator.

This operation allows for the construction of a mutable entity handle from an iterator.

Parameters
itAn iterator that contains a reference to the world or stage.
Returns
An entity handle that allows for mutations in the current stage.

Definition at line 83 of file impl.hpp.

◆ mut() [3/3]

flecs::entity flecs::entity_view::mut ( const flecs::world stage) const
inline

Return mutable entity handle for current stage When an entity handle created from the world is used while the world is in staged mode, it will only allow for readonly operations since structural changes are not allowed on the world while in staged mode.

To do mutations on the entity, this operation provides a handle to the entity that uses the stage instead of the actual world.

Note that staged entity handles should never be stored persistently, in components or elsewhere. An entity handle should always point to the main world.

Also note that this operation is not necessary when doing mutations on an entity outside of a system. It is allowed to do entity operations directly on the world, as long as the world is not in staged mode.

Parameters
stageThe current stage.
Returns
An entity handle that allows for mutations in the current stage.

Definition at line 77 of file impl.hpp.

◆ name()

flecs::string_view flecs::entity_view::name ( ) const
inline

Return the entity name.

Returns
The entity name.

Definition at line 78 of file entity_view.hpp.

◆ operator bool()

flecs::entity_view::operator bool ( ) const
inlineexplicit

Definition at line 62 of file entity_view.hpp.

◆ owns() [1/5]

template<typename T >
bool flecs::entity_view::owns ( ) const
inline

Check if entity owns the provided component.

An component is owned if it is not shared from a base entity.

Template Parameters
TThe component to check.
Returns
True if the entity owns the provided component, false otherwise.

Definition at line 597 of file entity_view.hpp.

◆ owns() [2/5]

template<typename First , typename Second >
bool flecs::entity_view::owns ( ) const
inline

Check if entity owns the provided pair.

An pair is owned if it is not shared from a base entity.

Template Parameters
FirstThe first element of the pair.
SecondThe second element of the pair.
Returns
True if the entity owns the provided pair, false otherwise.

Definition at line 609 of file entity_view.hpp.

◆ owns() [3/5]

bool flecs::entity_view::owns ( flecs::id_t  e) const
inline

Check if entity owns the provided entity.

An entity is owned if it is not shared from a base entity.

Parameters
eThe entity to check.
Returns
True if the entity owns the provided entity, false otherwise.

Definition at line 564 of file entity_view.hpp.

◆ owns() [4/5]

bool flecs::entity_view::owns ( flecs::id_t  first,
flecs::id_t  second 
) const
inline

Check if entity owns the provided pair.

Parameters
firstThe first element of the pair.
secondThe second element of the pair.
Returns
True if the entity owns the provided component, false otherwise.

Definition at line 586 of file entity_view.hpp.

◆ owns() [5/5]

template<typename First >
bool flecs::entity_view::owns ( flecs::id_t  second) const
inline

Check if entity owns the provided pair.

Template Parameters
FirstThe first element of the pair.
Parameters
secondThe second element of the pair.
Returns
True if the entity owns the provided component, false otherwise.

Definition at line 575 of file entity_view.hpp.

◆ parent()

flecs::entity flecs::entity_view::parent ( ) const
inline

Get parent of entity.

Short for target(flecs::ChildOf).

Returns
The parent of the entity.

Definition at line 73 of file impl.hpp.

◆ path()

flecs::string flecs::entity_view::path ( const char *  sep = "::",
const char *  init_sep = "::" 
) const
inline

Return the entity path.

Returns
The hierarchical entity path.

Definition at line 94 of file entity_view.hpp.

◆ range()

flecs::table_range flecs::entity_view::range ( ) const
inline

Get table range for the entity.

Returns a range with the entity's row as offset and count set to 1. If the entity is not stored in a table, the function returns a range with count 0.

Returns
Returns the entity's table range.

Definition at line 107 of file impl.hpp.

◆ symbol()

flecs::string_view flecs::entity_view::symbol ( ) const
inline

Return the entity symbol.

Returns
The entity symbol.

Definition at line 86 of file entity_view.hpp.

◆ table()

flecs::table flecs::entity_view::table ( ) const
inline

Get the entity's table.

Returns
Returns the entity's table.

Definition at line 103 of file impl.hpp.

◆ target() [1/2]

flecs::entity flecs::entity_view::target ( flecs::entity_t  first,
int32_t  index = 0 
) const
inline

Get target for a given pair.

This operation returns the target for a given pair. The optional index can be used to iterate through targets, in case the entity has multiple instances for the same relationship.

Parameters
firstThe first element of the pair for which to retrieve the target.
indexThe index (0 for the first instance of the relationship).

Definition at line 47 of file impl.hpp.

◆ target() [2/2]

template<typename First >
flecs::entity flecs::entity_view::target ( int32_t  index = 0) const
inline

Get target for a given pair.

This operation returns the target for a given pair. The optional index can be used to iterate through targets, in case the entity has multiple instances for the same relationship.

Template Parameters
FirstThe first element of the pair.
Parameters
indexThe index (0 for the first instance of the relationship).

Definition at line 41 of file impl.hpp.

◆ target_for() [1/3]

template<typename T >
flecs::entity flecs::entity_view::target_for ( flecs::entity_t  relationship) const
inline

Definition at line 64 of file impl.hpp.

◆ target_for() [2/3]

template<typename First , typename Second >
flecs::entity flecs::entity_view::target_for ( flecs::entity_t  relationship) const
inline

Definition at line 69 of file impl.hpp.

◆ target_for() [3/3]

flecs::entity flecs::entity_view::target_for ( flecs::entity_t  relationship,
flecs::id_t  id 
) const
inline

Get the target of a pair for a given relationship id.

This operation returns the first entity that has the provided id by following the specified relationship. If the entity itself has the id then entity will be returned. If the id cannot be found on the entity or by following the relationship, the operation will return 0.

This operation can be used to lookup, for example, which prefab is providing a component by specifying the IsA pair:

// Is Position provided by the entity or one of its base entities? ecs_get_target_for_id(world, entity, EcsIsA, ecs_id(Position))

Parameters
relationshipThe relationship to follow.
idThe id to lookup.
Returns
The entity for which the target has been found.

Definition at line 55 of file impl.hpp.

◆ type()

flecs::type flecs::entity_view::type ( ) const
inline

Get the entity's type.

Returns
The entity's type.

Definition at line 99 of file impl.hpp.


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