aboutsummaryrefslogtreecommitdiff
path: root/pmpd2d_various.c
diff options
context:
space:
mode:
authorCyrille Henry <nusmuk@users.sourceforge.net>2013-05-09 10:19:08 +0000
committerCyrille Henry <nusmuk@users.sourceforge.net>2013-05-09 10:19:08 +0000
commite1c925662babea0dc0c6ecda552d244b9039dc70 (patch)
tree5a031ac358331235c2bae565ba3729a31150cb31 /pmpd2d_various.c
parent3c3878f5ed455573123ebe61dce9601df8dab35f (diff)
add distance X, Y and Z in massDistance for pmpd 2d and 3d
svn path=/trunk/externals/pmpd/; revision=17118
Diffstat (limited to 'pmpd2d_various.c')
-rw-r--r--pmpd2d_various.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/pmpd2d_various.c b/pmpd2d_various.c
index c6151cf..8a33f5d 100644
--- a/pmpd2d_various.c
+++ b/pmpd2d_various.c
@@ -289,19 +289,21 @@ void pmpd2d_closestMass(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv)// t_fl
void pmpd2d_massDistances_f_f(t_pmpd2d *x, t_int i, t_int j)
{
- t_float dist, tmp;
- t_atom to_out[3];
+ t_float dist, tmp, dx, dy;
+ t_atom to_out[5];
- tmp = x->mass[i].posX - x->mass[j].posX;
- dist = sqr(tmp);
- tmp = x->mass[i].posY - x->mass[j].posY;
- dist += sqr(tmp);
+
+ dx = x->mass[i].posX - x->mass[j].posX;
+ dy = x->mass[i].posY - x->mass[j].posY;
+ dist = sqr(dx) + sqr(dy);
dist = sqrt(dist);
SETFLOAT(&(to_out[0]), i);
SETFLOAT(&(to_out[1]), j);
- SETFLOAT(&(to_out[2]), dist);
- outlet_anything(x->main_outlet, gensym("distance"), 3, to_out);
+ SETFLOAT(&(to_out[2]), dx);
+ SETFLOAT(&(to_out[3]), dy);
+ SETFLOAT(&(to_out[4]), dist);
+ outlet_anything(x->main_outlet, gensym("distance"), 5, to_out);
}
void pmpd2d_massDistances(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv)