From 741b5147f2774523ec152f78f5b40095fb5beb61 Mon Sep 17 00:00:00 2001 From: "N.N." Date: Tue, 7 Sep 2010 16:21:33 +0000 Subject: svn path=/trunk/externals/nusmuk/; revision=13980 --- msd.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/msd.h b/msd.h index f278b0d..1d4b46b 100644 --- a/msd.h +++ b/msd.h @@ -134,7 +134,13 @@ public: { for(int i = 0; i < N; ++i) { t_float pold = pos[i]; - t_float pnew = force[i] * invM + 2*pold - pos2[i]; // x[n] =Fx[n]/M+2x[n]-x[n-1] + t_float pnew; + if(invM) // if mass is mobile + pnew = force[i] * invM + 2*pold - pos2[i]; // x[n] =Fx[n]/M+2x[n]-x[n-1] + else // if mass is fixed + pnew = pos[i]; + + // check limit if(pnew < limit[i][0]) pnew = limit[i][0]; else if(pnew > limit[i][1]) pnew = limit[i][1]; speed[i] = (pos[i] = pnew) - (pos2[i] = pold); // x[n-2] = x[n-1], x[n-1] = x[n],vx[n] = x[n] - x[n-1] -- cgit v1.2.1