[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