diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2019-03-07 13:13:40 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2019-03-07 13:29:50 +0300 |
commit | ab0bc65c24bdf68c356adb2566f3669153c931ea (patch) | |
tree | 23909478874a13d84e504a905809eb211e62a9e2 /source/blender/blenkernel/BKE_mesh.h | |
parent | cee53160d2bd9067a3d43cc862ce61e36ff70454 (diff) |
Refactor CDData masks, to have one mask per mesh elem type.
We already have different storages for cddata of verts, edges etc.,
'simply' do the same for the mask flags we use all around Blender code
to request some data, or limit some operation to some layers, etc.
Reason we need this is that some cddata types (like Normals) are
actually shared between verts/polys/loops, and we don’t want to generate
clnors everytime we request vnors!
As a side note, this also does final fix to T59338, which was the
trigger for this patch (need to request computed loop normals for
another mesh than evaluated one).
Reviewers: brecht, campbellbarton, sergey
Differential Revision: https://developer.blender.org/D4407
Diffstat (limited to 'source/blender/blenkernel/BKE_mesh.h')
-rw-r--r-- | source/blender/blenkernel/BKE_mesh.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index 07d04a55496..a2613c2c2e3 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -27,7 +27,7 @@ #include "BLI_compiler_compat.h" /* defines CustomDataMask */ -#include "BKE_customdata.h" +//#include "BKE_customdata.h" struct BLI_Stack; struct BMEditMesh; @@ -37,6 +37,7 @@ struct BMeshFromMeshParams; struct BMeshToMeshParams; struct BoundBox; struct CustomData; +struct CustomData_MeshMasks; struct Depsgraph; struct EdgeHash; struct ID; @@ -83,10 +84,10 @@ struct BMesh *BKE_mesh_to_bmesh( const bool add_key_index, const struct BMeshCreateParams *params); struct Mesh *BKE_mesh_from_bmesh_nomain(struct BMesh *bm, const struct BMeshToMeshParams *params); -struct Mesh *BKE_mesh_from_bmesh_for_eval_nomain(struct BMesh *bm, const int64_t cd_mask_extra); +struct Mesh *BKE_mesh_from_bmesh_for_eval_nomain(struct BMesh *bm, const struct CustomData_MeshMasks *cd_mask_extra); struct Mesh *BKE_mesh_from_editmesh_with_coords_thin_wrap( - struct BMEditMesh *em, CustomDataMask data_mask, float (*vertexCos)[3]); + struct BMEditMesh *em, const struct CustomData_MeshMasks *data_mask, float (*vertexCos)[3]); int poly_find_loop_from_vert( const struct MPoly *poly, @@ -179,7 +180,7 @@ struct Mesh *BKE_mesh_create_derived_for_modifier( /* Copies a nomain-Mesh into an existing Mesh. */ void BKE_mesh_nomain_to_mesh(struct Mesh *mesh_src, struct Mesh *mesh_dst, struct Object *ob, - CustomDataMask mask, bool take_ownership); + const struct CustomData_MeshMasks *mask, bool take_ownership); void BKE_mesh_nomain_to_meshkey(struct Mesh *mesh_src, struct Mesh *mesh_dst, struct KeyBlock *kb); |