Blender  V2.93
rna_meta.c
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
21 #include <stdlib.h>
22 
23 #include "DNA_mesh_types.h"
24 #include "DNA_meta_types.h"
25 
26 #include "BLI_utildefines.h"
27 
28 #include "RNA_access.h"
29 #include "RNA_define.h"
30 #include "RNA_enum_types.h"
31 
32 #include "rna_internal.h"
33 
34 #ifdef RNA_RUNTIME
35 
36 # include "BLI_math.h"
37 
38 # include "MEM_guardedalloc.h"
39 
40 # include "DNA_object_types.h"
41 # include "DNA_scene_types.h"
42 
43 # include "BKE_main.h"
44 # include "BKE_mball.h"
45 # include "BKE_scene.h"
46 
47 # include "DEG_depsgraph.h"
48 
49 # include "WM_api.h"
50 # include "WM_types.h"
51 
52 static int rna_Meta_texspace_editable(PointerRNA *ptr, const char **UNUSED(r_info))
53 {
54  MetaBall *mb = (MetaBall *)ptr->data;
56 }
57 
58 static void rna_Meta_texspace_loc_get(PointerRNA *ptr, float *values)
59 {
60  MetaBall *mb = (MetaBall *)ptr->data;
61 
62  /* tex_space_mball() needs object.. ugh */
63 
64  copy_v3_v3(values, mb->loc);
65 }
66 
67 static void rna_Meta_texspace_loc_set(PointerRNA *ptr, const float *values)
68 {
69  MetaBall *mb = (MetaBall *)ptr->data;
70 
71  copy_v3_v3(mb->loc, values);
72 }
73 
74 static void rna_Meta_texspace_size_get(PointerRNA *ptr, float *values)
75 {
76  MetaBall *mb = (MetaBall *)ptr->data;
77 
78  /* tex_space_mball() needs object.. ugh */
79 
80  copy_v3_v3(values, mb->size);
81 }
82 
83 static void rna_Meta_texspace_size_set(PointerRNA *ptr, const float *values)
84 {
85  MetaBall *mb = (MetaBall *)ptr->data;
86 
87  copy_v3_v3(mb->size, values);
88 }
89 
90 static void rna_MetaBall_redraw_data(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
91 {
92  ID *id = ptr->owner_id;
93 
96 }
97 
98 static void rna_MetaBall_update_data(Main *bmain, Scene *scene, PointerRNA *ptr)
99 {
100  MetaBall *mb = (MetaBall *)ptr->owner_id;
101  Object *ob;
102 
103  /* cheating way for importers to avoid slow updates */
104  if (mb->id.us > 0) {
105  for (ob = bmain->objects.first; ob; ob = ob->id.next) {
106  if (ob->data == mb) {
108  }
109  }
110 
111  DEG_id_tag_update(&mb->id, 0);
113  }
114 }
115 
116 static void rna_MetaBall_update_rotation(Main *bmain, Scene *scene, PointerRNA *ptr)
117 {
118  MetaElem *ml = ptr->data;
119  normalize_qt(ml->quat);
120  rna_MetaBall_update_data(bmain, scene, ptr);
121 }
122 
123 static MetaElem *rna_MetaBall_elements_new(MetaBall *mb, int type)
124 {
126 
127  /* cheating way for importers to avoid slow updates */
128  if (mb->id.us > 0) {
129  DEG_id_tag_update(&mb->id, 0);
131  }
132 
133  return ml;
134 }
135 
136 static void rna_MetaBall_elements_remove(MetaBall *mb, ReportList *reports, PointerRNA *ml_ptr)
137 {
138  MetaElem *ml = ml_ptr->data;
139 
140  if (BLI_remlink_safe(&mb->elems, ml) == false) {
141  BKE_reportf(
142  reports, RPT_ERROR, "Metaball '%s' does not contain spline given", mb->id.name + 2);
143  return;
144  }
145 
146  MEM_freeN(ml);
147  RNA_POINTER_INVALIDATE(ml_ptr);
148 
149  /* cheating way for importers to avoid slow updates */
150  if (mb->id.us > 0) {
151  DEG_id_tag_update(&mb->id, 0);
153  }
154 }
155 
156 static void rna_MetaBall_elements_clear(MetaBall *mb)
157 {
158  BLI_freelistN(&mb->elems);
159 
160  /* cheating way for importers to avoid slow updates */
161  if (mb->id.us > 0) {
162  DEG_id_tag_update(&mb->id, 0);
164  }
165 }
166 
167 static bool rna_Meta_is_editmode_get(PointerRNA *ptr)
168 {
169  MetaBall *mb = (MetaBall *)ptr->owner_id;
170  return (mb->editelems != NULL);
171 }
172 
173 static char *rna_MetaElement_path(PointerRNA *ptr)
174 {
175  MetaBall *mb = (MetaBall *)ptr->owner_id;
176  MetaElem *ml = ptr->data;
177  int index = -1;
178 
179  if (mb->editelems) {
180  index = BLI_findindex(mb->editelems, ml);
181  }
182  if (index == -1) {
183  index = BLI_findindex(&mb->elems, ml);
184  }
185  if (index == -1) {
186  return NULL;
187  }
188 
189  return BLI_sprintfN("elements[%d]", index);
190 }
191 
192 #else
193 
194 static void rna_def_metaelement(BlenderRNA *brna)
195 {
196  StructRNA *srna;
197  PropertyRNA *prop;
198 
199  srna = RNA_def_struct(brna, "MetaElement", NULL);
200  RNA_def_struct_sdna(srna, "MetaElem");
201  RNA_def_struct_ui_text(srna, "Metaball Element", "Blobby element in a metaball data-block");
202  RNA_def_struct_path_func(srna, "rna_MetaElement_path");
203  RNA_def_struct_ui_icon(srna, ICON_OUTLINER_DATA_META);
204 
205  /* enums */
206  prop = RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
208  RNA_def_property_ui_text(prop, "Type", "Metaball types");
209  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
210 
211  /* number values */
212  prop = RNA_def_property(srna, "co", PROP_FLOAT, PROP_TRANSLATION);
213  RNA_def_property_float_sdna(prop, NULL, "x");
214  RNA_def_property_array(prop, 3);
215  RNA_def_property_ui_text(prop, "Location", "");
216  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
217 
218  prop = RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_QUATERNION);
219  RNA_def_property_float_sdna(prop, NULL, "quat");
220  RNA_def_property_ui_text(prop, "Rotation", "Normalized quaternion rotation");
221  RNA_def_property_update(prop, 0, "rna_MetaBall_update_rotation");
222 
223  prop = RNA_def_property(srna, "radius", PROP_FLOAT, PROP_UNSIGNED | PROP_UNIT_LENGTH);
224  RNA_def_property_float_sdna(prop, NULL, "rad");
225  RNA_def_property_ui_text(prop, "Radius", "");
226  RNA_def_property_range(prop, 0.0f, FLT_MAX);
227  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
228 
229  prop = RNA_def_property(srna, "size_x", PROP_FLOAT, PROP_DISTANCE);
230  RNA_def_property_float_sdna(prop, NULL, "expx");
232  RNA_def_property_range(prop, 0.0f, 20.0f);
234  prop, "Size X", "Size of element, use of components depends on element type");
235  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
236 
237  prop = RNA_def_property(srna, "size_y", PROP_FLOAT, PROP_DISTANCE);
238  RNA_def_property_float_sdna(prop, NULL, "expy");
240  RNA_def_property_range(prop, 0.0f, 20.0f);
242  prop, "Size Y", "Size of element, use of components depends on element type");
243  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
244 
245  prop = RNA_def_property(srna, "size_z", PROP_FLOAT, PROP_DISTANCE);
246  RNA_def_property_float_sdna(prop, NULL, "expz");
248  RNA_def_property_range(prop, 0.0f, 20.0f);
250  prop, "Size Z", "Size of element, use of components depends on element type");
251  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
252 
253  prop = RNA_def_property(srna, "stiffness", PROP_FLOAT, PROP_NONE);
254  RNA_def_property_float_sdna(prop, NULL, "s");
255  RNA_def_property_range(prop, 0.0f, 10.0f);
256  RNA_def_property_ui_text(prop, "Stiffness", "Stiffness defines how much of the element to fill");
257  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
258 
259  /* flags */
260  prop = RNA_def_property(srna, "use_negative", PROP_BOOLEAN, PROP_NONE);
262  RNA_def_property_ui_text(prop, "Negative", "Set metaball as negative one");
263  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
264 
265  prop = RNA_def_property(srna, "use_scale_stiffness", PROP_BOOLEAN, PROP_NONE);
267  RNA_def_property_ui_text(prop, "Scale Stiffness", "Scale stiffness instead of radius");
268  RNA_def_property_update(prop, 0, "rna_MetaBall_redraw_data");
269 
270  prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE);
271  RNA_def_property_boolean_sdna(prop, NULL, "flag", 1); /* SELECT */
272  RNA_def_property_ui_text(prop, "Select", "Select element");
273  RNA_def_property_update(prop, 0, "rna_MetaBall_redraw_data");
274 
275  prop = RNA_def_property(srna, "hide", PROP_BOOLEAN, PROP_NONE);
277  RNA_def_property_ui_text(prop, "Hide", "Hide element");
278  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
279 }
280 
281 /* mball.elements */
283 {
284  StructRNA *srna;
285  PropertyRNA *prop;
286 
287  FunctionRNA *func;
288  PropertyRNA *parm;
289 
290  RNA_def_property_srna(cprop, "MetaBallElements");
291  srna = RNA_def_struct(brna, "MetaBallElements", NULL);
292  RNA_def_struct_sdna(srna, "MetaBall");
293  RNA_def_struct_ui_text(srna, "Metaball Elements", "Collection of metaball elements");
294 
295  func = RNA_def_function(srna, "new", "rna_MetaBall_elements_new");
296  RNA_def_function_ui_description(func, "Add a new element to the metaball");
297  RNA_def_enum(func,
298  "type",
300  MB_BALL,
301  "",
302  "Type for the new metaball element");
303  parm = RNA_def_pointer(func, "element", "MetaElement", "", "The newly created metaball element");
304  RNA_def_function_return(func, parm);
305 
306  func = RNA_def_function(srna, "remove", "rna_MetaBall_elements_remove");
307  RNA_def_function_ui_description(func, "Remove an element from the metaball");
309  parm = RNA_def_pointer(func, "element", "MetaElement", "", "The element to remove");
312 
313  func = RNA_def_function(srna, "clear", "rna_MetaBall_elements_clear");
314  RNA_def_function_ui_description(func, "Remove all elements from the metaball");
315 
316  prop = RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE);
317  RNA_def_property_pointer_sdna(prop, NULL, "lastelem");
318  RNA_def_property_ui_text(prop, "Active Element", "Last selected element");
319 }
320 
321 static void rna_def_metaball(BlenderRNA *brna)
322 {
323  StructRNA *srna;
324  PropertyRNA *prop;
325  static const EnumPropertyItem prop_update_items[] = {
326  {MB_UPDATE_ALWAYS, "UPDATE_ALWAYS", 0, "Always", "While editing, update metaball always"},
328  "HALFRES",
329  0,
330  "Half",
331  "While editing, update metaball in half resolution"},
332  {MB_UPDATE_FAST, "FAST", 0, "Fast", "While editing, update metaball without polygonization"},
333  {MB_UPDATE_NEVER, "NEVER", 0, "Never", "While editing, don't update metaball at all"},
334  {0, NULL, 0, NULL, NULL},
335  };
336 
337  srna = RNA_def_struct(brna, "MetaBall", "ID");
338  RNA_def_struct_ui_text(srna, "MetaBall", "Metaball data-block to defined blobby surfaces");
339  RNA_def_struct_ui_icon(srna, ICON_META_DATA);
340 
341  prop = RNA_def_property(srna, "elements", PROP_COLLECTION, PROP_NONE);
342  RNA_def_property_collection_sdna(prop, NULL, "elems", NULL);
343  RNA_def_property_struct_type(prop, "MetaElement");
344  RNA_def_property_ui_text(prop, "Elements", "Metaball elements");
345  rna_def_metaball_elements(brna, prop);
346 
347  /* enums */
348  prop = RNA_def_property(srna, "update_method", PROP_ENUM, PROP_NONE);
349  RNA_def_property_enum_sdna(prop, NULL, "flag");
350  RNA_def_property_enum_items(prop, prop_update_items);
351  RNA_def_property_ui_text(prop, "Update", "Metaball edit update behavior");
352  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
353 
354  /* number values */
355  prop = RNA_def_property(srna, "resolution", PROP_FLOAT, PROP_DISTANCE);
356  RNA_def_property_float_sdna(prop, NULL, "wiresize");
357  RNA_def_property_range(prop, 0.005f, 10000.0f);
358  RNA_def_property_ui_range(prop, 0.05f, 1000.0f, 2.5f, 3);
359  RNA_def_property_ui_text(prop, "Wire Size", "Polygonization resolution in the 3D viewport");
360  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
361 
362  prop = RNA_def_property(srna, "render_resolution", PROP_FLOAT, PROP_DISTANCE);
363  RNA_def_property_float_sdna(prop, NULL, "rendersize");
364  RNA_def_property_range(prop, 0.005f, 10000.0f);
365  RNA_def_property_ui_range(prop, 0.025f, 1000.0f, 2.5f, 3);
366  RNA_def_property_ui_text(prop, "Render Size", "Polygonization resolution in rendering");
367  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
368 
369  prop = RNA_def_property(srna, "threshold", PROP_FLOAT, PROP_NONE);
370  RNA_def_property_float_sdna(prop, NULL, "thresh");
371  RNA_def_property_range(prop, 0.0f, 5.0f);
372  RNA_def_property_ui_text(prop, "Threshold", "Influence of metaball elements");
373  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
374 
375  /* texture space */
376  prop = RNA_def_property(srna, "use_auto_texspace", PROP_BOOLEAN, PROP_NONE);
379  prop,
380  "Auto Texture Space",
381  "Adjust active object's texture space automatically when transforming object");
382 
383  prop = RNA_def_property(srna, "texspace_location", PROP_FLOAT, PROP_TRANSLATION);
384  RNA_def_property_array(prop, 3);
385  RNA_def_property_ui_text(prop, "Texture Space Location", "Texture space location");
386  RNA_def_property_editable_func(prop, "rna_Meta_texspace_editable");
388  prop, "rna_Meta_texspace_loc_get", "rna_Meta_texspace_loc_set", NULL);
389  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
390 
391  prop = RNA_def_property(srna, "texspace_size", PROP_FLOAT, PROP_XYZ);
392  RNA_def_property_array(prop, 3);
394  RNA_def_property_ui_text(prop, "Texture Space Size", "Texture space size");
395  RNA_def_property_editable_func(prop, "rna_Meta_texspace_editable");
397  prop, "rna_Meta_texspace_size_get", "rna_Meta_texspace_size_set", NULL);
398  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
399 
400  /* not supported yet */
401 # if 0
402  prop = RNA_def_property(srna, "texspace_rot", PROP_FLOAT, PROP_EULER);
403  RNA_def_property_float(prop, NULL, "rot");
404  RNA_def_property_ui_text(prop, "Texture Space Rotation", "Texture space rotation");
405  RNA_def_property_editable_func(prop, "rna_Meta_texspace_editable");
406  RNA_def_property_update(prop, 0, "rna_MetaBall_update_data");
407 # endif
408 
409  /* materials */
410  prop = RNA_def_property(srna, "materials", PROP_COLLECTION, PROP_NONE);
411  RNA_def_property_collection_sdna(prop, NULL, "mat", "totcol");
412  RNA_def_property_struct_type(prop, "Material");
413  RNA_def_property_ui_text(prop, "Materials", "");
414  RNA_def_property_srna(prop, "IDMaterials"); /* see rna_ID.c */
416  prop, NULL, NULL, NULL, NULL, NULL, NULL, NULL, "rna_IDMaterials_assign_int");
417 
418  prop = RNA_def_property(srna, "is_editmode", PROP_BOOLEAN, PROP_NONE);
419  RNA_def_property_boolean_funcs(prop, "rna_Meta_is_editmode_get", NULL);
421  RNA_def_property_ui_text(prop, "Is Editmode", "True when used in editmode");
422 
423  /* anim */
425 
426  RNA_api_meta(srna);
427 }
428 
430 {
431  rna_def_metaelement(brna);
432  rna_def_metaball(brna);
433 }
434 
435 #endif
struct MetaElem * BKE_mball_element_add(struct MetaBall *mb, const int type)
Definition: mball.c:225
void BKE_mball_properties_copy(struct Scene *scene, struct Object *active_object)
copy some properties from object to other meta-ball object with same base name
Definition: mball.c:465
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
bool BLI_remlink_safe(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
Definition: listbase.c:159
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
Definition: listbase.c:547
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
float normalize_qt(float q[4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
#define UNUSED(x)
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_COPY_ON_WRITE
Definition: DNA_ID.h:654
#define MB_BALL
#define MB_AUTOSPACE
#define MB_HIDE
#define MB_UPDATE_ALWAYS
#define MB_NEGATIVE
#define MB_UPDATE_NEVER
#define MB_SCALE_RAD
#define MB_UPDATE_FAST
#define MB_UPDATE_HALFRES
Object is a sort of wrapper for general info.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
#define RNA_POINTER_INVALIDATE(ptr)
Definition: RNA_access.h:1425
@ PARM_RNAPTR
Definition: RNA_types.h:339
@ PARM_REQUIRED
Definition: RNA_types.h:337
@ FUNC_USE_REPORTS
Definition: RNA_types.h:578
@ PROP_FLOAT
Definition: RNA_types.h:75
@ PROP_BOOLEAN
Definition: RNA_types.h:73
@ PROP_ENUM
Definition: RNA_types.h:77
@ PROP_POINTER
Definition: RNA_types.h:78
@ PROP_COLLECTION
Definition: RNA_types.h:79
@ PROP_UNIT_LENGTH
Definition: RNA_types.h:85
@ PROP_THICK_WRAP
Definition: RNA_types.h:270
@ PROP_PROPORTIONAL
Definition: RNA_types.h:209
@ PROP_EDITABLE
Definition: RNA_types.h:175
@ PROP_NEVER_NULL
Definition: RNA_types.h:225
@ PROP_XYZ
Definition: RNA_types.h:148
@ PROP_DISTANCE
Definition: RNA_types.h:135
@ PROP_EULER
Definition: RNA_types.h:145
@ PROP_NONE
Definition: RNA_types.h:113
@ PROP_TRANSLATION
Definition: RNA_types.h:140
@ PROP_UNSIGNED
Definition: RNA_types.h:129
@ PROP_QUATERNION
Definition: RNA_types.h:146
#define NC_GEOM
Definition: WM_types.h:294
#define ND_DATA
Definition: WM_types.h:408
return(oflags[bm->toolflag_index].f &oflag) !=0
Scene scene
void(* MEM_freeN)(void *vmemh)
Definition: mallocn.c:41
void rna_def_animdata_common(StructRNA *srna)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2762
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
Definition: rna_define.c:1212
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
Definition: rna_define.c:4159
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
Definition: rna_define.c:2257
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
Definition: rna_define.c:1555
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
Definition: rna_define.c:4302
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
Definition: rna_define.c:3153
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
Definition: rna_define.c:1676
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
Definition: rna_define.c:4262
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
Definition: rna_define.c:3462
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)
Definition: rna_define.c:3408
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
Definition: rna_define.c:1259
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
Definition: rna_define.c:2971
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
Definition: rna_define.c:1892
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
Definition: rna_define.c:1067
void RNA_def_property_array(PropertyRNA *prop, int length)
Definition: rna_define.c:1568
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
Definition: rna_define.c:1757
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
Definition: rna_define.c:1792
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
Definition: rna_define.c:2791
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
Definition: rna_define.c:4337
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
Definition: rna_define.c:2927
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
Definition: rna_define.c:2877
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
Definition: rna_define.c:1279
void RNA_def_function_flag(FunctionRNA *func, int flag)
Definition: rna_define.c:4332
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
Definition: rna_define.c:1517
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
Definition: rna_define.c:1047
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2623
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
Definition: rna_define.c:1267
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
Definition: rna_define.c:1512
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
Definition: rna_define.c:2515
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
Definition: rna_define.c:1706
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
Definition: rna_define.c:3771
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
Definition: rna_define.c:2348
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
Definition: rna_define.c:1547
void RNA_api_meta(struct StructRNA *srna)
Definition: rna_meta_api.c:51
static void rna_def_metaball_elements(BlenderRNA *brna, PropertyRNA *cprop)
Definition: rna_meta.c:282
void RNA_def_meta(BlenderRNA *brna)
Definition: rna_meta.c:429
static void rna_def_metaball(BlenderRNA *brna)
Definition: rna_meta.c:321
static void rna_def_metaelement(BlenderRNA *brna)
Definition: rna_meta.c:194
const EnumPropertyItem rna_enum_metaelem_type_items[]
Definition: rna_object.c:223
Definition: DNA_ID.h:273
int us
Definition: DNA_ID.h:293
char name[66]
Definition: DNA_ID.h:283
void * first
Definition: DNA_listBase.h:47
Definition: BKE_main.h:116
ListBase objects
Definition: BKE_main.h:148
float size[3]
ListBase elems
float loc[3]
ListBase * editelems
short texflag
float quat[4]
void * data
Definition: RNA_types.h:52
struct ID * owner_id
Definition: RNA_types.h:50
void WM_main_add_notifier(unsigned int type, void *reference)
PointerRNA * ptr
Definition: wm_files.c:3157