diff options
author | Cyrille Henry <nusmuk@users.sourceforge.net> | 2014-04-28 16:49:22 +0000 |
---|---|---|
committer | Cyrille Henry <nusmuk@users.sourceforge.net> | 2014-04-28 16:49:22 +0000 |
commit | 0aa39cc81322e16fd80df47e2e66db225ee6998d (patch) | |
tree | 11f2b75e17acdeae8846f6bacc06285751ec8be2 /pmpd2d_test.c | |
parent | 68d7a81d39c61decaa08055defa75d9e7942da02 (diff) |
add new test options
svn path=/trunk/externals/pmpd/; revision=17301
Diffstat (limited to 'pmpd2d_test.c')
-rw-r--r-- | pmpd2d_test.c | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/pmpd2d_test.c b/pmpd2d_test.c index a73d43e..54c8023 100644 --- a/pmpd2d_test.c +++ b/pmpd2d_test.c @@ -1,7 +1,7 @@ int test_2d_mass(int i, t_pmpd2d *x, int argc, t_atom *argv) { t_float tmp; - t_int j = 1; + t_int j = 1, k; while (j < argc) { if (argv[j].a_type != A_SYMBOL) @@ -119,6 +119,66 @@ int test_2d_mass(int i, t_pmpd2d *x, int argc, t_atom *argv) if ( x->mass[i].forceY >= atom_getfloatarg(j+1,argc,argv) ) { return(0); } j+=2; } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkSup") ) + { // link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].mass1->num == x->mass[i].num) || (x->link[k].mass2->num == x->mass[i].num) ) tmp++; + } + if ( tmp <= atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkInf") ) + { // link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].mass1->num == x->mass[i].num) || (x->link[k].mass2->num == x->mass[i].num) ) tmp++; + } + if ( tmp >= atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkEqual") ) + { // link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].mass1->num == x->mass[i].num) || (x->link[k].mass2->num == x->mass[i].num) ) tmp++; + } + if ( tmp != atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkNameSup") ) + { // link name, link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].Id == atom_getsymbolarg(j+1,argc,argv)) && ((x->link[k].mass2->num == x->mass[i].num) || (x->link[k].mass1->num == x->mass[i].num)) ) tmp++; + } + if ( tmp <= atom_getfloatarg(j+2,argc,argv) ) { return(0); } + j+=3; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkNameInf") ) + { // link name, link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].Id == atom_getsymbolarg(j+1,argc,argv)) && ((x->link[k].mass2->num == x->mass[i].num) || (x->link[k].mass1->num == x->mass[i].num)) ) tmp++; + } + if ( tmp >= atom_getfloatarg(j+2,argc,argv) ) { return(0); } + j+=3; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkNameEqual") ) + { // link name, link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].Id == atom_getsymbolarg(j+1,argc,argv)) && ((x->link[k].mass2->num == x->mass[i].num) || (x->link[k].mass1->num == x->mass[i].num)) ) tmp++; + } + if ( tmp != atom_getfloatarg(j+2,argc,argv) ) { return(0); } + j+=3; + } else { pd_error(x, "Option \"%s\" not reconized, stoping test",atom_getsymbolarg(j,argc,argv)->s_name); |