[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18443] branches/blender2.5/blender/source /blender: 2.5

Ton Roosendaal ton at blender.org
Sat Jan 10 18:20:37 CET 2009


Revision: 18443
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18443
Author:   ton
Date:     2009-01-10 18:20:34 +0100 (Sat, 10 Jan 2009)

Log Message:
-----------
2.5

Removed another bad global "editbutvweight", a value from buttons
used to paint weights with, or to set weights. Is now part of
weightpaint struct in scene.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/mesh/editdeform.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editdeform.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editdeform.c	2009-01-10 16:49:22 UTC (rev 18442)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editdeform.c	2009-01-10 17:20:34 UTC (rev 18443)
@@ -678,9 +678,8 @@
 }
 
 /* Only available in editmode */
-void assign_verts_defgroup (Object *obedit)
+void assign_verts_defgroup (Object *obedit, float weight)
 {
-	float editbutvweight;	/* XXX */
 	Object *ob;
 	EditVert *eve;
 	bDeformGroup *dg, *eg;
@@ -722,7 +721,7 @@
 					eg = BLI_findlink (&ob->defbase, dvert->dw[i].def_nr);
 					/* Find the actual group */
 					if (eg==dg){
-						dvert->dw[i].weight=editbutvweight;
+						dvert->dw[i].weight= weight;
 						done=1;
 						break;
 					}
@@ -736,7 +735,7 @@
 					}
 					dvert->dw=newdw;
 
-					dvert->dw[dvert->totweight].weight= editbutvweight;
+					dvert->dw[dvert->totweight].weight= weight;
 					dvert->dw[dvert->totweight].def_nr= ob->actdef-1;
 
 					dvert->totweight++;
@@ -757,7 +756,7 @@
 			tot= editLatt->pntsu*editLatt->pntsv*editLatt->pntsw;
 			for(a=0, bp= editLatt->def; a<tot; a++, bp++) {
 				if(bp->f1 & SELECT)
-					add_vert_defnr (ob, ob->actdef-1, a, editbutvweight, WEIGHT_REPLACE);
+					add_vert_defnr (ob, ob->actdef-1, a, weight, WEIGHT_REPLACE);
 			}
 		}	
 		break;
@@ -969,13 +968,14 @@
  * and Lattices. (currently only restricted to those two)
  * It is only responsible for 
  */
