Clementine
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 <entt.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 () ENTT_NOEXCEPT
 Constructs an invalid handle.
 
 basic_handle (registry_type &ref, entity_type value) ENTT_NOEXCEPT
 Constructs a handle from a given registry and entity. More...
 
template<typename... Args>
bool operator== (const basic_handle< Args... > &other) const ENTT_NOEXCEPT
 Compares two handles. More...
 
template<typename Other , typename... Args>
 operator basic_handle< Other, Args... > () const ENTT_NOEXCEPT
 Constructs a const handle from a non-const one. More...
 
 operator entity_type () const ENTT_NOEXCEPT
 Converts a handle to its underlying entity. More...
 
 operator bool () const ENTT_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 ENTT_NOEXCEPT
 Returns a pointer to the underlying registry, if any. More...
 
entity_type entity () const ENTT_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.

Constructor & Destructor Documentation

◆ basic_handle()

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

Constructs a handle from a given registry and entity.

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

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.

◆ 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

◆ 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.

◆ 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.

◆ 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.

◆ entity()

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

Returns the entity associated with a handle.

Returns
The entity associated with the handle.

◆ 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.

◆ 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.

◆ 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.

◆ 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
inline

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.

◆ operator bool()

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

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.

◆ operator entity_type()

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

Converts a handle to its underlying entity.

Returns
An entity identifier.

◆ operator==()

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

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.

◆ 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.

◆ 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.

◆ registry()

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

Returns a pointer to the underlying registry, if any.

Returns
A pointer to the underlying registry, if any.

◆ 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.

◆ 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

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

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