Flecs v4.0
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
flecs::scoped_world Struct Reference

Scoped world. More...

#include <world.hpp>

Inheritance diagram for flecs::scoped_world:
[legend]

Public Member Functions

 scoped_world (flecs::world_t *w, flecs::entity_t s)
 scoped_world (const scoped_world &obj)
Public Member Functions inherited from flecs::world
 world ()
 Create world.
 world (int argc, char *argv[])
 Create world with command line arguments.
 world (world_t *w)
 Create world from C world.
 world (const world &obj)
 Not allowed to copy a world.
worldoperator= (const world &obj) noexcept
 world (world &&obj) noexcept
worldoperator= (world &&obj) noexcept
void release ()
 operator world_t * () const
void make_owner ()
 Make current world object owner of the world.
void reset ()
 Deletes and recreates the world.
world_t * c_ptr () const
 Obtain pointer to C world object.
void quit () const
 Signal application should quit.
void atfini (ecs_fini_action_t action, void *ctx=nullptr) const
 Register action to be executed when world is destroyed.
bool should_quit () const
 Test if quit() has been called.
ecs_ftime_t frame_begin (float delta_time=0) const
 Begin frame.
void frame_end () const
 End frame.
bool readonly_begin (bool multi_threaded=false) const
 Begin readonly mode.
void readonly_end () const
 End readonly mode.
bool defer_begin () const
 Defer operations until end of frame.
bool defer_end () const
 End block of operations to defer.
bool is_deferred () const
 Test whether deferring is enabled.
void set_stage_count (int32_t stages) const
 Configure world to have N stages.
int32_t get_stage_count () const
 Get number of configured stages.
int32_t get_stage_id () const
 Get current stage id.
bool is_stage () const
 Test if is a stage.
void merge () const
 Merge world or stage.
flecs::world get_stage (int32_t stage_id) const
 Get stage-specific world pointer.
flecs::world async_stage () const
 Create asynchronous stage.
flecs::world get_world () const
 Get actual world.
bool is_readonly () const
 Test whether the current world object is readonly.
void set_ctx (void *ctx, ecs_ctx_free_t ctx_free=nullptr) const
 Set world context.
void * get_ctx () const
 Get world context.
void set_binding_ctx (void *ctx, ecs_ctx_free_t ctx_free=nullptr) const
 Set world binding context.
void * get_binding_ctx () const
 Get world binding context.
void dim (int32_t entity_count) const
 Preallocate memory for number of entities.
void set_entity_range (entity_t min, entity_t max) const
 Set entity range.
void enable_range_check (bool enabled=true) const
 Enforce that operations cannot modify entities outside of range.
flecs::entity set_scope (const flecs::entity_t scope) const
 Set current scope.
flecs::entity get_scope () const
 Get current scope.
template<typename T>
flecs::entity set_scope () const
 Same as set_scope but with type.
flecs::entity_t * set_lookup_path (const flecs::entity_t *search_path) const
 Set search path.
flecs::entity lookup (const char *name, const char *sep="::", const char *root_sep="::", bool recursive=true) const
 Lookup entity by name.
template<typename T, if_t< !is_callable< T >::value > = 0>
void set (const T &value) const
 Set singleton component.
template<typename T, if_t< !is_callable< T >::value > = 0>
void set (T &&value) const
 Set singleton component.
template<typename First, typename Second, typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>, if_not_t< flecs::is_pair< First >::value > = 0>
void set (const A &value) const
 Set singleton pair.
template<typename First, typename Second, typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>, if_not_t< flecs::is_pair< First >::value > = 0>
void set (A &&value) const
 Set singleton pair.
template<typename First, typename Second>
void set (Second second, const First &value) const
 Set singleton pair.
template<typename First, typename Second>
void set (Second second, First &&value) const
 Set singleton pair.
template<typename Func, if_t< is_callable< Func >::value > = 0>
void set (const Func &func) const
 Set singleton component inside a callback.
template<typename T, typename ... Args>
void emplace (Args &&... args) const
template<typename T>
T & ensure () const
 Ensure singleton component.
