Commit: 22f6f491e6bdf4044f5ada088f5e3f181e499ffa
Author: Mai Lavelle
Date:   Fri Apr 27 00:39:53 2018 -0400
Branches: temp-modifier-rm-cddm
https://developer.blender.org/rB22f6f491e6bdf4044f5ada088f5e3f181e499ffa

Add BKE_mesh_is_valid

===================================================================

M       source/blender/blenkernel/BKE_mesh.h
M       source/blender/blenkernel/intern/DerivedMesh.c
M       source/blender/blenkernel/intern/mesh_validate.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_mesh.h 
b/source/blender/blenkernel/BKE_mesh.h
index 386681bf99a..4293485ab23 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -435,6 +435,7 @@ void BKE_mesh_calc_relative_deform(
 /* *** mesh_validate.c *** */
 
 int BKE_mesh_validate(struct Mesh *me, const int do_verbose, const int 
cddata_check_mask);
+bool BKE_mesh_is_valid(struct Mesh *me);
 int BKE_mesh_validate_material_indices(struct Mesh *me);
 
 bool BKE_mesh_validate_arrays(
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c 
b/source/blender/blenkernel/intern/DerivedMesh.c
index fa0c1da5f63..586af5910c6 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -84,8 +84,10 @@
 
 #ifdef USE_MODIFIER_VALIDATE
 #  define ASSERT_IS_VALID_DM(dm) (BLI_assert((dm == NULL) || (DM_is_valid(dm) 
== true)))
+#  define ASSERT_IS_VALID_MESH(mesh) (BLI_assert((mesh == NULL) || 
(BKE_mesh_is_valid(mesh) == true)))
 #else
 #  define ASSERT_IS_VALID_DM(dm)
+#  define ASSERT_IS_VALID_MESH(mesh)
 #endif
 
 
diff --git a/source/blender/blenkernel/intern/mesh_validate.c 
b/source/blender/blenkernel/intern/mesh_validate.c
index 8301b6a42b1..52285d8b9e7 100644
--- a/source/blender/blenkernel/intern/mesh_validate.c
+++ b/source/blender/blenkernel/intern/mesh_validate.c
@@ -972,8 +972,6 @@ bool BKE_mesh_validate_all_customdata(CustomData *vdata, 
CustomData *edata,
 }
 
 /**
- * \see  #DM_is_valid to call on derived meshes
- *
  * \returns true if a change is made.
  */
 int BKE_mesh_validate(Mesh *me, const int do_verbose, const int 
cddata_check_mask)
@@ -1011,6 +1009,40 @@ int BKE_mesh_validate(Mesh *me, const int do_verbose, 
const int cddata_check_mas
        }
 }
 
+/**
+ * \see  #DM_is_valid to call on derived meshes
+ *
+ * \returns is_valid.
+ */
+bool BKE_mesh_is_valid(Mesh *me)
+{
+       const bool do_verbose = true;
+       const bool do_fixes = false;
+
+       bool is_valid = true;
+       bool changed = true;
+
+       is_valid &= BKE_mesh_validate_all_customdata(
+               &me->vdata, &me->edata, &me->ldata, &me->pdata,
+               false,  /* setting mask here isn't useful, gives false 
positives */
+               do_verbose, do_fixes, &changed);
+
+       is_valid &= BKE_mesh_validate_arrays(
+               me,
+               me->mvert, me->totvert,
+               me->medge, me->totedge,
+               me->mface, me->totface,
+               me->mloop, me->totloop,
+               me->mpoly, me->totpoly,
+               me->dvert,
+               do_verbose, do_fixes,
+               &changed);
+
+       BLI_assert(changed == false);
+
+       return is_valid;
+}
+
 /**
  * Check all material indices of polygons are valid, invalid ones are set to 0.
  * \returns is_valid.

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to