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>2013-04-04 17:37:07 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-04-04 17:37:07 +0400
commit83fff218cca47147183c1177de9db1381cfa48e6 (patch)
tree2576a9f8c61393a346c53eb85077ede1ba2b1d33 /source/blender/blenkernel/intern/group.c
parent69035e183ba91877489e8aae2d0425b13813ac18 (diff)
parent19dd08a4828ac1883138b2a65f0b8df1498e0d15 (diff)
svn merge ^/trunk/blender -r55700:55776
Diffstat (limited to 'source/blender/blenkernel/intern/group.c')
-rw-r--r--source/blender/blenkernel/intern/group.c51
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;