diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-04-04 17:37:07 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-04-04 17:37:07 +0400 |
commit | 83fff218cca47147183c1177de9db1381cfa48e6 (patch) | |
tree | 2576a9f8c61393a346c53eb85077ede1ba2b1d33 /source/blender/blenkernel/intern/group.c | |
parent | 69035e183ba91877489e8aae2d0425b13813ac18 (diff) | |
parent | 19dd08a4828ac1883138b2a65f0b8df1498e0d15 (diff) |
svn merge ^/trunk/blender -r55700:55776
Diffstat (limited to 'source/blender/blenkernel/intern/group.c')
-rw-r--r-- | source/blender/blenkernel/intern/group.c | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c index 98d1d301f65..d0a9a6efe6b 100644 --- a/source/blender/blenkernel/intern/group.c +++ b/source/blender/blenkernel/intern/group.c @@ -95,7 +95,9 @@ void BKE_group_unlink(Group *group) /* ensure objects are not in this group */ for (; base; base = base->next) { - if (rem_from_group(group, base->object, sce, base) && find_group(base->object, NULL) == NULL) { + if (BKE_group_object_unlink(group, base->object, sce, base) && + BKE_group_object_find(NULL, base->object) == NULL) + { base->object->flag &= ~OB_FROMGROUP; base->flag &= ~OB_FROMGROUP; } @@ -132,7 +134,7 @@ void BKE_group_unlink(Group *group) group->id.us = 0; } -Group *add_group(Main *bmain, const char *name) +Group *BKE_group_add(Main *bmain, const char *name) { Group *group; @@ -152,7 +154,7 @@ Group *BKE_group_copy(Group *group) } /* external */ -static int add_to_group_internal(Group *group, Object *ob) +static int group_object_add_internal(Group *group, Object *ob) { GroupObject *go; @@ -173,9 +175,9 @@ static int add_to_group_internal(Group *group, Object *ob) return TRUE; } -int add_to_group(Group *group, Object *object, Scene *scene, Base *base) +bool BKE_group_object_add(Group *group, Object *object, Scene *scene, Base *base) { - if (add_to_group_internal(group, object)) { + if (group_object_add_internal(group, object)) { if ((object->flag & OB_FROMGROUP) == 0) { if (scene && base == NULL) @@ -186,15 +188,15 @@ int add_to_group(Group *group, Object *object, Scene *scene, Base *base) if (base) base->flag |= OB_FROMGROUP; } - return 1; + return true; } else { - return 0; + return false; } } /* also used for (ob == NULL) */ -static int rem_from_group_internal(Group *group, Object *ob) +static int group_object_unlink_internal(Group *group, Object *ob) { GroupObject *go, *gon; int removed = 0; @@ -214,11 +216,11 @@ static int rem_from_group_internal(Group *group, Object *ob) return removed; } -int rem_from_group(Group *group, Object *object, Scene *scene, Base *base) +bool BKE_group_object_unlink(Group *group, Object *object, Scene *scene, Base *base) { - if (rem_from_group_internal(group, object)) { + if (group_object_unlink_internal(group, object)) { /* object can be NULL */ - if (object && find_group(object, NULL) == NULL) { + if (object && BKE_group_object_find(NULL, object) == NULL) { if (scene && base == NULL) base = BKE_scene_base_find(scene, object); @@ -227,23 +229,24 @@ int rem_from_group(Group *group, Object *object, Scene *scene, Base *base) if (base) base->flag &= ~OB_FROMGROUP; } - return 1; + return true; } else { - return 0; + return false; } } -int object_in_group(Object *ob, Group *group) +bool BKE_group_object_exists(Group *group, Object *ob) { if (group == NULL || ob == NULL) { - return FALSE; + return false; + } + else { + return (BLI_findptr(&group->gobject, ob, offsetof(GroupObject, ob)) != NULL); } - - return (BLI_findptr(&group->gobject, ob, offsetof(GroupObject, ob)) != NULL); } -Group *find_group(Object *ob, Group *group) +Group *BKE_group_object_find(Group *group, Object *ob) { if (group) group = group->id.next; @@ -251,14 +254,14 @@ Group *find_group(Object *ob, Group *group) group = G.main->group.first; while (group) { - if (object_in_group(ob, group)) + if (BKE_group_object_exists(group, ob)) return group; group = group->id.next; } return NULL; } -void group_tag_recalc(Group *group) +void BKE_group_tag_recalc(Group *group) { GroupObject *go; @@ -270,7 +273,7 @@ void group_tag_recalc(Group *group) } } -int group_is_animated(Object *UNUSED(parent), Group *group) +bool BKE_group_is_animated(Group *group, Object *UNUSED(parent)) { GroupObject *go; @@ -281,9 +284,9 @@ int group_is_animated(Object *UNUSED(parent), Group *group) for (go = group->gobject.first; go; go = go->next) if (go->ob && go->ob->proxy) - return 1; + return true; - return 0; + return false; } #if 0 // add back when timeoffset & animsys work again @@ -332,7 +335,7 @@ static void group_replaces_nla(Object *parent, Object *target, char mode) * you can draw everything, leaves tags in objects to signal it needs further updating */ /* note: does not work for derivedmesh and render... it recreates all again in convertblender.c */ -void group_handle_recalc_and_update(Scene *scene, Object *UNUSED(parent), Group *group) +void BKE_group_handle_recalc_and_update(Scene *scene, Object *UNUSED(parent), Group *group) { GroupObject *go; |