EnTT  3.6.0
Public Types | Public Member Functions | List of all members
entt::basic_handle< Entity, Type > Struct Template Reference

Non-owning handle to an entity. More...

#include <handle.hpp>

Public Types

using entity_type = std::remove_const_t< Entity >
 Underlying entity identifier.
 
using registry_type = constness_as_t< basic_registry< entity_type >, Entity >
 Type of registry accepted by the handle.
 

Public Member Functions

 basic_handle () noexcept
 Constructs an invalid handle.
 
 basic_handle (registry_type &ref, entity_type value) noexcept
 Constructs a handle from a given registry and entity. More...
 
template<typename... Args>
bool operator== (const basic_handle< Args... > &other) const noexcept
 Compares two handles. More...
 
template<typename Other , typename... Args>
 operator basic_handle< Other, Args... > () const noexcept
 Constructs a const handle from a non-const one. More...
 
 operator entity_type () const noexcept
 Converts a handle to its underlying entity. More...
 
 operator bool () const noexcept
 Checks if a handle refers to non-null registry pointer and entity. More...
 
bool valid () const
 Checks if a handle refers to a valid entity or not. More...
 
registry_typeregistry () const noexcept
 Returns a pointer to the underlying registry, if any. More...
 
entity_type entity () const noexcept
 Returns the entity associated with a handle. More...
 
void destroy ()
 Destroys the entity associated with a handle. More...
 
void destroy (const typename registry_type::version_type version)
 Destroys the entity associated with a handle. More...
 
template<typename Component , typename... Args>
decltype(auto) emplace (Args &&... args) const
 Assigns the given component to a handle. More...
 
template<typename Component , typename... Args>
decltype(auto) emplace_or_replace (Args &&... args) const
 Assigns or replaces the given component for a handle. More...
 
template<typename Component , typename... Func>
decltype(auto) patch (Func &&... func) const
 Patches the given component for a handle. More...
 
template<typename Component , typename... Args>
decltype(auto) replace (Args &&... args) const
 Replaces the given component for a handle. More...
 
template<typename... Component>
void remove () const
 Removes the given components from a handle. More...
 
template<typename... Component>
decltype(auto) remove_if_exists () const
 Removes the given components from a handle. More...
 
void remove_all () const
 Removes all the components from a handle and makes it orphaned. More...
 
template<typename... Component>
decltype(auto) has () const
 Checks if a handle has all the given components. More...
 
template<typename... Component>
decltype(auto) any () const
 Checks if a handle has at least one of the given components. More...
 
template<typename... Component>
decltype(auto) get () const
 Returns references to the given components for a handle. More...
 
template<typename Component , typename... Args>
decltype(auto) get_or_emplace (Args &&... args) const
 Returns a reference to the given component for a handle. More...
 
template<typename... Component>
auto try_get () const
 Returns pointers to the given components for a handle. More...
 
bool orphan () const
 Checks if a handle has components assigned. More...
 
template<typename Func >
void visit (Func &&func) const
 Visits a handle and returns the types for its components. More...
 

Detailed Description

template<typename Entity, typename... Type>
struct entt::basic_handle< Entity, Type >

Non-owning handle to an entity.

Tiny wrapper around a registry and an entity.

Template Parameters
EntityA valid entity type (see entt_traits for more details).
TypeTypes to which to restrict the scope of a handle.

Definition at line 26 of file handle.hpp.

Constructor & Destructor Documentation

◆ basic_handle()

template<typename Entity , typename... Type>
entt::basic_handle< Entity, Type >::basic_handle ( registry_type ref,
entity_type  value 
)
inlinenoexcept

Constructs a handle from a given registry and entity.

Parameters
refAn instance of the registry class.
valueAn entity identifier.

Definition at line 42 of file handle.hpp.

Member Function Documentation

◆ any()

template<typename Entity , typename... Type>
template<typename... Component>
decltype(auto) entt::basic_handle< Entity, Type >::any ( ) const
inline

Checks if a handle has at least one of the given components.

See also
basic_registry::any
Template Parameters
ComponentComponents for which to perform the check.
Returns
True if the handle has at least one of the given components, false otherwise.

