[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [35773] trunk/blender/source/blender: move object re-linking into a function.

Campbell Barton ideasman42 at gmail.com
Fri Mar 25 09:43:41 CET 2011


Revision: 35773
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35773
Author:   campbellbarton
Date:     2011-03-25 08:43:41 +0000 (Fri, 25 Mar 2011)
Log Message:
-----------
move object re-linking into a function.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_object.h
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/editors/object/object_relations.c

Modified: trunk/blender/source/blender/blenkernel/BKE_object.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_object.h	2011-03-25 07:34:44 UTC (rev 35772)
+++ trunk/blender/source/blender/blenkernel/BKE_object.h	2011-03-25 08:43:41 UTC (rev 35773)
@@ -143,6 +143,8 @@
 		float winmat[][4], struct rctf *viewplane, float *clipsta, float *clipend, float *lens, float *ycor,
 		float *viewdx, float *viewdy);
 
+void object_relink(struct Object *ob);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2011-03-25 07:34:44 UTC (rev 35772)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2011-03-25 08:43:41 UTC (rev 35773)
@@ -3082,3 +3082,32 @@
 
 	return flag;
 }
+
+static void copy_object__forwardModifierLinks(void *UNUSED(userData), Object *UNUSED(ob), ID **idpoin)
+{
+	/* this is copied from ID_NEW; it might be better to have a macro */
+	if(*idpoin && (*idpoin)->newid) *idpoin = (*idpoin)->newid;
+}
+
+void object_relink(Object *ob)
+{
+	if(ob->id.lib)
+		return;
+
+	relink_constraints(&ob->constraints);
+	if (ob->pose){
+		bPoseChannel *chan;
+		for (chan = ob->pose->chanbase.first; chan; chan=chan->next){
+			relink_constraints(&chan->constraints);
+		}
+	}
+	modifiers_foreachIDLink(ob, copy_object__forwardModifierLinks, NULL);
+
+	if(ob->adt)
+		BKE_relink_animdata(ob->adt);
+
+	ID_NEW(ob->parent);
+
+	ID_NEW(ob->proxy);
+	ID_NEW(ob->proxy_group);
+}

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2011-03-25 07:34:44 UTC (rev 35772)
+++ trunk/blender/source/blender/editors/object/object_add.c	2011-03-25 08:43:41 UTC (rev 35773)
@@ -843,13 +843,6 @@
 
 /**************************** Copy Utilities ******************************/
 
-static void copy_object__forwardModifierLinks(void *UNUSED(userData), Object *UNUSED(ob),
-											  ID **idpoin)
-{
-	/* this is copied from ID_NEW; it might be better to have a macro */
-	if(*idpoin && (*idpoin)->newid) *idpoin = (*idpoin)->newid;
-}
-
 /* after copying objects, copied data should get new pointers */
 static void copy_object_set_idnew(bContext *C, int dupflag)
 {
@@ -860,21 +853,7 @@
 	
 	/* XXX check object pointers */
 	CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
-		relink_constraints(&ob->constraints);
-		if (ob->pose){
-			bPoseChannel *chan;
-			for (chan = ob->pose->chanbase.first; chan; chan=chan->next){
-				relink_constraints(&chan->constraints);
-			}
-		}
-		modifiers_foreachIDLink(ob, copy_object__forwardModifierLinks, NULL);
-
-		if(ob->adt)
-			BKE_relink_animdata(ob->adt);
-
-		ID_NEW(ob->parent);
-		ID_NEW(ob->proxy);
-		ID_NEW(ob->proxy_group);
+		object_relink(ob);
 	}
 	CTX_DATA_END;
 	

Modified: trunk/blender/source/blender/editors/object/object_relations.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_relations.c	2011-03-25 07:34:44 UTC (rev 35772)
+++ trunk/blender/source/blender/editors/object/object_relations.c	2011-03-25 08:43:41 UTC (rev 35773)
@@ -1366,11 +1366,6 @@
 
 /**************************** Make Single User ********************************/
 
-static void single_object_users__forwardModifierLinks(void *UNUSED(userData), Object *UNUSED(ob), Object **obpoin)
-{
-	ID_NEW(*obpoin);
-}
-
 static void single_object_users(Scene *scene, View3D *v3d, int flag)	
 {
 	Base *base;
@@ -1402,22 +1397,7 @@
 	
 	/* object pointers */
 	for(base= FIRSTBASE; base; base= base->next) {
-		ob= base->object;
-		if(ob->id.lib==NULL) {
-			relink_constraints(&base->object->constraints);
-			if (base->object->pose){
-				bPoseChannel *chan;
-				for (chan = base->object->pose->chanbase.first; chan; chan=chan->next){
-					relink_constraints(&chan->constraints);
-				}
-			}
-			modifiers_foreachObjectLink(base->object, single_object_users__forwardModifierLinks, NULL);
-
-			if(ob->adt)
-				BKE_relink_animdata(ob->adt);
-
-			ID_NEW(ob->parent);
-		}
+		object_relink(base->object);
 	}
 
 	set_sca_new_poins();




More information about the Bf-blender-cvs mailing list