Flecs: flecs::entity Struct Reference
Description: A fast entity component system (ECS) for C & C++

| Flecs v4.0 A fast entity component system (ECS) for C & C++

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
flecs::entity Struct Reference
C++ API » Core » Entities

Entity. More...

`#include <entity.hpp>`

Inheritance diagram for flecs::entity:
[legend]

## Public Member Functions
| entity (world_t *world)
| Create entity.
| entity (const flecs::world_t *world, flecs::entity_t id)
| Wrap an existing entity id.
| entity (world_t *world, const char *name)
| Create a named entity.
| entity (entity_t id)
| Conversion from flecs::entity_t to flecs::entity.
template<typename T >
T & | ensure () const
| Get mutable component value.
void * | ensure (entity_t comp) const
| Get mutable component value (untyped).
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>
A & | ensure () const
| Get mutable pointer for a pair.
template<typename First >
First & | ensure (entity_t second) const
| Get mutable pointer for the first element of a pair.
void * | ensure (entity_t first, entity_t second) const
| Get mutable pointer for a pair (untyped).
template<typename Second >
Second & | ensure_second (entity_t first) const
| Get mutable pointer for the second element of a pair.
template<typename T >
void | modified () const
| Signal that component was modified.
template<typename First , typename Second , typename A = actual_type_t<flecs::pair<First, Second>>>
void | modified () const
| Signal that the first element of a pair was modified.
template<typename First >
void | modified (entity_t second) const
| Signal that the first part of a pair was modified.
void | modified (entity_t first, entity_t second) const
| Signal that a pair has modified (untyped).
void | modified (entity_t comp) const
| Signal that component was modified.
template<typename T , if_t< is_actual< T >::value > = 0>
ref< T > | get_ref () const
| Get reference to component.
template<typename T , typename A = actual_type_t<T>, if_t< flecs::is_pair< T >::value > = 0>
ref< A > | get_ref () const
| Get reference to component.
template<typename First , typename Second , typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>>
ref< A > | get_ref () const
template<typename First >
ref< First > | get_ref (flecs::entity_t second) const
template<typename Second >
ref< Second > | get_ref_second (flecs::entity_t first) const
void | clear () const
| Clear an entity.
void | destruct () const
| Delete an entity.
flecs::entity_view | view () const
| Return entity as entity_view.
const char * | from_json (const char *json)
| Deserialize entity to JSON.
const char * | from_json (const char *json)
| Deserialize entity to JSON.
Public Member Functions inherited from flecs::entity_builder< entity >
const entity & | add () const
| Add a component to an entity.
const entity & | add (E value) const
| Add pair for enum constant.
const entity & | add (id_t component) const
| Add an entity to an entity.
const entity & | add (entity_t first, entity_t second) const
| Add a pair.
const entity & | add () const
| Add a pair.
const entity & | add (Second second) const
| Add a pair.
const entity & | add (Second constant) const
| Add a pair.
const entity & | add_second (flecs::entity_t first) const
| Add a pair.
const entity & | add_if (bool cond, flecs::id_t component) const
| Conditional add.
const entity & | add_if (bool cond) const
| Conditional add.
const entity & | add_if (bool cond, flecs::entity_t first, flecs::entity_t second) const
| Conditional add.
const entity & | add_if (bool cond, flecs::entity_t second) const
| Conditional add.
const entity & | add_if (bool cond) const
| Conditional add.
const entity & | add_if (bool cond, E constant) const
| Conditional add.
const entity & | is_a (entity_t second) const
| Shortcut for `add(IsA, entity)`.
const entity & | is_a () const
| Shortcut for `add(IsA, entity)`.
const entity & | child_of (entity_t second) const
| Shortcut for `add(ChildOf, entity)`.
const entity & | child_of () const
| Shortcut for `add(ChildOf, entity)`.
const entity & | depends_on (entity_t second) const
| Shortcut for `add(DependsOn, entity)`.
const entity & | depends_on (E second) const
| Shortcut for `add(DependsOn, entity)`.
const entity & | depends_on () const
| Shortcut for `add(DependsOn, entity)`.
const entity & | slot_of (entity_t second) const
| Shortcut for `add(SlotOf, entity)`.
const entity & | slot_of () const
| Shortcut for `add(SlotOf, entity)`.
const entity & | slot () const
| Shortcut for `add(SlotOf, target(ChildOf))`.
const entity & | remove () const
| Remove a component from an entity.
const entity & | remove () const
| Remove pair for enum.
const entity & | remove (entity_t entity) const
| Remove an entity from an entity.
const entity & | remove (entity_t first, entity_t second) const
| Remove a pair.
const entity & | remove () const
| Removes a pair.
const entity & | remove (Second second) const
| Remove a pair.
const entity & | remove (Second constant) const
| Remove a pair.
const entity & | remove_second (flecs::entity_t first) const
| Removes a pair.
const entity & | auto_override (flecs::id_t id) const
| Mark id for auto-overriding.
const entity & | auto_override (flecs::entity_t first, flecs::entity_t second) const
| Mark pair for auto-overriding.
const entity & | auto_override () const
| Mark component for auto-overriding.
const entity & | auto_override (flecs::entity_t second) const
| Mark pair for auto-overriding.
const entity & | auto_override () const
| Mark pair for auto-overriding.
const entity & | set_auto_override (const T &val) const
| Set component, mark component for auto-overriding.
const entity & | set_auto_override (T &&val) const
| Set component, mark component for auto-overriding.
const entity & | set_auto_override (flecs::entity_t second, const First &val) const
| Set pair, mark component for auto-overriding.
const entity & | set_auto_override (flecs::entity_t second, First &&val) const
| Set pair, mark component for auto-overriding.
const entity & | set_auto_override (const A &val) const
| Set component, mark component for auto-overriding.
const entity & | set_auto_override (A &&val) const
| Set component, mark component for auto-overriding.
const entity & | emplace_auto_override (Args &&... args) const
| Emplace component, mark component for auto-overriding.
const entity & | emplace_auto_override (Args &&... args) const
| Emplace pair, mark pair for auto-overriding.
const entity & | enable () const
| Enable an entity.
const entity & | enable (flecs::id_t id, bool toggle=true) const
| Enable an id.
const entity & | enable () const
| Enable a component.
const entity & | enable (flecs::id_t first, flecs::id_t second) const
| Enable a pair.
const entity & | enable (flecs::id_t second) const
| Enable a pair.
const entity & | enable () const
| Enable a pair.
const entity & | disable () const
| Disable an entity.
const entity & | disable (flecs::id_t id) const
| Disable an id.
const entity & | disable () const
| Disable a component.
const entity & | disable (flecs::id_t first, flecs::id_t second) const
| Disable a pair.
const entity & | disable (flecs::id_t second) const
| Disable a pair.
const entity & | disable () const
| Disable a pair.
const entity & | set_ptr (entity_t comp, size_t size, const void *ptr) const
const entity & | set_ptr (entity_t comp, const void *ptr) const
const entity & | set (T &&value) const
const entity & | set (const T &value) const
const entity & | set (A &&value) const
const entity & | set (const A &value) const
const entity & | set (A &&value) const
| Set a pair for an entity.
const entity & | set (const A &value) const
| Set a pair for an entity.
const entity & | set (Second second, const First &value) const
| Set a pair for an entity.
const entity & | set (Second second, First &&value) const
| Set a pair for an entity.
const entity & | set (Second constant, const First &value) const
| Set a pair for an entity.
const entity & | set_second (entity_t first, const Second &value) const
| Set a pair for an entity.
const entity & | set_second (entity_t first, Second &&value) const
| Set a pair for an entity.
const entity & | set_second (const Second &value) const
const entity & | insert (const Func &func) const
| Set 1..N components.
const entity & | emplace (Args &&... args) const
| Emplace component.
const entity & | emplace (Args &&... args) const
const entity & | emplace_first (flecs::entity_t second, Args &&... args) const
const entity & | emplace_second (flecs::entity_t first, Args &&... args) const
const entity & | with (const Func &func) const
| Entities created in function will have the current entity.
const entity & | with (const Func &func) const
| Entities created in function will have `(First, this)`.
const entity & | with (entity_t first, const Func &func) const
| Entities created in function will have `(first, this)`.
const entity & | scope (const Func &func) const
| The function will be ran with the scope set to the current entity.
scoped_world | scope () const
| Return world scoped to entity.
const entity & | set_name (const char *name) const
const entity & | set_alias (const char *name) const
const entity & | set_doc_name (const char *name) const
| Set human readable name.
const entity & | set_doc_name (const char *name) const
| Set human readable name.
const entity & | set_doc_brief (const char *brief) const
| Set brief description.
const entity & | set_doc_brief (const char *brief) const
| Set brief description.
const entity & | set_doc_detail (const char *detail) const
| Set detailed description.
const entity & | set_doc_detail (const char *detail) const
| Set detailed description.
const entity & | set_doc_link (const char *link) const
| Set link to external documentation.
const entity & | set_doc_link (const char *link) const
| Set link to external documentation.
const entity & | set_doc_color (const char *color) const
| Set doc color.
const entity & | set_doc_color (const char *color) const
| Set doc color.
const entity & | set_doc_uuid (const char *uuid) const
| Set doc UUID.
const entity & | set_doc_uuid (const char *uuid) const
| Set doc UUID.
const entity & | set_json (flecs::id_t e, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set component from JSON.
const entity & | set_json (flecs::entity_t r, flecs::entity_t t, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | set_json (const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set component from JSON.
const entity & | set_json (const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | set_json (flecs::entity_t t, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | set_json (flecs::id_t e, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set component from JSON.
const entity & | set_json (flecs::entity_t r, flecs::entity_t t, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | set_json (const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set component from JSON.
const entity & | set_json (const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | set_json (flecs::entity_t t, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | set_json_second (flecs::entity_t r, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | set_json_second (flecs::entity_t r, const char *json, flecs::from_json_desc_t *desc=nullptr) const
| Set pair from JSON.
const entity & | observe (flecs::entity_t evt, Func &&callback) const
| Observe event on entity.
const entity & | observe (Func &&callback) const
| Observe event on entity.
const entity & | observe (Func &&callback) const
| Observe event on entity.
const entity & | observe (flecs::entity_t evt, Func &&callback) const
| Observe event on entity.
const entity & | observe (Func &&callback) const
| Observe event on entity.
const entity & | observe (Func &&callback) const
| Observe event on entity.
| entity_view ()
| entity_view (flecs::world_t *world, flecs::id_t id)
| Wrap an existing entity id.
| entity_view (entity_t id)
| Implicit conversion from flecs::entity_t to flecs::entity_view.
const entity & | 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) const
| Make entity a unit.
Public Member Functions inherited from flecs::entity_view
| entity_view (flecs::world_t *world, flecs::id_t id)
| Wrap an existing entity id.
| entity_view (entity_t id)
| Implicit conversion from flecs::entity_t to flecs::entity_view.
entity_t | id () const
| Get entity id.
bool | is_valid () const
| Check if entity is valid.
| operator bool () const
bool | is_alive () const
| Check if entity is alive.
flecs::string_view | name () const
| Return the entity name.
flecs::string_view | symbol () const
| Return the entity symbol.
flecs::string | path (const char *sep="::", const char *init_sep="::") const
| Return the entity path.
flecs::string | path_from (flecs::entity_t parent, const char *sep="::", const char *init_sep="::") const
| Return the entity path relative to a parent.
template<typename Parent >
flecs::string | path_from (const char *sep="::", const char *init_sep="::") const
| Return the entity path relative to a parent.
bool | enabled () const
flecs::type | type () const
| Get the entity's type.
flecs::table | table () const
| Get the entity's table.
flecs::table_range | range () const
| Get table range for the entity.
template<typename Func >
void | each (const Func &func) const
| Iterate (component) ids of an entity.
template<typename Func >
void | each (flecs::id_t first, flecs::id_t second, const Func &func) const
| Iterate matching pair ids of an entity.
template<typename Func >
void | each (const flecs::entity_view &rel, const Func &func) const
| Iterate targets for a given relationship.
template<typename First , typename Func >
void | each (const Func &func) const
| Iterate targets for a given relationship.
template<typename Func >
void | children (flecs::entity_t rel, Func &&func) const
| Iterate children for entity.
template<typename Rel , typename Func >
void | children (Func &&func) const
| Iterate children for entity.
template<typename Func >
void | children (Func &&func) const
| Iterate children for entity.
template<typename T , if_t< is_actual< T >::value > = 0>
const T * | get () const
| Get component value.
template<typename T , typename A = actual_type_t<T>, if_t< flecs::is_pair< T >::value > = 0>
const A * | get () const
| Get component value.
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.
template<typename First , typename Second , if_not_t< is_enum< Second >::value > = 0>
const First * | get (Second second) const
| Get a pair.
template<typename First , typename Second , if_t< is_enum< Second >::value > = 0>
const First * | get (Second constant) const
| Get a pair.
const void * | get (flecs::id_t comp) const
| Get component value (untyped).
const void * | get (flecs::entity_t first, flecs::entity_t second) const
| Get a pair (untyped).
template<typename Func , if_t< is_callable< Func >::value > = 0>
bool | get (const Func &func) const
| Get 1..N components.
template<typename T , if_t< is_enum< T >::value > = 0>
const T * | get () const
| Get enum constant.
template<typename Second >
const Second * | get_second (flecs::entity_t first) const
| Get the second part for a pair.
template<typename First , typename Second >
const Second * | get_second () const
| Get the second part for a pair.
template<typename T , if_t< is_actual< T >::value > = 0>
T * | get_mut () const
| Get mutable component value.
template<typename T , typename A = actual_type_t<T>, if_t< flecs::is_pair< T >::value > = 0>
A * | get_mut () const
| Get mutable component value.
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>
A * | get_mut () const
| Get a mutable pair.
template<typename First , typename Second , if_not_t< is_enum< Second >::value > = 0>
First * | get_mut (Second second) const
| Get a mutable pair.
template<typename First , typename Second , if_t< is_enum< Second >::value > = 0>
First * | get_mut (Second constant) const
| Get a mutable pair.
void * | get_mut (flecs::id_t comp) const
| Get mutable component value (untyped).
void * | get_mut (flecs::entity_t first, flecs::entity_t second) const
| Get a mutable pair (untyped).
template<typename Second >
Second * | get_mut_second (flecs::entity_t first) const
| Get the second part for a pair.
template<typename First , typename Second >
Second * | get_mut_second () const
| Get the second part for a pair.
template<typename First >
flecs::entity | target (int32_t index=0) const
| Get target for a given pair.
flecs::entity | target (flecs::entity_t first, int32_t index=0) const
| Get target for a given pair.
flecs::entity | target_for (flecs::entity_t relationship, flecs::id_t id) const
| Get the target of a pair for a given relationship id.
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.
template<typename Rel >
int32_t | depth () const
| Get depth for given relationship.
flecs::entity | parent () const
| Get parent of entity.
flecs::entity | lookup (const char *path, bool search_path=false) const
| Lookup an entity by name.
bool | has (flecs::id_t e) const
| Check if entity has the provided entity.
template<typename T >
bool | has () const
| Check if entity has the provided component.
template<typename E , if_t< is_enum< E >::value > = 0>
bool | has (E value) const
| Check if entity has the provided enum constant.
template<typename First , typename Second >
bool | has () const
| Check if entity has the provided pair.
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.
template<typename Second >
bool | has_second (flecs::entity_t first) const
| Check if entity has the provided pair.
template<typename First , typename E , if_t< is_enum< E >::value > = 0>
bool | has (E value) const
| Check if entity has the provided pair.
bool | has (flecs::id_t first, flecs::id_t second) const
| Check if entity has the provided pair.
bool | owns (flecs::id_t e) const
| Check if entity owns the provided entity.
template<typename First >
bool | owns (flecs::id_t second) const
| Check if entity owns the provided pair.
bool | owns (flecs::id_t first, flecs::id_t second) const
| Check if entity owns the provided pair.
template<typename T >
bool | owns () const
| Check if entity owns the provided component.
template<typename First , typename Second >
bool | owns () const
| Check if entity owns the provided pair.
bool | enabled (flecs::id_t id) const
| Test if id is enabled.
template<typename T >
bool | enabled () const
| Test if component is enabled.
bool | enabled (flecs::id_t first, flecs::id_t second) const
| Test if pair is enabled.
template<typename First >
bool | enabled (flecs::id_t second) const
| Test if pair is enabled.
template<typename First , typename Second >
bool | enabled () const
| Test if pair is enabled.
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.
flecs::entity | mut (const flecs::iter &it) const
| Same as mut(world), but for iterator.
flecs::entity | mut (const flecs::entity_view &e) const
| Same as mut(world), but for entity.
flecs::string | to_json (const flecs::entity_to_json_desc_t *desc=nullptr) const
| Serialize entity to JSON.
const char * | doc_name () const
| Get human readable name.
const char * | doc_brief () const
| Get brief description.
const char * | doc_detail () const
| Get detailed description.
const char * | doc_link () const
| Get link to external documentation.
const char * | doc_color () const
| Get color.
const char * | doc_uuid () const
| Get UUID.
int32_t | alert_count (flecs::entity_t alert=0) const
| Return number of alerts for entity.
template<typename E >
E | to_constant () const
| Convert entity to enum constant.
void | emit (flecs::entity_t evt) const
| Emit event for entity.
void | emit (flecs::entity evt) const
| Emit event for entity.
template<typename Evt , if_t< is_empty< Evt >::value > = 0>
void | emit () const
| Emit event for entity.
template<typename Evt , if_not_t< is_empty< Evt >::value > = 0>
void | emit (const Evt &payload) const
| Emit event with payload for entity.
void | enqueue (flecs::entity_t evt) const
| Enqueue event for entity.
void | enqueue (flecs::entity evt) const
| Enqueue event for entity.
template<typename Evt , if_t< is_empty< Evt >::value > = 0>
void | enqueue () const
| Enqueue event for entity.
template<typename Evt , if_not_t< is_empty< Evt >::value > = 0>
void | enqueue (const Evt &payload) const
| Enqueue event with payload for entity.
int32_t | alert_count (flecs::entity_t alert=0) const
| Return number of alerts for entity.
const char * | doc_name () const
| Get human readable name.
const char * | doc_brief () const
| Get brief description.
const char * | doc_detail () const
| Get detailed description.
const char * | doc_link () const
| Get link to external documentation.
const char * | doc_color () const
| Get color.
const char * | doc_uuid () const
| Get UUID.
template<typename E >
E | to_constant () const
| Convert entity to enum constant.
void | emit (flecs::entity_t evt) const
| Emit event for entity.
void | emit (flecs::entity evt) const
| Emit event for entity.
template<typename Evt , if_t< is_empty< Evt >::value > = 0>
void | emit () const
| Emit event for entity.
template<typename Evt , if_not_t< is_empty< Evt >::value > = 0>
void | emit (const Evt &payload) const
| Emit event with payload for entity.
void | enqueue (flecs::entity_t evt) const
| Enqueue event for entity.
void | enqueue (flecs::entity evt) const
| Enqueue event for entity.
template<typename Evt , if_t< is_empty< Evt >::value > = 0>
void | enqueue () const
| Enqueue event for entity.
template<typename Evt , if_not_t< is_empty< Evt >::value > = 0>
void | enqueue (const Evt &payload) const
| Enqueue event with payload for entity.
flecs::string | to_json (const flecs::entity_to_json_desc_t *desc=nullptr) const
| Serialize entity to JSON.
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) const
| Make entity a unit.
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::world_t *world, const char *expr)
| 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)
bool | is_wildcard () const
| Test if id is a wildcard.
bool | is_entity () const
| Test if id is entity.
flecs::entity | entity () const
| Return id as entity (only allowed when id is valid entity)
flecs::entity | add_flags (flecs::id_t flags) const
| Return id with role added.
flecs::entity | remove_flags (flecs::id_t flags) const
| Return id with role removed.
flecs::entity | remove_flags () const
| Return id without role.
flecs::entity | remove_generation () const
| Return id without role.
flecs::entity | type_id () const
| Return component type of id.
bool | has_flags (flecs::id_t flags) const
| Test if id has specified role.
bool | has_flags () const
| Test if id has any role.
flecs::entity | flags () const
| Return id flags set on id.
bool | has_relation (flecs::id_t first) const
| Test if id has specified first.
flecs::entity | first () const
| Get first element from a pair.
flecs::entity | second () const
| Get second element from a pair.
flecs::string | str () const
flecs::string | flags_str () const
| Convert role of id to string.
flecs::id_t | raw_id () const
| Return flecs::id_t value.
| operator flecs::id_t () const
flecs::world | world () const

## Static Public Member Functions
static flecs::entity | null (const flecs::world_t *world)
| Entity id 0.
static flecs::entity | null ()

## Additional Inherited Members
Protected Member Functions inherited from flecs::entity_builder< entity >
const entity & | to_base () const
Protected Attributes inherited from flecs::id
flecs::world_t * | world_
flecs::id_t | id_
Related Symbols inherited from flecs::entity_builder< entity >
const entity & | unit (flecs::entity_t prefix=0, flecs::entity_t base=0, flecs::entity_t over=0, int32_t factor=0, int32_t power=0) const
| Make entity a derived unit.
const entity & | unit_prefix (const char *symbol, int32_t factor=0, int32_t power=0) const
| Make entity a derived unit.
const entity & | quantity (flecs::entity_t quantity) const
| Add quantity to unit.
const entity & | quantity () const
| Make entity a unity prefix.
const entity & | quantity () const
| Make entity a quantity.
Related Symbols inherited from flecs::entity_view
const 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) const
| Make entity a derived unit.
const Self & | unit_prefix (const char *symbol, int32_t factor=0, int32_t power=0) const
| Make entity a derived unit.
const Self & | quantity (flecs::entity_t quantity) const
| Add quantity to unit.
template<typename Quantity >
const Self & | quantity () const
| Make entity a unity prefix.
const Self & | quantity () const
| Make entity a quantity.

## Detailed Description

Entity.

Class with read/write operations for entities.

Definition at line 29 of file entity.hpp.

## Constructor & Destructor Documentation

## ◆ entity() [1/5]

flecs::entity::entity | ( |  | ) |
| inline

Definition at line 31 of file entity.hpp.

## ◆ entity() [2/5]

flecs::entity::entity | ( | world_t * | world | ) |
| inlineexplicit

Create entity.

Parameters

  world | The world in which to create the entity.

Definition at line 37 of file entity.hpp.

## ◆ entity() [3/5]

flecs::entity::entity | ( | const flecs::world_t * | world,
|  | flecs::entity_t | id )
| inlineexplicit

Wrap an existing entity id.

Parameters

  world | The world in which the entity is created.
  id | The entity id.

Definition at line 54 of file entity.hpp.

## ◆ entity() [4/5]

flecs::entity::entity | ( | world_t * | world,
|  | const char * | name )
| inlineexplicit

Create a named entity.

Named entities can be looked up with the lookup functions. Entity names may be scoped, where each element in the name is separated by "::". For example: "Foo::Bar". If parts of the hierarchy in the scoped name do not yet exist, they will be automatically created.

Parameters

  world | The world in which to create the entity.
  name | The entity name.

Definition at line 68 of file entity.hpp.

## ◆ entity() [5/5]

flecs::entity::entity | ( | entity_t | id | ) |
| inlineexplicit

Conversion from flecs::entity_t to flecs::entity.

Parameters

  id | The entity_t value to convert.

Definition at line 84 of file entity.hpp.

## Member Function Documentation

## ◆ clear()

void flecs::entity::clear | ( |  | ) | const
| inline

Clear an entity.

This operation removes all components from an entity without recycling the entity id.

See also
  ecs_clear()

Definition at line 297 of file entity.hpp.

## ◆ destruct()

void flecs::entity::destruct | ( |  | ) | const
| inline

Delete an entity.

Entities have to be deleted explicitly, and are not deleted when the entity object goes out of scope.

See also
  ecs_delete()

Definition at line 307 of file entity.hpp.

## ◆ ensure() [1/5]

template<typename T >

T & flecs::entity::ensure | ( |  | ) | const
| inline

Get mutable component value.

This operation returns a mutable pointer to the component. If the entity did not yet have the component, it will be added. If a base entity had the component, it will be overridden, and the value of the base component will be copied to the entity before this function returns.

Template Parameters

  T | The component to get.

Returns
  Pointer to the component value.

Definition at line 99 of file entity.hpp.

## ◆ ensure() [2/5]

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>

A & flecs::entity::ensure | ( |  | ) | const
| inline

Get mutable pointer for a pair.

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

Template Parameters

  First | The first part of the pair.
  Second | the second part of the pair.

Definition at line 127 of file entity.hpp.

## ◆ ensure() [3/5]

void * flecs::entity::ensure | ( | entity_t | comp | ) | const
| inline

Get mutable component value (untyped).

This operation returns a mutable pointer to the component. If the entity did not yet have the component, it will be added. If a base entity had the component, it will be overridden, and the value of the base component will be copied to the entity before this function returns.

Parameters

  comp | The component to get.

Returns
  Pointer to the component value.

Definition at line 115 of file entity.hpp.

## ◆ ensure() [4/5]

void * flecs::entity::ensure | ( | entity_t | first,
|  | entity_t | second ) const
| inline

Get mutable pointer for a pair (untyped).

This operation gets the value for a pair from the entity. If neither the first nor second element of the pair is a component, the operation will fail.

Parameters

  first | The first element of the pair.
  second | The second element of the pair.

Definition at line 156 of file entity.hpp.

## ◆ ensure() [5/5]

template<typename First >

First & flecs::entity::ensure | ( | entity_t | second | ) | const
| inline

Get mutable pointer for the first element of a pair.

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

Template Parameters

  First | The first part of the pair.

Parameters

  second | The second element of the pair.

Definition at line 140 of file entity.hpp.

## ◆ ensure_second()

template<typename Second >

Second & flecs::entity::ensure_second | ( | entity_t | first | ) | const
| inline

Get mutable pointer for the second element of a pair.

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

Template Parameters

  Second | The second element of the pair.

Parameters

  first | The first element of the pair.

Definition at line 167 of file entity.hpp.

## ◆ from_json()

const char * from_json | ( | const char * | json | ) |

Deserialize entity to JSON.

Definition at line 7 of file entity.inl.

## ◆ get_ref() [1/4]

template<typename T , if_t< is_actual< T >::value > = 0>

ref< T > flecs::entity::get_ref | ( |  | ) | const
| inline

Get reference to component.

A reference allows for quick and safe access to a component value, and is a faster alternative to repeatedly calling 'get' for the same component.

Template Parameters

  T | component for which to get a reference.

Returns
  The reference.

Definition at line 247 of file entity.hpp.

## ◆ get_ref() [2/4]

template<typename T , typename A = actual_type_t<T>, if_t< flecs::is_pair< T >::value > = 0>

ref< A > flecs::entity::get_ref | ( |  | ) | const
| inline

Get reference to component.

Overload for when T is not the same as the actual type, which happens when using pair types. A reference allows for quick and safe access to a component value, and is a faster alternative to repeatedly calling 'get' for the same component.

Template Parameters

  T | component for which to get a reference.

Returns
  The reference.

Definition at line 261 of file entity.hpp.

## ◆ get_ref() [3/4]

template<typename First , typename Second , typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>>

ref< A > flecs::entity::get_ref | ( |  | ) | const
| inline

Definition at line 270 of file entity.hpp.

## ◆ get_ref() [4/4]

template<typename First >

ref< First > flecs::entity::get_ref | ( | flecs::entity_t | second | ) | const
| inline

Definition at line 276 of file entity.hpp.

## ◆ get_ref_second()

template<typename Second >

ref< Second > flecs::entity::get_ref_second | ( | flecs::entity_t | first | ) | const
| inline

Definition at line 282 of file entity.hpp.

## ◆ modified() [1/5]

template<typename T >

void flecs::entity::modified | ( |  | ) | const
| inline

Signal that component was modified.

Template Parameters

  T | component that was modified.

Definition at line 186 of file entity.hpp.

## ◆ modified() [2/5]

template<typename First , typename Second , typename A = actual_type_t<flecs::pair<First, Second>>>

void flecs::entity::modified | ( |  | ) | const
| inline

Signal that the first element of a pair was modified.

Template Parameters

  First | The first part of the pair.
  Second | the second part of the pair.

Definition at line 199 of file entity.hpp.

## ◆ modified() [3/5]

void flecs::entity::modified | ( | entity_t | comp | ) | const
| inline

Signal that component was modified.

Parameters

  comp | component that was modified.

Definition at line 235 of file entity.hpp.

## ◆ modified() [4/5]

void flecs::entity::modified | ( | entity_t | first,
|  | entity_t | second ) const
| inline

Signal that a pair has modified (untyped).

If neither the first or second element of the pair are a component, the operation will fail.

Parameters

  first | The first element of the pair.
  second | The second element of the pair.

Definition at line 227 of file entity.hpp.

## ◆ modified() [5/5]

template<typename First >

void flecs::entity::modified | ( | entity_t | second | ) | const
| inline

Signal that the first part of a pair was modified.

Template Parameters

  First | The first part of the pair.

Parameters

  second | The second element of the pair.

Definition at line 213 of file entity.hpp.

## ◆ null() [1/2]

static flecs::entity flecs::entity::null | ( |  | ) |
| inlinestatic

Definition at line 338 of file entity.hpp.

## ◆ null() [2/2]

static flecs::entity flecs::entity::null | ( | const flecs::world_t * | world | ) |
| inlinestatic

Entity id 0.

This function is useful when the API must provide an entity that belongs to a world, but the entity id is 0.

Parameters

  world | The world.

Definition at line 331 of file entity.hpp.

## ◆ view()

flecs::entity_view flecs::entity::view | ( |  | ) | const
| inline

Return entity as entity_view.

This returns an entity_view instance for the entity which is a readonly version of the entity class.

This is similar to a regular upcast, except that this method ensures that the entity_view instance is instantiated with a world vs. a stage, which a regular upcast does not guarantee.

Definition at line 319 of file entity.hpp.

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

- include/flecs/addons/cpp/entity.hpp
- include/flecs/addons/cpp/mixins/json/entity.inl