[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47633] trunk/blender/source/blender: add a utility function to get an exact match for a grease pencil frame.

Campbell Barton ideasman42 at gmail.com
Sat Jun 9 00:08:02 CEST 2012


Revision: 47633
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47633
Author:   campbellbarton
Date:     2012-06-08 22:07:57 +0000 (Fri, 08 Jun 2012)
Log Message:
-----------
add a utility function to get an exact match for a grease pencil frame.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_gpencil.h
    trunk/blender/source/blender/blenkernel/intern/gpencil.c
    trunk/blender/source/blender/editors/gpencil/editaction_gpencil.c
    trunk/blender/source/blender/editors/mask/mask_editaction.c

Modified: trunk/blender/source/blender/blenkernel/BKE_gpencil.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_gpencil.h	2012-06-08 22:05:26 UTC (rev 47632)
+++ trunk/blender/source/blender/blenkernel/BKE_gpencil.h	2012-06-08 22:07:57 UTC (rev 47633)
@@ -57,6 +57,7 @@
 
 void gpencil_frame_delete_laststroke(struct bGPDlayer *gpl, struct bGPDframe *gpf);
 
+struct bGPDframe *BKE_gpencil_layer_find_frame(struct bGPDlayer *gpl, int cframe);
 struct bGPDframe *gpencil_layer_getframe(struct bGPDlayer *gpl, int cframe, short addnew);
 void gpencil_layer_delframe(struct bGPDlayer *gpl, struct bGPDframe *gpf);
 struct bGPDlayer *gpencil_layer_getactive(struct bGPdata *gpd);

Modified: trunk/blender/source/blender/blenkernel/intern/gpencil.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/gpencil.c	2012-06-08 22:05:26 UTC (rev 47632)
+++ trunk/blender/source/blender/blenkernel/intern/gpencil.c	2012-06-08 22:07:57 UTC (rev 47633)
@@ -321,6 +321,19 @@
 
 /* -------- GP-Layer API ---------- */
 
+bGPDframe *BKE_gpencil_layer_find_frame(bGPDlayer *gpl, int cframe)
+{
+	bGPDframe *gpf;
+
+	for (gpf = gpl->frames.last; gpf; gpf = gpf->prev) {
+		if (gpf->framenum == cframe) {
+			return gpf;
+		}
+	}
+
+	return NULL;
+}
+
 /* get the appropriate gp-frame from a given layer
  *	- this sets the layer's actframe var (if allowed to)
  *	- extension beyond range (if first gp-frame is after all frame in interest and cannot add)

Modified: trunk/blender/source/blender/editors/gpencil/editaction_gpencil.c
===================================================================
--- trunk/blender/source/blender/editors/gpencil/editaction_gpencil.c	2012-06-08 22:05:26 UTC (rev 47632)
+++ trunk/blender/source/blender/editors/gpencil/editaction_gpencil.c	2012-06-08 22:07:57 UTC (rev 47633)
@@ -181,14 +181,11 @@
 	
 	if (gpl == NULL) 
 		return;
-	
-	/* search through frames for a match */
-	for (gpf = gpl->frames.first; gpf; gpf = gpf->next) {
-		/* there should only be one frame with this frame-number */
-		if (gpf->framenum == selx) {
-			gpframe_select(gpf, select_mode);
-			break;
-		}
+
+	gpf = BKE_gpencil_layer_find_frame(gpl, selx);
+
+	if (gpf) {
+		gpframe_select(gpf, select_mode);
 	}
 }
 

Modified: trunk/blender/source/blender/editors/mask/mask_editaction.c
===================================================================
--- trunk/blender/source/blender/editors/mask/mask_editaction.c	2012-06-08 22:05:26 UTC (rev 47632)
+++ trunk/blender/source/blender/editors/mask/mask_editaction.c	2012-06-08 22:07:57 UTC (rev 47633)
@@ -179,13 +179,10 @@
 	if (masklay == NULL)
 		return;
 
-	/* search through frames for a match */
-	for (masklay_shape = masklay->splines_shapes.first; masklay_shape; masklay_shape = masklay_shape->next) {
-		/* there should only be one frame with this frame-number */
-		if (masklay_shape->frame == selx) {
-			masklayshape_select(masklay_shape, select_mode);
-			break;
-		}
+	masklay_shape = BKE_mask_layer_shape_find_frame(masklay, selx);
+
+	if (masklay_shape) {
+		masklayshape_select(masklay_shape, select_mode);
 	}
 }
 




More information about the Bf-blender-cvs mailing list