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

Nicholas Bishop nicholasbishop at gmail.com
Sat Aug 15 23:46:25 CEST 2009


Revision: 22483
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22483
Author:   nicholasbishop
Date:     2009-08-15 23:46:25 +0200 (Sat, 15 Aug 2009)

Log Message:
-----------
2.5/Paint:

* Weightpaint is now object-local like sculpt and vertexpaint.
* Fixed a bug spotted by DingTo, going from editmode to sculptmode didn't fully leave editmode

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/particle_system.c
    branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
    branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
    branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawarmature.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawmesh.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_manipulator.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_object_types.h

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2009-08-15 21:46:25 UTC (rev 22483)
@@ -115,7 +115,6 @@
 #define G_DEBUG			(1 << 12)
 #define G_DOSCRIPTLINKS (1 << 13)
 
-#define G_WEIGHTPAINT	(1 << 15)	
 #define G_TEXTUREPAINT	(1 << 16)
 /* #define G_NOFROZEN	(1 << 17) also removed */
 #define G_GREASEPENCIL 	(1 << 17)

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -226,7 +226,7 @@
 
 	G.main= NULL;
 	
-	G.f &= ~(G_WEIGHTPAINT + G_FACESELECT + G_PARTICLEEDIT);
+	G.f &= ~(G_FACESELECT + G_PARTICLEEDIT);
 }
 
 /* make sure path names are correct for OS */

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -195,9 +195,9 @@
 			return &sce->toolsettings->sculpt->brush;
 		else if(ob->mode & OB_MODE_VERTEX_PAINT)
 			return &sce->toolsettings->vpaint->brush;
+		else if(ob->mode & OB_MODE_WEIGHT_PAINT)
+			return &sce->toolsettings->wpaint->brush;
 	}
-	else if(G.f & G_WEIGHTPAINT)
-		return &sce->toolsettings->wpaint->brush;
 	else if(G.f & G_TEXTUREPAINT)
 		return &sce->toolsettings->imapaint.brush;
 	return NULL;

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/context.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/context.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -688,7 +688,7 @@
 		
 		if(ob && (ob->flag & OB_POSEMODE)) return "posemode";
 		else if (ob && ob->mode & OB_MODE_SCULPT)  return "sculpt_mode";
-		else if (G.f & G_WEIGHTPAINT) return "weightpaint";
+		else if (ob && ob->mode & OB_MODE_WEIGHT_PAINT) return "weightpaint";
 		else if (ob && ob->mode & OB_MODE_VERTEX_PAINT) return "vertexpaint";
 		else if (G.f & G_TEXTUREPAINT) return "texturepaint";
 		else if(G.f & G_PARTICLEEDIT) return "particlemode";

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/paint.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -32,6 +32,6 @@
 
 int paint_facesel_test(Object *ob)
 {
-	return (G.f&G_FACESELECT) && ((G.f & (G_WEIGHTPAINT|G_TEXTUREPAINT)) || (ob && (ob->mode & OB_MODE_VERTEX_PAINT)));
+	return (G.f&G_FACESELECT) && ((G.f & G_TEXTUREPAINT) || (ob && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT))));
 
 }

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/particle_system.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/particle_system.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -3726,7 +3726,7 @@
 	if((psys->part->childtype && psys->totchild != get_psys_tot_child(scene, psys)) || psys->recalc&PSYS_RECALC_RESET)
 		alloc=1;
 
-	if(alloc || psys->recalc&PSYS_RECALC_CHILD || (psys->vgroup[PSYS_VG_DENSITY] && (G.f & G_WEIGHTPAINT)))
+	if(alloc || psys->recalc&PSYS_RECALC_CHILD || (psys->vgroup[PSYS_VG_DENSITY] && (ob && ob->mode & OB_MODE_WEIGHT_PAINT)))
 		distr=1;
 
 	if(distr){

Modified: branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/editarmature.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/editors/armature/editarmature.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -4332,7 +4332,7 @@
 		}
 		
 		/* in weightpaint we select the associated vertex group too */
