[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19535] trunk/blender/source/blender/ blenkernel/intern/particle_system.c: Fix for [#18017] reactor particles affected by a curve guide emit at a wrong position.

Janne Karhu jhkarh at utu.fi
Sat Apr 4 14:48:41 CEST 2009


Revision: 19535
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19535
Author:   jhk
Date:     2009-04-04 14:48:40 +0200 (Sat, 04 Apr 2009)

Log Message:
-----------
Fix for [#18017] reactor particles affected by a curve guide emit at a wrong position.

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

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2009-04-04 11:02:13 UTC (rev 19534)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2009-04-04 12:48:40 UTC (rev 19535)
@@ -1734,6 +1734,8 @@
 		VECSUB(p_vel,pa->r_ve,p_vel);
 		Normalize(p_vel);
 		VecMulf(p_vel,speed);
+
+		VECCOPY(pa->fuv,loc); /* abusing pa->fuv (not used for "from particle") for storing emit location */
 	}
 	else{
 		/* get precise emitter matrix if particle is born */
@@ -2483,7 +2485,12 @@
 				ec->locations=MEM_callocN(totpart*3*sizeof(float),"particle locations");
 
 				for(p=0,pa=psys->particles; p<totpart; p++, pa++){
-					psys_particle_on_emitter(psmd,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,0,0,0,0,0);
+					if(part->from == PART_FROM_PARTICLE) {
+						VECCOPY(loc, pa->fuv);
+					}
+					else
+						psys_particle_on_emitter(psmd,part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,loc,0,0,0,0,0);
+
 					Mat4MulVecfl(ob->obmat,loc);
 					ec->distances[p]=VecLenf(loc,vec);
 					VECSUB(loc,loc,vec);





More information about the Bf-blender-cvs mailing list