[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [55122] trunk/blender/source/blender/ blenkernel: expose obrel_is_recursive_child in BKE_object. h and rename to BKE_object_is_child_recursive()
Campbell Barton
ideasman42 at gmail.com
Sat Mar 9 04:34:03 CET 2013
Revision: 55122
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=55122
Author: campbellbarton
Date: 2013-03-09 03:34:01 +0000 (Sat, 09 Mar 2013)
Log Message:
-----------
expose obrel_is_recursive_child in BKE_object.h and rename to BKE_object_is_child_recursive()
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_object.h
trunk/blender/source/blender/blenkernel/intern/object.c
Modified: trunk/blender/source/blender/blenkernel/BKE_object.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_object.h 2013-03-08 18:28:26 UTC (rev 55121)
+++ trunk/blender/source/blender/blenkernel/BKE_object.h 2013-03-09 03:34:01 UTC (rev 55122)
@@ -160,6 +160,7 @@
// void object_delete_ptcache(struct Object *ob, int index);
struct KeyBlock *BKE_object_insert_shape_key(struct Scene *scene, struct Object *ob, const char *name, int from_mix);
+bool BKE_object_is_child_recursive(struct Object *ob_parent, struct Object *ob_child);
int BKE_object_is_modified(struct Scene *scene, struct Object *ob);
int BKE_object_is_deform_modified(struct Scene *scene, struct Object *ob);
int BKE_object_is_animated(struct Scene *scene, struct Object *ob);
Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c 2013-03-08 18:28:26 UTC (rev 55121)
+++ trunk/blender/source/blender/blenkernel/intern/object.c 2013-03-09 03:34:01 UTC (rev 55122)
@@ -3126,6 +3126,17 @@
}
+bool BKE_object_is_child_recursive(Object *ob_parent, Object *ob_child)
+{
+ Object *ob_test;
+ for (ob_test = ob_child->parent; ob_test; ob_test = ob_test->parent) {
+ if (ob_test == ob_parent) {
+ return true;
+ }
+ }
+ return false;
+}
+
/* most important if this is modified it should _always_ return True, in certain
* cases false positives are hard to avoid (shape keys for example) */
int BKE_object_is_modified(Scene *scene, Object *ob)
@@ -3275,18 +3286,6 @@
return ob_arm;
}
-static int obrel_is_recursive_child(Object *ob, Object *child)
-{
- Object *par;
- for (par = child->parent; par; par = par->parent) {
- if (par == ob) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-
static int obrel_list_test(Object *ob)
{
return ob && !(ob->id.flag & LIB_DOIT);
@@ -3359,7 +3358,7 @@
Object *child = local_base->object;
if (obrel_list_test(child)) {
- if ((includeFilter & OB_REL_CHILDREN_RECURSIVE && obrel_is_recursive_child(ob, child)) ||
+ if ((includeFilter & OB_REL_CHILDREN_RECURSIVE && BKE_object_is_child_recursive(ob, child)) ||
(includeFilter & OB_REL_CHILDREN && child->parent && child->parent == ob))
{
obrel_list_add(&links, child);
More information about the Bf-blender-cvs
mailing list