[Bf-blender-cvs] [3e972fb5825] greasepencil-object: Merge branch 'blender2.8' into greasepencil-object
Antonio Vazquez
noreply at git.blender.org
Wed Aug 23 13:29:09 CEST 2017
Commit: 3e972fb5825b82b4c77ab1bae725236e7194f1a1
Author: Antonio Vazquez
Date: Wed Aug 23 12:58:46 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB3e972fb5825b82b4c77ab1bae725236e7194f1a1
Merge branch 'blender2.8' into greasepencil-object
===================================================================
===================================================================
diff --cc source/blender/blenkernel/intern/deform.c
index 3fcabf47df6,1fc83b69bfe..b91bdf6b6f7
--- a/source/blender/blenkernel/intern/deform.c
+++ b/source/blender/blenkernel/intern/deform.c
@@@ -74,9 -74,7 +74,9 @@@ bDeformGroup *BKE_defgroup_new(Object *
BLI_addtail(&ob->defbase, defgroup);
defgroup_unique_name(defgroup, ob);
- BKE_mesh_batch_cache_dirty(ob->data, BKE_MESH_BATCH_DIRTY_ALL);
+ if (ob->type != OB_GPENCIL) {
- BKE_mesh_batch_cache_dirty(ob->data, BKE_MESH_BATCH_DIRTY_NOCHECK);
++ BKE_mesh_batch_cache_dirty(ob->data, BKE_MESH_BATCH_DIRTY_ALL);
+ }
return defgroup;
}
diff --cc source/blender/blenkernel/intern/object_deform.c
index 21377c4a8ba,81fa25b1b03..b25b2baa791
--- a/source/blender/blenkernel/intern/object_deform.c
+++ b/source/blender/blenkernel/intern/object_deform.c
@@@ -403,17 -402,12 +403,16 @@@ static void object_defgroup_remove_edit
*/
void BKE_object_defgroup_remove(Object *ob, bDeformGroup *defgroup)
{
- if (BKE_object_is_in_editmode_vgroup(ob))
- object_defgroup_remove_edit_mode(ob, defgroup);
- else
- object_defgroup_remove_object_mode(ob, defgroup);
+ if ((ob) && (ob->type == OB_GPENCIL)) {
+ BKE_gpencil_vgroup_remove(ob, defgroup);
+ }
+ else {
+ if (BKE_object_is_in_editmode_vgroup(ob))
+ object_defgroup_remove_edit_mode(ob, defgroup);
+ else
+ object_defgroup_remove_object_mode(ob, defgroup);
- BKE_mesh_batch_cache_dirty(ob->data, BKE_MESH_BATCH_DIRTY_NOCHECK);
- }
+ BKE_mesh_batch_cache_dirty(ob->data, BKE_MESH_BATCH_DIRTY_ALL);
}
/**
diff --cc source/blender/editors/gpencil/gpencil_interpolate.c
index 80ac2903b80,4bcc9f7b811..d0f78591a55
--- a/source/blender/editors/gpencil/gpencil_interpolate.c
+++ b/source/blender/editors/gpencil/gpencil_interpolate.c
@@@ -287,9 -283,10 +287,11 @@@ static void gp_interpolate_set_points(b
/* create new stroke */
new_stroke = MEM_dupallocN(gps_from);
new_stroke->points = MEM_dupallocN(gps_from->points);
+ BKE_gpencil_stroke_weights_duplicate(gps_from, new_stroke);
new_stroke->triangles = MEM_dupallocN(gps_from->triangles);
-
+ new_stroke->tot_triangles = 0;
+ new_stroke->flag |= GP_STROKE_RECALC_CACHES;
+
if (valid) {
/* if destination stroke is smaller, resize new_stroke to size of gps_to stroke */
if (gps_from->totpoints > gps_to->totpoints) {
@@@ -994,17 -988,12 +997,19 @@@ static int gpencil_interpolate_seq_exec
/* create new stroke */
new_stroke = MEM_dupallocN(gps_from);
new_stroke->points = MEM_dupallocN(gps_from->points);
+ BKE_gpencil_stroke_weights_duplicate(gps_from, new_stroke);
new_stroke->triangles = MEM_dupallocN(gps_from->triangles);
-
+ new_stroke->tot_triangles = 0;
+ new_stroke->flag |= GP_STROKE_RECALC_CACHES;
+
/* if destination stroke is smaller, resize new_stroke to size of gps_to stroke */
if (gps_from->totpoints > gps_to->totpoints) {
+ /* free weights of removed points */
+ for (int i = gps_to->totpoints; i < gps_from->totpoints; ++i) {
+ bGPDspoint *pt = &gps_from->points[i];
+ BKE_gpencil_free_point_weights(pt);
+ }
+
new_stroke->points = MEM_recallocN(new_stroke->points, sizeof(*new_stroke->points) * gps_to->totpoints);
new_stroke->totpoints = gps_to->totpoints;
new_stroke->tot_triangles = 0;
More information about the Bf-blender-cvs
mailing list