From 1746b067d0e786b3d59d0e11ec59a43eb6cbaf79 Mon Sep 17 00:00:00 2001 From: Cyrille Henry Date: Sun, 25 May 2014 16:07:19 +0000 Subject: add massNumber and linkNumber messages svn path=/trunk/externals/pmpd/; revision=17316 --- pmpd2d_stat.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 14 deletions(-) (limited to 'pmpd2d_stat.c') diff --git a/pmpd2d_stat.c b/pmpd2d_stat.c index 260b14d..86dfff0 100644 --- a/pmpd2d_stat.c +++ b/pmpd2d_stat.c @@ -892,7 +892,7 @@ void pmpd2d_linkLengthSpeedStd(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) void pmpd2d_massInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) { t_atom info[11]; - int i, j; + int i; if (argc==0) { @@ -911,15 +911,12 @@ void pmpd2d_massInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) SETFLOAT(&(info[10]), x->mass[i].forceY); outlet_anything(x->main_outlet, gensym("massInfo"), 11, info); } - SETFLOAT(&(info[0]), x->nb_mass); - outlet_anything(x->main_outlet, gensym("massNumber"), 1, info); } else if ((argc==1) && (argv[0].a_type == A_SYMBOL)) { - j=0; for(i=0; i < x->nb_mass; i++) { - if (atom_getsymbolarg(0,argc,argv) == x->mass[j].Id) + if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id) { SETFLOAT(&(info[0]), i); SETSYMBOL(&(info[1]), x->mass[i].Id); @@ -933,11 +930,8 @@ void pmpd2d_massInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) SETFLOAT(&(info[9]), x->mass[i].forceX); SETFLOAT(&(info[10]), x->mass[i].forceY); outlet_anything(x->main_outlet, gensym("massInfo"), 11, info); - j++; } } - SETFLOAT(&(info[0]), j); - outlet_anything(x->main_outlet, gensym("massNumber"), 1, info); } else if ((argc==1) && (argv[0].a_type == A_FLOAT)) { @@ -963,7 +957,7 @@ void pmpd2d_massInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) void pmpd2d_linkInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) { t_atom info[14]; - int i, j, k; + int i, k; if (argc==0) { @@ -1011,10 +1005,9 @@ void pmpd2d_linkInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) } else if ((argc==1) && (argv[0].a_type == A_SYMBOL)) { - j=0; for(i=0; i < x->nb_link; i++) { - if (atom_getsymbolarg(0,argc,argv) == x->link[j].Id) + if (atom_getsymbolarg(0,argc,argv) == x->link[i].Id) { SETFLOAT(&(info[1]), i); SETSYMBOL(&(info[2]), x->link[i].Id); @@ -1053,10 +1046,7 @@ void pmpd2d_linkInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) outlet_anything(x->main_outlet, gensym("linkInfo"), 12, info); } } - j++; } - SETFLOAT(&(info[0]), j); - outlet_anything(x->main_outlet, gensym("linkNumber"), 1, info); } else if ((argc==1) && (argv[0].a_type == A_FLOAT)) { @@ -1102,3 +1092,53 @@ void pmpd2d_linkInfo(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) } } } + +void pmpd2d_massNumber(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) +{ + t_atom info[1]; + int i, j; + + if (argc==0) + { + SETFLOAT(&(info[0]), x->nb_mass); + outlet_anything(x->main_outlet, gensym("massNumber"), 1, info); + } + else if ((argc==1) && (argv[0].a_type == A_SYMBOL)) + { + j=0; + for(i=0; i < x->nb_mass; i++) + { + if (atom_getsymbolarg(0,argc,argv) == x->mass[j].Id) + { + j++; + } + } + SETFLOAT(&(info[0]), j); + outlet_anything(x->main_outlet, gensym("massNumber"), 1, info); + } +} + +void pmpd2d_linkNumber(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) +{ + t_atom info[1]; + int i, j ; + + if (argc==0) + { + SETFLOAT(&(info[0]), x->nb_link); + outlet_anything(x->main_outlet, gensym("linkNumber"), 1, info); + } + else if ((argc==1) && (argv[0].a_type == A_SYMBOL)) + { + j=0; + for(i=0; i < x->nb_link; i++) + { + if (atom_getsymbolarg(0,argc,argv) == x->link[j].Id) + { + j++; + } + } + SETFLOAT(&(info[0]), j); + outlet_anything(x->main_outlet, gensym("linkNumber"), 1, info); + } +} -- cgit v1.2.1