diff options
author | Thomas Dinges <blender@dingto.org> | 2022-02-14 19:48:52 +0300 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2022-02-14 19:48:52 +0300 |
commit | 19403fc852224b2c29df3e5f1f2106ba91f105a2 (patch) | |
tree | 59818c3cf9e14fbfa2e54ee8817bf1d8b78ea07c /source/blender/makesrna | |
parent | d8e2f612ec52ce0272cbc8a5e9ff0c6b89ce16a6 (diff) | |
parent | a5edff4b73ba74155dcad93103e2fef2c59df67f (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/intern/rna_object.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 83a0672bece..fd39ff893f1 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -331,6 +331,7 @@ const EnumPropertyItem rna_enum_object_axis_items[] = { # include "BKE_key.h" # include "BKE_material.h" # include "BKE_mesh.h" +# include "BKE_mesh_wrapper.h" # include "BKE_modifier.h" # include "BKE_object.h" # include "BKE_particle.h" @@ -510,6 +511,17 @@ void rna_Object_data_update(Main *bmain, Scene *scene, PointerRNA *ptr) rna_Object_internal_update_data_dependency(bmain, scene, ptr); } +static PointerRNA rna_Object_data_get(PointerRNA *ptr) +{ + Object *ob = (Object *)ptr->data; + if (ob->type == OB_MESH) { + Mesh *me = (Mesh *)ob->data; + me = BKE_mesh_wrapper_ensure_subdivision(ob, me); + return rna_pointer_inherit_refine(ptr, &RNA_Mesh, me); + } + return rna_pointer_inherit_refine(ptr, &RNA_ID, ob->data); +} + static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value, struct ReportList *reports) { Object *ob = (Object *)ptr->data; @@ -3041,8 +3053,11 @@ static void rna_def_object(BlenderRNA *brna) prop = RNA_def_property(srna, "data", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "ID"); - RNA_def_property_pointer_funcs( - prop, NULL, "rna_Object_data_set", "rna_Object_data_typef", "rna_Object_data_poll"); + RNA_def_property_pointer_funcs(prop, + "rna_Object_data_get", + "rna_Object_data_set", + "rna_Object_data_typef", + "rna_Object_data_poll"); RNA_def_property_flag(prop, PROP_EDITABLE | PROP_NEVER_UNLINK); RNA_def_property_ui_text(prop, "Data", "Object data"); RNA_def_property_update(prop, 0, "rna_Object_data_update"); |