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:
authorCampbell Barton <ideasman42@gmail.com>2011-12-10 00:29:21 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-12-10 00:29:21 +0400
commit71ea408c736583fc0e009c5a97340d4493378ec3 (patch)
tree12a1885de2118027ac7e6a231f81ec8e63f656d4
parentc804f4002783a3bd14b67faf7c2b6b0be9bad85e (diff)
check for weights outside of 0-1 range when validating weights
-rw-r--r--source/blender/blenkernel/intern/mesh_validate.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/mesh_validate.c b/source/blender/blenkernel/intern/mesh_validate.c
index 774565bb4bd..5a53d953f1b 100644
--- a/source/blender/blenkernel/intern/mesh_validate.c
+++ b/source/blender/blenkernel/intern/mesh_validate.c
@@ -325,8 +325,8 @@ int BKE_mesh_validate_arrays( Mesh *me,
if (dverts) {
MDeformVert *dv;
for(i=0, dv= dverts; i<totvert; i++, dv++) {
- MDeformWeight *dw= dv->dw;
- unsigned int j= 0;
+ MDeformWeight *dw;
+ unsigned int j;
for(j=0, dw= dv->dw; j < dv->totweight; j++, dw++) {
/* note, greater then max defgroups is accounted for in our code, but not < 0 */
@@ -337,6 +337,13 @@ int BKE_mesh_validate_arrays( Mesh *me,
vert_weights_fixed= TRUE;
}
}
+ else if (dw->weight < 0.0f || dw->weight > 1.0f) {
+ PRINT(" vertex deform %u, group %d has weight: %f\n", i, dw->def_nr, dw->weight);
+ if (do_fixes) {
+ CLAMP(dw->weight, 0.0f, 1.0f);
+ vert_weights_fixed= TRUE;
+ }
+ }
if (dw->def_nr < 0) {
PRINT(" vertex deform %u, has invalid group %d\n", i, dw->def_nr);