Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-09-14 09:56:25 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-09-14 09:56:25 +0400
commit718f78d548ed58c7d82c1803bf4fb652421e926c (patch)
tree128e980b962d3ece47b86932f8404df7e9340fe4 /source/blender/blenkernel/intern/armature.c
parent4c99d83b562b62bbd6c1b5450b9e9ca8cc49676e (diff)
remove count_selected_defgroups() function and make get_selected_defgroups() return the total selected items.
also some variable renameing, no functional changes.
Diffstat (limited to 'source/blender/blenkernel/intern/armature.c')
-rw-r--r--source/blender/blenkernel/intern/armature.c46
1 files changed, 18 insertions, 28 deletions
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 38c7b55cf51..3a14074d55b 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -2467,40 +2467,30 @@ void where_is_pose (Scene *scene, Object *ob)
}
/* Jason was here */
-char* get_selected_defgroups(Object *ob, int defcnt)
+/* Returns total selected vgroups */
+int get_selected_defgroups(Object *ob, char *dg_selection, int defbase_len)
{
- bPoseChannel *chan;
- bPose *pose;
bDeformGroup *defgroup;
- //Bone *bone;
- char *dg_flags = MEM_callocN(defcnt*sizeof(char), "dg_selected_flags");
- int i;
- Object *armob = object_pose_armature_get(ob);
+ unsigned int i;
+ Object *armob= object_pose_armature_get(ob);
+ int dg_flags_sel_tot= 0;
if(armob) {
- pose = armob->pose;
- for (chan=pose->chanbase.first; chan; chan=chan->next) {
- for (i = 0, defgroup = ob->defbase.first; i < defcnt && defgroup; defgroup = defgroup->next, i++) {
- if(!strcmp(defgroup->name, chan->bone->name)) {
- dg_flags[i] = (chan->bone->flag & BONE_SELECTED);
- }
+ bPose *pose= armob->pose;
+ for (i= 0, defgroup= ob->defbase.first; i < defbase_len && defgroup; defgroup = defgroup->next, i++) {
+ bPoseChannel *pchan= get_pose_channel(pose, defgroup->name);
+ if(pchan && (pchan->bone->flag & BONE_SELECTED)) {
+ dg_selection[i]= TRUE;
+ dg_flags_sel_tot++;
+ }
+ else {
+ dg_selection[i]= FALSE;
}
}
}
-
- return dg_flags;
-}
-
-/* TODO move duplicates to header */
-/* Jason was here duplicate function */
-int count_selected_defgroups(const char *list, int len)
-{
- int i;
- int cnt = 0;
- for(i = 0; i < len; i++) {
- if (list[i]) {
- cnt++;
- }
+ else {
+ memset(dg_selection, FALSE, sizeof(char) * defbase_len);
}
- return cnt;
+
+ return dg_flags_sel_tot;
}