[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