[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17263] branches/sim_physics/source/ blender/blenkernel/intern/effect.c: * Tweaked the spin force field a bit.

Matt Ebb matt at mke3.net
Sat Nov 1 13:45:20 CET 2008


Revision: 17263
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17263
Author:   broken
Date:     2008-11-01 13:45:19 +0100 (Sat, 01 Nov 2008)

Log Message:
-----------
* Tweaked the spin force field a bit. It worked great for its purpose 
before, but wasn't playing nice with the other force fields (was 
overwriting the velocity rather than acting as a force). This version is 
slightly different, but will work a lot better with other force fields too.

Modified Paths:
--------------
    branches/sim_physics/source/blender/blenkernel/intern/effect.c

Modified: branches/sim_physics/source/blender/blenkernel/intern/effect.c
===================================================================
--- branches/sim_physics/source/blender/blenkernel/intern/effect.c	2008-11-01 11:35:59 UTC (rev 17262)
+++ branches/sim_physics/source/blender/blenkernel/intern/effect.c	2008-11-01 12:45:19 UTC (rev 17263)
@@ -422,18 +422,25 @@
 
 			break;
 		case PFIELD_SPIN:
+		{	
+			float inward[3];
+			
 			Projf(temp, velocity, eff_vel);
-			
 			Crossf(mag_vec,eff_vel,vec_to_part);
+			Crossf(inward, mag_vec, eff_vel);
 
 			Normalize(mag_vec);
 
+			VecSubf(mag_vec, mag_vec, inward);
+			
 			VecMulf(mag_vec,force_val*distance*falloff);
 			VecAddf(mag_vec, mag_vec, temp);
-			
-			VecCopyf(velocity, mag_vec);
-			
+
+			/* compensate for existing velocity */
+			VecSubf(mag_vec, mag_vec, velocity);
+			VecAddf(field,field,mag_vec);
 			break;
+		}
 		case PFIELD_MAGNET:
 			if(planar)
 				VecCopyf(temp,eff_vel);





More information about the Bf-blender-cvs mailing list