diff options
author | Cyrille Henry <nusmuk@users.sourceforge.net> | 2014-11-05 23:27:29 +0000 |
---|---|---|
committer | Cyrille Henry <nusmuk@users.sourceforge.net> | 2014-11-05 23:27:29 +0000 |
commit | cc47441c1922f219064c174f46b1fe50aa504fd0 (patch) | |
tree | 96b36aa51ed8963c043aa564e3e137f7f46c1b8f /pmpd2d_test.c | |
parent | 81e8cc778c2bcf80d82c4fe8b40d88a39db968a2 (diff) |
new test parametter (active for link and mobile for masses)
new testLinkNumber, or testMassNumber to get only number of link/masses that pass the test
svn path=/trunk/externals/pmpd/; revision=17370
Diffstat (limited to 'pmpd2d_test.c')
-rw-r--r-- | pmpd2d_test.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pmpd2d_test.c b/pmpd2d_test.c index 092dd31..74dd844 100644 --- a/pmpd2d_test.c +++ b/pmpd2d_test.c @@ -17,6 +17,11 @@ int test_2d_mass(int i, t_pmpd2d *x, int argc, t_atom *argv) if ( x->mass[i].Id != atom_getsymbolarg(j+1,argc,argv) ) { return(0); } j+=2; } + else if (atom_getsymbolarg(j,argc,argv) == gensym("mobile") ) + { + if ( x->mass[i].mobile != atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } else if (atom_getsymbolarg(j,argc,argv) == gensym("posXSup") ) { if ( x->mass[i].posX < atom_getfloatarg(j+1,argc,argv) ) { return(0); } @@ -210,6 +215,11 @@ int test_2d_link(int i, t_pmpd2d *x, int argc, t_atom *argv) if ( x->link[i].Id != atom_getsymbolarg(j+1,argc,argv) ) { return(0); } j+=2; } + else if (atom_getsymbolarg(j,argc,argv) == gensym("active") ) + { + if ( x->link[i].active != atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } else if (atom_getsymbolarg(j,argc,argv) == gensym("lengthSup") ) { if ( x->link[i].distance < atom_getfloatarg(j+1,argc,argv) ) { return(0); } @@ -503,3 +513,51 @@ void pmpd2d_testMassN(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) outlet_anything(x->main_outlet, gensym("testMassN"),3,std_out); } + +void pmpd2d_testLinkNumber(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) +{ + t_int i, tmp, nb; + t_atom std_out[2]; + + SETSYMBOL(&(std_out[0]),atom_getsymbolarg(0,argc,argv)); + + nb=0; + for (i=0; i < x->nb_link; i++) + { + tmp=test_2d_link(i,x,argc,argv); + if (tmp == -1) + { + break; + } + else if (tmp) + { + nb++; + } + } + SETFLOAT(&(std_out[1]),nb); + outlet_anything(x->main_outlet, gensym("testLinkNumber"),2,std_out); +} + +void pmpd2d_testMassNumber(t_pmpd2d *x, t_symbol *s, int argc, t_atom *argv) +{ + t_int i, tmp, nb; + t_atom std_out[2]; + + SETSYMBOL(&(std_out[0]),atom_getsymbolarg(0,argc,argv)); + + nb = 0; + for (i=0; i < x->nb_mass; i++) + { + tmp=test_2d_mass(i,x,argc,argv); + if (tmp == -1) + { + break; + } + else if (tmp) + { + nb++; + } + } + SETFLOAT(&(std_out[1]),nb); + outlet_anything(x->main_outlet, gensym("testMassNumber"),2,std_out); +} |