[Bf-blender-cvs] [21173347370] blender2.8: Fix assert calculating tangents with no faces
Campbell Barton
noreply at git.blender.org
Wed Jun 28 23:52:02 CEST 2017
Commit: 21173347370f75ed5292445aead1de384081d8e4
Author: Campbell Barton
Date: Wed Jun 28 20:59:49 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB21173347370f75ed5292445aead1de384081d8e4
Fix assert calculating tangents with no faces
===================================================================
M source/blender/blenkernel/intern/editmesh_tangent.c
M source/blender/blenkernel/intern/mesh_tangent.c
===================================================================
diff --git a/source/blender/blenkernel/intern/editmesh_tangent.c b/source/blender/blenkernel/intern/editmesh_tangent.c
index b04fc753f7a..ee13a887a5f 100644
--- a/source/blender/blenkernel/intern/editmesh_tangent.c
+++ b/source/blender/blenkernel/intern/editmesh_tangent.c
@@ -336,7 +336,7 @@ void BKE_editmesh_loop_tangent_calc(
}
#endif
/* Calculation */
- {
+ if (em->tottri != 0) {
TaskScheduler *scheduler = BLI_task_scheduler_get();
TaskPool *task_pool;
task_pool = BLI_task_pool_create(scheduler, NULL);
@@ -396,6 +396,9 @@ void BKE_editmesh_loop_tangent_calc(
BLI_task_pool_work_and_wait(task_pool);
BLI_task_pool_free(task_pool);
}
+ else {
+ tangent_mask_curr = tangent_mask;
+ }
#ifdef USE_LOOPTRI_DETECT_QUADS
if (face_as_quad_map) {
MEM_freeN(face_as_quad_map);
diff --git a/source/blender/blenkernel/intern/mesh_tangent.c b/source/blender/blenkernel/intern/mesh_tangent.c
index b9d1025d7b1..669b59bca05 100644
--- a/source/blender/blenkernel/intern/mesh_tangent.c
+++ b/source/blender/blenkernel/intern/mesh_tangent.c
@@ -602,7 +602,7 @@ void BKE_mesh_calc_loop_tangent_ex(
#endif
/* Calculation */
- {
+ if (looptri_len != 0) {
TaskScheduler *scheduler = BLI_task_scheduler_get();
TaskPool *task_pool;
task_pool = BLI_task_pool_create(scheduler, NULL);
@@ -653,6 +653,9 @@ void BKE_mesh_calc_loop_tangent_ex(
BLI_task_pool_work_and_wait(task_pool);
BLI_task_pool_free(task_pool);
}
+ else {
+ tangent_mask_curr = tangent_mask;
+ }
#ifdef USE_LOOPTRI_DETECT_QUADS
if (face_as_quad_map) {
MEM_freeN(face_as_quad_map);
More information about the Bf-blender-cvs
mailing list