[Bf-blender-cvs] [d0f688a33d8] greasepencil-object: GPencil: Fix error when use perimter function
Antonio Vazquez
noreply at git.blender.org
Mon Jul 27 23:11:14 CEST 2020
Commit: d0f688a33d8c778d271e361e9cf8e900d2b0ca94
Author: Antonio Vazquez
Date: Mon Jul 27 23:10:29 2020 +0200
Branches: greasepencil-object
https://developer.blender.org/rBd0f688a33d8c778d271e361e9cf8e900d2b0ca94
GPencil: Fix error when use perimter function
The BKE function was changing the original stroke. Now a temp copy is done.
===================================================================
M source/blender/blenkernel/intern/gpencil_geom.c
===================================================================
diff --git a/source/blender/blenkernel/intern/gpencil_geom.c b/source/blender/blenkernel/intern/gpencil_geom.c
index 5afe05ed168..99b9134d5e0 100644
--- a/source/blender/blenkernel/intern/gpencil_geom.c
+++ b/source/blender/blenkernel/intern/gpencil_geom.c
@@ -3067,18 +3067,19 @@ bGPDstroke *BKE_gpencil_stroke_perimeter_from_view(struct RegionView3D *rv3d,
if (gps->totpoints == 0) {
return NULL;
}
+ bGPDstroke *gps_temp = BKE_gpencil_stroke_duplicate(gps, true);
- BKE_gpencil_stroke_to_view_space(rv3d, gps, diff_mat);
+ BKE_gpencil_stroke_to_view_space(rv3d, gps_temp, diff_mat);
int num_perimeter_points = 0;
ListBase *perimeter_points = gpencil_stroke_perimeter_ex(
- gpd, gpl, gps, subdivisions, &num_perimeter_points);
+ gpd, gpl, gps_temp, subdivisions, &num_perimeter_points);
if (num_perimeter_points == 0) {
return NULL;
}
/* create new stroke */
- bGPDstroke *perimeter_stroke = BKE_gpencil_stroke_new(gps->mat_nr, num_perimeter_points, 1);
+ bGPDstroke *perimeter_stroke = BKE_gpencil_stroke_new(gps_temp->mat_nr, num_perimeter_points, 1);
tPerimeterPoint *curr = perimeter_points->first;
for (int i = 0; i < num_perimeter_points; i++) {
@@ -3107,6 +3108,8 @@ bGPDstroke *BKE_gpencil_stroke_perimeter_from_view(struct RegionView3D *rv3d,
perimeter_stroke->flag |= GP_STROKE_SELECT | GP_STROKE_CYCLIC;
+ BKE_gpencil_free_stroke(gps_temp);
+
return perimeter_stroke;
}
/** \} */
More information about the Bf-blender-cvs
mailing list