-		if (G.f & G_WEIGHTPAINT) {
+		if (ob->mode & OB_MODE_WEIGHT_PAINT) {
 			if (nearBone->flag & BONE_ACTIVE) {
 				vertexgroup_select_by_name(OBACT, nearBone->name);
 				DAG_object_flush_update(scene, OBACT, OB_RECALC_DATA);
@@ -4424,7 +4424,7 @@
 	int a, segments;
 	struct { Object *armob; void *list; int heat; } *data = datap;
 
-	if(!(G.f & G_WEIGHTPAINT) || !(bone->flag & BONE_HIDDEN_P)) {
+	if(!(ob->mode & OB_MODE_WEIGHT_PAINT) || !(bone->flag & BONE_HIDDEN_P)) {
 		if (!(bone->flag & BONE_NO_DEFORM)) {
 			if (data->heat && data->armob->pose && get_pose_channel(data->armob->pose, bone->name))
 				segments = bone->segments;
@@ -4489,7 +4489,7 @@
 	int a, segments;
 	struct { Object *armob; void *list; int heat; } *data= datap;
 
-	if (!(G.f & G_WEIGHTPAINT) || !(bone->flag & BONE_HIDDEN_P)) {
+	if (!(ob->mode & OB_MODE_WEIGHT_PAINT) || !(bone->flag & BONE_HIDDEN_P)) {
 	   if (!(bone->flag & BONE_NO_DEFORM)) {
 			if (data->heat && data->armob->pose && get_pose_channel(data->armob->pose, bone->name))
 				segments = bone->segments;
@@ -4588,7 +4588,7 @@
 	float (*root)[3], (*tip)[3], (*verts)[3];
 	int *selected;
 	int numbones, vertsfilled = 0, i, j, segments = 0;
-	int wpmode = (G.f & G_WEIGHTPAINT);
+	int wpmode = (ob->mode & OB_MODE_WEIGHT_PAINT);
 	struct { Object *armob; void *list; int heat; } looper_data;
 
 	looper_data.armob = par;

Modified: branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/poseobject.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/editors/armature/poseobject.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -1647,7 +1647,7 @@
 	
 	if(ob==NULL) return;
 
-	if(G.f & G_WEIGHTPAINT) {
+	if(ob->mode && OB_MODE_WEIGHT_PAINT) {
 		ob= modifiers_isDeformedByArmature(ob);
 	}
 	if(ob && (ob->flag & OB_POSEMODE)) {
@@ -1671,7 +1671,7 @@
 				pchanf->bone->flag |= (BONE_SELECTED|BONE_ACTIVE);
 			
 				/* in weightpaint we select the associated vertex group too */
-				if(G.f & G_WEIGHTPAINT) {
+				if(ob->mode & OB_MODE_WEIGHT_PAINT) {
 					vertexgroup_select_by_name(OBACT, name);
 					DAG_object_flush_update(scene, OBACT, OB_RECALC_DATA);
 				}

Modified: branches/blender2.5/blender/source/blender/editors/object/object_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -2247,7 +2247,7 @@
 	int armature_clear= 0;
 
 	CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
-		if((G.f & G_WEIGHTPAINT)==0) {
+		if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
 			if ((ob->protectflag & OB_LOCK_LOCX)==0)
 				ob->loc[0]= ob->dloc[0]= 0.0f;
 			if ((ob->protectflag & OB_LOCK_LOCY)==0)
@@ -2290,7 +2290,7 @@
 	int armature_clear= 0;
 
 	CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
-		if((G.f & G_WEIGHTPAINT)==0) {
+		if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
 			/* eulers can only get cleared if they are not protected */
 			if ((ob->protectflag & OB_LOCK_ROTX)==0)
 				ob->rot[0]= ob->drot[0]= 0.0f;
@@ -2334,7 +2334,7 @@
 	int armature_clear= 0;
 
 	CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
-		if((G.f & G_WEIGHTPAINT)==0) {
+		if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
 			if ((ob->protectflag & OB_LOCK_SCALEX)==0) {
 				ob->dsize[0]= 0.0f;
 				ob->size[0]= 1.0f;
@@ -3701,7 +3701,7 @@
 			me->edit_mesh= NULL;
 		}
 		
-		if(G.f & G_WEIGHTPAINT)
+		if(obedit->restore_mode & OB_MODE_WEIGHT_PAINT)
 			mesh_octree_table(obedit, NULL, NULL, 'e');
 	}
 	else if (obedit->type==OB_ARMATURE) {	
@@ -4178,7 +4178,7 @@
 				DAG_object_flush_update(scene, ob, OB_RECALC_DATA);
 			}
 		}
-		else if(G.f & G_WEIGHTPAINT) {
+		else if(ob->mode & OB_MODE_WEIGHT_PAINT) {
 			Object *par= modifiers_isDeformedByArmature(ob);
 
 			if(par && (par->flag & OB_POSEMODE)) {
@@ -7043,5 +7043,7 @@
 	if(mode & OB_MODE_SCULPT)
 		WM_operator_name_call(C, "SCULPT_OT_sculptmode_toggle", WM_OP_EXEC_REGION_WIN, NULL);
 	if(mode & OB_MODE_VERTEX_PAINT)
-		WM_operator_name_call(C, "SCULPT_OT_vertex_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL);
+		WM_operator_name_call(C, "PAINT_OT_vertex_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL);
+	if(mode & OB_MODE_WEIGHT_PAINT)
+		WM_operator_name_call(C, "PAINT_OT_weight_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL);
 }

Modified: branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/screen/screen_context.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/editors/screen/screen_context.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -128,7 +128,7 @@
 		return 1;
 	}
 	else if(CTX_data_equals(member, "weight_paint_object")) {
-		if(G.f & G_WEIGHTPAINT && scene->basact)
+		if(ob && (ob->mode & OB_MODE_WEIGHT_PAINT))
 			CTX_data_id_pointer_set(result, &scene->basact->object->id);
 
 		return 1;

Modified: branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2009-08-15 20:36:15 UTC (rev 22482)
+++ branches/blender2.5/blender/source/blender/editors/sculpt_paint/paint_vertex.c	2009-08-15 21:46:25 UTC (rev 22483)
@@ -123,7 +123,9 @@
 
 static int wp_poll(bContext *C)
 {
-	if(G.f & G_WEIGHTPAINT) {

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list