[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47519] trunk/blender/source/blender/ editors: mask mode
Campbell Barton
ideasman42 at gmail.com
Wed Jun 6 16:39:02 CEST 2012
Revision: 47519
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47519
Author: campbellbarton
Date: 2012-06-06 14:38:47 +0000 (Wed, 06 Jun 2012)
Log Message:
-----------
mask mode
- only keyframe selected mask layers
- fix for crash in deleting animated mask layers (other than the first)
Modified Paths:
--------------
trunk/blender/source/blender/editors/include/ED_mask.h
trunk/blender/source/blender/editors/mask/mask_ops.c
trunk/blender/source/blender/editors/mask/mask_shapekey.c
trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
trunk/blender/source/blender/editors/transform/transform_conversions.c
Modified: trunk/blender/source/blender/editors/include/ED_mask.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mask.h 2012-06-06 14:28:40 UTC (rev 47518)
+++ trunk/blender/source/blender/editors/include/ED_mask.h 2012-06-06 14:38:47 UTC (rev 47519)
@@ -32,6 +32,7 @@
#define __ED_MASK_H__
struct wmKeyConfig;
+struct MaskLayer;
/* mask_editor.c */
void ED_operatortypes_mask(void);
@@ -42,6 +43,8 @@
void ED_mask_draw(const bContext *C, const char draw_flag, const char draw_type);
/* mask_shapekey.c */
+void ED_mask_layer_shape_auto_key(struct MaskLayer *masklay, const int frame);
int ED_mask_layer_shape_auto_key_all(struct Mask *mask, const int frame);
+int ED_mask_layer_shape_auto_key_select(struct Mask *mask, const int frame);
#endif /* ED_TEXT_H */
Modified: trunk/blender/source/blender/editors/mask/mask_ops.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_ops.c 2012-06-06 14:28:40 UTC (rev 47518)
+++ trunk/blender/source/blender/editors/mask/mask_ops.c 2012-06-06 14:38:47 UTC (rev 47519)
@@ -753,8 +753,11 @@
free_slide_point_data(op->customdata);
- if (IS_AUTOKEY_ON(scene)) {
- ED_mask_layer_shape_auto_key_all(data->mask, CFRA);
+ /* dont key sliding feather uw's */
+ if ((data->action == SLIDE_ACTION_FEATHER && data->uw) == FALSE) {
+ if (IS_AUTOKEY_ON(scene)) {
+ ED_mask_layer_shape_auto_key(data->masklay, CFRA);
+ }
}
WM_event_add_notifier(C, NC_MASK | NA_EDITED, data->mask);
@@ -880,10 +883,10 @@
{
Mask *mask = CTX_data_edit_mask(C);
MaskLayer *masklay;
- int mask_layer_shape_ofs = 0;
for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
MaskSpline *spline;
+ int mask_layer_shape_ofs = 0;
if (masklay->restrictflag & (MASK_RESTRICT_VIEW | MASK_RESTRICT_SELECT)) {
continue;
Modified: trunk/blender/source/blender/editors/mask/mask_shapekey.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_shapekey.c 2012-06-06 14:28:40 UTC (rev 47518)
+++ trunk/blender/source/blender/editors/mask/mask_shapekey.c 2012-06-06 14:38:47 UTC (rev 47519)
@@ -141,23 +141,6 @@
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
-int ED_mask_layer_shape_auto_key_all(Mask *mask, const int frame)
-{
- MaskLayer *masklay;
- int change = FALSE;
-
- for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
- MaskLayerShape *masklay_shape;
-
- masklay_shape = BKE_mask_layer_shape_varify_frame(masklay, frame);
- BKE_mask_layer_shape_from_mask(masklay, masklay_shape);
- change = TRUE;
- }
-
- return change;
-}
-
-
static int mask_shape_key_feather_reset_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
@@ -249,3 +232,45 @@
/* flags */
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
}
+
+
+/* *** Shape Key Utils *** */
+
+void ED_mask_layer_shape_auto_key(MaskLayer *masklay, const int frame)
+{
+ MaskLayerShape *masklay_shape;
+
+ masklay_shape = BKE_mask_layer_shape_varify_frame(masklay, frame);
+ BKE_mask_layer_shape_from_mask(masklay, masklay_shape);
+}
+
+int ED_mask_layer_shape_auto_key_all(Mask *mask, const int frame)
+{
+ MaskLayer *masklay;
+ int change = FALSE;
+
+ for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
+ ED_mask_layer_shape_auto_key(masklay, frame);
+ change = TRUE;
+ }
+
+ return change;
+}
+
+int ED_mask_layer_shape_auto_key_select(Mask *mask, const int frame)
+{
+ MaskLayer *masklay;
+ int change = FALSE;
+
+ for (masklay = mask->masklayers.first; masklay; masklay = masklay->next) {
+
+ if (!ED_mask_layer_select_check(masklay)) {
+ continue;
+ }
+
+ ED_mask_layer_shape_auto_key(masklay, frame);
+ change = TRUE;
+ }
+
+ return change;
+}
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c 2012-06-06 14:28:40 UTC (rev 47518)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c 2012-06-06 14:38:47 UTC (rev 47519)
@@ -508,8 +508,7 @@
}
/* set variable axis */
- vert[0][1] = vert[1][1] =
- vert[2][0] = vert[3][0] = line;
+ vert[0][1] = vert[1][1] = vert[2][0] = vert[3][0] = line;
glDrawArrays(GL_LINES, 0, 4);
}
@@ -1606,10 +1605,10 @@
y2 = vb.ymax;
}
else {
- x1 = ar->winrct.xmin;
- y1 = ar->winrct.ymin;
- x2 = ar->winrct.xmax;
- y2 = ar->winrct.ymax;
+ x1 = ar->winrct.xmin;
+ y1 = ar->winrct.ymin;
+ x2 = ar->winrct.xmax;
+ y2 = ar->winrct.ymax;
}
}
else {
Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c 2012-06-06 14:28:40 UTC (rev 47518)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c 2012-06-06 14:38:47 UTC (rev 47519)
@@ -4915,7 +4915,7 @@
if (IS_AUTOKEY_ON(t->scene)) {
Scene *scene = t->scene;
- ED_mask_layer_shape_auto_key_all(mask, CFRA);
+ ED_mask_layer_shape_auto_key_select(mask, CFRA);
}
}
}
More information about the Bf-blender-cvs
mailing list