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/modifiers/intern/MOD_hook.c')
-rw-r--r--source/blender/modifiers/intern/MOD_hook.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/source/blender/modifiers/intern/MOD_hook.c b/source/blender/modifiers/intern/MOD_hook.c
index 94a9a922ff7..e0c362171f2 100644
--- a/source/blender/modifiers/intern/MOD_hook.c
+++ b/source/blender/modifiers/intern/MOD_hook.c
@@ -28,6 +28,7 @@
#include "BLT_translation.h"
+#include "DNA_defaults.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
@@ -63,10 +64,11 @@ static void initData(ModifierData *md)
{
HookModifierData *hmd = (HookModifierData *)md;
- hmd->force = 1.0;
+ BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(hmd, modifier));
+
+ MEMCPY_STRUCT_AFTER(hmd, DNA_struct_default_get(HookModifierData), modifier);
+
hmd->curfalloff = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
- hmd->falloff_type = eHook_Falloff_Smooth;
- hmd->flag = 0;
}
static void copyData(const ModifierData *md, ModifierData *target, const int flag)
@@ -117,11 +119,11 @@ static bool isDisabled(const struct Scene *UNUSED(scene),
return !hmd->object;
}
-static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk, void *userData)
+static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData)
{
HookModifierData *hmd = (HookModifierData *)md;
- walk(userData, ob, &hmd->object, IDWALK_CB_NOP);
+ walk(userData, ob, (ID **)&hmd->object, IDWALK_CB_NOP);
}
static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx)
@@ -490,11 +492,11 @@ static void panel_draw(const bContext *UNUSED(C), Panel *panel)
if (RNA_enum_get(&ob_ptr, "mode") == OB_MODE_EDIT) {
row = uiLayoutRow(layout, true);
- uiItemO(row, "Reset", ICON_NONE, "OBJECT_OT_hook_reset");
- uiItemO(row, "Recenter", ICON_NONE, "OBJECT_OT_hook_recenter");
+ uiItemO(row, IFACE_("Reset"), ICON_NONE, "OBJECT_OT_hook_reset");
+ uiItemO(row, IFACE_("Recenter"), ICON_NONE, "OBJECT_OT_hook_recenter");
row = uiLayoutRow(layout, true);
- uiItemO(row, "Select", ICON_NONE, "OBJECT_OT_hook_select");
- uiItemO(row, "Assign", ICON_NONE, "OBJECT_OT_hook_assign");
+ uiItemO(row, IFACE_("Select"), ICON_NONE, "OBJECT_OT_hook_select");
+ uiItemO(row, IFACE_("Assign"), ICON_NONE, "OBJECT_OT_hook_assign");
}
modifier_panel_end(layout, ptr);
@@ -558,9 +560,11 @@ ModifierTypeInfo modifierType_Hook = {
/* name */ "Hook",
/* structName */ "HookModifierData",
/* structSize */ sizeof(HookModifierData),
+ /* srna */ &RNA_HookModifier,
/* type */ eModifierTypeType_OnlyDeform,
/* flags */ eModifierTypeFlag_AcceptsCVs | eModifierTypeFlag_AcceptsVertexCosOnly |
eModifierTypeFlag_SupportsEditmode,
+ /* icon */ ICON_HOOK,
/* copyData */ copyData,
/* deformVerts */ deformVerts,
@@ -579,8 +583,7 @@ ModifierTypeInfo modifierType_Hook = {
/* updateDepsgraph */ updateDepsgraph,
/* dependsOnTime */ NULL,
/* dependsOnNormals */ NULL,
- /* foreachObjectLink */ foreachObjectLink,
- /* foreachIDLink */ NULL,
+ /* foreachIDLink */ foreachIDLink,
/* foreachTexLink */ NULL,
/* freeRuntimeData */ NULL,
/* panelRegister */ panelRegister,