template<typename T>
void modified () const
 Mark singleton component as modified.
template<typename T>
ref< T > get_ref () const
 Get ref singleton component.
const void * try_get (flecs::id_t id) const
 Get singleton component.
const void * try_get (flecs::entity_t r, flecs::entity_t t) const
 Get singleton pair.
template<typename T>
const T * try_get () const
 Get singleton component.
template<typename First, typename Second, typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>>
const A * try_get () const
 Get singleton pair.
template<typename First, typename Second>
const First * try_get (Second second) const
 Get singleton pair.
const void * get (flecs::id_t id) const
 Get singleton component.
const void * get (flecs::entity_t r, flecs::entity_t t) const
 Get singleton component.
template<typename T>
const T & get () const
template<typename First, typename Second, typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>>
const A & get () const
 Get singleton pair.
template<typename First, typename Second>
const First & get (Second second) const
 Get singleton pair.
template<typename Func, if_t< is_callable< Func >::value > = 0>
void get (const Func &func) const
 Get singleton component inside a callback.
void * try_get_mut (flecs::id_t id) const
 Get mutable singleton component.
void * try_get_mut (flecs::entity_t r, flecs::entity_t t) const
 Get mutable singleton pair.
template<typename T>
T * try_get_mut () const
template<typename First, typename Second, typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>>
A * try_get_mut () const
 Get mutable singleton pair.
template<typename First, typename Second>
First * try_get_mut (Second second) const
 Get mutable singleton pair.
void * get_mut (flecs::id_t id) const
 Get mutable singleton component.
void * get_mut (flecs::entity_t r, flecs::entity_t t) const
 Get mutable singleton pair.
template<typename T>
T & get_mut () const
template<typename First, typename Second, typename P = flecs::pair<First, Second>, typename A = actual_type_t<P>>
A & get_mut () const
 Get mutable singleton pair.
template<typename First, typename Second>
First & get_mut (Second second) const
 Get mutable singleton pair.
template<typename T>
bool has () const
 Test if world has singleton component.
template<typename First, typename Second>
bool has () const
 Test if world has the provided pair.
template<typename First>
bool has (flecs::id_t second) const
 Test if world has the provided pair.
bool has (flecs::id_t first, flecs::id_t second) const
 Test if world has the provided pair.
template<typename T>
void add () const
 Add singleton component.
template<typename First, typename Second>
void add () const
 Adds a pair to the singleton component.
template<typename First>
void add (flecs::entity_t second) const
 Adds a pair to the singleton component.
void add (flecs::entity_t first, flecs::entity_t second) const
 Adds a pair to the singleton entity.
template<typename T>
void remove () const
 Remove singleton component.
template<typename First, typename Second>
void remove () const
 Removes the pair singleton component.
template<typename First>
void remove (flecs::entity_t second) const
 Removes the pair singleton component.
void remove (flecs::entity_t first, flecs::entity_t second) const
 Removes the pair singleton component.
template<typename Func>
void children (Func &&f) const
 Iterate entities in root of world Accepts a callback with the following signature:
template<typename T>
flecs::entity singleton () const
 Get singleton entity for type.
template<typename First>
flecs::entity target (int32_t index=0) const
 Get target for a given pair from a singleton entity.
template<typename T>
flecs::entity target (flecs::entity_t first, int32_t index=0) const
 Get target for a given pair from a singleton entity.
flecs::entity target (flecs::entity_t first, int32_t index=0) const
 Get target for a given pair from a singleton entity.
template<typename T>
flecs::entity use (const char *alias=nullptr) const
 Create alias for component.
flecs::entity use (const char *name, const char *alias=nullptr) const
 Create alias for entity.
void use (flecs::entity entity, const char *alias=nullptr) const
 Create alias for entity.
int count (flecs::id_t component_id) const
 Count entities matching a component.
int count (flecs::entity_t first, flecs::entity_t second) const
 Count entities matching a pair.
template<typename T>
int count () const
 Count entities matching a component.
