[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