EnTT 3.13.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
entt::basic_handle< Registry, Scope > Struct Template Reference

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

#include <handle.hpp>

Public Types

using registry_type = Registry
 Type of registry accepted by the handle.
 
using entity_type = typename registry_type::entity_type
 Underlying entity identifier.
 
using version_type = typename registry_type::version_type
 Underlying version type.
 
using size_type = typename registry_type::size_type
 Unsigned integer type.
 

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.
 
auto storage () const noexcept
 Returns an iterable object to use to visit a handle.
 
template<typename Other , typename... Args>
 operator basic_handle< Other, Args... > () const noexcept
 Constructs a const handle from a non-const one.
 
 operator entity_type () const noexcept
 Converts a handle to its underlying entity.
 
 operator bool () const noexcept
 Checks if a handle refers to non-null registry pointer and entity.
 
bool valid () const
 Checks if a handle refers to a valid entity or not.
 
registry_typeregistry () const noexcept
 Returns a pointer to the underlying registry, if any.
 
entity_type entity () const noexcept
 Returns the entity associated with a handle.
 
void destroy ()
 Destroys the entity associated with a handle.
 
void destroy (const version_type version)
 Destroys the entity associated with a handle.
 
template<typename Component , typename... Args>
decltype(auto) emplace (Args &&...args) const
 Assigns the given component to a handle.
 
template<typename Component , typename... Args>
decltype(auto) emplace_or_replace (Args &&...args) const
 Assigns or replaces the given component for a handle.
 
template<typename Component , typename... Func>
decltype(auto) patch (Func &&...func) const
 Patches the given component for a handle.
 
template<typename Component , typename... Args>
decltype(auto) replace (Args &&...args) const
 Replaces the given component for a handle.
 
template<typename... Component>
size_type remove () const
 Removes the given components from a handle.
 
template<typename... Component>
void erase () const
 Erases the given components from a handle.
 
template<typename... Component>
decltype(auto) all_of () const
 Checks if a handle has all the given components.
 
template<typename... Component>
decltype(auto) any_of () const
 Checks if a handle has at least one of the given components.
 
template<typename... Component>
decltype(auto) get () const
 Returns references to the given components for a handle.
 
template<typename Component , typename... Args>
decltype(auto) get_or_emplace (Args &&...args) const
 Returns a reference to the given component for a handle.
 
template<typename... Component>
auto try_get () const
 Returns pointers to the given components for a handle.
 
bool orphan () const
 Checks if a handle has components assigned.
 

Detailed Description

template<typename Registry, typename... Scope>
struct entt::basic_handle< Registry, Scope >

Non-owning handle to an entity.

Tiny wrapper around a registry and an entity.

Template Parameters
RegistryBasic registry type.
ScopeTypes to which to restrict the scope of a handle.

Definition at line 97 of file handle.hpp.

Member Typedef Documentation

◆ entity_type

template<typename Registry , typename... Scope>
using entt::basic_handle< Registry, Scope >::entity_type = typename registry_type::entity_type

Underlying entity identifier.

Definition at line 101 of file handle.hpp.

◆ registry_type

template<typename Registry , typename... Scope>
using entt::basic_handle< Registry, Scope >::registry_type = Registry

Type of registry accepted by the handle.

Definition at line 99 of file handle.hpp.

◆ size_type

template<typename Registry , typename... Scope>
using entt::basic_handle< Registry, Scope >::size_type = typename registry_type::size_type

Unsigned integer type.

Definition at line 105 of file handle.hpp.

◆ version_type

template<typename Registry , typename... Scope>
using entt::basic_handle< Registry, Scope >::version_type = typename registry_type::version_type

Underlying version type.

Definition at line 103 of file handle.hpp.

Constructor & Destructor Documentation

◆ basic_handle() [1/2]

template<typename Registry , typename... Scope>
entt::basic_handle< Registry, Scope >::basic_handle ( )
inlinenoexcept

Constructs an invalid handle.

Definition at line 108 of file handle.hpp.

◆ basic_handle() [2/2]

template<typename Registry , typename... Scope>
entt::basic_handle< Registry, Scope >::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.
valueA valid identifier.

Definition at line 117 of file handle.hpp.

Member Function Documentation

◆ all_of()

