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 _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs