Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/BKE_modifier.h')
-rw-r--r--source/blender/blenkernel/BKE_modifier.h45
1 files changed, 21 insertions, 24 deletions
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h
index 02b9b547314..a2c3787bcd2 100644
--- a/source/blender/blenkernel/BKE_modifier.h
+++ b/source/blender/blenkernel/BKE_modifier.h
@@ -29,6 +29,9 @@ extern "C" {
struct ARegionType;
struct BMEditMesh;
+struct BlendDataReader;
+struct BlendLibReader;
+struct BlendWriter;
struct CustomData_MeshMasks;
struct DepsNodeHandle;
struct Depsgraph;
@@ -40,8 +43,6 @@ struct ModifierData;
struct Object;
struct Scene;
struct bArmature;
-struct BlendWriter;
-struct BlendDataReader;
typedef enum {
/* Should not be used, only for None modifier type */
@@ -115,11 +116,6 @@ typedef enum {
eModifierTypeFlag_AcceptsBMesh = (1 << 11),
} ModifierTypeFlag;
-/* IMPORTANT! Keep ObjectWalkFunc and IDWalkFunc signatures compatible. */
-typedef void (*ObjectWalkFunc)(void *userData,
- struct Object *ob,
- struct Object **obpoin,
- int cb_flag);
typedef void (*IDWalkFunc)(void *userData, struct Object *ob, struct ID **idpoin, int cb_flag);
typedef void (*TexWalkFunc)(void *userData,
struct Object *ob,
@@ -170,9 +166,15 @@ typedef struct ModifierTypeInfo {
/* The size of the modifier data type, used by allocation. */
int structSize;
+ /* StructRNA of this modifier. This is typically something like RNA_*Modifier. */
+ struct StructRNA *srna;
+
ModifierTypeType type;
ModifierTypeFlag flags;
+ /* Icon of the modifier. Usually something like ICON_MOD_*. */
+ int icon;
+
/********************* Non-optional functions *********************/
/**
@@ -326,25 +328,12 @@ typedef struct ModifierTypeInfo {
bool (*dependsOnNormals)(struct ModifierData *md);
/**
- * Should call the given walk function on with a pointer to each Object
- * pointer that the modifier data stores. This is used for linking on file
- * load and for unlinking objects or forwarding object references.
- *
- * This function is optional.
- */
- void (*foreachObjectLink)(struct ModifierData *md,
- struct Object *ob,
- ObjectWalkFunc walk,
- void *userData);
-
- /**
* Should call the given walk function with a pointer to each ID
* pointer (i.e. each data-block pointer) that the modifier data
* stores. This is used for linking on file load and for
* unlinking data-blocks or forwarding data-block references.
*
- * This function is optional. If it is not present, foreachObjectLink
- * will be used.
+ * This function is optional.
*/
void (*foreachIDLink)(struct ModifierData *md,
struct Object *ob,
@@ -408,6 +397,7 @@ const ModifierTypeInfo *BKE_modifier_get_info(ModifierType type);
/* For modifier UI panels. */
void BKE_modifier_type_panel_id(ModifierType type, char *r_idname);
+void BKE_modifier_panel_expand(struct ModifierData *md);
/* Modifier utility calls, do call through type pointer and return
* default values if pointer is optional.
@@ -439,11 +429,12 @@ bool BKE_modifier_is_non_geometrical(ModifierData *md);
bool BKE_modifier_is_enabled(const struct Scene *scene,
struct ModifierData *md,
int required_mode);
-void BKE_modifier_set_error(struct ModifierData *md, const char *format, ...)
- ATTR_PRINTF_FORMAT(2, 3);
+void BKE_modifier_set_error(const struct Object *ob,
+ struct ModifierData *md,
+ const char *format,
+ ...) ATTR_PRINTF_FORMAT(3, 4);
bool BKE_modifier_is_preview(struct ModifierData *md);
-void BKE_modifiers_foreach_object_link(struct Object *ob, ObjectWalkFunc walk, void *userData);
void BKE_modifiers_foreach_ID_link(struct Object *ob, IDWalkFunc walk, void *userData);
void BKE_modifiers_foreach_tex_link(struct Object *ob, TexWalkFunc walk, void *userData);
@@ -545,6 +536,12 @@ struct Mesh *BKE_modifier_get_evaluated_mesh_from_evaluated_object(struct Object
void BKE_modifier_check_uuids_unique_and_report(const struct Object *object);
+void BKE_modifier_blend_write(struct BlendWriter *writer, struct ListBase *modbase);
+void BKE_modifier_blend_read_data(struct BlendDataReader *reader,
+ struct ListBase *lb,
+ struct Object *ob);
+void BKE_modifier_blend_read_lib(struct BlendLibReader *reader, struct Object *ob);
+
#ifdef __cplusplus
}
#endif