[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