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/bmesh/intern/bmesh_mesh_conv.h | |
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/bmesh/intern/bmesh_mesh_conv.h')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh_conv.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.h b/source/blender/bmesh/intern/bmesh_mesh_conv.h index ce286f6c662..218d821913d 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_conv.h +++ b/source/blender/bmesh/intern/bmesh_mesh_conv.h @@ -39,9 +39,28 @@ void BM_mesh_cd_flag_ensure(BMesh *bm, struct Mesh *mesh, const char cd_flag); void BM_mesh_cd_flag_apply(BMesh *bm, const char cd_flag); char BM_mesh_cd_flag_from_bmesh(BMesh *bm); + +struct BMeshFromMeshParams { + unsigned int calc_face_normal : 1; + /* add a vertex CD_SHAPE_KEYINDEX layer */ + unsigned int add_key_index : 1; + /* set vertex coordinates from the shapekey */ + unsigned int use_shapekey : 1; + /* define the active shape key (index + 1) */ + int active_shapekey; +}; void BM_mesh_bm_from_me( BMesh *bm, struct Mesh *me, - const bool calc_face_normal, const bool set_key, int act_key_nr); -void BM_mesh_bm_to_me(BMesh *bm, struct Mesh *me, bool do_tessface); + const struct BMeshFromMeshParams *params) +ATTR_NONNULL(1, 2, 3); + +struct BMeshToMeshParams { + unsigned int calc_tessface : 1; + int64_t cd_mask_extra; +}; +void BM_mesh_bm_to_me( + BMesh *bm, struct Mesh *me, + const struct BMeshToMeshParams *params) +ATTR_NONNULL(1, 2, 3); #endif /* __BMESH_MESH_CONV_H__ */ |