diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-04-29 15:33:06 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-04-29 16:39:50 +0300 |
commit | 6d0cae56e84306ed64a51005c4fb1811a40822b7 (patch) | |
tree | de25f4c347865a2aefe7d33b8ab5920d35718254 /source/blender/editors/sculpt_paint | |
parent | b5ce2bbef7a91f81c3556f2ddf6dd5f21161bc91 (diff) |
Fix T48290: Hook fails after deleting geometry
Now CD_SHAPEKEY_INDEX customdata is stored in edit-mode when hooks and vertex parents are used.
This also fixes a bug where undo would loose key-index data.
Move to structs for BM_mesh_bm_to/from_me to avoid passing many argument, which mostly aren't used.
Diffstat (limited to 'source/blender/editors/sculpt_paint')
-rw-r--r-- | source/blender/editors/sculpt_paint/paint_image_proj.c | 8 | ||||
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt.c | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_image_proj.c b/source/blender/editors/sculpt_paint/paint_image_proj.c index f614025fa0e..bce3b46010b 100644 --- a/source/blender/editors/sculpt_paint/paint_image_proj.c +++ b/source/blender/editors/sculpt_paint/paint_image_proj.c @@ -5866,15 +5866,17 @@ static int add_simple_uvs_exec(bContext *C, wmOperator *UNUSED(op)) ED_mesh_uv_texture_ensure(me, NULL); - BM_mesh_bm_from_me(bm, me, true, false, 0); - + BM_mesh_bm_from_me( + bm, me,(&(struct BMeshFromMeshParams){ + .calc_face_normal = true, + })); /* select all uv loops first - pack parameters needs this to make sure charts are registered */ ED_uvedit_select_all(bm); ED_uvedit_unwrap_cube_project(ob, bm, 1.0, false); /* set the margin really quickly before the packing operation*/ scene->toolsettings->uvcalc_margin = 0.001f; ED_uvedit_pack_islands(scene, ob, bm, false, false, true); - BM_mesh_bm_to_me(bm, me, false); + BM_mesh_bm_to_me(bm, me, (&(struct BMeshToMeshParams){0})); BM_mesh_free(bm); if (synch_selection) diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 40ff662a2c2..7ebc050978a 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -5003,7 +5003,10 @@ void sculpt_dynamic_topology_enable(bContext *C) /* Create triangles-only BMesh */ ss->bm = BM_mesh_create(&allocsize); - BM_mesh_bm_from_me(ss->bm, me, true, true, ob->shapenr); + BM_mesh_bm_from_me( + ss->bm, me, (&(struct BMeshFromMeshParams){ + .calc_face_normal = true, .use_shapekey = true, .active_shapekey = ob->shapenr, + })); sculpt_dynamic_topology_triangulate(ss->bm); BM_data_layer_add(ss->bm, &ss->bm->vdata, CD_PAINT_MASK); sculpt_dyntopo_node_layers_add(ss); |