Definition at line 240 of file handle.hpp.

◆ destroy() [1/2]

template<typename Entity , typename... Type>
void entt::basic_handle< Entity, Type >::destroy ( )
inline

Destroys the entity associated with a handle.

See also
basic_registry::destroy

Definition at line 120 of file handle.hpp.

◆ destroy() [2/2]

template<typename Entity , typename... Type>
void entt::basic_handle< Entity, Type >::destroy ( const typename registry_type::version_type  version)
inline

Destroys the entity associated with a handle.

See also
basic_registry::destroy
Parameters
versionA desired version upon destruction.

Definition at line 129 of file handle.hpp.

◆ emplace()

template<typename Entity , typename... Type>
template<typename Component , typename... Args>
decltype(auto) entt::basic_handle< Entity, Type >::emplace ( Args &&...  args) const
inline

Assigns the given component to a handle.

See also
basic_registry::emplace
Template Parameters
ComponentType of component to create.
ArgsTypes of arguments to use to construct the component.
Parameters
argsParameters to use to initialize the component.
Returns
A reference to the newly created component.

Definition at line 142 of file handle.hpp.

◆ emplace_or_replace()

template<typename Entity , typename... Type>
template<typename Component , typename... Args>
decltype(auto) entt::basic_handle< Entity, Type >::emplace_or_replace ( Args &&...  args) const
inline

Assigns or replaces the given component for a handle.

See also
basic_registry::emplace_or_replace
Template Parameters
ComponentType of component to assign or replace.
ArgsTypes of arguments to use to construct the component.
Parameters
argsParameters to use to initialize the component.
Returns
A reference to the newly created component.

Definition at line 156 of file handle.hpp.

◆ entity()

template<typename Entity , typename... Type>
entity_type entt::basic_handle< Entity, Type >::entity ( ) const
inlinenoexcept

Returns the entity associated with a handle.

Returns
The entity associated with the handle.

Definition at line 112 of file handle.hpp.

◆ get()

template<typename Entity , typename... Type>
template<typename... Component>
decltype(auto) entt::basic_handle< Entity, Type >::get ( ) const
inline

Returns references to the given components for a handle.

See also
basic_registry::get
Template Parameters
ComponentTypes of components to get.
Returns
References to the components owned by the handle.

Definition at line 251 of file handle.hpp.

◆ get_or_emplace()

template<typename Entity , typename... Type>
template<typename Component , typename... Args>
decltype(auto) entt::basic_handle< Entity, Type >::get_or_emplace ( Args &&...  args) const
inline

Returns a reference to the given component for a handle.

See also
basic_registry::get_or_emplace
Template Parameters
ComponentType of component to get.
ArgsTypes of arguments to use to construct the component.
Parameters
argsParameters to use to initialize the component.
Returns
Reference to the component owned by the handle.

Definition at line 265 of file handle.hpp.

◆ has()

template<typename Entity , typename... Type>
template<typename... Component>
decltype(auto) entt::basic_handle< Entity, Type >::has ( ) const
inline

Checks if a handle has all the given components.

See also
basic_registry::has
Template Parameters
ComponentComponents for which to perform the check.
Returns
True if the handle has all the components, false otherwise.

Definition at line 228 of file handle.hpp.

◆ operator basic_handle< Other, Args... >()

template<typename Entity , typename... Type>
template<typename Other , typename... Args>
entt::basic_handle< Entity, Type >::operator basic_handle< Other, Args... > ( ) const
inlinenoexcept

Constructs a const handle from a non-const one.

Template Parameters
OtherA valid entity type (see entt_traits for more details).
ArgsScope of the handle to construct.
Returns
A const handle referring to the same registry and the same entity.

Definition at line 66 of file handle.hpp.

◆ operator bool()

template<typename Entity , typename... Type>
entt::basic_handle< Entity, Type >::operator bool ( ) const
inlineexplicitnoexcept

Checks if a handle refers to non-null registry pointer and entity.

Returns
True if the handle refers to non-null registry and entity, false otherwise.

Definition at line 88 of file handle.hpp.

◆ operator entity_type()

template<typename Entity , typename... Type>
entt::basic_handle< Entity, Type >::operator entity_type ( ) const
inlinenoexcept

