diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-10-09 07:37:10 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-10-09 07:38:06 +0300 |
commit | 3c78763482f7bcdd4011af35d3bee6a5fcc4f5db (patch) | |
tree | 703de834ba7b03e1dd9fc2936c51f096211b0ca5 /source/blender/blenkernel/intern/mesh.c | |
parent | 20fbe6bca808d7c5aaf7a07c6cd66c78cbaa016c (diff) |
Edit Mesh: remove derived-mesh from crazy-space calculation
Diffstat (limited to 'source/blender/blenkernel/intern/mesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/mesh.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 374365cc58a..e3fc2926cfc 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -756,6 +756,25 @@ Mesh *BKE_bmesh_to_mesh_nomain(BMesh *bm, const struct BMeshToMeshParams *params return mesh; } +/** + * TODO(campbell): support mesh with only an edit-mesh which is lazy initialized. + */ +Mesh *BKE_mesh_from_editmesh_with_coords_thin_wrap( + BMEditMesh *em, CustomDataMask data_mask, float (*vertexCos)[3]) +{ + Mesh *me = BKE_bmesh_to_mesh_nomain( + em->bm, + &(struct BMeshToMeshParams){ + .cd_mask_extra = data_mask, + }); + if (vertexCos) { + /* We will own this array in the future. */ + BKE_mesh_apply_vert_coords(me, vertexCos); + MEM_freeN(vertexCos); + } + return me; +} + void BKE_mesh_make_local(Main *bmain, Mesh *me, const bool lib_local) { BKE_id_make_local_generic(bmain, &me->id, true, lib_local); |