Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2016-04-29 15:33:06 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-04-29 16:39:50 +0300
commit6d0cae56e84306ed64a51005c4fb1811a40822b7 (patch)
treede25f4c347865a2aefe7d33b8ab5920d35718254 /source/blender/bmesh/intern/bmesh_mesh_conv.h
parentb5ce2bbef7a91f81c3556f2ddf6dd5f21161bc91 (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.h23
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__ */