[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32858] trunk/blender/source/blender/ blenkernel/intern/anim.c: Fix for [#21958] Dupli group doesn' t show up if linked on a layer that is different from the group layer

Janne Karhu jhkarh at gmail.com
Wed Nov 3 17:51:25 CET 2010


Revision: 32858
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32858
Author:   jhk
Date:     2010-11-03 17:51:25 +0100 (Wed, 03 Nov 2010)

Log Message:
-----------
Fix for [#21958] Dupli group doesn't show up if linked on a layer that is different from the group layer
* Object layer flag was set too soon for group duplication.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/anim.c

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2010-11-03 15:30:24 UTC (rev 32857)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2010-11-03 16:51:25 UTC (rev 32858)
@@ -796,6 +796,7 @@
 	DupliObject *dob;
 	vertexDupliData *vdd= userData;
 	float vec[3], q2[4], mat[3][3], tmat[4][4], obmat[4][4];
+	int origlay;
 	
 	mul_v3_m4v3(vec, vdd->pmat, co);
 	sub_v3_v3(vec, vdd->pmat[3]);
@@ -818,7 +819,14 @@
 		copy_m4_m4(tmat, obmat);
 		mul_m4_m4m3(obmat, tmat, mat);
 	}
+
+	origlay = vdd->ob->lay;
+	
 	dob= new_dupli_object(vdd->lb, vdd->ob, obmat, vdd->par->lay, index, OB_DUPLIVERTS, vdd->animated);
+
+	/* restore the original layer so that each dupli will have proper dob->origlay */
+	vdd->ob->lay = origlay;
+
 	if(vdd->orco)
 		VECCOPY(dob->orco, vdd->orco[index]);
 	
@@ -928,6 +936,14 @@
 							vertex_dupli__mapFunc(&vdd, a, vec, no, NULL);
 						}
 					}
+					if(sce) {
+						/* Set proper layer in case of scene looping,
+						 * in case of groups the object layer will be
+						 * changed when it's duplicated due to the
+						 * group duplication.
+						 */
+						ob->lay = vdd.par->lay;
+					}
 					
 					break;
 				}





More information about the Bf-blender-cvs mailing list