diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index 2368f7be3de..d4532e78239 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -717,6 +717,7 @@ int RNA_string_length(PointerRNA *ptr, const char *name); void RNA_string_set(PointerRNA *ptr, const char *name, const char *value); PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name); +void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value); void RNA_pointer_add(PointerRNA *ptr, const char *name); void RNA_collection_begin(PointerRNA *ptr, const char *name, CollectionPropertyIterator *iter); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 0a4cc2a023e..b0db6ae9de5 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -2524,6 +2524,18 @@ PointerRNA RNA_pointer_get(PointerRNA *ptr, const char *name) } } +void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value) +{ + PropertyRNA *prop= RNA_struct_find_property(ptr, name); + + if(prop) { + RNA_property_pointer_set(ptr, prop, ptr_value); + } + else { + printf("RNA_pointer_set: %s.%s not found.\n", ptr->type->identifier, name); + } +} + void RNA_pointer_add(PointerRNA *ptr, const char *name) { PropertyRNA *prop= RNA_struct_find_property(ptr, name);