[Bf-blender-cvs] [cee80b3317c] greasepencil-object: New function to get frame range selected

Antonio Vazquez noreply at git.blender.org
Thu Nov 30 20:13:38 CET 2017


Commit: cee80b3317c5d1262593d105a566b4972ebb723b
Author: Antonio Vazquez
Date:   Thu Nov 30 19:11:45 2017 +0100
Branches: greasepencil-object
https://developer.blender.org/rBcee80b3317c5d1262593d105a566b4972ebb723b

New function to get frame range selected

===================================================================

M	source/blender/blenkernel/BKE_gpencil.h
M	source/blender/blenkernel/intern/gpencil.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index 5b4ed72c82d..5ea2c92b5b5 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -215,4 +215,6 @@ bool BKE_gp_smooth_stroke(struct bGPDstroke *gps, int i, float inf, bool affect_
 bool BKE_gp_smooth_stroke_strength(struct bGPDstroke *gps, int i, float inf);
 bool BKE_gp_smooth_stroke_thickness(struct bGPDstroke *gps, int i, float inf);
 
+void BKE_gp_get_range_selected(struct bGPDlayer *gpl, int *r_initframe, int *r_endframe);
+
 #endif /*  __BKE_GPENCIL_H__ */
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index bd0ab3c0231..977fcf61147 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -2462,3 +2462,28 @@ bool BKE_gp_smooth_stroke_thickness(bGPDstroke *gps, int i, float inf)
 
 	return true;
 }
+
+/**
+* Get range of selected frames in layer.
+* Always the active frame is considered as selected, so if no more selected the range
+* will be equal to the current active frame.
+* \param gpl              Layer
+* \param r_initframe      Number of first selected frame
+* \param r_endframe       Number of last selected frame
+*/
+void BKE_gp_get_range_selected(bGPDlayer *gpl, int *r_initframe, int *r_endframe)
+{
+	*r_initframe = gpl->actframe->framenum;
+	*r_endframe = gpl->actframe->framenum;
+
+	for (bGPDframe *gpf = gpl->frames.first; gpf; gpf = gpf->next) {
+		if (gpf->flag & GP_FRAME_SELECT) {
+			if (gpf->framenum < *r_initframe) {
+				*r_initframe = gpf->framenum;
+			}
+			if (gpf->framenum > *r_endframe) {
+				*r_endframe = gpf->framenum;
+			}
+		}
+	}
+}
\ No newline at end of file



More information about the Bf-blender-cvs mailing list