[Bf-blender-cvs] [36d223a8f07] temp-modifier-rm-cddm: Changes from review
Mai Lavelle
noreply at git.blender.org
Sat May 12 09:58:02 CEST 2018
Commit: 36d223a8f07c8613da27ba89225e72a53c2e7195
Author: Mai Lavelle
Date: Sat May 12 01:12:18 2018 -0400
Branches: temp-modifier-rm-cddm
https://developer.blender.org/rB36d223a8f07c8613da27ba89225e72a53c2e7195
Changes from review
===================================================================
M source/blender/blenkernel/intern/DerivedMesh.c
M source/blender/blenkernel/intern/mesh_validate.c
===================================================================
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index fa073e03e3e..835bf09aad4 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1303,10 +1303,11 @@ static Mesh *create_orco_mesh(Object *ob, Mesh *me, BMEditMesh *em, int layer)
int free;
if (em) {
- //mesh = CDDM_from_editbmesh(em, false, false); // TODO(mai): need to find a mesh_from_editbmesh
+ mesh = BKE_bmesh_to_mesh_nomain(em->bm, &(struct BMeshToMeshParams){0});
}
else {
- BKE_id_copy_ex(NULL, &me->id, (ID**)&mesh, LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT, false);
+ BKE_id_copy_ex(NULL, &me->id, (ID**)&mesh,
+ LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
}
orco = get_orco_coords_dm(ob, em, layer, &free);
@@ -2137,9 +2138,11 @@ static void mesh_calc_modifiers(
* coordinates (vpaint, etc.)
*/
if (r_deform_mesh) {
- BKE_id_copy_ex(NULL, &me->id, (ID**)r_deform_mesh, LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT, false);
+ BKE_id_copy_ex(NULL, &me->id, (ID**)r_deform_mesh,
+ LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
/* XXX: Is build_shapekey_layers ever even true? This should have crashed long ago... */
+ BLI_assert(!build_shapekey_layers);
//if (build_shapekey_layers)
// add_shapekey_layers(*r_deform_mesh, me, ob);
@@ -2282,7 +2285,8 @@ static void mesh_calc_modifiers(
}
}
else {
- BKE_id_copy_ex(NULL, &me->id, (ID**)&mesh, LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT, false);
+ BKE_id_copy_ex(NULL, &me->id, (ID**)&mesh,
+ LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
ASSERT_IS_VALID_MESH(mesh);
// XXX: port to Mesh if build_shapekey_layers can ever be true
@@ -2435,20 +2439,12 @@ static void mesh_calc_modifiers(
Mesh *final_mesh;
if (mesh && deformedVerts) {
- BKE_id_copy_ex(NULL, &mesh->id, (ID**)&final_mesh, LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT, false);
- BKE_id_free(NULL, mesh);
-
- apply_vert_coords(final_mesh, deformedVerts);
-
-#if 0 /* For later nice mod preview! */
- /* In case we need modified weights in CD_PREVIEW_MCOL, we have to re-compute it. */
- if (do_final_wmcol)
- mesh_update_weight_mcol(ob, final_mesh, draw_flag, NULL, 0, NULL);
-#endif
- }
- else if (mesh) {
final_mesh = mesh;
+ if (deformedVerts) {
+ apply_vert_coords(final_mesh, deformedVerts);
+ }
+
#if 0 /* For later nice mod preview! */
/* In case we need modified weights in CD_PREVIEW_MCOL, we have to re-compute it. */
if (do_final_wmcol)
@@ -2456,12 +2452,13 @@ static void mesh_calc_modifiers(
#endif
}
else {
- BKE_id_copy_ex(NULL, &me->id, (ID**)&final_mesh, LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT, false);
-
+ BKE_id_copy_ex(NULL, &me->id, (ID**)&final_mesh,
+ LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
+
//if (build_shapekey_layers) {
// add_shapekey_layers(final_mesh, me, ob);
//}
-
+
if (deformedVerts) {
apply_vert_coords(final_mesh, deformedVerts);
}
diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c
index 52285d8b9e7..2b43d49a10f 100644
--- a/source/blender/blenkernel/intern/mesh_validate.c
+++ b/source/blender/blenkernel/intern/mesh_validate.c
@@ -972,6 +972,8 @@ bool BKE_mesh_validate_all_customdata(CustomData *vdata, CustomData *edata,
}
/**
+ * Validates and corrects a Mesh.
+ *
* \returns true if a change is made.
*/
int BKE_mesh_validate(Mesh *me, const int do_verbose, const int cddata_check_mask)
@@ -1010,6 +1012,8 @@ int BKE_mesh_validate(Mesh *me, const int do_verbose, const int cddata_check_mas
}
/**
+ * Checks if a Mesh is valid without any modification. This is always verbose.
+ *
* \see #DM_is_valid to call on derived meshes
*
* \returns is_valid.
More information about the Bf-blender-cvs
mailing list