diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-30 14:32:02 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-30 14:32:02 +0400 |
commit | 3b04b861bd964a54ee88defe899978ae564cb037 (patch) | |
tree | 1b30114cefe34686bb870f97eced701c96b381b9 /source/blender/editors/sculpt_paint/paint_ops.c | |
parent | 9461af89f1da9d4d1f4eef952084bbc7711376d7 (diff) |
Fix another part of #35141: there was no way to reset the stencil transform after e.g.
scaling it along one axis, now there's a Reset Transform button.
The Image Aspect button is now also hidden unless the texture is an image texture.
And also hide the color wheel for painting tools that don't use colors.
Diffstat (limited to 'source/blender/editors/sculpt_paint/paint_ops.c')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_ops.c | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c index 85d70c9342f..e4cc1c72237 100644 --- a/source/blender/editors/sculpt_paint/paint_ops.c +++ b/source/blender/editors/sculpt_paint/paint_ops.c @@ -807,7 +807,7 @@ static void BRUSH_OT_stencil_fit_image_aspect(wmOperatorType *ot) { /* identifiers */ ot->name = "Image Aspect"; - ot->description = "Adjust the stencil size to fit image aspect ratio"; + ot->description = "When using an image texture, adjust the stencil size to fit the image aspect ratio"; ot->idname = "BRUSH_OT_stencil_fit_image_aspect"; /* api callbacks */ @@ -823,6 +823,45 @@ static void BRUSH_OT_stencil_fit_image_aspect(wmOperatorType *ot) } +static int stencil_reset_transform(bContext *C, wmOperator *UNUSED(op)) +{ + Paint *paint = BKE_paint_get_active_from_context(C); + Brush *br = BKE_paint_brush(paint); + + if (!br) + return OPERATOR_CANCELLED; + + br->stencil_pos[0] = 256; + br->stencil_pos[1] = 256; + + br->stencil_dimension[0] = 256; + br->stencil_dimension[1] = 256; + + br->mtex.rot = 0; + br->mask_mtex.rot = 0; + + WM_event_add_notifier(C, NC_WINDOW, NULL); + + return OPERATOR_FINISHED; +} + + +static void BRUSH_OT_stencil_reset_transform(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Reset Transform"; + ot->description = "Reset the stencil transformation to the default"; + ot->idname = "BRUSH_OT_stencil_reset_transform"; + + /* api callbacks */ + ot->exec = stencil_reset_transform; + ot->poll = stencil_control_poll; + + /* flags */ + ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO; +} + + static void ed_keymap_stencil(wmKeyMap *keymap) { wmKeyMapItem *kmi; @@ -856,6 +895,7 @@ void ED_operatortypes_paint(void) WM_operatortype_append(BRUSH_OT_reset); WM_operatortype_append(BRUSH_OT_stencil_control); WM_operatortype_append(BRUSH_OT_stencil_fit_image_aspect); + WM_operatortype_append(BRUSH_OT_stencil_reset_transform); /* note, particle uses a different system, can be added with existing operators in wm.py */ WM_operatortype_append(PAINT_OT_brush_select); |