Revision: 38141
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38141
Author: blendix
Date: 2011-07-06 10:05:27 +0000 (Wed, 06 Jul 2011)
Log Message:
-----------
Fix #27876: particles instancing a whole group didn't take group offset into
account.
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 2011-07-06
09:58:29 UTC (rev 38140)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c 2011-07-06
10:05:27 UTC (rev 38141)
@@ -719,12 +719,13 @@
/* note, if you check on layer here, render goes wrong... it
still deforms verts and uses parent imat */
if(go->ob!=ob) {
- /* Group Dupli Offset, should apply after everything
else */
- if (group->dupli_ofs[0] || group->dupli_ofs[1] ||
group->dupli_ofs[2]) {
+ /* group dupli offset, should apply after everything
else */
+ if(!is_zero_v3(group->dupli_ofs)) {
copy_m4_m4(tmat, go->ob->obmat);
sub_v3_v3v3(tmat[3], tmat[3], group->dupli_ofs);
mul_m4_m4m4(mat, tmat, ob->obmat);
- } else {
+ }
+ else {
mul_m4_m4m4(mat, go->ob->obmat, ob->obmat);
}
@@ -1395,7 +1396,17 @@
if(part->ren_as==PART_DRAW_GR && psys->part->draw &
PART_DRAW_WHOLE_GR) {
for(go= part->dup_group->gobject.first, b=0;
go; go= go->next, b++) {
- mul_m4_m4m4(tmat, oblist[b]->obmat,
pamat);
+
+ /* group dupli offset, should apply
after everything else */
+
if(!is_zero_v3(part->dup_group->dupli_ofs)) {
+ copy_m4_m4(tmat,
oblist[b]->obmat);
+ sub_v3_v3v3(tmat[3], tmat[3],
part->dup_group->dupli_ofs);
+ mul_m4_m4m4(tmat, tmat, pamat);
+ }
+ else {
+ mul_m4_m4m4(tmat,
oblist[b]->obmat, pamat);
+ }
+
mul_mat3_m4_fl(tmat, size*scale);
if(par_space_mat)
mul_m4_m4m4(mat, tmat,
par_space_mat);
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs