[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24892] trunk/blender/source/blender: Verlet integration method for particles (patch provided by farsthary).

Janne Karhu jhkarh at utu.fi
Wed Nov 25 18:47:02 CET 2009


Revision: 24892
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24892
Author:   jhk
Date:     2009-11-25 18:46:10 +0100 (Wed, 25 Nov 2009)

Log Message:
-----------
Verlet integration method for particles (patch provided by farsthary).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/particle_system.c
    trunk/blender/source/blender/makesdna/DNA_particle_types.h
    trunk/blender/source/blender/makesrna/intern/rna_particle.c

Modified: trunk/blender/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle_system.c	2009-11-25 15:00:29 UTC (rev 24891)
+++ trunk/blender/source/blender/blenkernel/intern/particle_system.c	2009-11-25 17:46:10 UTC (rev 24892)
@@ -2287,6 +2287,9 @@
 		case PART_INT_RK4:
 			steps=4;
 			break;
+		case PART_INT_VERLET:
+			steps=1;
+			break;
 	}
 
 	copy_particle_key(states,&pa->state,1);
@@ -2392,6 +2395,13 @@
 						VECADDFAC(pa->state.vel,pa->state.vel,dv[3],1.0f/6.0f);
 				}
 				break;
+			case PART_INT_VERLET:   /* Verlet integration */
+				VECADDFAC(pa->state.vel,pa->state.vel,force,dtime);
+				VECADDFAC(pa->state.co,pa->state.co,pa->state.vel,dtime);
+
+				VECSUB(pa->state.vel,pa->state.co,pa->prev_state.co);
+				mul_v3_fl(pa->state.vel,1.0f/dtime);
+				break;
 		}
 	}
 

Modified: trunk/blender/source/blender/makesdna/DNA_particle_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_particle_types.h	2009-11-25 15:00:29 UTC (rev 24891)
+++ trunk/blender/source/blender/makesdna/DNA_particle_types.h	2009-11-25 17:46:10 UTC (rev 24892)
@@ -391,6 +391,7 @@
 #define PART_INT_EULER		0
 #define PART_INT_MIDPOINT	1
 #define PART_INT_RK4		2
+#define PART_INT_VERLET		3
 
 /* part->rotmode */
 #define PART_ROT_NOR		1

Modified: trunk/blender/source/blender/makesrna/intern/rna_particle.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_particle.c	2009-11-25 15:00:29 UTC (rev 24891)
+++ trunk/blender/source/blender/makesrna/intern/rna_particle.c	2009-11-25 17:46:10 UTC (rev 24892)
@@ -917,6 +917,7 @@
 
 	static EnumPropertyItem integrator_type_items[] = {
 		{PART_INT_EULER, "EULER", 0, "Euler", ""},
+		{PART_INT_VERLET, "VERLET", 0, "Verlet", ""},
 		{PART_INT_MIDPOINT, "MIDPOINT", 0, "Midpoint", ""},
 		{PART_INT_RK4, "RK4", 0, "RK4", ""},
 		{0, NULL, 0, NULL, NULL}





More information about the Bf-blender-cvs mailing list