Converts a handle to its underlying entity.

Returns
An entity identifier.

Definition at line 80 of file handle.hpp.

◆ operator==()

template<typename Entity , typename... Type>
template<typename... Args>
bool entt::basic_handle< Entity, Type >::operator== ( const basic_handle< Args... > &  other) const
inlinenoexcept

Compares two handles.

Template Parameters
ArgsTemplate parameters of the handle with which to compare.
Parameters
otherHandle with which to compare.
Returns
True if both handles refer to the same registry and the same entity, false otherwise.

Definition at line 54 of file handle.hpp.

◆ orphan()

template<typename Entity , typename... Type>
bool entt::basic_handle< Entity, Type >::orphan ( ) const
inline

Checks if a handle has components assigned.

Returns
True if the handle has no components assigned, false otherwise.

Definition at line 286 of file handle.hpp.

◆ patch()

template<typename Entity , typename... Type>
template<typename Component , typename... Func>
decltype(auto) entt::basic_handle< Entity, Type >::patch ( Func &&...  func) const
inline

Patches the given component for a handle.

See also
basic_registry::patch
Template Parameters
ComponentType of component to patch.
FuncTypes of the function objects to invoke.
Parameters
funcValid function objects.
Returns
A reference to the patched component.

Definition at line 170 of file handle.hpp.

◆ registry()

template<typename Entity , typename... Type>
registry_type* entt::basic_handle< Entity, Type >::registry ( ) const
inlinenoexcept

Returns a pointer to the underlying registry, if any.

Returns
A pointer to the underlying registry, if any.

Definition at line 104 of file handle.hpp.

◆ remove()

template<typename Entity , typename... Type>
template<typename... Component>
void entt::basic_handle< Entity, Type >::remove ( ) const
inline

Removes the given components from a handle.

See also
basic_registry::remove
Template Parameters
ComponentTypes of components to remove.

Definition at line 195 of file handle.hpp.

◆ remove_all()

template<typename Entity , typename... Type>
void entt::basic_handle< Entity, Type >::remove_all ( ) const
inline

Removes all the components from a handle and makes it orphaned.

See also
basic_registry::remove_all

Definition at line 216 of file handle.hpp.

◆ remove_if_exists()

template<typename Entity , typename... Type>
template<typename... Component>
decltype(auto) entt::basic_handle< Entity, Type >::remove_if_exists ( ) const
inline

Removes the given components from a handle.

See also
basic_registry::remove_if_exists
Template Parameters
ComponentTypes of components to remove.
Returns
The number of components actually removed.

Definition at line 207 of file handle.hpp.

◆ replace()

template<typename Entity , typename... Type>
template<typename Component , typename... Args>
decltype(auto) entt::basic_handle< Entity, Type >::replace ( Args &&...  args) const
inline

Replaces the given component for a handle.

See also
basic_registry::replace
Template Parameters
ComponentType of component to replace.
ArgsTypes of arguments to use to construct the component.
Parameters
argsParameters to use to initialize the component.
Returns
A reference to the component being replaced.

Definition at line 184 of file handle.hpp.

◆ try_get()

template<typename Entity , typename... Type>
template<typename... Component>
auto entt::basic_handle< Entity, Type >::try_get ( ) const
inline

Returns pointers to the given components for a handle.

See also
basic_registry::try_get
Template Parameters
ComponentTypes of components to get.
Returns
Pointers to the components owned by the handle.

Definition at line 277 of file handle.hpp.

◆ valid()

template<typename Entity , typename... Type>
bool entt::basic_handle< Entity, Type >::valid ( ) const
inline

Checks if a handle refers to a valid entity or not.

Returns
True if the handle refers to a valid entity, false otherwise.

Definition at line 96 of file handle.hpp.

◆ visit()

template<typename Entity , typename... Type>
template<typename Func >
void entt::basic_handle< Entity, Type >::visit ( Func &&  func) const
inline

Visits a handle and returns the types for its components.

See also
basic_registry::visit
Template Parameters
FuncType of the function object to invoke.
Parameters
funcA valid function object.

Definition at line 297 of file handle.hpp.


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