[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14612] trunk/blender/source/blender/ blenkernel/intern/anim.c:
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue Apr 29 11:56:58 CEST 2008
Revision: 14612
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14612
Author: blendix
Date: 2008-04-29 11:56:52 +0200 (Tue, 29 Apr 2008)
Log Message:
-----------
Fix for bug #9657: ipo's on the object in particle object visualisation
didn't always get correct time.
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 2008-04-29 08:24:33 UTC (rev 14611)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c 2008-04-29 09:56:52 UTC (rev 14612)
@@ -733,7 +733,7 @@
ParticleSystemModifierData *psmd;
float ctime, pa_time, scale = 1.0f;
float tmat[4][4], mat[4][4], obrotmat[4][4], pamat[4][4], size=0.0;
- float obmat[4][4], (*obmatlist)[4][4]=0;
+ float (*obmat)[4];
float xvec[3] = {-1.0, 0.0, 0.0}, q[4];
int lay, a, b, k, step_nbr = 0, counter, hair = 0;
int totpart, totchild, totgroup=0, pa_num;
@@ -788,17 +788,12 @@
}
oblist= MEM_callocN(totgroup*sizeof(Object *), "dupgroup object list");
- obmatlist= MEM_callocN(totgroup*sizeof(float)*4*4, "dupgroup obmat list");
go= part->dup_group->gobject.first;
- for(a=0; a<totgroup; a++, go=go->next) {
+ for(a=0; a<totgroup; a++, go=go->next)
oblist[a]=go->ob;
- Mat4CpyMat4(obmatlist[a], go->ob->obmat);
- }
}
- else {
+ else
ob = part->dup_ob;
- Mat4CpyMat4(obmat, ob->obmat);
- }
if(totchild==0 || part->draw & PART_DRAW_PARENT)
a=0;
@@ -834,8 +829,10 @@
b= a % totgroup;
ob = oblist[b];
- Mat4CpyMat4(obmat, obmatlist[b]);
+ obmat= oblist[b]->obmat;
}
+ else
+ obmat= ob->obmat;
for(k=0; k<=step_nbr; k++, counter++) {
if(hair) {
@@ -871,7 +868,7 @@
if(part->draw_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++) {
- Mat4MulMat4(tmat, obmatlist[b], pamat);
+ Mat4MulMat4(tmat, obmat, pamat);
Mat4MulFloat3((float *)tmat, size*scale);
if(par_space_mat)
Mat4MulMat4(mat, tmat, par_space_mat);
@@ -912,8 +909,6 @@
}
if(oblist)
MEM_freeN(oblist);
- if(obmatlist)
- MEM_freeN(obmatlist);
if(psys->lattice) {
end_latt_deform();
More information about the Bf-blender-cvs
mailing list