Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / object / object_modifier.c
index 96d82d5..28ab43d 100644 (file)
@@ -100,7 +100,7 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
 {
        ModifierData *md = NULL, *new_md = NULL;
        const ModifierTypeInfo *mti = modifierType_getInfo(type);
-       
+
        /* Check compatibility of modifier [T25291, T50373]. */
        if (!BKE_object_support_modifier_type_check(ob, type)) {
                BKE_reportf(reports, RPT_WARNING, "Modifiers cannot be added to object '%s'", ob->id.name + 2);
@@ -113,23 +113,23 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
                        return NULL;
                }
        }
-       
+
        if (type == eModifierType_ParticleSystem) {
                /* don't need to worry about the new modifier's name, since that is set to the number
-                * of particle systems which shouldn't have too many duplicates 
+                * of particle systems which shouldn't have too many duplicates
                 */
                new_md = object_add_particle_system(scene, ob, name);
        }
        else {
                /* get new modifier data to add */
                new_md = modifier_new(type);
-               
+
                if (mti->flags & eModifierTypeFlag_RequiresOriginalData) {
                        md = ob->modifiers.first;
-                       
+
                        while (md && modifierType_getInfo(md->type)->type == eModifierTypeType_OnlyDeform)
                                md = md->next;
-                       
+
                        BLI_insertlinkbefore(&ob->modifiers, md, new_md);
                }
                else
@@ -142,7 +142,7 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
                /* make sure modifier data has unique name */
 
                modifier_unique_name(&ob->modifiers, new_md);
-               
+
                /* special cases */
                if (type == eModifierType_Softbody) {
                        if (!ob->soft) {
@@ -153,7 +153,7 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
                else if (type == eModifierType_Collision) {
                        if (!ob->pd)
                                ob->pd = object_add_collision_fields(0);
-                       
+
                        ob->pd->deflect = 1;
                }
                else if (type == eModifierType_Surface) {
@@ -468,14 +468,14 @@ int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene *
        /* add new mesh */
        obn = BKE_object_add(bmain, scene, view_layer, OB_MESH, NULL);
        me = obn->data;
-       
+
        me->totvert = totvert;
        me->totedge = totedge;
-       
+
        me->mvert = CustomData_add_layer(&me->vdata, CD_MVERT, CD_CALLOC, NULL, totvert);
        me->medge = CustomData_add_layer(&me->edata, CD_MEDGE, CD_CALLOC, NULL, totedge);
        me->mface = CustomData_add_layer(&me->fdata, CD_MFACE, CD_CALLOC, NULL, 0);
-       
+
        mvert = me->mvert;
        medge = me->medge;
 
@@ -550,18 +550,18 @@ static int modifier_apply_shape(ReportList *reports, Depsgraph *depsgraph, Scene
                Mesh *me = ob->data;
                Key *key = me->key;
                KeyBlock *kb;
-               
+
                if (!modifier_isSameTopology(md) || mti->type == eModifierTypeType_NonGeometrical) {
                        BKE_report(reports, RPT_ERROR, "Only deforming modifiers can be applied to shapes");
                        return 0;
                }
-               
+
                mesh_applied = BKE_mesh_create_derived_for_modifier(depsgraph, scene, ob, md, 0);
                if (!mesh_applied) {
                        BKE_report(reports, RPT_ERROR, "Modifier is disabled or returned error, skipping apply");
                        return 0;
                }
-               
+
                if (key == NULL) {
                        key = me->key = BKE_key_add((ID *)me);
                        key->type = KEY_RELATIVE;
@@ -573,7 +573,7 @@ static int modifier_apply_shape(ReportList *reports, Depsgraph *depsgraph, Scene
 
                kb = BKE_keyblock_add(key, md->name);
                BKE_nomain_mesh_to_meshkey(mesh_applied, me, kb);
-               
+
                BKE_id_free(NULL, mesh_applied);
        }
        else {
@@ -660,7 +660,7 @@ static int modifier_apply_obdata(ReportList *reports, Depsgraph *depsgraph, Scen
                ParticleSystem *psys = ob->particlesystem.first;
 
                for (; psys; psys = psys->next) {
-                       
+
                        if (psys->part->type != PART_HAIR)
                                continue;
 
@@ -724,7 +724,7 @@ int ED_object_modifier_apply(
 int ED_object_modifier_copy(ReportList *UNUSED(reports), Object *ob, ModifierData *md)
 {
        ModifierData *nmd;
-       
+
        nmd = modifier_new(md->type);
        modifier_copyData(md, nmd);
        BLI_insertlinkafter(&ob->modifiers, md, nmd);
@@ -746,19 +746,19 @@ static int modifier_add_exec(bContext *C, wmOperator *op)
                return OPERATOR_CANCELLED;
 
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
 static const EnumPropertyItem *modifier_add_itemf(
         bContext *C, PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free)
-{      
+{
        Object *ob = ED_object_active_context(C);
        EnumPropertyItem *item = NULL;
        const EnumPropertyItem *md_item, *group_item = NULL;
        const ModifierTypeInfo *mti;
        int totitem = 0, a;
-       
+
        if (!ob)
                return rna_enum_object_modifier_type_items;
 
@@ -803,15 +803,15 @@ void OBJECT_OT_modifier_add(wmOperatorType *ot)
        ot->name = "Add Modifier";
        ot->description = "Add a procedural operation/effect to the active object";
        ot->idname = "OBJECT_OT_modifier_add";
-       
+
        /* api callbacks */
        ot->invoke = WM_menu_invoke;
        ot->exec = modifier_add_exec;
        ot->poll = ED_operator_object_active_editable;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
-       
+
        /* properties */
        prop = RNA_def_enum(ot->srna, "type", rna_enum_object_modifier_type_items, eModifierType_Subsurf, "Type", "");
        RNA_def_enum_funcs(prop, modifier_add_itemf);
@@ -824,7 +824,7 @@ int edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag
 {
        PointerRNA ptr = CTX_data_pointer_get_type(C, "modifier", rna_type);
        Object *ob = (ptr.id.data) ? ptr.id.data : ED_object_active_context(C);
-       
+
        if (!ptr.data) {
                CTX_wm_operator_poll_msg_set(C, "Context missing 'modifier'");
                return 0;
@@ -838,7 +838,7 @@ int edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag
                CTX_wm_operator_poll_msg_set(C, "Cannot edit modifiers comming from static override");
                return (((ModifierData *)ptr.data)->flag & eModifierFlag_StaticOverride_Local) != 0;
        }
-       
+
        return 1;
 }
 
@@ -855,7 +855,7 @@ void edit_modifier_properties(wmOperatorType *ot)
 int edit_modifier_invoke_properties(bContext *C, wmOperator *op)
 {
        ModifierData *md;
-       
+
        if (RNA_struct_property_is_set(op->ptr, "modifier")) {
                return true;
        }
@@ -876,9 +876,9 @@ ModifierData *edit_modifier_property_get(wmOperator *op, Object *ob, int type)
        char modifier_name[MAX_NAME];
        ModifierData *md;
        RNA_string_get(op->ptr, "modifier", modifier_name);
-       
+
        md = modifiers_findByName(ob, modifier_name);
-       
+
        if (md && type != 0 && md->type != type)
                md = NULL;
 
@@ -894,7 +894,7 @@ static int modifier_remove_exec(bContext *C, wmOperator *op)
        Object *ob = ED_object_active_context(C);
        ModifierData *md = edit_modifier_property_get(op, ob, 0);
        int mode_orig = ob->mode;
-       
+
        if (!md || !ED_object_modifier_remove(op->reports, bmain, ob, md))
                return OPERATOR_CANCELLED;
 
@@ -928,7 +928,7 @@ void OBJECT_OT_modifier_remove(wmOperatorType *ot)
        ot->invoke = modifier_remove_invoke;
        ot->exec = modifier_remove_exec;
        ot->poll = edit_modifier_poll;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -946,7 +946,7 @@ static int modifier_move_up_exec(bContext *C, wmOperator *op)
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -967,7 +967,7 @@ void OBJECT_OT_modifier_move_up(wmOperatorType *ot)
        ot->invoke = modifier_move_up_invoke;
        ot->exec = modifier_move_up_exec;
        ot->poll = edit_modifier_poll;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -985,7 +985,7 @@ static int modifier_move_down_exec(bContext *C, wmOperator *op)
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1006,7 +1006,7 @@ void OBJECT_OT_modifier_move_down(wmOperatorType *ot)
        ot->invoke = modifier_move_down_invoke;
        ot->exec = modifier_move_down_exec;
        ot->poll = edit_modifier_poll;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -1028,7 +1028,7 @@ static int modifier_apply_exec(bContext *C, wmOperator *op)
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1055,10 +1055,10 @@ void OBJECT_OT_modifier_apply(wmOperatorType *ot)
        ot->invoke = modifier_apply_invoke;
        ot->exec = modifier_apply_exec;
        ot->poll = edit_modifier_poll;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
-       
+
        RNA_def_enum(ot->srna, "apply_as", modifier_apply_as_items, MODIFIER_APPLY_DATA, "Apply as", "How to apply the modifier to the geometry");
        edit_modifier_properties(ot);
 }
@@ -1072,13 +1072,13 @@ static int modifier_convert_exec(bContext *C, wmOperator *op)
        ViewLayer *view_layer = CTX_data_view_layer(C);
        Object *ob = ED_object_active_context(C);
        ModifierData *md = edit_modifier_property_get(op, ob, 0);
-       
+
        if (!md || !ED_object_modifier_convert(op->reports, bmain, scene, view_layer, ob, md))
                return OPERATOR_CANCELLED;
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1099,7 +1099,7 @@ void OBJECT_OT_modifier_convert(wmOperatorType *ot)
        ot->invoke = modifier_convert_invoke;
        ot->exec = modifier_convert_exec;
        ot->poll = edit_modifier_poll;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -1117,7 +1117,7 @@ static int modifier_copy_exec(bContext *C, wmOperator *op)
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1138,7 +1138,7 @@ void OBJECT_OT_modifier_copy(wmOperatorType *ot)
        ot->invoke = modifier_copy_invoke;
        ot->exec = modifier_copy_exec;
        ot->poll = edit_modifier_poll;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -1155,18 +1155,18 @@ static int multires_higher_levels_delete_exec(bContext *C, wmOperator *op)
 {
        Object *ob = ED_object_active_context(C);
        MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
-       
+
        if (!mmd)
                return OPERATOR_CANCELLED;
-       
+
        multiresModifier_del_levels(mmd, ob, 1);
 
        ED_object_iter_other(CTX_data_main(C), ob, true,
                             ED_object_multires_update_totlevels_cb,
                             &mmd->totlvl);
-       
+
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1187,7 +1187,7 @@ void OBJECT_OT_multires_higher_levels_delete(wmOperatorType *ot)
        ot->poll = multires_poll;
        ot->invoke = multires_higher_levels_delete_invoke;
        ot->exec = multires_higher_levels_delete_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -1199,10 +1199,10 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op)
 {
        Object *ob = ED_object_active_context(C);
        MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
-       
+
        if (!mmd)
                return OPERATOR_CANCELLED;
-       
+
        multiresModifier_subdivide(mmd, ob, 0, mmd->simple);
 
        ED_object_iter_other(CTX_data_main(C), ob, true,
@@ -1216,7 +1216,7 @@ static int multires_subdivide_exec(bContext *C, wmOperator *op)
                /* ensure that grid paint mask layer is created */
                BKE_sculpt_mask_layers_ensure(ob, mmd);
        }
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1237,7 +1237,7 @@ void OBJECT_OT_multires_subdivide(wmOperatorType *ot)
        ot->poll = multires_poll;
        ot->invoke = multires_subdivide_invoke;
        ot->exec = multires_subdivide_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -1302,14 +1302,14 @@ void OBJECT_OT_multires_reshape(wmOperatorType *ot)
        ot->poll = multires_poll;
        ot->invoke = multires_reshape_invoke;
        ot->exec = multires_reshape_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
 }
 
 
-               
+
 /****************** multires save external operator *********************/
 
 static int multires_external_save_exec(bContext *C, wmOperator *op)
@@ -1325,7 +1325,7 @@ static int multires_external_save_exec(bContext *C, wmOperator *op)
 
        if (CustomData_external_test(&me->ldata, CD_MDISPS))
                return OPERATOR_CANCELLED;
-       
+
        RNA_string_get(op->ptr, "filepath", path);
 
        if (relative)
@@ -1333,7 +1333,7 @@ static int multires_external_save_exec(bContext *C, wmOperator *op)
 
        CustomData_external_add(&me->ldata, &me->id, CD_MDISPS, me->totloop, path);
        CustomData_external_write(&me->ldata, &me->id, CD_MASK_MESH, me->totloop, 0);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1346,23 +1346,23 @@ static int multires_external_save_invoke(bContext *C, wmOperator *op, const wmEv
 
        if (!edit_modifier_invoke_properties(C, op))
                return OPERATOR_CANCELLED;
-       
+
        mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
-       
+
        if (!mmd)
                return OPERATOR_CANCELLED;
-       
+
        if (CustomData_external_test(&me->ldata, CD_MDISPS))
                return OPERATOR_CANCELLED;
 
        if (RNA_struct_property_is_set(op->ptr, "filepath"))
                return multires_external_save_exec(C, op);
-       
+
        op->customdata = me;
 
        BLI_snprintf(path, sizeof(path), "//%s.btx", me->id.name + 2);
        RNA_string_set(op->ptr, "filepath", path);
-       
+
        WM_event_add_fileselect(C, op);
 
        return OPERATOR_RUNNING_MODAL;
@@ -1378,7 +1378,7 @@ void OBJECT_OT_multires_external_save(wmOperatorType *ot)
        ot->exec = multires_external_save_exec;
        ot->invoke = multires_external_save_invoke;
        ot->poll = multires_poll;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
 
@@ -1400,7 +1400,7 @@ static int multires_external_pack_exec(bContext *C, wmOperator *UNUSED(op))
 
        /* XXX don't remove.. */
        CustomData_external_remove(&me->ldata, &me->id, CD_MDISPS, me->totloop);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1412,7 +1412,7 @@ void OBJECT_OT_multires_external_pack(wmOperatorType *ot)
 
        ot->poll = multires_poll;
        ot->exec = multires_external_pack_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 }
@@ -1422,15 +1422,15 @@ static int multires_base_apply_exec(bContext *C, wmOperator *op)
 {
        Object *ob = ED_object_active_context(C);
        MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
-       
+
        if (!mmd)
                return OPERATOR_CANCELLED;
-       
+
        multiresModifier_base_apply(mmd, ob);
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1452,7 +1452,7 @@ void OBJECT_OT_multires_base_apply(wmOperatorType *ot)
        ot->poll = multires_poll;
        ot->invoke = multires_base_apply_invoke;
        ot->exec = multires_base_apply_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -1465,7 +1465,7 @@ static void modifier_skin_customdata_delete(Object *ob)
 {
        Mesh *me = ob->data;
        BMEditMesh *em = me->edit_btmesh;
-       
+
        if (em)
                BM_data_layer_free(em->bm, &em->bm->vdata, CD_MVERT_SKIN);
        else
@@ -1488,7 +1488,7 @@ static void skin_root_clear(BMVert *bm_vert, GSet *visited, const int cd_vert_sk
 {
        BMEdge *bm_edge;
        BMIter bm_iter;
-       
+
        BM_ITER_ELEM (bm_edge, &bm_iter, bm_vert, BM_EDGES_OF_VERT) {
                BMVert *v2 = BM_edge_other_vert(bm_edge, bm_vert);
 
@@ -1536,7 +1536,7 @@ static int skin_root_mark_exec(bContext *C, wmOperator *UNUSED(op))
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1548,7 +1548,7 @@ void OBJECT_OT_skin_root_mark(wmOperatorType *ot)
 
        ot->poll = skin_edit_poll;
        ot->exec = skin_root_mark_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 }
@@ -1591,7 +1591,7 @@ static int skin_loose_mark_clear_exec(bContext *C, wmOperator *op)
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1609,7 +1609,7 @@ void OBJECT_OT_skin_loose_mark_clear(wmOperatorType *ot)
 
        ot->poll = skin_edit_poll;
        ot->exec = skin_loose_mark_clear_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 
@@ -1641,7 +1641,7 @@ static int skin_radii_equalize_exec(bContext *C, wmOperator *UNUSED(op))
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1653,7 +1653,7 @@ void OBJECT_OT_skin_radii_equalize(wmOperatorType *ot)
 
        ot->poll = skin_edit_poll;
        ot->exec = skin_radii_equalize_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
 }
@@ -1697,7 +1697,7 @@ static void skin_armature_bone_create(Object *skin_ob,
                        ED_vgroup_vert_add(skin_ob, dg, parent_v, 1, WEIGHT_REPLACE);
                        ED_vgroup_vert_add(skin_ob, dg, v, 1, WEIGHT_REPLACE);
                }
-               
+
                skin_armature_bone_create(skin_ob,
                                          mvert, medge,
                                          arm,
@@ -1730,7 +1730,7 @@ static Object *modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain,
                             CD_CALLOC,
                             NULL,
                             me->totvert);
-       
+
        ViewLayer *view_layer = DEG_get_input_view_layer(depsgraph);
        arm_ob = BKE_object_add(bmain, scene, view_layer, OB_ARMATURE, NULL);
        BKE_object_transform_copy(arm_ob, skin_ob);
@@ -1764,7 +1764,7 @@ static Object *modifier_skin_armature_create(Depsgraph *depsgraph, Main *bmain,
                                bone->head[1] = 1.0f;
                                bone->rad_head = bone->rad_tail = 0.25;
                        }
-                       
+
                        if (emap[v].count >= 1) {
                                skin_armature_bone_create(skin_ob,
                                                          mvert, me->medge,
@@ -1839,7 +1839,7 @@ void OBJECT_OT_skin_armature_create(wmOperatorType *ot)
        ot->poll = skin_poll;
        ot->invoke = skin_armature_create_invoke;
        ot->exec = skin_armature_create_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -1925,7 +1925,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
        Object *ob = ED_object_active_context(C);
        Depsgraph *depsgraph = CTX_data_depsgraph(C);
        MeshDeformModifierData *mmd = (MeshDeformModifierData *)edit_modifier_property_get(op, ob, eModifierType_MeshDeform);
-       
+
        if (!mmd)
                return OPERATOR_CANCELLED;
 
@@ -1950,7 +1950,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
                mmd->totvert = 0;
                mmd->totcagevert = 0;
                mmd->totinfluence = 0;
-               
+
                DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
                WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
        }
@@ -1979,7 +1979,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
                mmd->bindfunc = NULL;
                mmd->modifier.mode = mode;
        }
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -1987,7 +1987,7 @@ static int meshdeform_bind_invoke(bContext *C, wmOperator *op, const wmEvent *UN
 {
        if (edit_modifier_invoke_properties(C, op))
                return meshdeform_bind_exec(C, op);
-       else 
+       else
                return OPERATOR_CANCELLED;
 }
 
@@ -1997,12 +1997,12 @@ void OBJECT_OT_meshdeform_bind(wmOperatorType *ot)
        ot->name = "Mesh Deform Bind";
        ot->description = "Bind mesh to cage in mesh deform modifier";
        ot->idname = "OBJECT_OT_meshdeform_bind";
-       
+
        /* api callbacks */
        ot->poll = meshdeform_poll;
        ot->invoke = meshdeform_bind_invoke;
        ot->exec = meshdeform_bind_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -2019,7 +2019,7 @@ static int explode_refresh_exec(bContext *C, wmOperator *op)
 {
        Object *ob = ED_object_active_context(C);
        ExplodeModifierData *emd = (ExplodeModifierData *)edit_modifier_property_get(op, ob, eModifierType_Explode);
-       
+
        if (!emd)
                return OPERATOR_CANCELLED;
 
@@ -2027,7 +2027,7 @@ static int explode_refresh_exec(bContext *C, wmOperator *op)
 
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
-       
+
        return OPERATOR_FINISHED;
 }
 
@@ -2049,7 +2049,7 @@ void OBJECT_OT_explode_refresh(wmOperatorType *ot)
        ot->poll = explode_poll;
        ot->invoke = explode_refresh_invoke;
        ot->exec = explode_refresh_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
@@ -2067,14 +2067,14 @@ static int ocean_bake_poll(bContext *C)
 static void init_ocean_modifier_bake(struct Ocean *oc, struct OceanModifierData *omd)
 {
        int do_heightfield, do_chop, do_normals, do_jacobian;
-       
-       if (!omd || !oc) return; 
-       
+
+       if (!omd || !oc) return;
+
        do_heightfield = true;
        do_chop = (omd->chop_amount > 0);
        do_normals = (omd->flag & MOD_OCEAN_GENERATE_NORMALS);
        do_jacobian = (omd->flag & MOD_OCEAN_GENERATE_FOAM);
-       
+
        BKE_ocean_init(oc, omd->resolution * omd->resolution, omd->resolution * omd->resolution, omd->spatial_size, omd->spatial_size,
                       omd->wind_velocity, omd->smallest_wave, 1.0, omd->wave_direction, omd->damp, omd->wave_alignment,
                       omd->depth, omd->time,
@@ -2104,8 +2104,8 @@ static int oceanbake_breakjob(void *UNUSED(customdata))
 {
        //OceanBakeJob *ob = (OceanBakeJob *)customdata;
        //return *(ob->stop);
-       
-       /* this is not nice yet, need to make the jobs list template better 
+
+       /* this is not nice yet, need to make the jobs list template better
         * for identifying/acting upon various different jobs */
        /* but for now we'll reuse the render break... */
        return (G.is_break);
@@ -2115,10 +2115,10 @@ static int oceanbake_breakjob(void *UNUSED(customdata))
 static void oceanbake_update(void *customdata, float progress, int *cancel)
 {
        OceanBakeJob *oj = customdata;
-       
+
        if (oceanbake_breakjob(oj))
                *cancel = 1;
-       
+
        *(oj->do_update) = true;
        *(oj->progress) = progress;
 }
@@ -2126,15 +2126,15 @@ static void oceanbake_update(void *customdata, float progress, int *cancel)
 static void oceanbake_startjob(void *customdata, short *stop, short *do_update, float *progress)
 {
        OceanBakeJob *oj = customdata;
-       
+
        oj->stop = stop;
        oj->do_update = do_update;
        oj->progress = progress;
-       
+
        G.is_break = false;   /* XXX shared with render - replace with job 'stop' switch */
-       
+
        BKE_ocean_bake(oj->ocean, oj->och, oceanbake_update, (void *)oj);
-       
+
        *do_update = true;
        *stop = 0;
 }
@@ -2142,12 +2142,12 @@ static void oceanbake_startjob(void *customdata, short *stop, short *do_update,
 static void oceanbake_endjob(void *customdata)
 {
        OceanBakeJob *oj = customdata;
-       
+
        if (oj->ocean) {
                BKE_ocean_free(oj->ocean);
                oj->ocean = NULL;
        }
-       
+
        oj->omd->oceancache = oj->och;
        oj->omd->cached = true;
 }
@@ -2162,13 +2162,13 @@ static int ocean_bake_exec(bContext *C, wmOperator *op)
        struct Ocean *ocean;
        int f, cfra, i = 0;
        const bool free = RNA_boolean_get(op->ptr, "free");
-       
+
        wmJob *wm_job;
        OceanBakeJob *oj;
-       
+
        if (!omd)
                return OPERATOR_CANCELLED;
-       
+
        if (free) {
                omd->refresh |= MOD_OCEAN_REFRESH_CLEAR_CACHE;
                DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
@@ -2179,11 +2179,11 @@ static int ocean_bake_exec(bContext *C, wmOperator *op)
        och = BKE_ocean_init_cache(omd->cachepath, modifier_path_relbase(bmain, ob),
                                   omd->bakestart, omd->bakeend, omd->wave_scale,
                                   omd->chop_amount, omd->foam_coverage, omd->foam_fade, omd->resolution);
-       
+
        och->time = MEM_mallocN(och->duration * sizeof(float), "foam bake time");
-       
+
        cfra = scene->r.cfra;
-       
+
        /* precalculate time variable before baking */
        for (f = omd->bakestart; f <= omd->bakeend; f++) {
                /* from physics_fluid.c:
@@ -2194,41 +2194,41 @@ static int ocean_bake_exec(bContext *C, wmOperator *op)
                 * This doesn't work with drivers:
                 * --> BKE_animsys_evaluate_animdata(&fsDomain->id, fsDomain->adt, eval_time, ADT_RECALC_ALL);
                 */
-               
-               /* Modifying the global scene isn't nice, but we can do it in 
+
+               /* Modifying the global scene isn't nice, but we can do it in
                 * this part of the process before a threaded job is created */
-               
+
                //scene->r.cfra = f;
                //ED_update_for_newframe(bmain, scene);
-               
-               /* ok, this doesn't work with drivers, but is way faster. 
+
+               /* ok, this doesn't work with drivers, but is way faster.
                 * let's use this for now and hope nobody wants to drive the time value... */
                BKE_animsys_evaluate_animdata(CTX_data_depsgraph(C), scene, (ID *)ob, ob->adt, f, ADT_RECALC_ANIM);
-               
+
                och->time[i] = omd->time;
                i++;
        }
-       
+
        /* make a copy of ocean to use for baking - threadsafety */
        ocean = BKE_ocean_add();
        init_ocean_modifier_bake(ocean, omd);
-       
+
 #if 0
        BKE_ocean_bake(ocean, och);
-       
+
        omd->oceancache = och;
        omd->cached = true;
-       
+
        scene->r.cfra = cfra;
-       
+
        DEG_id_tag_update(&ob->id, OB_RECALC_DATA);
        WM_event_add_notifier(C, NC_OBJECT | ND_MODIFIER, ob);
 #endif
-       
+
        /* job stuff */
-       
+
        scene->r.cfra = cfra;
-       
+
        /* setup job */
        wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Ocean Simulation",
                             WM_JOB_PROGRESS, WM_JOB_TYPE_OBJECT_SIM_OCEAN);
@@ -2236,15 +2236,15 @@ static int ocean_bake_exec(bContext *C, wmOperator *op)
        oj->ocean = ocean;
        oj->och = och;
        oj->omd = omd;
-       
+
        WM_jobs_customdata_set(wm_job, oj, oceanbake_free);
        WM_jobs_timer(wm_job, 0.1, NC_OBJECT | ND_MODIFIER, NC_OBJECT | ND_MODIFIER);
        WM_jobs_callbacks(wm_job, oceanbake_startjob, NULL, NULL, oceanbake_endjob);
-       
+
        WM_jobs_start(CTX_wm_manager(C), wm_job);
-       
-       
-       
+
+
+
        return OPERATOR_FINISHED;
 }
 
@@ -2262,15 +2262,15 @@ void OBJECT_OT_ocean_bake(wmOperatorType *ot)
        ot->name = "Bake Ocean";
        ot->description = "Bake an image sequence of ocean data";
        ot->idname = "OBJECT_OT_ocean_bake";
-       
+
        ot->poll = ocean_bake_poll;
        ot->invoke = ocean_bake_invoke;
        ot->exec = ocean_bake_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);
-       
+
        RNA_def_boolean(ot->srna, "free", false, "Free", "Free the bake, rather than generating it");
 }
 
@@ -2329,7 +2329,7 @@ static int laplaciandeform_bind_invoke(bContext *C, wmOperator *op, const wmEven
 {
        if (edit_modifier_invoke_properties(C, op))
                return laplaciandeform_bind_exec(C, op);
-       else 
+       else
                return OPERATOR_CANCELLED;
 }
 
@@ -2339,12 +2339,12 @@ void OBJECT_OT_laplaciandeform_bind(wmOperatorType *ot)
        ot->name = "Laplacian Deform Bind";
        ot->description = "Bind mesh to system in laplacian deform modifier";
        ot->idname = "OBJECT_OT_laplaciandeform_bind";
-       
+
        /* api callbacks */
        ot->poll = laplaciandeform_poll;
        ot->invoke = laplaciandeform_bind_invoke;
        ot->exec = laplaciandeform_bind_exec;
-       
+
        /* flags */
        ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_INTERNAL;
        edit_modifier_properties(ot);