template<typename First>
int count (flecs::entity_t second) const
 Count entities matching a pair.
template<typename First, typename Second>
int count () const
 Count entities matching a pair.
template<typename Func>
void with (id_t with_id, const Func &func) const
 All entities created in function are created with id.
template<typename T, typename Func>
void with (const Func &func) const
 All entities created in function are created with type.
template<typename First, typename Second, typename Func>
void with (const Func &func) const
 All entities created in function are created with pair.
template<typename First, typename Func>
void with (id_t second, const Func &func) const
 All entities created in function are created with pair.
template<typename Func>
void with (id_t first, id_t second, const Func &func) const
 All entities created in function are created with pair.
template<typename Func>
void scope (id_t parent, const Func &func) const
 All entities created in function are created in scope.
template<typename T, typename Func>
void scope (const Func &func) const
 Same as scope(parent, func), but with T as parent.
flecs::scoped_world scope (id_t parent) const
 Use provided scope for operations ran on returned world.
template<typename T>
flecs::scoped_world scope () const
flecs::scoped_world scope (const char *name) const
void delete_with (id_t the_id) const
 Delete all entities with specified id.
void delete_with (entity_t first, entity_t second) const
 Delete all entities with specified pair.
template<typename T>
void delete_with () const
 Delete all entities with specified component.
template<typename First, typename Second>
void delete_with () const
 Delete all entities with specified pair.
template<typename First>
void delete_with (entity_t second) const
 Delete all entities with specified pair.
void remove_all (id_t the_id) const
 Remove all instances of specified id.
void remove_all (entity_t first, entity_t second) const
 Remove all instances of specified pair.
template<typename T>
void remove_all () const
 Remove all instances of specified component.
template<typename First, typename Second>
void remove_all () const
 Remove all instances of specified pair.
template<typename First>
void remove_all (entity_t second) const
 Remove all instances of specified pair.
template<typename Func>
void defer (const Func &func) const
 Defer all operations called in function.
void defer_suspend () const
 Suspend deferring operations.
void defer_resume () const
 Resume deferring operations.
bool exists (flecs::entity_t e) const
 Check if entity id exists in the world.
bool is_alive (flecs::entity_t e) const
 Check if entity id exists in the world.
bool is_valid (flecs::entity_t e) const
 Check if entity id is valid.
flecs::entity get_alive (flecs::entity_t e) const
 Get alive entity for id.
flecs::entity make_alive (flecs::entity_t e) const
void set_version (flecs::entity_t e) const
 Set version of entity to provided.
void run_post_frame (ecs_fini_action_t action, void *ctx) const
const flecs::world_info_tget_info () const
 Get the world info.
ecs_ftime_t delta_time () const
 Get delta_time.
void shrink () const
 Free unused memory.
void exclusive_access_begin (const char *thread_name=nullptr)
 Begin exclusive access.
void exclusive_access_end (bool lock_world=false)
 End exclusive access.
template<typename T>
flecs::id id () const
 Get id from a type.
template<typename ... Args>
flecs::id id (Args &&... args) const
 Id factory.
template<typename First, typename Second>
flecs::id pair () const
 Get pair id from relationship, object.
template<typename First>
flecs::id pair (entity_t o) const
 Get pair id from relationship, object.
flecs::id pair (entity_t r, entity_t o) const
 Get pair id from relationship, object.
template<typename T, typename... Args>
flecs::component< T > component (Args &&... args) const
 Find or register component.
template<typename... Args>
flecs::untyped_component component (Args &&... args) const
 Find or register untyped component.
template<typename... Args>
flecs::entity entity (Args &&... args) const
 Create an entity.
template<typename E, if_t< is_enum< E >::value > = 0>
flecs::id id (E value) const
 Convert enum constant to entity.
template<typename E, if_t< is_enum< E >::value > = 0>
flecs::entity entity (E value) const
 Convert enum constant to entity.
template<typename... Args>
flecs::entity prefab (Args &&... args) const
 Create a prefab.
template<typename T>
flecs::entity entity (const char *name=nullptr) const
 Create an entity that's associated with a type.
