Merge branch 'master' into blender2.8
[blender.git] / source / blender / blenkernel / BKE_idprop.h
index 48a5db93504cc606f1b572746f7ebc67a41549f4..c686fa41e7e83b409d804afa918f5a17dec04625 100644 (file)
 
 #include "BLI_compiler_attrs.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct IDProperty;
 struct ID;
 
@@ -91,6 +95,7 @@ void IDP_ReplaceGroupInGroup(struct IDProperty *dest, const struct IDProperty *s
 void IDP_ReplaceInGroup(struct IDProperty *group, struct IDProperty *prop) ATTR_NONNULL();
 void IDP_ReplaceInGroup_ex(struct IDProperty *group, struct IDProperty *prop, struct IDProperty *prop_exist);
 void IDP_MergeGroup(IDProperty *dest, const IDProperty *src, const bool do_overwrite) ATTR_NONNULL();
+void IDP_MergeGroup_ex(IDProperty *dest, const IDProperty *src, const bool do_overwrite, const int flag) ATTR_NONNULL();
 bool IDP_AddToGroup(struct IDProperty *group, struct IDProperty *prop) ATTR_NONNULL();
 bool IDP_InsertToGroup(struct IDProperty *group, struct IDProperty *previous,
                       struct IDProperty *pnew) ATTR_NONNULL(1 /* group */, 3 /* pnew */);
@@ -118,6 +123,8 @@ void IDP_ClearProperty(IDProperty *prop);
 
 void IDP_RelinkProperty(struct IDProperty *prop);
 
+void IDP_Reset(IDProperty *prop, const IDProperty *reference);
+
 #define IDP_Int(prop)                     ((prop)->data.val)
 #define IDP_Array(prop)                   ((prop)->data.pointer)
 /* C11 const correctness for casts */
@@ -149,4 +156,8 @@ void IDP_RelinkProperty(struct IDProperty *prop);
 char *IDP_reprN(const struct IDProperty *prop);
 void  IDP_print(const struct IDProperty *prop);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* __BKE_IDPROP_H__ */