[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