Storage for exclusive relation pairs that do not fragment archetypes.
More...
#include <nonfragmenting_relation_store.h>
Storage for exclusive relation pairs that do not fragment archetypes.
◆ collect_source_ids()
| void gaia::ecs::detail::NonFragmentingRelationStore::collect_source_ids |
( |
cnt::darray< EntityId > & |
out | ) |
const |
|
inline |
Appends ids of all bound source entities.
- Parameters
-
| out | Output array receiving source entity ids. |
◆ empty()
| GAIA_NODISCARD bool gaia::ecs::detail::NonFragmentingRelationStore::empty |
( |
| ) |
const |
|
inline |
Checks whether the store has no source bindings.
- Returns
- True when no source is bound.
◆ ensure_source_capacity()
| void gaia::ecs::detail::NonFragmentingRelationStore::ensure_source_capacity |
( |
Entity |
source | ) |
|
|
inline |
Ensures source-indexed storage can hold source.
- Parameters
-
◆ ensure_target_capacity()
| void gaia::ecs::detail::NonFragmentingRelationStore::ensure_target_capacity |
( |
Entity |
target | ) |
|
|
inline |
Ensures target-indexed storage can hold target.
- Parameters
-
◆ remove()
| GAIA_NODISCARD bool gaia::ecs::detail::NonFragmentingRelationStore::remove |
( |
Entity |
source, |
|
|
Entity |
target |
|
) |
| |
|
inline |
Removes source from the store.
- Parameters
-
| source | Source entity. |
| target | Required target, or EntityBad to remove any target. |
- Returns
- True when a binding was removed.
◆ remove_target_source()
| void gaia::ecs::detail::NonFragmentingRelationStore::remove_target_source |
( |
Entity |
target, |
|
|
Entity |
source |
|
) |
| |
|
inline |
Removes source from the source bucket for target.
- Parameters
-
| target | Target entity. |
| source | Source entity. |
◆ set()
| GAIA_NODISCARD bool gaia::ecs::detail::NonFragmentingRelationStore::set |
( |
Entity |
source, |
|
|
Entity |
target |
|
) |
| |
|
inline |
Binds source to target.
- Parameters
-
| source | Source entity. |
| target | Target entity. |
- Returns
- True when the stored binding changed.
◆ source_count()
| GAIA_NODISCARD uint32_t gaia::ecs::detail::NonFragmentingRelationStore::source_count |
( |
| ) |
const |
|
inline |
Returns the number of active source bindings.
- Returns
- Number of bound source entities.
◆ sources()
| GAIA_NODISCARD const cnt::darray< Entity > * gaia::ecs::detail::NonFragmentingRelationStore::sources |
( |
Entity |
target | ) |
const |
|
inline |
Returns sources currently bound to target.
- Parameters
-
- Returns
- Source bucket or nullptr when no source is bound.
◆ target()
| GAIA_NODISCARD Entity gaia::ecs::detail::NonFragmentingRelationStore::target |
( |
Entity |
source | ) |
const |
|
inline |
Returns the target currently bound to source.
- Parameters
-
- Returns
- Bound target or EntityBad when no binding exists.
The documentation for this struct was generated from the following file: