[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35129] trunk/blender/source/blender/ editors: face-paint mode operators were not ported from 2.4x yet hide/ reveal/sel-swap

Campbell Barton ideasman42 at gmail.com
Thu Feb 24 17:04:37 CET 2011


Revision: 35129
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35129
Author:   campbellbarton
Date:     2011-02-24 16:04:36 +0000 (Thu, 24 Feb 2011)
Log Message:
-----------
face-paint mode operators were not ported from 2.4x yet hide/reveal/sel-swap
also added hide-unselected option to armature mode.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/armature/armature_ops.c
    trunk/blender/source/blender/editors/armature/editarmature.c
    trunk/blender/source/blender/editors/include/ED_mesh.h
    trunk/blender/source/blender/editors/mesh/editface.c
    trunk/blender/source/blender/editors/metaball/mball_edit.c
    trunk/blender/source/blender/editors/object/object_edit.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_intern.h
    trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
    trunk/blender/source/blender/editors/sculpt_paint/paint_utils.c

Modified: trunk/blender/source/blender/editors/armature/armature_ops.c
===================================================================
--- trunk/blender/source/blender/editors/armature/armature_ops.c	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/armature/armature_ops.c	2011-02-24 16:04:36 UTC (rev 35129)
@@ -213,6 +213,8 @@
 
 	/* only set in editmode armature, by space_view3d listener */
 	WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