-void vgroup_assign_with_menu(Object *ob)
+void vgroup_assign_with_menu(Scene *scene, Object *ob)
 {
+	VPaint *wp= scene->toolsettings->wpaint;
 	int defCount;
 	int mode;
 	
 	/* prevent crashes */
-	if (ob==NULL) return;
+	if (wp==NULL || ob==NULL) return;
 	
 	defCount= BLI_countlist(&ob->defbase);
 	
@@ -989,11 +989,11 @@
 	switch (mode) {
 		case 1: /* add to new group */
 			add_defgroup(ob);
-			assign_verts_defgroup(ob);
+			assign_verts_defgroup(ob, wp->weight);
 			BIF_undo_push("Assign to vertex group");
 			break;
 		case 2: /* add to current group */
-			assign_verts_defgroup(ob);
+			assign_verts_defgroup(ob, wp->weight);
 			BIF_undo_push("Assign to vertex group");
 			break;
 		case 3:	/* remove from current group */

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c	2009-01-10 16:49:22 UTC (rev 18442)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c	2009-01-10 17:20:34 UTC (rev 18443)
@@ -119,6 +119,7 @@
 	vp->flag= VP_AREA+VP_SOFT+VP_SPRAY;
 	
 	if(wpaint) {
+		vp->weight= 1.0f;
 		vp->a= 1.0f;
 		vp->flag= VP_AREA+VP_SOFT;
 	}
@@ -358,8 +359,7 @@
 void clear_wpaint_selectedfaces(Scene *scene)
 {
 	VPaint *wp= scene->toolsettings->wpaint;
-	float editbutvweight;
-	float paintweight= editbutvweight;
+	float paintweight= wp->weight;
 	Mesh *me;
 	MFace *mface;
 	Object *ob;
@@ -426,7 +426,7 @@
 					dw= verify_defweight(me->dvert+faceverts[i], vgroup);
 					if(dw) {
 						uw= verify_defweight(wp->wpaint_prev+faceverts[i], vgroup);
-						uw->weight= dw->weight; /* set the undio weight */
+						uw->weight= dw->weight; /* set the undo weight */
 						dw->weight= paintweight;
 						
 						if(wp->flag & VP_MIRROR_X) {	/* x mirror painting */
@@ -881,11 +881,12 @@
 /* if mode==1: */
 /*     samples cursor location, and gives menu with vertex groups to activate */
 /* else */
-/*     sets editbutvweight to the closest weight value to vertex */
+/*     sets wp->weight to the closest weight value to vertex */
 /*     note: we cant sample frontbuf, weight colors are interpolated too unpredictable */
 void sample_wpaint(Scene *scene, ARegion *ar, View3D *v3d, int mode)
 {
 	ViewContext vc;
+	VPaint *wp= scene->toolsettings->wpaint;
 	Object *ob= OBACT;
 	Mesh *me= get_mesh(ob);
 	int index;
@@ -965,7 +966,6 @@
 		else {
 			DerivedMesh *dm;
 			MDeformWeight *dw;
-			float editbutvweight;
 			float w1, w2, w3, w4, co[3], fac;
 			
 			dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
@@ -996,20 +996,20 @@
 				fac= MIN4(w1, w2, w3, w4);
 				if(w1==fac) {
 					dw= get_defweight(me->dvert+mface->v1, ob->actdef-1);
-					if(dw) editbutvweight= dw->weight; else editbutvweight= 0.0f;
+					if(dw) wp->weight= dw->weight; else wp->weight= 0.0f;
 				}
 				else if(w2==fac) {
 					dw= get_defweight(me->dvert+mface->v2, ob->actdef-1);
-					if(dw) editbutvweight= dw->weight; else editbutvweight= 0.0f;
+					if(dw) wp->weight= dw->weight; else wp->weight= 0.0f;
 				}
 				else if(w3==fac) {
 					dw= get_defweight(me->dvert+mface->v3, ob->actdef-1);
-					if(dw) editbutvweight= dw->weight; else editbutvweight= 0.0f;
+					if(dw) wp->weight= dw->weight; else wp->weight= 0.0f;
 				}
 				else if(w4==fac) {
 					if(mface->v4) {
 						dw= get_defweight(me->dvert+mface->v4, ob->actdef-1);
-						if(dw) editbutvweight= dw->weight; else editbutvweight= 0.0f;
+						if(dw) wp->weight= dw->weight; else wp->weight= 0.0f;
 					}
 				}
 			}
@@ -1209,7 +1209,6 @@
 {
 	ToolSettings *ts= CTX_data_tool_settings(C);
 	VPaint *wp= ts->wpaint;
-	float editbutvweight= 1.0f; // XXX
 	
 	switch(event->type) {
 		case LEFTMOUSE:
@@ -1226,7 +1225,7 @@
 			Object *ob= vc->obact;
 			Mesh *me= ob->data;
 			float mat[4][4];
-			float paintweight= editbutvweight; // XXX
+			float paintweight= wp->weight;
 			int *indexar= wpd->indexar;
 			int totindex, index, alpha, totw;
 			short mval[2];
@@ -1283,7 +1282,7 @@
 			if(wp->mode==VP_BLUR) 
 				paintweight= 0.0f;
 			else
-				paintweight= editbutvweight;
+				paintweight= wp->weight;
 			
 			for(index=0; index<totindex; index++) {
 				if(indexar[index] && indexar[index]<=me->totface) {

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h	2009-01-10 16:49:22 UTC (rev 18442)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_scene_types.h	2009-01-10 17:20:34 UTC (rev 18443)
@@ -375,7 +375,8 @@
 } TransformOrientation;
 
 typedef struct VPaint {
-	float r, g, b, a;
+	float r, g, b, a;					/* paint color */
+	float weight;						/* weight paint */
 	float size;							/* of brush */
 	float gamma, mul;
 	short mode, flag;





More information about the Bf-blender-cvs mailing list