[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