template<typename Registry , typename... Scope>
template<typename... Component>
decltype(auto) entt::basic_handle< Registry, Scope >::all_of ( ) const
inline

Checks if a handle has all the given components.

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

Definition at line 284 of file handle.hpp.

◆ any_of()

template<typename Registry , typename... Scope>
template<typename... Component>
decltype(auto) entt::basic_handle< Registry, Scope >::any_of ( ) const
inline

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

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 295 of file handle.hpp.

◆ destroy() [1/2]

template<typename Registry , typename... Scope>
void entt::basic_handle< Registry, Scope >::destroy ( )
inline

Destroys the entity associated with a handle.

Definition at line 193 of file handle.hpp.

◆ destroy() [2/2]

template<typename Registry , typename... Scope>
void entt::basic_handle< Registry, Scope >::destroy ( const version_type  version)
inline

Destroys the entity associated with a handle.

Parameters
versionA desired version upon destruction.

Definition at line 201 of file handle.hpp.

◆ emplace()

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

Assigns the given component to a handle.

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 213 of file handle.hpp.

◆ emplace_or_replace()

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

Assigns or replaces the given component for a handle.

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 226 of file handle.hpp.

◆ entity()

template<typename Registry , typename... Scope>
entity_type entt::basic_handle< Registry, Scope >::entity ( ) const
inlinenoexcept

Returns the entity associated with a handle.

Returns
The entity associated with the handle.

Definition at line 188 of file handle.hpp.

◆ erase()

template<typename Registry , typename... Scope>
template<typename... Component>
void entt::basic_handle< Registry, Scope >::erase ( ) const
inline

Erases the given components from a handle.

Template Parameters
ComponentTypes of components to erase.

Definition at line 273 of file handle.hpp.

◆ get()

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

Returns references to the given components for a handle.

Template Parameters
ComponentTypes of components to get.
Returns
References to the components owned by the handle.

Definition at line 305 of file handle.hpp.

◆ get_or_emplace()

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

Returns a reference to the given component for a handle.

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 318 of file handle.hpp.

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

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

Constructs a const handle from a non-const one.

Template Parameters
OtherA valid entity type.
ArgsScope of the handle to construct.
Returns
A const handle referring to the same registry and the same entity.

Definition at line 145 of file handle.hpp.

◆ operator bool()

template<typename Registry , typename... Scope>
entt::basic_handle< Registry, Scope >::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 164 of file handle.hpp.

◆ operator entity_type()

template<typename Registry , typename... Scope>
entt::basic_handle< Registry, Scope >::operator entity_type ( ) const
inlinenoexcept

Converts a handle to its underlying entity.

Returns
The contained identifier.

Definition at line 156 of file handle.hpp.

◆ orphan()

template<typename Registry , typename... Scope>
bool entt::basic_handle< Registry, Scope >::orphan ( ) const
inline

Checks if a handle has components assigned.

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

Definition at line 338 of file handle.hpp.

◆ patch()

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

Patches the given component for a handle.

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 239 of file handle.hpp.

◆ registry()

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

Returns a pointer to the underlying registry, if any.

Returns
A pointer to the underlying registry, if any.

Definition at line 180 of file handle.hpp.

◆ remove()

template<typename Registry , typename... Scope>
template<typename... Component>
size_type entt::basic_handle< Registry, Scope >::remove ( ) const
inline

Removes the given components from a handle.

Template Parameters
ComponentTypes of components to remove.
Returns
The number of components actually removed.

Definition at line 263 of file handle.hpp.

◆ replace()

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

Replaces the given component for a handle.

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 252 of file handle.hpp.

◆ storage()

template<typename Registry , typename... Scope>
auto entt::basic_handle< Registry, Scope >::storage ( ) const
inlinenoexcept

Returns an iterable object to use to visit a handle.

The iterable object returns a pair that contains the name and a reference to the current storage.
Returned storage are those that contain the entity associated with the handle.

Returns
An iterable object to use to visit the handle.

Definition at line 131 of file handle.hpp.

◆ try_get()

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

Returns pointers to the given components for a handle.

Template Parameters
ComponentTypes of components to get.
Returns
Pointers to the components owned by the handle.

Definition at line 329 of file handle.hpp.

◆ valid()

template<typename Registry , typename... Scope>
bool entt::basic_handle< Registry, Scope >::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 172 of file handle.hpp.


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