+	kmi= WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
+		RNA_boolean_set(kmi->ptr, "unselected", 1);
 	WM_keymap_add_item(keymap, "ARMATURE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
 	WM_keymap_add_item(keymap, "ARMATURE_OT_align", AKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
 	WM_keymap_add_item(keymap, "ARMATURE_OT_calculate_roll", NKEY, KM_PRESS, KM_CTRL, 0);

Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/armature/editarmature.c	2011-02-24 16:04:36 UTC (rev 35129)
@@ -3316,11 +3316,12 @@
 /* ************** END Add/Remove stuff in editmode ************ */
 /* *************** Tools in editmode *********** */
 
-static int armature_hide_exec(bContext *C, wmOperator *UNUSED(op))
+static int armature_hide_exec(bContext *C, wmOperator *op)
 {
 	Object *obedit= CTX_data_edit_object(C);
 	bArmature *arm= obedit->data;
 	EditBone *ebone;
+	const int invert= RNA_boolean_get(op->ptr, "unselected") ? BONE_SELECTED : 0;
 
 	/* cancel if nothing selected */
 	if (CTX_DATA_COUNT(C, selected_bones) == 0)
@@ -3328,7 +3329,7 @@
 
 	for (ebone = arm->edbo->first; ebone; ebone=ebone->next) {
 		if (EBONE_VISIBLE(arm, ebone)) {
-			if (ebone->flag & BONE_SELECTED) {
+			if ((ebone->flag & BONE_SELECTED) != invert) {
 				ebone->flag &= ~(BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL);
 				ebone->flag |= BONE_HIDDEN_A;
 			}
@@ -3355,6 +3356,9 @@
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+	/* props */
+	RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "Hide unselected rather than selected.");
 }
 
 static int armature_reveal_exec(bContext *C, wmOperator *UNUSED(op))

Modified: trunk/blender/source/blender/editors/include/ED_mesh.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_mesh.h	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/include/ED_mesh.h	2011-02-24 16:04:36 UTC (rev 35129)
@@ -193,10 +193,8 @@
 void paintface_select_linked(struct bContext *C, struct Object *ob, short mval[2], int mode);
 int paintface_minmax(struct Object *ob, float *min, float *max);
 
-/* TODO, 2.5x */
-void paintface_unhide(struct Scene *scene);
-void paintface_hide(struct Scene *scene);
-void paintface_select_swap(struct Scene *scene);
+void paintface_hide(struct Object *ob, const int unselected);
+void paintface_reveal(struct Object *ob);
 
 /* object_vgroup.c */
 

Modified: trunk/blender/source/blender/editors/mesh/editface.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editface.c	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/mesh/editface.c	2011-02-24 16:04:36 UTC (rev 35129)
@@ -152,61 +152,55 @@
 	return NULL;
 }
 
-void paintface_unhide(Scene *scene)
+void paintface_hide(Object *ob, const int unselected)
 {
 	Mesh *me;
 	MFace *mface;
 	int a;
 	
-	me= get_mesh(OBACT);
+	me= get_mesh(ob);
 	if(me==0 || me->totface==0) return;
-	
+
 	mface= me->mface;
 	a= me->totface;
 	while(a--) {
-		if(mface->flag & ME_HIDE) {
-			mface->flag |= ME_FACE_SEL;
-			mface->flag -= ME_HIDE;
+		if((mface->flag & ME_HIDE) == 0) {
+			if(unselected) {
+				if( (mface->flag & ME_FACE_SEL)==0) mface->flag |= ME_HIDE;
+			}
+			else {
+				if( (mface->flag & ME_FACE_SEL)) mface->flag |= ME_HIDE;
+			}
 		}
+		if(mface->flag & ME_HIDE) mface->flag &= ~ME_FACE_SEL;
+		
 		mface++;
 	}
-
-	paintface_flush_flags(OBACT);
+	
+	paintface_flush_flags(ob);
 }
 
-void paintface_hide(Scene *scene)
+
+void paintface_reveal(Object *ob)
 {
 	Mesh *me;
 	MFace *mface;
 	int a;
-	int shift=0, alt= 0; // XXX
-	
-	me= get_mesh(OBACT);
+
+	me= get_mesh(ob);
 	if(me==0 || me->totface==0) return;
-	
-	if(alt) {
-		paintface_unhide(scene);
-		return;
-	}
-	
+
 	mface= me->mface;
 	a= me->totface;
 	while(a--) {
-		if(mface->flag & ME_HIDE);
-		else {
-			if(shift) {
-				if( (mface->flag & ME_FACE_SEL)==0) mface->flag |= ME_HIDE;
-			}
-			else {
-				if( (mface->flag & ME_FACE_SEL)) mface->flag |= ME_HIDE;
-			}
+		if(mface->flag & ME_HIDE) {
+			mface->flag |= ME_FACE_SEL;
+			mface->flag -= ME_HIDE;
 		}
-		if(mface->flag & ME_HIDE) mface->flag &= ~ME_FACE_SEL;
-		
 		mface++;
 	}
-	
-	paintface_flush_flags(OBACT);
+
+	paintface_flush_flags(ob);
 }
 
 /* Set tface seams based on edge data, uses hash table to find seam edges. */
@@ -359,37 +353,49 @@
 	me= get_mesh(ob);
 	if(me==0) return;
 	
-	if (action == SEL_TOGGLE) {
-		action = SEL_SELECT;
-
+	if(action == SEL_INVERT) {
 		mface= me->mface;
 		a= me->totface;
 		while(a--) {
-			if((mface->flag & ME_HIDE) == 0 && mface->flag & ME_FACE_SEL) {
-				action = SEL_DESELECT;
-				break;
+			if((mface->flag & ME_HIDE) == 0) {
+				mface->flag ^= ME_FACE_SEL;
 			}
 			mface++;
 		}
 	}
-	
-	mface= me->mface;
-	a= me->totface;
-	while(a--) {
-		if((mface->flag & ME_HIDE) == 0) {
-			switch (action) {
-			case SEL_SELECT:
-				mface->flag |= ME_FACE_SEL;
-				break;
-			case SEL_DESELECT:
-				mface->flag &= ~ME_FACE_SEL;
-				break;
-			case SEL_INVERT:
-				mface->flag ^= ME_FACE_SEL;
-				break;
+	else {
+		if (action == SEL_TOGGLE) {
+			action = SEL_SELECT;
+
+			mface= me->mface;
+			a= me->totface;
+			while(a--) {
+				if((mface->flag & ME_HIDE) == 0 && mface->flag & ME_FACE_SEL) {
+					action = SEL_DESELECT;
+					break;
+				}
+				mface++;
 			}
 		}
-		mface++;
+
+		mface= me->mface;
+		a= me->totface;
+		while(a--) {
+			if((mface->flag & ME_HIDE) == 0) {
+				switch (action) {
+				case SEL_SELECT:
+					mface->flag |= ME_FACE_SEL;
+					break;
+				case SEL_DESELECT:
+					mface->flag &= ~ME_FACE_SEL;
+					break;
+				case SEL_INVERT:
+					mface->flag ^= ME_FACE_SEL;
+					break;
+				}
+			}
+			mface++;
+		}
 	}
 
 	if(flush_flags) {
@@ -397,29 +403,6 @@
 	}
 }
 
-void paintface_select_swap(Scene *scene)
-{
-	Mesh *me;
-	MFace *mface;
-	int a;
-		
-	me= get_mesh(OBACT);
-	if(me==0) return;
-	
-	mface= me->mface;
-	a= me->totface;
-	while(a--) {
-		if(mface->flag & ME_HIDE);
-		else {
-			if(mface->flag & ME_FACE_SEL) mface->flag &= ~ME_FACE_SEL;
-			else mface->flag |= ME_FACE_SEL;
-		}
-		mface++;
-	}
-	
-	paintface_flush_flags(OBACT);
-}
-
 int paintface_minmax(Object *ob, float *min, float *max)
 {
 	Mesh *me= get_mesh(ob);

Modified: trunk/blender/source/blender/editors/metaball/mball_edit.c
===================================================================
--- trunk/blender/source/blender/editors/metaball/mball_edit.c	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/metaball/mball_edit.c	2011-02-24 16:04:36 UTC (rev 35129)
@@ -374,25 +374,15 @@
 	Object *obedit= CTX_data_edit_object(C);
 	MetaBall *mb= (MetaBall*)obedit->data;
 	MetaElem *ml;
-	int hide_unselected= RNA_boolean_get(op->ptr, "unselected");
+	const int invert= RNA_boolean_get(op->ptr, "unselected") ? SELECT : 0;
 
 	ml= mb->editelems->first;
 
 	if(ml) {
-		/* Hide unselected metaelems */
-		if(hide_unselected) {
-			while(ml){
-				if(!(ml->flag & SELECT))
-					ml->flag |= MB_HIDE;
-				ml= ml->next;
-			}
-		/* Hide selected metaelems */	
-		} else {
-			while(ml){
-				if(ml->flag & SELECT)
-					ml->flag |= MB_HIDE;
-				ml= ml->next;
-			}
+		while(ml){
+			if((ml->flag & SELECT) != invert)
+				ml->flag |= MB_HIDE;
+			ml= ml->next;
 		}
 		WM_event_add_notifier(C, NC_GEOM|ND_DATA, mb);
 		DAG_id_tag_update(obedit->data, 0);

Modified: trunk/blender/source/blender/editors/object/object_edit.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_edit.c	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/object/object_edit.c	2011-02-24 16:04:36 UTC (rev 35129)
@@ -170,7 +170,7 @@
 	Main *bmain= CTX_data_main(C);
 	Scene *scene= CTX_data_scene(C);
 	short changed = 0;
-	int unselected= RNA_boolean_get(op->ptr, "unselected");
+	const int unselected= RNA_boolean_get(op->ptr, "unselected");
 	
 	CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
 		if(!unselected) {
@@ -259,7 +259,7 @@
 
 static int object_hide_render_set_exec(bContext *C, wmOperator *op)
 {
-	int unselected= RNA_boolean_get(op->ptr, "unselected");
+	const int unselected= RNA_boolean_get(op->ptr, "unselected");
 
 	CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
 		if(!unselected) {

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_intern.h
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_intern.h	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_intern.h	2011-02-24 16:04:36 UTC (rev 35129)
@@ -114,6 +114,9 @@
 void PAINT_OT_face_select_linked(struct wmOperatorType *ot);
 void PAINT_OT_face_select_linked_pick(struct wmOperatorType *ot);
 void PAINT_OT_face_select_all(struct wmOperatorType *ot);
+void PAINT_OT_face_select_inverse(struct wmOperatorType *ot);
+void PAINT_OT_face_select_hide(struct wmOperatorType *ot);
+void PAINT_OT_face_select_reveal(struct wmOperatorType *ot);
 
 int facemask_paint_poll(struct bContext *C);
 

Modified: trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c
===================================================================
--- trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2011-02-24 15:48:09 UTC (rev 35128)
+++ trunk/blender/source/blender/editors/sculpt_paint/paint_ops.c	2011-02-24 16:04:36 UTC (rev 35129)
@@ -224,6 +224,9 @@
 	WM_operatortype_append(PAINT_OT_face_select_linked);
 	WM_operatortype_append(PAINT_OT_face_select_linked_pick);
 	WM_operatortype_append(PAINT_OT_face_select_all);
+	WM_operatortype_append(PAINT_OT_face_select_inverse);
+	WM_operatortype_append(PAINT_OT_face_select_hide);
+	WM_operatortype_append(PAINT_OT_face_select_reveal);
 }
 
 
@@ -414,7 +417,11 @@

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list