[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42541] trunk/blender/source/blender/ blenkernel/intern/mesh_validate.c: check for weights outside of 0-1 range when validating weights

Campbell Barton ideasman42 at gmail.com
Fri Dec 9 21:29:27 CET 2011


Revision: 42541
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42541
Author:   campbellbarton
Date:     2011-12-09 20:29:21 +0000 (Fri, 09 Dec 2011)
Log Message:
-----------
check for weights outside of 0-1 range when validating weights

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/mesh_validate.c

Modified: trunk/blender/source/blender/blenkernel/intern/mesh_validate.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mesh_validate.c	2011-12-09 16:10:15 UTC (rev 42540)
+++ trunk/blender/source/blender/blenkernel/intern/mesh_validate.c	2011-12-09 20:29:21 UTC (rev 42541)
@@ -325,8 +325,8 @@
 	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 @@
 						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);




More information about the Bf-blender-cvs mailing list