[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