check for weights outside of 0-1 range when validating weights

This commit is contained in:
2011-12-09 20:29:21 +00:00
parent c804f40027
commit 71ea408c73

View File

@@ -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);