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:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-02-16 13:00:17 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-02-16 13:00:17 +0300
commit6468cb5f9c905b6a613707ce3f733236afa61fab (patch)
treef4c963226bd77e004703747780f2db36626d8b27
parent5cbaf56b269ff04d086a07af9906cc44ecd4cfe5 (diff)
Faces split: Don't leave CD_NORMAL after split
This is supposed to be a temporary layer. If someone needs loop normals after split it should explicitly ask for that.
-rw-r--r--intern/cycles/blender/blender_util.h1
-rw-r--r--source/blender/blenkernel/intern/mesh.c7
2 files changed, 4 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h
index 8120de96362..4411181dbcc 100644
--- a/intern/cycles/blender/blender_util.h
+++ b/intern/cycles/blender/blender_util.h
@@ -80,6 +80,7 @@ static inline BL::Mesh object_to_mesh(BL::BlendData& data,
}
else {
me.split_faces();
+ me.calc_normals_split();
}
}
if(subdivision_type == Mesh::SUBDIVISION_NONE) {
diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c
index 33e29dc0ff3..24a01b17e53 100644
--- a/source/blender/blenkernel/intern/mesh.c
+++ b/source/blender/blenkernel/intern/mesh.c
@@ -2376,11 +2376,10 @@ void BKE_mesh_split_faces(Mesh *mesh)
/* Perform actual split of vertices and adjacent edges. */
split_faces_split_verts(mesh, num_new_verts, vert_flags);
split_faces_split_edges(mesh, num_new_edges, edge_flags);
- /* Adding new vertices will change loop normals.
- * Since we ensured there is CD_NORMAL layer for loops we must bring it
- * it back to a consistent state.
+ /* CD_NORMAL is expected to be temporary only, and it's invalid at
+ * this point anyway.
*/
- BKE_mesh_calc_normals_split(mesh);
+ CustomData_free_layers(&mesh->ldata, CD_NORMAL, mesh->totloop);
MEM_freeN(vert_flags);
MEM_freeN(edge_flags);
#ifdef VALIDATE_MESH