70 void *data_ =
nullptr;
71 std::unique_ptr<GeometrySet> geometry_set_;
120 int instances_num_ = 0;
148 void resize(
int capacity);
226 reference_user_counts_.tag_dirty();
227 unique_ids_cache_.tag_dirty();
254 : type_(other.type_), data_(other.data_), geometry_set_(std::move(other.geometry_set_))
257 other.data_ =
nullptr;
262 if (
this == &other) {
272 if (
this == &other) {
300 return *geometry_set_;
306 return *geometry_set_;
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
unsigned long long int uint64_t
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
MutableSpan< InstanceReference > references_for_write()
void tag_reference_handles_changed()
void remove_unused_references()
int instances_num() const
void count_memory(MemoryCounter &memory) const
void ensure_geometry_instances()
bke::AttributeStorage & attribute_storage()
bool owns_direct_data() const
std::optional< int > find_reference_handle(const InstanceReference &query)
MutableSpan< float4x4 > transforms_for_write()
Span< int > unique_ids() const
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
VArray< float3 > instance_position_varray(const Instances &instances)
VMutableArray< float3 > instance_position_varray_for_write(Instances &instances)
const AttributeAccessorFunctions & instance_attribute_accessor_functions()
MatBase< float, 4, 4 > float4x4