16untyped_component& internal_member(
17 flecs::entity_t type_id,
22 bool use_offset =
false)
28 ecs_assert(eid != 0, ECS_INTERNAL_ERROR, NULL);
36 m.offset =
static_cast<int32_t
>(offset);
37 m.use_offset = use_offset;
86template <
typename MemberType>
96template <
typename MemberType>
107template <
typename MemberType>
109 flecs::entity_t
unit,
118template <
typename MemberType>
120 flecs::entity_t
unit,
130template <
typename MemberType,
typename UnitType>
141template <
typename MemberType,
typename UnitType>
153template <
typename MemberType,
typename ComponentType,
154 typename RealType =
typename std::remove_extent<MemberType>::type>
157 const MemberType ComponentType::* ptr)
160 size_t offset =
reinterpret_cast<size_t>(&(
static_cast<ComponentType*
>(
nullptr)->*ptr));
165template <
typename MemberType,
typename ComponentType,
166 typename RealType =
typename std::remove_extent<MemberType>::type>
168 flecs::entity_t
unit,
170 const MemberType ComponentType::* ptr)
173 size_t offset =
reinterpret_cast<size_t>(&(
static_cast<ComponentType*
>(
nullptr)->*ptr));
178template <
typename UnitType,
typename MemberType,
typename ComponentType,
179 typename RealType =
typename std::remove_extent<MemberType>::type>
182 const MemberType ComponentType::* ptr)
186 size_t offset =
reinterpret_cast<size_t>(&(
static_cast<ComponentType*
>(
nullptr)->*ptr));
201 ecs_assert(eid != 0, ECS_INTERNAL_ERROR, NULL);
204 ecs_pair(flecs::Constant, flecs::I32),
sizeof(int32_t),
221 ecs_assert(eid != 0, ECS_INTERNAL_ERROR, NULL);
224 ecs_pair(flecs::Constant, flecs::U32),
sizeof(uint32_t),
231template <
typename Elem>
238 desc.
count = elem_count;
248 const flecs::member_t *m = ecs_cpp_last_member(world_, id_);
257 flecs::MemberRanges *mr =
static_cast<flecs::MemberRanges*
>(
270 const flecs::member_t *m = ecs_cpp_last_member(world_, id_);
279 flecs::MemberRanges *mr =
static_cast<flecs::MemberRanges*
>(
292 const flecs::member_t *m = ecs_cpp_last_member(world_, id_);
301 flecs::MemberRanges *mr =
static_cast<flecs::MemberRanges*
>(
ecs_ensure_id(
302 w, me, w.
id<flecs::MemberRanges>()));
void ecs_add_id(ecs_world_t *world, ecs_entity_t entity, ecs_id_t id)
Add a (component) id to an entity.
#define ecs_assert(condition, error_code,...)
Assert.
ecs_id_t ecs_entity_t
An entity identifier.
flecs::entity entity(Args &&... args) const
Create an entity.
ecs_entity_t ecs_entity_init(ecs_world_t *world, const ecs_entity_desc_t *desc)
Find or create an entity.
void * ecs_ensure_id(ecs_world_t *world, ecs_entity_t entity, ecs_id_t id)
Get a mutable pointer to a component.
void ecs_set_id(ecs_world_t *world, ecs_entity_t entity, ecs_id_t id, size_t size, const void *ptr)
Set the value of a component.
ecs_member_value_range_t warning
Member value warning range.
ecs_member_value_range_t value
Member value range.
ecs_member_value_range_t error
Member value error range.
ecs_entity_t type
Member type.
Used with ecs_array_init().
ecs_entity_t entity
Existing entity to use for type (optional).
ecs_entity_t type
Element type.
int32_t count
Number of elements.
Used with ecs_entity_init().
const char * name
Name of the entity.
ecs_entity_t parent
Parent entity.
ecs_entity_t member
Should not be set by ecs_struct_desc_t.
double min
Min member value.
double max
Max member value.
flecs::string_view name() const
Return the entity name.
void modified() const
Signal that component was modified.
flecs::entity type_id() const
Return component type of id.
flecs::id id() const
Get id from a type.