[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15174] trunk/blender/source/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Jun 9 18:49:33 CEST 2008


Revision: 15174
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15174
Author:   blendix
Date:     2008-06-09 18:49:33 +0200 (Mon, 09 Jun 2008)

Log Message:
-----------

Added back a feature from the old particle system: negative start frame.

At the moment this does mean it will compute all the frames before the
point caching start frame on the first frame, which might be slow.

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

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2008-06-09 15:55:04 UTC (rev 15173)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2008-06-09 16:49:33 UTC (rev 15174)
@@ -4814,9 +4814,20 @@
 			pa->flag &= ~PARS_NO_DISP;
 	}
 
-	/* ok now we're all set so let's go */
-	if(psys->totpart)
-		dynamics_step(ob,psys,psmd,cfra,vg_vel,vg_tan,vg_rot,vg_size);
+	if(psys->totpart) {
+		int dframe, totframesback = 0;
+
+		/* handle negative frame start at the first frame by doing
+		 * all the steps before the first frame */
+		if(framenr == startframe && part->sta < startframe)
+			totframesback = (startframe - (int)part->sta);
+
+		for(dframe=-totframesback; dframe<=0; dframe++) {
+			/* ok now we're all set so let's go */
+			dynamics_step(ob,psys,psmd,cfra+dframe,vg_vel,vg_tan,vg_rot,vg_size);
+			psys->cfra = cfra+dframe;
+		}
+	}
 	
 	cache->simframe= framenr;
 	cache->flag |= PTCACHE_SIMULATION_VALID;

Modified: trunk/blender/source/blender/src/buttons_object.c
===================================================================
--- trunk/blender/source/blender/src/buttons_object.c	2008-06-09 15:55:04 UTC (rev 15173)
+++ trunk/blender/source/blender/src/buttons_object.c	2008-06-09 16:49:33 UTC (rev 15174)
@@ -4832,7 +4832,7 @@
 		uiDefButS(block, NUM, B_PART_RECALC, "Segments:",	butx,(buty-=buth),butw,buth, &part->hair_step, 2.0, 50.0, 0, 0, "Amount of hair segments");
 	}
 	else {
-		uiDefButF(block, NUM, B_PART_INIT, "Sta:",		butx,(buty-=buth),butw,buth, &part->sta, 1.0, part->end, 100, 1, "Frame # to start emitting particles");
+		uiDefButF(block, NUM, B_PART_INIT, "Sta:",		butx,(buty-=buth),butw,buth, &part->sta, -MAXFRAMEF, part->end, 100, 1, "Frame # to start emitting particles");
 		uiDefButF(block, NUM, B_PART_INIT, "End:",		butx,(buty-=buth),butw,buth, &part->end, part->sta, MAXFRAMEF, 100, 1, "Frame # to stop emitting particles");
 	}
 





More information about the Bf-blender-cvs mailing list