[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27750] branches/render25/source/blender/ blenkernel/intern: Render Branch: Disable group transform stuff temporarily since it still has

Brecht Van Lommel brecht at blender.org
Thu Mar 25 19:40:07 CET 2010


Revision: 27750
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27750
Author:   blendix
Date:     2010-03-25 19:40:06 +0100 (Thu, 25 Mar 2010)

Log Message:
-----------
Render Branch: Disable group transform stuff temporarily since it still has
some problems, so we can properly render things.

Modified Paths:
--------------
    branches/render25/source/blender/blenkernel/intern/group.c
    branches/render25/source/blender/blenkernel/intern/object.c

Modified: branches/render25/source/blender/blenkernel/intern/group.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/group.c	2010-03-25 16:28:44 UTC (rev 27749)
+++ branches/render25/source/blender/blenkernel/intern/group.c	2010-03-25 18:40:06 UTC (rev 27750)
@@ -349,7 +349,7 @@
 	parentinv= MEM_callocN(sizeof(float)*4*4*tot, "group parentinv");
 	obmat= MEM_callocN(sizeof(float)*4*4*tot, "group obmat");
 
-	if(group->id.lib) {
+	if(0) { //group->id.lib) {
 		/* in case of linked groups, we ensure all object matrices are
 		   transformed into the group space. this is to make e.g. physics
 		   systems apply gravity in the right direction, but it clearly
@@ -405,7 +405,7 @@
 				object_handle_update(scene, go->ob);
 	}
 
-	if(group->id.lib) {
+	if(0) { //group->id.lib) {
 		for(a=0, go= group->gobject.first; go; go= go->next, a++) {
 			if(go->ob) {
 				/* we restore object matrices by copy to avoid numerical

Modified: branches/render25/source/blender/blenkernel/intern/object.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/object.c	2010-03-25 16:28:44 UTC (rev 27749)
+++ branches/render25/source/blender/blenkernel/intern/object.c	2010-03-25 18:40:06 UTC (rev 27750)
@@ -2538,7 +2538,13 @@
 			/* handle proxy copy for target */
 			if(ob->id.lib && ob->proxy_from) {
 				// printf("ob proxy copy, lib ob %s proxy %s\n", ob->id.name, ob->proxy_from->id.name);
-				copy_m4_m4(ob->obmat, ob->proxy_from->obmat);
+				if(ob->proxy_from->proxy_group) {/* transform proxy into group space */
+					Object *obg= ob->proxy_from->proxy_group;
+					invert_m4_m4(obg->imat, obg->obmat);
+					mul_m4_m4m4(ob->obmat, ob->proxy_from->obmat, obg->imat);
+				}
+				else
+					copy_m4_m4(ob->obmat, ob->proxy_from->obmat);
 			}
 			else
 				where_is_object(scene, ob);





More information about the Bf-blender-cvs mailing list