[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17228] branches/sim_physics/source/ blender: * Added a new, slightly experimental force field type: 'Spin'.

Matt Ebb matt at mke3.net
Thu Oct 30 10:26:30 CET 2008


Revision: 17228
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17228
Author:   broken
Date:     2008-10-30 10:26:30 +0100 (Thu, 30 Oct 2008)

Log Message:
-----------
* Added a new, slightly experimental force field type: 'Spin'.
It works similarly to Vortex, but it's a more controllable - it 
doesn't send the particles off accelerating into space, but 
keeps them spinning around the Z axis of the force field object.

This is safe in the branch, but Jahka if you have any feedback, 
I'd be curious to hear :)

Modified Paths:
--------------
    branches/sim_physics/source/blender/blenkernel/intern/effect.c
    branches/sim_physics/source/blender/makesdna/DNA_object_force.h
    branches/sim_physics/source/blender/src/buttons_object.c

Modified: branches/sim_physics/source/blender/blenkernel/intern/effect.c
===================================================================
--- branches/sim_physics/source/blender/blenkernel/intern/effect.c	2008-10-30 08:10:19 UTC (rev 17227)
+++ branches/sim_physics/source/blender/blenkernel/intern/effect.c	2008-10-30 09:26:30 UTC (rev 17228)
@@ -421,6 +421,19 @@
 			VecAddf(field,field,mag_vec);
 
 			break;
+		case PFIELD_SPIN:
+			Projf(temp, velocity, eff_vel);
+			
+			Crossf(mag_vec,eff_vel,vec_to_part);
+
+			Normalize(mag_vec);
+
+			VecMulf(mag_vec,force_val*distance*falloff);
+			VecAddf(mag_vec, mag_vec, temp);
+			
+			VecCopyf(velocity, mag_vec);
+			
+			break;
 		case PFIELD_MAGNET:
 			if(planar)
 				VecCopyf(temp,eff_vel);

Modified: branches/sim_physics/source/blender/makesdna/DNA_object_force.h
===================================================================
--- branches/sim_physics/source/blender/makesdna/DNA_object_force.h	2008-10-30 08:10:19 UTC (rev 17227)
+++ branches/sim_physics/source/blender/makesdna/DNA_object_force.h	2008-10-30 09:26:30 UTC (rev 17228)
@@ -210,6 +210,7 @@
 #define PFIELD_HARMONIC	7
 #define PFIELD_CHARGE	8
 #define PFIELD_LENNARDJ	9
+#define PFIELD_SPIN		10
 
 
 /* pd->flag: various settings */

Modified: branches/sim_physics/source/blender/src/buttons_object.c
===================================================================
--- branches/sim_physics/source/blender/src/buttons_object.c	2008-10-30 08:10:19 UTC (rev 17227)
+++ branches/sim_physics/source/blender/src/buttons_object.c	2008-10-30 09:26:30 UTC (rev 17228)
@@ -3409,8 +3409,8 @@
 				sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Curve Guide%%x%d|Magnetic%%x%d|Harmonic%%x%d|Texture%%x%d|Charge%%x%d|Lennard-Jones%%x%d", 
 						PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_GUIDE, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_TEXTURE, PFIELD_CHARGE, PFIELD_LENNARDJ);
 			else
-				sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Magnetic%%x%d|Harmonic%%x%d|Texture%%x%d|Charge%%x%d|Lennard-Jones%%x%d", 
-						PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_TEXTURE, PFIELD_CHARGE, PFIELD_LENNARDJ);
+				sprintf(menustr, "Field Type%%t|None%%x0|Spherical%%x%d|Wind%%x%d|Vortex%%x%d|Spin%%x%d|Magnetic%%x%d|Harmonic%%x%d|Texture%%x%d|Charge%%x%d|Lennard-Jones%%x%d", 
+						PFIELD_FORCE, PFIELD_WIND, PFIELD_VORTEX, PFIELD_SPIN, PFIELD_MAGNET, PFIELD_HARMONIC, PFIELD_TEXTURE, PFIELD_CHARGE, PFIELD_LENNARDJ);
 
 			if(pd->forcefield==PFIELD_FORCE) tipstr= "Object center attracts or repels particles (On shared object layers)";
 			else if(pd->forcefield==PFIELD_WIND) tipstr= "Constant force applied in direction of Object Z axis (On shared object layers)";





More information about the Bf-blender-cvs mailing list