[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