Edit Mesh: use params arg for update function, add calc_normals arg

Rename function EDBM_update_generic to EDBM_update, use a parameters
argument for better readability.

Also add calc_normals argument, which will have benefits when
calculating normals and tessellation together is optimized.
This commit is contained in:
2021-06-14 22:56:01 +10:00
parent 1d2eb461b5
commit 8083527f90
24 changed files with 689 additions and 148 deletions

View File

@@ -116,8 +116,12 @@ static void edbm_intersect_select(BMEditMesh *em, struct Mesh *me, bool do_selec
}
}
EDBM_mesh_normals_update(em);
EDBM_update_generic(me, true, true);
EDBM_update(me,
&(const struct EDBMUpdate_Params){
.calc_looptri = true,
.calc_normals = true,
.is_destructive = true,
});
}
/* -------------------------------------------------------------------- */
@@ -963,8 +967,12 @@ static int edbm_face_split_by_edges_exec(bContext *C, wmOperator *UNUSED(op))
}
#endif
EDBM_mesh_normals_update(em);
EDBM_update_generic(obedit->data, true, true);
EDBM_update(obedit->data,
&(const struct EDBMUpdate_Params){
.calc_looptri = true,
.calc_normals = true,
.is_destructive = true,
});
#ifdef USE_NET_ISLAND_CONNECT
/* we may have remaining isolated regions remaining,
@@ -1068,8 +1076,12 @@ static int edbm_face_split_by_edges_exec(bContext *C, wmOperator *UNUSED(op))
BLI_ghash_free(face_edge_map, NULL, NULL);
EDBM_mesh_normals_update(em);
EDBM_update_generic(obedit->data, true, true);
EDBM_update(obedit->data,
&(const struct EDBMUpdate_Params){
.calc_looptri = true,
.calc_normals = true,
.is_destructive = true,
});
}
BLI_stack_free(edges_loose);