Blender V5.0
RNA_types.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9/* Use a define instead of `#pragma once` because of `BKE_addon.h`, `ED_object.hh` & others. */
10#ifndef __RNA_TYPES_H__
11#define __RNA_TYPES_H__
12
13#include <optional>
14#include <string>
15
20
21struct BlenderRNA;
22struct FunctionRNA;
23struct ID;
24struct Main;
25struct ParameterList;
26struct PropertyRNA;
27struct ReportList;
28struct StructRNA;
29struct bContext;
30
39
41
49
50struct PointerRNA {
51 ID *owner_id = nullptr;
52 StructRNA *type = nullptr;
53 void *data = nullptr;
54
77
78 PointerRNA() = default;
79 PointerRNA(const PointerRNA &) = default;
80 PointerRNA(PointerRNA &&) = default;
81 PointerRNA &operator=(const PointerRNA &other) = default;
82 PointerRNA &operator=(PointerRNA &&other) = default;
83
90 {
91 this->ancestors.append({parent.type, parent.data});
92 }
97
99 void reset()
100 {
101 *this = {};
102 }
103
111 {
112 this->reset();
113 }
114
124 template<typename T> T *data_as() const
125 {
126 return static_cast<T *>(this->data);
127 }
128
133 {
134 if (ancestors.is_empty()) {
135 return PointerRNA();
136 }
137
138 return PointerRNA(owner_id, ancestors.last().type, ancestors.last().data);
139 }
140};
141
142extern const PointerRNA PointerRNA_NULL;
143
148
154 PropertyRNA *prop = nullptr;
156 int prop_index = -1;
157};
158
159/* Property */
160
170
171/* also update rna_property_subtype_unit when you change this */
173 PROP_UNIT_NONE = (0 << 16),
174 PROP_UNIT_LENGTH = (1 << 16), /* m */
175 PROP_UNIT_AREA = (2 << 16), /* m^2 */
176 PROP_UNIT_VOLUME = (3 << 16), /* m^3 */
177 PROP_UNIT_MASS = (4 << 16), /* kg */
178 PROP_UNIT_ROTATION = (5 << 16), /* radians */
179 PROP_UNIT_TIME = (6 << 16), /* frame */
180 PROP_UNIT_TIME_ABSOLUTE = (7 << 16), /* time in seconds (independent of scene) */
181 PROP_UNIT_VELOCITY = (8 << 16), /* m/s */
182 PROP_UNIT_ACCELERATION = (9 << 16), /* m/(s^2) */
183 PROP_UNIT_CAMERA = (10 << 16), /* mm */
184 PROP_UNIT_POWER = (11 << 16), /* W */
185 PROP_UNIT_TEMPERATURE = (12 << 16), /* C */
186 PROP_UNIT_WAVELENGTH = (13 << 16), /* `nm` (independent of scene). */
187 PROP_UNIT_COLOR_TEMPERATURE = (14 << 16), /* K */
188 PROP_UNIT_FREQUENCY = (15 << 16), /* Hz */
189};
191
192
217
218#define RNA_SUBTYPE_UNIT(subtype) ((subtype) & 0x00FF0000)
219#define RNA_SUBTYPE_VALUE(subtype) ((subtype) & ~0x00FF0000)
220#define RNA_SUBTYPE_UNIT_VALUE(subtype) ((subtype) >> 16)
221
222#define RNA_ENUM_BITFLAG_SIZE 32
223
224#define RNA_TRANSLATION_PREC_DEFAULT 5
225
226#define RNA_STACK_ARRAY 32
227
234
235 /* strings */
241 /* 5 was used by "PROP_TRANSLATE" sub-type, which is now a flag. */
244
245 /* numbers */
258
259 /* number arrays */
275
276 /* booleans */
279
282
283 /* temperature */
285
286 /* wavelength */
288
289 /* wavelength */
291
295};
296
297/* Make sure enums are updated with these */
298/* HIGHEST FLAG IN USE: 1u << 31
299 * FREE FLAGS: 13. */
306 PROP_EDITABLE = (1 << 0),
319 PROP_ANIMATABLE = (1 << 1),
327
328 /* icon */
331
338 PROP_HIDDEN = (1 << 19),
344 PROP_SKIP_SAVE = (1 << 28),
345
346 /* numbers */
347
349 PROP_PROPORTIONAL = (1 << 26),
350
351 /* pointers */
352
365
377 PROP_NEVER_NULL = (1 << 18),
384 PROP_NEVER_UNLINK = (1 << 25),
385
396
404 PROP_ENUM_FLAG = (1 << 21),
405
406 /* need context for update function */
409
410 /* registering */
411 PROP_REGISTER = (1 << 4),
413
423 PROP_THICK_WRAP = (1 << 23),
424
426 PROP_IDPROPERTY = (1 << 10),
428 PROP_DYNAMIC = (1 << 17),
433
440
446
457
471
473 PROP_SKIP_PRESET = (1 << 11),
474};
476
477
485 /* Only supports general and type-specific variables, no purpose-specific
486 * variables. */
488
489 /* Supports render output variables.
490 *
491 * \see BKE_add_template_variables_for_render_path() */
493};
494
504
512
524
525 /*** Collections-related ***/
526
529
537};
539
545 PARM_REQUIRED = (1 << 0),
546 PARM_OUTPUT = (1 << 1),
547 PARM_RNAPTR = (1 << 2),
558};
560
562struct Link;
563using IteratorSkipFunc = bool (*)(CollectionPropertyIterator *iter, void *data);
564
570
572 char *ptr;
574 char *endptr;
576 void *free_ptr;
578
584
591};
592
594 void *ptr;
595 int item;
596};
597
599 /* internal */
603 union {
604 /* Keep biggest object first in the union, for zero-initialization to work properly. */
608 void *custom;
611 int level;
612
613 /* external */
615 bool valid;
616};
617
621
636
643
650 int value;
657 const char *identifier;
659 int icon;
661 const char *name;
663 const char *description;
664};
665
673#define RNA_ENUM_ITEM_HEADING(name, description) {0, "", 0, name, description}
674
676#define RNA_ENUM_ITEM_SEPR {0, "", 0, NULL, NULL}
677
679#define RNA_ENUM_ITEM_SEPR_COLUMN RNA_ENUM_ITEM_HEADING("", NULL)
680
681/* Extended versions with PropertyRNA argument. Used in particular by the bpy code to wrap all the
682 * py-defined callbacks when defining a property using `bpy.props` module.
683 *
684 * The 'Transform' ones allow to add a transform step (applied after getting, or before setting the
685 * value), which only modifies the value, but does not handle actual storage. Currently only used
686 * by `bpy`, more details in the documentation of #BPyPropStore.
687 */
689using BooleanPropertySetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, bool value);
691 PropertyRNA *prop,
692 bool value,
693 bool is_set);
695 bool (*)(PointerRNA *ptr, PropertyRNA *prop, bool new_value, bool curr_value, bool is_set);
696
697using BooleanArrayPropertyGetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, bool *r_values);
699 PropertyRNA *prop,
700 const bool *r_values);
702 PointerRNA *ptr, PropertyRNA *prop, const bool *curr_values, bool is_set, bool *r_values);
704 PropertyRNA *prop,
705 const bool *new_values,
706 const bool *curr_values,
707 bool is_set,
708 bool *r_values);
709
711using IntPropertySetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, int value);
713 PropertyRNA *prop,
714 int value,
715 bool is_set);
717 int (*)(PointerRNA *ptr, PropertyRNA *prop, int new_value, int curr_value, bool is_set);
718using IntArrayPropertyGetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, int *values);
719using IntArrayPropertySetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, const int *values);
721 PointerRNA *ptr, PropertyRNA *prop, const int *curr_values, bool is_set, int *r_values);
723 PropertyRNA *prop,
724 const int *new_values,
725 const int *curr_values,
726 bool is_set,
727 int *r_values);
729 void (*)(PointerRNA *ptr, PropertyRNA *prop, int *min, int *max, int *softmin, int *softmax);
730
732using FloatPropertySetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, float value);
734 PropertyRNA *prop,
735 float value,
736 bool is_set);
738 float (*)(PointerRNA *ptr, PropertyRNA *prop, float new_value, float curr_value, bool is_set);
739using FloatArrayPropertyGetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, float *values);
741 PropertyRNA *prop,
742 const float *values);
744 PointerRNA *ptr, PropertyRNA *prop, const float *curr_values, bool is_set, float *r_values);
746 PropertyRNA *prop,
747 const float *new_values,
748 const float *curr_values,
749 bool is_set,
750 float *r_values);
751using FloatPropertyRangeFunc = void (*)(
752 PointerRNA *ptr, PropertyRNA *prop, float *min, float *max, float *softmin, float *softmax);
753
754using StringPropertyGetFunc = std::string (*)(PointerRNA *ptr, PropertyRNA *prop);
757 PropertyRNA *prop,
758 const std::string &value);
760 PropertyRNA *prop,
761 const std::string &value,
762 bool is_set);
764 PropertyRNA *prop,
765 const std::string &new_value,
766 const std::string &curr_value,
767 bool is_set);
768
771 std::string text;
773 std::optional<std::string> info;
774 /* Optional icon instead of #ICON_NONE. */
775 std::optional<int> icon_id;
776};
777
795
796
807 void (*)(const bContext *C,
809 PropertyRNA *prop,
810 const char *edit_text,
812
817using StringPropertyPathFilterFunc = std::optional<std::string> (*)(const bContext *C,
819 PropertyRNA *prop);
820
822using EnumPropertySetFunc = void (*)(PointerRNA *ptr, PropertyRNA *prop, int value);
824 PropertyRNA *prop,
825 int value,
826 bool is_set);
828 int (*)(PointerRNA *ptr, PropertyRNA *prop, int new_value, int curr_value, bool is_set);
829/* same as PropEnumItemFunc */
832 PropertyRNA *prop,
833 bool *r_free);
834
835struct PropertyRNA;
836
837/* Parameter List */
838
841 void *data;
842
845
848
850};
851
854 // PointerRNA funcptr; /* UNUSED */
855 void *data;
857
859 bool valid;
860};
861
865 intptr_t array_tot;
866 void *array;
867};
868
869/* Function */
870
889 FUNC_USE_SELF_ID = (1 << 11),
890
900 FUNC_SELF_AS_RNA = (1 << 13),
907 FUNC_NO_SELF = (1 << 0),
910
911 /* Pass Main, bContext and/or ReportList. */
912 FUNC_USE_MAIN = (1 << 2),
915
916 /***** Registering of Python subclasses. *****/
921 FUNC_REGISTER = (1 << 5),
929 FUNC_ALLOW_WRITE = (1 << 12),
930
931 /***** Internal flags. *****/
933 FUNC_BUILTIN = (1 << 7),
935 FUNC_EXPORT = (1 << 8),
937 FUNC_RUNTIME = (1 << 9),
943};
944
945using CallFunc = void (*)(bContext *C, ReportList *reports, PointerRNA *ptr, ParameterList *parms);
946
947struct FunctionRNA;
948
949/* Struct */
950
953 STRUCT_ID = (1 << 0),
961 STRUCT_UNDO = (1 << 2),
962
963 /* internal flags */
964 STRUCT_RUNTIME = (1 << 3),
965 /* STRUCT_GENERATED = (1 << 4), */ /* UNUSED */
983};
984
985using StructValidateFunc = int (*)(PointerRNA *ptr, void *data, bool *have_function);
988 FunctionRNA *func,
989 ParameterList *list);
990using StructFreeFunc = void (*)(void *data);
991using StructRegisterFunc = StructRNA *(*)(Main * bmain,
992 ReportList *reports,
993 void *data,
994 const char *identifier,
995 StructValidateFunc validate,
999using StructUnregisterFunc = bool (*)(Main *bmain, StructRNA *type);
1000using StructInstanceFunc = void **(*)(PointerRNA * ptr);
1001
1002struct StructRNA;
1003
1009struct BlenderRNA;
1010
1027
1036 const char *note;
1038 short version;
1045};
1046
1047/* Primitive types. */
1048
1050 const char *value;
1051};
1052
1055};
1056
1058 float value;
1059};
1060
1062 bool value;
1063};
1064
1065#endif /* __RNA_TYPES_H__ */
void BLI_kdtree_nd_ free(KDTree *tree)
#define ENUM_OPERATORS(_type, _max)
void(*)(PointerRNA *ptr, PropertyRNA *prop, int *min, int *max, int *softmin, int *softmax) IntPropertyRangeFunc
Definition RNA_types.hh:728
ParameterFlag
Definition RNA_types.hh:544
@ PARM_PYFUNC_REGISTER_OPTIONAL
Definition RNA_types.hh:557
@ PARM_RNAPTR
Definition RNA_types.hh:547
@ PARM_REQUIRED
Definition RNA_types.hh:545
@ PARM_OUTPUT
Definition RNA_types.hh:546
int(*)(PointerRNA *ptr, PropertyRNA *prop) EnumPropertyGetFunc
Definition RNA_types.hh:821
bool(*)(CollectionPropertyIterator *iter, void *data) IteratorSkipFunc
Definition RNA_types.hh:563
void(*)(PointerRNA *ptr, PropertyRNA *prop, const std::string &value) StringPropertySetFunc
Definition RNA_types.hh:756
void(*)(PointerRNA *ptr, PropertyRNA *prop, const float *new_values, const float *curr_values, bool is_set, float *r_values) FloatArrayPropertySetTransformFunc
Definition RNA_types.hh:745
float(*)(PointerRNA *ptr, PropertyRNA *prop, float value, bool is_set) FloatPropertyGetTransformFunc
Definition RNA_types.hh:733
PropertyScaleType
Definition RNA_types.hh:203
@ PROP_SCALE_LOG
Definition RNA_types.hh:210
@ PROP_SCALE_LINEAR
Definition RNA_types.hh:205
@ PROP_SCALE_CUBIC
Definition RNA_types.hh:215
constexpr int64_t ANCESTOR_POINTERRNA_DEFAULT_SIZE
Definition RNA_types.hh:40
FunctionFlag
Definition RNA_types.hh:884
@ FUNC_USE_REPORTS
Definition RNA_types.hh:914
@ FUNC_USE_SELF_TYPE
Definition RNA_types.hh:909
@ FUNC_BUILTIN
Definition RNA_types.hh:933
@ FUNC_FREE_POINTERS
Definition RNA_types.hh:942
@ FUNC_NO_SELF
Definition RNA_types.hh:907
@ FUNC_REGISTER
Definition RNA_types.hh:921
@ FUNC_USE_MAIN
Definition RNA_types.hh:912
@ FUNC_EXPORT
Definition RNA_types.hh:935
@ FUNC_RUNTIME
Definition RNA_types.hh:937
@ FUNC_SELF_AS_RNA
Definition RNA_types.hh:900
@ FUNC_USE_CONTEXT
Definition RNA_types.hh:913
@ FUNC_USE_SELF_ID
Definition RNA_types.hh:889
@ FUNC_REGISTER_OPTIONAL
Definition RNA_types.hh:923
@ FUNC_ALLOW_WRITE
Definition RNA_types.hh:929
int(*)(PointerRNA *ptr, PropertyRNA *prop) StringPropertyLengthFunc
Definition RNA_types.hh:755
StructFlag
Definition RNA_types.hh:951
@ STRUCT_ID_REFCOUNT
Definition RNA_types.hh:959
@ STRUCT_RUNTIME
Definition RNA_types.hh:964
@ STRUCT_FREE_POINTERS
Definition RNA_types.hh:966
@ STRUCT_NO_CONTEXT_WITHOUT_OWNER_ID
Definition RNA_types.hh:982
@ STRUCT_PUBLIC_NAMESPACE
Definition RNA_types.hh:974
@ STRUCT_ID
Definition RNA_types.hh:953
@ STRUCT_NO_DATABLOCK_IDPROPERTIES
Definition RNA_types.hh:970
@ STRUCT_CONTAINS_DATABLOCK_IDPROPERTIES
Definition RNA_types.hh:972
@ STRUCT_NO_IDPROPERTIES
Definition RNA_types.hh:968
@ STRUCT_PUBLIC_NAMESPACE_INHERIT
Definition RNA_types.hh:976
@ STRUCT_UNDO
Definition RNA_types.hh:961
void(*)(PointerRNA *ptr, PropertyRNA *prop, const int *new_values, const int *curr_values, bool is_set, int *r_values) IntArrayPropertySetTransformFunc
Definition RNA_types.hh:722
void(*)(PointerRNA *ptr, PropertyRNA *prop, const bool *r_values) BooleanArrayPropertySetFunc
Definition RNA_types.hh:698
const EnumPropertyItem *(*)(bContext *C, PointerRNA *ptr, PropertyRNA *prop, bool *r_free) EnumPropertyItemFunc
Definition RNA_types.hh:830
int(*)(PointerRNA *ptr, PropertyRNA *prop, int value, bool is_set) EnumPropertyGetTransformFunc
Definition RNA_types.hh:823
void(*)(PointerRNA *ptr, PropertyRNA *prop, float *values) FloatArrayPropertyGetFunc
Definition RNA_types.hh:739
int(*)(PointerRNA *ptr, PropertyRNA *prop, int value, bool is_set) IntPropertyGetTransformFunc
Definition RNA_types.hh:712
void(*)(PointerRNA *ptr, PropertyRNA *prop, bool *r_values) BooleanArrayPropertyGetFunc
Definition RNA_types.hh:697
void(*)(PointerRNA *ptr, PropertyRNA *prop, const bool *new_values, const bool *curr_values, bool is_set, bool *r_values) BooleanArrayPropertySetTransformFunc
Definition RNA_types.hh:703
eStringPropertySearchFlag
Definition RNA_types.hh:778
@ PROP_STRING_SEARCH_SUGGESTION
Definition RNA_types.hh:792
@ PROP_STRING_SEARCH_SORT
Definition RNA_types.hh:785
@ PROP_STRING_SEARCH_SUPPORTED
Definition RNA_types.hh:783
void(*)(PointerRNA *ptr, PropertyRNA *prop, int *values) IntArrayPropertyGetFunc
Definition RNA_types.hh:718
StructRNA *(*)(Main *bmain, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free) StructRegisterFunc
Definition RNA_types.hh:991
int(*)(PointerRNA *ptr, void *data, bool *have_function) StructValidateFunc
Definition RNA_types.hh:985
void(*)( PointerRNA *ptr, PropertyRNA *prop, const bool *curr_values, bool is_set, bool *r_values) BooleanArrayPropertyGetTransformFunc
Definition RNA_types.hh:701
void(*)(PointerRNA *ptr, PropertyRNA *prop, int value) EnumPropertySetFunc
Definition RNA_types.hh:822
std::string(*)(PointerRNA *ptr, PropertyRNA *prop) StringPropertyGetFunc
Definition RNA_types.hh:754
void(*)(PointerRNA *ptr, PropertyRNA *prop, const int *values) IntArrayPropertySetFunc
Definition RNA_types.hh:719
PropertyType
Definition RNA_types.hh:161
@ PROP_FLOAT
Definition RNA_types.hh:164
@ PROP_BOOLEAN
Definition RNA_types.hh:162
@ PROP_ENUM
Definition RNA_types.hh:166
@ PROP_INT
Definition RNA_types.hh:163
@ PROP_STRING
Definition RNA_types.hh:165
@ PROP_POINTER
Definition RNA_types.hh:167
@ PROP_COLLECTION
Definition RNA_types.hh:168
void(*)( PointerRNA *ptr, PropertyRNA *prop, const float *curr_values, bool is_set, float *r_values) FloatArrayPropertyGetTransformFunc
Definition RNA_types.hh:743
std::string(*)(PointerRNA *ptr, PropertyRNA *prop, const std::string &value, bool is_set) StringPropertyGetTransformFunc
Definition RNA_types.hh:759
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
Definition RNA_types.hh:986
bool(*)(Main *bmain, StructRNA *type) StructUnregisterFunc
Definition RNA_types.hh:999
void(*)(void *data) StructFreeFunc
Definition RNA_types.hh:990
bool(*)(PointerRNA *ptr, PropertyRNA *prop) BooleanPropertyGetFunc
Definition RNA_types.hh:688
void(*)(const bContext *C, PointerRNA *ptr, PropertyRNA *prop, const char *edit_text, blender::FunctionRef< void(StringPropertySearchVisitParams)> visit_fn) StringPropertySearchFunc
Definition RNA_types.hh:806
PropertyUnit
Definition RNA_types.hh:172
@ PROP_UNIT_VOLUME
Definition RNA_types.hh:176
@ PROP_UNIT_POWER
Definition RNA_types.hh:184
@ PROP_UNIT_ROTATION
Definition RNA_types.hh:178
@ PROP_UNIT_FREQUENCY
Definition RNA_types.hh:188
@ PROP_UNIT_WAVELENGTH
Definition RNA_types.hh:186
@ PROP_UNIT_VELOCITY
Definition RNA_types.hh:181
@ PROP_UNIT_LENGTH
Definition RNA_types.hh:174
@ PROP_UNIT_NONE
Definition RNA_types.hh:173
@ PROP_UNIT_ACCELERATION
Definition RNA_types.hh:182
@ PROP_UNIT_AREA
Definition RNA_types.hh:175
@ PROP_UNIT_TIME
Definition RNA_types.hh:179
@ PROP_UNIT_CAMERA
Definition RNA_types.hh:183
@ PROP_UNIT_TEMPERATURE
Definition RNA_types.hh:185
@ PROP_UNIT_MASS
Definition RNA_types.hh:177
@ PROP_UNIT_TIME_ABSOLUTE
Definition RNA_types.hh:180
@ PROP_UNIT_COLOR_TEMPERATURE
Definition RNA_types.hh:187
bool(*)(PointerRNA *ptr, PropertyRNA *prop, bool value, bool is_set) BooleanPropertyGetTransformFunc
Definition RNA_types.hh:690
int(*)(PointerRNA *ptr, PropertyRNA *prop, int new_value, int curr_value, bool is_set) IntPropertySetTransformFunc
Definition RNA_types.hh:716
float(*)(PointerRNA *ptr, PropertyRNA *prop) FloatPropertyGetFunc
Definition RNA_types.hh:731
int(*)(PointerRNA *ptr, PropertyRNA *prop) IntPropertyGetFunc
Definition RNA_types.hh:710
void(*)( PointerRNA *ptr, PropertyRNA *prop, const int *curr_values, bool is_set, int *r_values) IntArrayPropertyGetTransformFunc
Definition RNA_types.hh:720
void(*)( PointerRNA *ptr, PropertyRNA *prop, float *min, float *max, float *softmin, float *softmax) FloatPropertyRangeFunc
Definition RNA_types.hh:751
float(*)(PointerRNA *ptr, PropertyRNA *prop, float new_value, float curr_value, bool is_set) FloatPropertySetTransformFunc
Definition RNA_types.hh:737
void(*)(PointerRNA *ptr, PropertyRNA *prop, float value) FloatPropertySetFunc
Definition RNA_types.hh:732
PropertyOverrideFlag
Definition RNA_types.hh:501
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
Definition RNA_types.hh:503
@ PROPOVERRIDE_NO_COMPARISON
Definition RNA_types.hh:511
@ PROPOVERRIDE_IGNORE
Definition RNA_types.hh:523
@ PROPOVERRIDE_LIBRARY_INSERTION
Definition RNA_types.hh:528
@ PROPOVERRIDE_NO_PROP_NAME
Definition RNA_types.hh:536
bool(*)(PointerRNA *ptr, PropertyRNA *prop, bool new_value, bool curr_value, bool is_set) BooleanPropertySetTransformFunc
Definition RNA_types.hh:694
int(*)(PointerRNA *ptr, PropertyRNA *prop, int new_value, int curr_value, bool is_set) EnumPropertySetTransformFunc
Definition RNA_types.hh:827
PropertyPathTemplateType
Definition RNA_types.hh:484
@ PROP_VARIABLES_RENDER_OUTPUT
Definition RNA_types.hh:492
@ PROP_VARIABLES_NONE
Definition RNA_types.hh:487
void(*)(PointerRNA *ptr, PropertyRNA *prop, int value) IntPropertySetFunc
Definition RNA_types.hh:711
void(*)(bContext *C, ReportList *reports, PointerRNA *ptr, ParameterList *parms) CallFunc
Definition RNA_types.hh:945
std::string(*)(PointerRNA *ptr, PropertyRNA *prop, const std::string &new_value, const std::string &curr_value, bool is_set) StringPropertySetTransformFunc
Definition RNA_types.hh:763
void(*)(PointerRNA *ptr, PropertyRNA *prop, const float *values) FloatArrayPropertySetFunc
Definition RNA_types.hh:740
RawPropertyType
Definition RNA_types.hh:622
@ PROP_RAW_INT8
Definition RNA_types.hh:634
@ PROP_RAW_UINT64
Definition RNA_types.hh:633
@ PROP_RAW_INT
Definition RNA_types.hh:624
@ PROP_RAW_INT64
Definition RNA_types.hh:632
@ PROP_RAW_UNSET
Definition RNA_types.hh:623
@ PROP_RAW_BOOLEAN
Definition RNA_types.hh:627
@ PROP_RAW_CHAR
Definition RNA_types.hh:626
@ PROP_RAW_FLOAT
Definition RNA_types.hh:629
@ PROP_RAW_DOUBLE
Definition RNA_types.hh:628
@ PROP_RAW_UINT8
Definition RNA_types.hh:630
@ PROP_RAW_UINT16
Definition RNA_types.hh:631
@ PROP_RAW_SHORT
Definition RNA_types.hh:625
PropertyFlag
Definition RNA_types.hh:300
@ PROP_THICK_WRAP
Definition RNA_types.hh:423
@ PROP_PATH_OUTPUT
Definition RNA_types.hh:451
@ PROP_DYNAMIC
Definition RNA_types.hh:428
@ PROP_CONTEXT_UPDATE
Definition RNA_types.hh:407
@ PROP_ANIMATABLE
Definition RNA_types.hh:319
@ PROP_PROPORTIONAL
Definition RNA_types.hh:349
@ PROP_PATH_SUPPORTS_BLEND_RELATIVE
Definition RNA_types.hh:456
@ PROP_NEVER_UNLINK
Definition RNA_types.hh:384
@ PROP_EDITABLE
Definition RNA_types.hh:306
@ PROP_ENUM_FLAG
Definition RNA_types.hh:404
@ PROP_LIB_EXCEPTION
Definition RNA_types.hh:312
@ PROP_CONTEXT_PROPERTY_UPDATE
Definition RNA_types.hh:408
@ PROP_REGISTER_OPTIONAL
Definition RNA_types.hh:412
@ PROP_ENUM_NO_CONTEXT
Definition RNA_types.hh:430
@ PROP_NEVER_NULL
Definition RNA_types.hh:377
@ PROP_NO_DEG_UPDATE
Definition RNA_types.hh:439
@ PROP_ICONS_CONSECUTIVE
Definition RNA_types.hh:329
@ PROP_ENUM_NO_TRANSLATE
Definition RNA_types.hh:432
@ PROP_PATH_SUPPORTS_TEMPLATES
Definition RNA_types.hh:470
@ PROP_REGISTER
Definition RNA_types.hh:411
@ PROP_PTR_NO_OWNERSHIP
Definition RNA_types.hh:395
@ PROP_ICONS_REVERSE
Definition RNA_types.hh:330
@ PROP_DEG_SYNC_ONLY
Definition RNA_types.hh:445
@ PROP_SKIP_SAVE
Definition RNA_types.hh:344
@ PROP_ID_SELF_CHECK
Definition RNA_types.hh:370
@ PROP_SKIP_PRESET
Definition RNA_types.hh:473
@ PROP_TEXTEDIT_UPDATE
Definition RNA_types.hh:326
@ PROP_HIDDEN
Definition RNA_types.hh:338
@ PROP_ID_REFCOUNT
Definition RNA_types.hh:364
@ PROP_IDPROPERTY
Definition RNA_types.hh:426
std::optional< std::string >(*)(const bContext *C, PointerRNA *ptr, PropertyRNA *prop) StringPropertyPathFilterFunc
Definition RNA_types.hh:817
void(*)(PointerRNA *ptr, PropertyRNA *prop, bool value) BooleanPropertySetFunc
Definition RNA_types.hh:689
void **(*)(PointerRNA *ptr) StructInstanceFunc
PropertySubType
Definition RNA_types.hh:232
@ PROP_TIME
Definition RNA_types.hh:253
@ PROP_MATRIX
Definition RNA_types.hh:265
@ PROP_DIRECTION
Definition RNA_types.hh:262
@ PROP_XYZ
Definition RNA_types.hh:269
@ PROP_DISTANCE
Definition RNA_types.hh:256
@ PROP_ACCELERATION
Definition RNA_types.hh:264
@ PROP_TEMPERATURE
Definition RNA_types.hh:284
@ PROP_BYTESTRING
Definition RNA_types.hh:240
@ PROP_POWER
Definition RNA_types.hh:281
@ PROP_LAYER_MEMBER
Definition RNA_types.hh:278
@ PROP_FILENAME
Definition RNA_types.hh:238
@ PROP_PASSWORD
Definition RNA_types.hh:243
@ PROP_COLOR
Definition RNA_types.hh:260
@ PROP_PIXEL
Definition RNA_types.hh:248
@ PROP_ANGLE
Definition RNA_types.hh:252
@ PROP_TIME_ABSOLUTE
Definition RNA_types.hh:254
@ PROP_DISTANCE_CAMERA
Definition RNA_types.hh:257
@ PROP_AXISANGLE
Definition RNA_types.hh:268
@ PROP_PIXEL_DIAMETER
Definition RNA_types.hh:293
@ PROP_EULER
Definition RNA_types.hh:266
@ PROP_COORDS
Definition RNA_types.hh:274
@ PROP_COLOR_TEMPERATURE
Definition RNA_types.hh:290
@ PROP_NONE
Definition RNA_types.hh:233
@ PROP_DIRPATH
Definition RNA_types.hh:237
@ PROP_PERCENTAGE
Definition RNA_types.hh:250
@ PROP_FREQUENCY
Definition RNA_types.hh:292
@ PROP_FACTOR
Definition RNA_types.hh:251
@ PROP_COLOR_GAMMA
Definition RNA_types.hh:272
@ PROP_TRANSLATION
Definition RNA_types.hh:261
@ PROP_XYZ_LENGTH
Definition RNA_types.hh:270
@ PROP_UNSIGNED
Definition RNA_types.hh:249
@ PROP_LAYER
Definition RNA_types.hh:277
@ PROP_QUATERNION
Definition RNA_types.hh:267
@ PROP_FILEPATH
Definition RNA_types.hh:236
@ PROP_VELOCITY
Definition RNA_types.hh:263
@ PROP_DISTANCE_DIAMETER
Definition RNA_types.hh:294
@ PROP_WAVELENGTH
Definition RNA_types.hh:287
#define C
Definition RandGen.cpp:29
BMesh const char void * data
long long int int64_t
void append(const T &value)
nullptr float
#define T
const PointerRNA PointerRNA_NULL
#define min(a, b)
Definition sort.cc:36
StructRNA * type
Definition RNA_types.hh:36
void * free_ptr
Definition RNA_types.hh:576
IteratorSkipFunc skip
Definition RNA_types.hh:590
union CollectionPropertyIterator::@220100362304005352221007113371015217044252346141 internal
ListBaseIterator listbase
Definition RNA_types.hh:606
blender::Vector< PointerRNA > items
Definition RNA_types.hh:619
short removal_version
const char * note
const char * identifier
Definition RNA_types.hh:657
const char * name
Definition RNA_types.hh:661
const char * description
Definition RNA_types.hh:663
StructRNA * srna
StructCallbackFunc call
StructFreeFunc free
const char * identifier
Definition DNA_ID.h:414
IteratorSkipFunc skip
Definition RNA_types.hh:568
ParameterList * parms
Definition RNA_types.hh:853
PropertyRNA * parm
Definition RNA_types.hh:858
FunctionRNA * func
Definition RNA_types.hh:844
PointerRNA ptr
Definition RNA_types.hh:153
PropertyRNA * prop
Definition RNA_types.hh:154
T * data_as() const
Definition RNA_types.hh:124
PointerRNA(ID *owner_id, StructRNA *type, void *data)
Definition RNA_types.hh:84
void reset()
Definition RNA_types.hh:99
ID * owner_id
Definition RNA_types.hh:51
PointerRNA(PointerRNA &&)=default
PointerRNA()=default
void invalidate()
Definition RNA_types.hh:110
StructRNA * type
Definition RNA_types.hh:52
blender::Vector< AncestorPointerRNA, ANCESTOR_POINTERRNA_DEFAULT_SIZE > ancestors
Definition RNA_types.hh:76
void * data
Definition RNA_types.hh:53
PointerRNA(const PointerRNA &)=default
PointerRNA(ID *owner_id, StructRNA *type, void *data, const PointerRNA &parent)
Definition RNA_types.hh:88
PointerRNA & operator=(const PointerRNA &other)=default
PointerRNA(ID *owner_id, StructRNA *type, void *data, blender::Span< AncestorPointerRNA > parents)
Definition RNA_types.hh:93
PointerRNA & operator=(PointerRNA &&other)=default
PointerRNA parent() const
Definition RNA_types.hh:132
const char * value
PropertyRNA * prop
Definition RNA_types.hh:146
RawPropertyType type
Definition RNA_types.hh:639
void * array
Definition RNA_types.hh:638
std::optional< int > icon_id
Definition RNA_types.hh:775
std::optional< std::string > info
Definition RNA_types.hh:773
max
Definition text_draw.cc:251
PointerRNA * ptr
Definition wm_files.cc:4238