[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51197] tags/blender-2.64a-release/blender /source/blender: merge part of r51070 manually ( the part that stops selecting unelectable bones.)

Campbell Barton ideasman42 at gmail.com
Mon Oct 8 23:48:58 CEST 2012


Revision: 51197
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51197
Author:   campbellbarton
Date:     2012-10-08 21:48:56 +0000 (Mon, 08 Oct 2012)
Log Message:
-----------
merge part of r51070 manually (the part that stops selecting unelectable bones.)

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51070

Modified Paths:
--------------
    tags/blender-2.64a-release/blender/source/blender/blenkernel/BKE_armature.h
    tags/blender-2.64a-release/blender/source/blender/editors/armature/poseobject.c
    tags/blender-2.64a-release/blender/source/blender/editors/include/ED_armature.h
    tags/blender-2.64a-release/blender/source/blender/editors/space_view3d/view3d_select.c

Modified: tags/blender-2.64a-release/blender/source/blender/blenkernel/BKE_armature.h
===================================================================
--- tags/blender-2.64a-release/blender/source/blender/blenkernel/BKE_armature.h	2012-10-08 21:03:35 UTC (rev 51196)
+++ tags/blender-2.64a-release/blender/source/blender/blenkernel/BKE_armature.h	2012-10-08 21:48:56 UTC (rev 51197)
@@ -132,6 +132,7 @@
 
 /* like EBONE_VISIBLE */
 #define PBONE_VISIBLE(arm, bone) (((bone)->layer & (arm)->layer) && !((bone)->flag & BONE_HIDDEN_P))
+#define PBONE_SELECTABLE(arm, bone) (PBONE_VISIBLE(arm, bone) && !((bone)->flag & BONE_UNSELECTABLE))
 
 #ifdef __cplusplus
 }

Modified: tags/blender-2.64a-release/blender/source/blender/editors/armature/poseobject.c
===================================================================
--- tags/blender-2.64a-release/blender/source/blender/editors/armature/poseobject.c	2012-10-08 21:03:35 UTC (rev 51196)
+++ tags/blender-2.64a-release/blender/source/blender/editors/armature/poseobject.c	2012-10-08 21:48:56 UTC (rev 51197)
@@ -492,7 +492,7 @@
 					if (pchan->parent == NULL) continue;
 					else pabone = pchan->parent->bone;
 					
-					if (PBONE_VISIBLE(arm, pabone)) {
+					if (PBONE_SELECTABLE(arm, pabone)) {
 						if (!add_to_sel) curbone->flag &= ~BONE_SELECTED;
 						pabone->flag |= BONE_SELECTED;
 						arm->act_bone = pabone;
@@ -514,7 +514,7 @@
 
 						for (pchan_child = ob->pose->chanbase.first; pchan_child; pchan_child = pchan_child->next) {
 							/* possible we have multiple children, some invisible */
-							if (PBONE_VISIBLE(arm, pchan_child->bone)) {
+							if (PBONE_SELECTABLE(arm, pchan_child->bone)) {
 								if (pchan_child->parent == pchan) {
 									chbone = pchan_child->bone;
 									break;
@@ -526,7 +526,7 @@
 					if (chbone == NULL) continue;
 #endif
 					
-					if (PBONE_VISIBLE(arm, chbone)) {
+					if (PBONE_SELECTABLE(arm, chbone)) {
 						if (!add_to_sel) curbone->flag &= ~BONE_SELECTED;
 						chbone->flag |= BONE_SELECTED;
 						arm->act_bone = chbone;

Modified: tags/blender-2.64a-release/blender/source/blender/editors/include/ED_armature.h
===================================================================
--- tags/blender-2.64a-release/blender/source/blender/editors/include/ED_armature.h	2012-10-08 21:03:35 UTC (rev 51196)
+++ tags/blender-2.64a-release/blender/source/blender/editors/include/ED_armature.h	2012-10-08 21:48:56 UTC (rev 51197)
@@ -94,6 +94,7 @@
 
 /* useful macros */
 #define EBONE_VISIBLE(arm, ebone) (((arm)->layer & (ebone)->layer) && !((ebone)->flag & BONE_HIDDEN_A))
+#define EBONE_SELECTABLE(arm, ebone) (EBONE_VISIBLE(arm, ebone) && !(ebone->flag & BONE_UNSELECTABLE))
 #define EBONE_EDITABLE(ebone) (((ebone)->flag & BONE_SELECTED) && !((ebone)->flag & BONE_EDITMODE_LOCKED)) 
 
 /* used in bone_select_hierachy() */

Modified: tags/blender-2.64a-release/blender/source/blender/editors/space_view3d/view3d_select.c
===================================================================
--- tags/blender-2.64a-release/blender/source/blender/editors/space_view3d/view3d_select.c	2012-10-08 21:03:35 UTC (rev 51196)
+++ tags/blender-2.64a-release/blender/source/blender/editors/space_view3d/view3d_select.c	2012-10-08 21:48:56 UTC (rev 51197)
@@ -332,7 +332,7 @@
 	if ((ob->type != OB_ARMATURE) || (ob->pose == NULL)) return;
 
 	for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
-		if (PBONE_VISIBLE(arm, pchan->bone) && (pchan->bone->flag & BONE_UNSELECTABLE) == 0) {
+		if (PBONE_SELECTABLE(arm, pchan->bone)) {
 			mul_v3_m4v3(vec, ob->obmat, pchan->pose_head);
 			ED_view3d_project_int(vc->ar, vec, sco1);
 			mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail);
@@ -576,7 +576,7 @@
 	/* set editdata in vc */
 	
 	for (ebone = arm->edbo->first; ebone; ebone = ebone->next) {
-		if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE) == 0) {
+		if (EBONE_SELECTABLE(arm, ebone)) {
 			mul_v3_m4v3(vec, vc->obedit->obmat, ebone->head);
 			ED_view3d_project_short(vc->ar, vec, sco1);
 			mul_v3_m4v3(vec, vc->obedit->obmat, ebone->tail);
@@ -2373,7 +2373,7 @@
 		float vec[3];
 		
 		/* skip invisible bones */
-		if (PBONE_VISIBLE(arm, pchan->bone) == 0)
+		if (PBONE_SELECTABLE(arm, pchan->bone) == 0)
 			continue;
 		
 		/* project head location to screenspace */
@@ -2444,6 +2444,9 @@
 		short sco1[2], sco2[2], didpoint = 0;
 		float vec[3];
 		
+		if (EBONE_SELECTABLE(arm, ebone) == 0)
+			continue;
+
 		/* project head location to screenspace */
 		mul_v3_m4v3(vec, vc->obedit->obmat, ebone->head);
 		ED_view3d_project_short(vc->ar, vec, sco1);




More information about the Bf-blender-cvs mailing list