25# include <fmt/format.h>
45 &pointcloud->pdata,
CD_PROP_FLOAT3,
"position", pointcloud->totpoint);
48static const float (*get_pointcloud_positions_const(
const PointCloud *pointcloud))[3]
57 const float(*co)[3] =
static_cast<const float(*)[3]
>(
ptr->
data);
58 const float(*positions)[3] = get_pointcloud_positions_const(pointcloud);
59 return int(co - positions);
64 return rna_Point_index_get_const(
ptr);
77 get_pointcloud_positions(pointcloud),
87 if (index < 0 || index >= pointcloud->
totpoint) {
91 r_ptr->
type = &RNA_Point;
92 r_ptr->
data = &get_pointcloud_positions(pointcloud)[index];
96static void rna_Point_location_get(
PointerRNA *
ptr,
float value[3])
101static void rna_Point_location_set(
PointerRNA *
ptr,
const float value[3])
111 if (radii ==
nullptr) {
114 return radii[rna_Point_index_get_const(
ptr)];
117static void rna_Point_radius_set(
PointerRNA *
ptr,
float value)
122 if (radii ==
nullptr) {
125 radii[rna_Point_index_get_const(
ptr)] = value;
128static std::optional<std::string> rna_Point_path(
const PointerRNA *
ptr)
130 return fmt::format(
"points[{}]", rna_Point_index_get_const(
ptr));
186 "rna_PointCloud_points_begin",
187 "rna_iterator_array_next",
188 "rna_iterator_array_end",
189 "rna_iterator_array_get",
190 "rna_PointCloud_points_length",
191 "rna_PointCloud_points_lookup_int",
210 "rna_IDMaterials_assign_int");
Generic geometry attributes built on CustomData.
CustomData interface, see also DNA_customdata_types.h.
void * CustomData_get_layer_named_for_write(CustomData *data, eCustomDataType type, blender::StringRef name, int totelem)
const void * CustomData_get_layer_named(const CustomData *data, eCustomDataType type, blender::StringRef name)
General operations for point clouds.
MINLINE void copy_v3_v3(float r[3], const float a[3])
void DEG_id_tag_update(ID *id, unsigned int flags)
draw_view in_light_buf[] float
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
void rna_def_animdata_common(StructRNA *srna)
void rna_def_attributes_common(StructRNA *srna, const AttributeOwnerType type)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
static void rna_def_point(BlenderRNA *brna)
void RNA_def_pointcloud(BlenderRNA *brna)
static void rna_def_pointcloud(BlenderRNA *brna)
void WM_main_add_notifier(uint type, void *reference)