41class AttributeAccessor;
42class MutableAttributeAccessor;
70 void *data_ =
nullptr;
71 std::unique_ptr<GeometrySet> geometry_set_;
120 int instances_num_ = 0;
150 void resize(
int capacity);
238 : type_(
Type::
GeometrySet), data_(nullptr), geometry_set_(std::move(geometry_set))
252 : type_(other.type_), data_(other.data_), geometry_set_(std::move(other.geometry_set_))
255 other.data_ =
nullptr;
260 if (
this == &other) {
270 if (
this == &other) {
298 return *geometry_set_;
304 return *geometry_set_;
void count_memory(MemoryCounter &memory) const
void ensure_owns_direct_data()
InstanceReference & operator=(const InstanceReference &other)
void to_geometry_set(GeometrySet &r_geometry_set) const
GeometrySet & geometry_set()
StringRefNull name() const
bool owns_direct_data() const
friend bool operator==(const InstanceReference &a, const InstanceReference &b)
InstanceReference()=default
Collection & collection() const
Span< int > reference_handles() const
void ensure_owns_direct_data()
MutableSpan< int > reference_handles_for_write()
int add_reference(const InstanceReference &reference)
void remove(const IndexMask &mask, const AttributeFilter &attribute_filter)
int add_new_reference(const InstanceReference &reference)
GeometrySet & geometry_set_from_reference(int reference_index)
Span< float4x4 > transforms() const
void add_instance(int instance_handle, const float4x4 &transform)
Span< InstanceReference > references() const
Span< int > reference_user_counts() const
Instances & operator=(const Instances &other)
void resize(int capacity)
int references_num() const
bke::MutableAttributeAccessor attributes_for_write()
void foreach_referenced_geometry(FunctionRef< void(const GeometrySet &geometry_set)> callback) const
bke::AttributeAccessor attributes() const
void tag_reference_handles_changed()
void remove_unused_references()
int instances_num() const
void count_memory(MemoryCounter &memory) const
Span< int > almost_unique_ids() const
void ensure_geometry_instances()
bool owns_direct_data() const
CustomData & custom_data_attributes()
std::optional< int > find_reference_handle(const InstanceReference &query)
MutableSpan< float4x4 > transforms_for_write()
local_group_size(16, 16) .push_constant(Type b
DEGForeachIDComponentCallback callback
VArray< float3 > instance_position_varray(const Instances &instances)
VMutableArray< float3 > instance_position_varray_for_write(Instances &instances)
unsigned __int64 uint64_t