diff options
Diffstat (limited to 'source/blender/editors/physics/dynamicpaint_ops.c')
-rw-r--r-- | source/blender/editors/physics/dynamicpaint_ops.c | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/source/blender/editors/physics/dynamicpaint_ops.c b/source/blender/editors/physics/dynamicpaint_ops.c index 550da63d7aa..a12a9c8720b 100644 --- a/source/blender/editors/physics/dynamicpaint_ops.c +++ b/source/blender/editors/physics/dynamicpaint_ops.c @@ -53,9 +53,11 @@ #include "WM_types.h" #include "WM_api.h" +#include "physics_intern.h" /* own include */ + static int surface_slot_add_exec(bContext *C, wmOperator *UNUSED(op)) { - DynamicPaintModifierData *pmd = 0; + DynamicPaintModifierData *pmd = NULL; Object *cObject = CTX_data_pointer_get_type(C, "object", &RNA_Object).data; DynamicPaintCanvasSettings *canvas; DynamicPaintSurface *surface; @@ -97,7 +99,7 @@ void DPAINT_OT_surface_slot_add(wmOperatorType *ot) static int surface_slot_remove_exec(bContext *C, wmOperator *UNUSED(op)) { - DynamicPaintModifierData *pmd = 0; + DynamicPaintModifierData *pmd = NULL; Object *cObject = CTX_data_pointer_get_type(C, "object", &RNA_Object).data; DynamicPaintCanvasSettings *canvas; DynamicPaintSurface *surface; @@ -181,7 +183,7 @@ void DPAINT_OT_type_toggle(wmOperatorType *ot) /* identifiers */ ot->name= "Toggle Type Active"; ot->idname= "DPAINT_OT_type_toggle"; - ot->description = "Toggles whether given type is active or not"; + ot->description = "Toggle whether given type is active or not"; /* api callbacks */ ot->exec= type_toggle_exec; @@ -197,24 +199,23 @@ void DPAINT_OT_type_toggle(wmOperatorType *ot) static int output_toggle_exec(bContext *C, wmOperator *op) { - Object *ob = CTX_data_pointer_get_type(C, "object", &RNA_Object).data; Scene *scene = CTX_data_scene(C); DynamicPaintSurface *surface; DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)modifiers_findByType(ob, eModifierType_DynamicPaint); - int index= RNA_int_get(op->ptr, "index"); + int output= RNA_enum_get(op->ptr, "output"); /* currently only 1/0 */ if (!pmd || !pmd->canvas) return OPERATOR_CANCELLED; surface = get_activeSurface(pmd->canvas); /* if type is already enabled, toggle it off */ if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX) { - int exists = dynamicPaint_outputLayerExists(surface, ob, index); - char *name; + int exists = dynamicPaint_outputLayerExists(surface, ob, output); + const char *name; - if (index == 0) + if (output == 0) name = surface->output_name; - else if (index == 1) + else name = surface->output_name2; /* Vertex Color Layer */ @@ -226,8 +227,9 @@ static int output_toggle_exec(bContext *C, wmOperator *op) } /* Vertex Weight Layer */ else if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) { - if (!exists) + if (!exists) { ED_vgroup_add_name(ob, name); + } else { bDeformGroup *defgroup = defgroup_find_name(ob, name); if (defgroup) ED_vgroup_delete(ob, defgroup); @@ -240,12 +242,16 @@ static int output_toggle_exec(bContext *C, wmOperator *op) void DPAINT_OT_output_toggle(wmOperatorType *ot) { - PropertyRNA *prop; + static EnumPropertyItem prop_output_toggle_types[] = { + {0, "A", 0, "Output A", ""}, + {1, "B", 0, "Output B", ""}, + {0, NULL, 0, NULL, NULL} + }; /* identifiers */ ot->name= "Toggle Output Layer"; ot->idname= "DPAINT_OT_output_toggle"; - ot->description = "Adds or removes Dynamic Paint output data layer"; + ot->description = "Add or remove Dynamic Paint output data layer"; /* api callbacks */ ot->exec= output_toggle_exec; @@ -255,8 +261,7 @@ void DPAINT_OT_output_toggle(wmOperatorType *ot) ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO; /* properties */ - prop= RNA_def_int(ot->srna, "index", 0, 0, 1, "Index", "", 0, 1); - ot->prop= prop; + ot->prop= RNA_def_enum(ot->srna, "output", prop_output_toggle_types, 0, "Output Toggle", ""); } @@ -333,9 +338,9 @@ static int dynamicPaint_bakeImageSequence(bContext *C, DynamicPaintSurface *surf /* -* Bake Dynamic Paint image sequence surface -*/ -int dynamicPaint_initBake(struct bContext *C, struct wmOperator *op) + * Bake Dynamic Paint image sequence surface + */ +static int dynamicPaint_initBake(struct bContext *C, struct wmOperator *op) { DynamicPaintModifierData *pmd = NULL; DynamicPaintCanvasSettings *canvas; |