template<typename T>
flecs::entity prefab (const char *name=nullptr) const
 Create a prefab that's associated with a type.
flecs::event_builder event (flecs::entity_t evt) const
 Create a new event.
template<typename E>
flecs::event_builder_typed< E > event () const
 Create a new event.
template<typename E, if_t< is_enum< E >::value > = 0>
flecs::entity to_entity (E constant) const
 Convert enum constant to entity.
template<typename T>
flecs::timer timer () const
 Find or register a singleton timer.
template<typename... Args>
flecs::timer timer (Args &&... args) const
 Find or register a timer.
void randomize_timers () const
 Enable randomization of initial time values for timers.
int script_run (const char *name, const char *str) const
 Run script.
int script_run_file (const char *filename) const
 Run script from file.
script_builder script (const char *name=nullptr) const
 Build script.
flecs::string to_expr (flecs::entity_t tid, const void *value)
 Convert value to string.
template<typename T>
flecs::string to_expr (const T *value)
 Convert value to string.
flecs::string to_json (flecs::entity_t tid, const void *value)
 Serialize untyped value to JSON.
template<typename T>
flecs::string to_json (const T *value)
 Serialize value to JSON.
flecs::string to_json ()
 Serialize world to JSON.
const char * from_json (flecs::entity_t tid, void *value, const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize value from JSON.
template<typename T>
const char * from_json (T *value, const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize value from JSON.
const char * from_json (const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize JSON into world.
const char * from_json_file (const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize JSON file into world.
template<typename... Args>
flecs::metric_builder metric (Args &&... args) const
 Create metric.
template<typename... Comps, typename... Args>
flecs::alert_builder< Comps... > alert (Args &&... args) const
 Create alert.
void init_builtin_components ()
template<typename... Comps, typename... Args>
flecs::alert_builder< Comps... > alert (Args &&... args) const
 Create alert.
template<typename T, typename... Args>
flecs::component< T > component (Args &&... args) const
 Find or register component.
template<typename... Args>
flecs::untyped_component component (Args &&... args) const
 Find or register untyped component.
template<typename... Args>
flecs::entity entity (Args &&... args) const
 Create an entity.
template<typename E, if_t< is_enum< E >::value > = 0>
flecs::id id (E value) const
 Convert enum constant to entity.
template<typename E, if_t< is_enum< E >::value > = 0>
flecs::entity entity (E value) const
 Convert enum constant to entity.
template<typename... Args>
flecs::entity prefab (Args &&... args) const
 Create a prefab.
template<typename T>
flecs::entity entity (const char *name=nullptr) const
 Create an entity that's associated with a type.
template<typename T>
flecs::entity prefab (const char *name=nullptr) const
 Create a prefab that's associated with a type.
template<typename E, if_t< is_enum< E >::value > = 0>
flecs::entity to_entity (E constant) const
 Convert enum constant to entity.
flecs::event_builder event (flecs::entity_t evt) const
 Create a new event.
template<typename E>
flecs::event_builder_typed< E > event () const
 Create a new event.
template<typename T>
flecs::id id () const
 Get id from a type.
template<typename ... Args>
flecs::id id (Args &&... args) const
 Id factory.
template<typename First, typename Second>
flecs::id pair () const
 Get pair id from relationship, object.
template<typename First>
flecs::id pair (entity_t o) const
 Get pair id from relationship, object.
flecs::id pair (entity_t r, entity_t o) const
 Get pair id from relationship, object.
flecs::string to_json (flecs::entity_t tid, const void *value)
 Serialize untyped value to JSON.
template<typename T>
flecs::string to_json (const T *value)
 Serialize value to JSON.
flecs::string to_json ()
 Serialize world to JSON.
const char * from_json (flecs::entity_t tid, void *value, const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize value from JSON.
template<typename T>
const char * from_json (T *value, const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize value from JSON.
const char * from_json (const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize JSON into world.
const char * from_json_file (const char *json, flecs::from_json_desc_t *desc=nullptr)
 Deserialize JSON file into world.
template<typename... Args>
flecs::metric_builder metric (Args &&... args) const
 Create metric.
template<typename... Comps, typename... Args>
observer_builder< Comps... > observer (Args &&... args) const
template<typename... Comps, typename... Args>
system_builder< Comps... > system (Args &&... args) const
template<typename T>
flecs::timer timer () const
 Find or register a singleton timer.
flecs::app_builder app ()
 Return app builder.
flecs::app_builder app ()
 Return app builder.
template<typename... Args>
flecs::term term (Args &&... args) const
 Create a term.
flecs::observer observer (flecs::entity e) const
 Observer builder.
template<typename... Comps, typename... Args>
flecs::query< Comps... > query (Args &&... args) const
 Create a query.
template<typename Module>
flecs::entity module (const char *name=nullptr) const
 Define a module.
flecs::pipeline_builder pipeline () const
 Create a new pipeline.
flecs::system system (flecs::entity e) const
 Upcast entity to a system.
flecs::cursor cursor (flecs::entity_t tid, void *ptr)
 Return meta cursor to value.
flecs::cursor cursor (flecs::entity_t tid, void *ptr)
 Return meta cursor to value.
template<typename Module>
flecs::entity module (const char *name=nullptr) const
 Define a module.
flecs::observer observer (flecs::entity e) const
 Observer builder.
flecs::pipeline_builder pipeline () const
 Create a new pipeline.
template<typename... Comps, typename... Args>
flecs::query< Comps... > query (Args &&... args) const
 Create a query.
flecs::system system (flecs::entity e) const
 Upcast entity to a system.
template<typename... Args>
flecs::term term (Args &&... args) const
 Create a term.

Public Attributes

flecs::entity_t prev_scope_
Public Attributes inherited from flecs::world
world_t * world_

Additional Inherited Members

template<typename T>
flecs::term term () const
 Create a term for a (component) type.
template<typename First, typename Second>
flecs::term term () const
 Create a term for a pair.
template<typename... Components, typename... Args>
flecs::observer_builder< Components... > observer (Args &&... args) const
 Create a new observer.
flecs::query query (flecs::entity query_entity) const
 Create a query from entity.
template<typename... Comps, typename... Args>
flecs::query_builder< Comps... > query_builder (Args &&... args) const
 Create a query builder.
template<typename Func>
void each (Func &&func) const
 Iterate over all entities with components in argument list of function.
template<typename T, typename Func>
void each (Func &&func) const
 Iterate over all entities with provided component.
template<typename Func>
void each (flecs::id_t term_id, Func &&func) const
 Iterate over all entities with provided (component) id.
template<typename Module>
flecs::entity import ()
 Import a module.
template<typename Pipeline, if_not_t< is_enum< Pipeline >::value > = 0>
flecs::pipeline_builder pipeline () const
 Create a new pipeline.
void set_pipeline (const flecs::entity pip) const
 Set pipeline.
template<typename Pipeline>
void set_pipeline () const
 Set pipeline.
flecs::entity get_pipeline () const
 Get pipeline.
bool progress (ecs_ftime_t delta_time=0.0) const
 Progress world one tick.
void run_pipeline (const flecs::entity_t pip, ecs_ftime_t delta_time=0.0) const
 Run pipeline.
template<typename Pipeline, if_not_t< is_enum< Pipeline >::value > = 0>
void run_pipeline (ecs_ftime_t delta_time=0.0) const
 Run pipeline.
void set_time_scale (ecs_ftime_t mul) const
 Set timescale.
void set_target_fps (ecs_ftime_t target_fps) const
 Set target FPS.
void reset_clock () const
 Reset simulation clock.
void set_threads (int32_t threads) const
 Set number of threads.
int32_t get_threads () const
 Set number of threads.
void set_task_threads (int32_t task_threads) const
 Set number of task threads.
bool using_task_threads () const
 Returns true if task thread use has been requested.
template<typename... Components, typename... Args>
flecs::system_builder< Components... > system (Args &&... args) const
 Create a new system.
template<typename T>
flecs::cursor cursor (void *ptr)
 Return meta cursor to value.
flecs::entity primitive (flecs::meta::primitive_kind_t kind)
 Create primitive type.
flecs::entity array (flecs::entity_t elem_id, int32_t array_count)
 Create array type.
template<typename T>
flecs::entity array (int32_t array_count)
 Create array type.
flecs::entity vector (flecs::entity_t elem_id)
 Create vector type.
template<typename T>
flecs::entity vector ()
 Create vector type.
template<typename T>
flecs::cursor cursor (void *ptr)
 Return meta cursor to value.
flecs::entity primitive (flecs::meta::primitive_kind_t kind)
 Create primitive type.
flecs::entity array (flecs::entity_t elem_id, int32_t array_count)
 Create array type.
template<typename T>
flecs::entity array (int32_t array_count)
 Create array type.
flecs::entity vector (flecs::entity_t elem_id)
 Create vector type.
template<typename T>
flecs::entity vector ()
 Create vector type.
template<typename Module>
flecs::entity import ()
 Import a module.
template<typename... Components, typename... Args>
flecs::observer_builder< Components... > observer (Args &&... args) const
 Create a new observer.
template<typename Pipeline, if_not_t< is_enum< Pipeline >::value > = 0>
flecs::pipeline_builder pipeline () const
 Create a new pipeline.
void set_pipeline (const flecs::entity pip) const
 Set pipeline.
template<typename Pipeline>
void set_pipeline () const
 Set pipeline.
flecs::entity get_pipeline () const
 Get pipeline.
bool progress (ecs_ftime_t delta_time=0.0) const
 Progress world one tick.
void run_pipeline (const flecs::entity_t pip, ecs_ftime_t delta_time=0.0) const
 Run pipeline.
template<typename Pipeline, if_not_t< is_enum< Pipeline >::value > = 0>
void run_pipeline (ecs_ftime_t delta_time=0.0) const
 Run pipeline.
void set_time_scale (ecs_ftime_t mul) const
 Set timescale.
void set_target_fps (ecs_ftime_t target_fps) const
 Set target FPS.
void reset_clock () const
 Reset simulation clock.
void set_threads (int32_t threads) const
 Set number of threads.
int32_t get_threads () const
 Set number of threads.
void set_task_threads (int32_t task_threads) const
 Set number of task threads.
bool using_task_threads () const
 Returns true if task thread use has been requested.
flecs::query query (flecs::entity query_entity) const
 Create a query from entity.
template<typename... Comps, typename... Args>
flecs::query_builder< Comps... > query_builder (Args &&... args) const
 Create a query builder.
template<typename Func>
void each (Func &&func) const
 Iterate over all entities with components in argument list of function.
template<typename T, typename Func>
void each (Func &&func) const
 Iterate over all entities with provided component.
template<typename Func>
void each (flecs::id_t term_id, Func &&func) const
 Iterate over all entities with provided (component) id.
template<typename... Components, typename... Args>
flecs::system_builder< Components... > system (Args &&... args) const
 Create a new system.
template<typename T>
flecs::term term () const
 Create a term for a (component) type.
template<typename First, typename Second>
flecs::term term () const
 Create a term for a pair.

Detailed Description

Scoped world.

Utility class used by the world::scope method to create entities in a scope.

Definition at line 1366 of file world.hpp.

Constructor & Destructor Documentation

◆ scoped_world() [1/2]

flecs::scoped_world::scoped_world ( flecs::world_t * w,
flecs::entity_t s )
inline

Definition at line 1367 of file world.hpp.

◆ ~scoped_world()

flecs::scoped_world::~scoped_world ( )
inline

Definition at line 1374 of file world.hpp.

◆ scoped_world() [2/2]

flecs::scoped_world::scoped_world ( const scoped_world & obj)
inline

Definition at line 1378 of file world.hpp.

Member Data Documentation

◆ prev_scope_

flecs::entity_t flecs::scoped_world::prev_scope_

Definition at line 1384 of file world.hpp.


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