[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32011] trunk/blender/source/blender/ editors/armature: patch [#23897] ARMATURE_OT_{hide, reveal}

Campbell Barton ideasman42 at gmail.com
Sun Sep 19 15:18:06 CEST 2010


Revision: 32011
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32011
Author:   campbellbarton
Date:     2010-09-19 15:18:05 +0200 (Sun, 19 Sep 2010)

Log Message:
-----------
patch [#23897] ARMATURE_OT_{hide,reveal}
from Dan Eicher (dna)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/armature/armature_intern.h
    trunk/blender/source/blender/editors/armature/armature_ops.c
    trunk/blender/source/blender/editors/armature/editarmature.c

Modified: trunk/blender/source/blender/editors/armature/armature_intern.h
===================================================================
--- trunk/blender/source/blender/editors/armature/armature_intern.h	2010-09-19 13:06:25 UTC (rev 32010)
+++ trunk/blender/source/blender/editors/armature/armature_intern.h	2010-09-19 13:18:05 UTC (rev 32011)
@@ -66,6 +66,8 @@
 void ARMATURE_OT_delete(struct wmOperatorType *ot);
 void ARMATURE_OT_duplicate(struct wmOperatorType *ot);
 void ARMATURE_OT_extrude(struct wmOperatorType *ot);
+void ARMATURE_OT_hide(struct wmOperatorType *ot);
+void ARMATURE_OT_reveal(struct wmOperatorType *ot);
 void ARMATURE_OT_click_extrude(struct wmOperatorType *ot);
 void ARMATURE_OT_fill(struct wmOperatorType *ot);
 void ARMATURE_OT_merge(struct wmOperatorType *ot);

Modified: trunk/blender/source/blender/editors/armature/armature_ops.c
===================================================================
--- trunk/blender/source/blender/editors/armature/armature_ops.c	2010-09-19 13:06:25 UTC (rev 32010)
+++ trunk/blender/source/blender/editors/armature/armature_ops.c	2010-09-19 13:18:05 UTC (rev 32011)
@@ -72,6 +72,8 @@
 	WM_operatortype_append(ARMATURE_OT_delete);
 	WM_operatortype_append(ARMATURE_OT_duplicate);
 	WM_operatortype_append(ARMATURE_OT_extrude);
+	WM_operatortype_append(ARMATURE_OT_hide);
+	WM_operatortype_append(ARMATURE_OT_reveal);
 	WM_operatortype_append(ARMATURE_OT_click_extrude);
 	WM_operatortype_append(ARMATURE_OT_fill);
 	WM_operatortype_append(ARMATURE_OT_merge);
@@ -203,7 +205,8 @@
 	RNA_boolean_set(kmi->ptr, "snap", 1);
 
 	/* only set in editmode armature, by space_view3d listener */
-//	WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
+	WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
+	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	2010-09-19 13:06:25 UTC (rev 32010)
+++ trunk/blender/source/blender/editors/armature/editarmature.c	2010-09-19 13:18:05 UTC (rev 32011)
@@ -3264,7 +3264,84 @@
 /* ************** END Add/Remove stuff in editmode ************ */
 /* *************** Tools in editmode *********** */
 
+static int armature_hide_exec(bContext *C, wmOperator *op)
+{
+	Object *obedit= CTX_data_edit_object(C);
+	bArmature *arm= obedit->data;
+	EditBone *ebone;
 
+	/* cancel if nothing selected */
+	if (CTX_DATA_COUNT(C, selected_bones) == 0)
+		return OPERATOR_CANCELLED;
+
+	for (ebone = arm->edbo->first; ebone; ebone=ebone->next) {
+		if (EBONE_VISIBLE(arm, ebone)) {
+			if (ebone->flag & BONE_SELECTED) {
+				ebone->flag &= ~(BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL);
+				ebone->flag |= BONE_HIDDEN_A;
+			}
+		}
+	}
+	ED_armature_validate_active(arm);
+	ED_armature_sync_selection(arm->edbo);
+	BIF_undo_push("Hide Bones");
+
+	WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
+
+	return OPERATOR_FINISHED;
+}
+
+void ARMATURE_OT_hide(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Hide Selected Bones";
+	ot->idname= "ARMATURE_OT_hide";
+	
+	/* api callbacks */
+	ot->exec= armature_hide_exec;
+	ot->poll= ED_operator_editarmature;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+static int armature_reveal_exec(bContext *C, wmOperator *op)
+{
+	Object *obedit= CTX_data_edit_object(C);
+	bArmature *arm= obedit->data;
+	EditBone *ebone;
+	
+	for (ebone = arm->edbo->first; ebone; ebone=ebone->next) {
+		if(arm->layer & ebone->layer) {
+			if (ebone->flag & BONE_HIDDEN_A) {
+				ebone->flag |= (BONE_TIPSEL|BONE_SELECTED|BONE_ROOTSEL);
+				ebone->flag &= ~BONE_HIDDEN_A;
+			}
+		}
+	}
+	ED_armature_validate_active(arm);
+	ED_armature_sync_selection(arm->edbo);
+	BIF_undo_push("Reveal Bones");
+
+	WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
+
+	return OPERATOR_FINISHED;
+}
+
+void ARMATURE_OT_reveal(wmOperatorType *ot)
+{
+	/* identifiers */
+	ot->name= "Reveal Bones";
+	ot->idname= "ARMATURE_OT_reveal";
+	
+	/* api callbacks */
+	ot->exec= armature_reveal_exec;
+	ot->poll= ED_operator_editarmature;
+	
+	/* flags */
+	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
 void hide_selected_armature_bones(Scene *scene)
 {
 	Object *obedit= scene->obedit; // XXX get from context





More information about the Bf-blender-cvs mailing list