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 /pmpd3d_test.c | |
parent | 68d7a81d39c61decaa08055defa75d9e7942da02 (diff) |
add new test options
svn path=/trunk/externals/pmpd/; revision=17301
Diffstat (limited to 'pmpd3d_test.c')
-rw-r--r-- | pmpd3d_test.c | 62 |
1 files changed, 61 insertions, 1 deletions
diff --git a/pmpd3d_test.c b/pmpd3d_test.c index 728afbf..a8baae6 100644 --- a/pmpd3d_test.c +++ b/pmpd3d_test.c @@ -1,7 +1,7 @@ int test_3d_mass(int i, t_pmpd3d *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) @@ -149,6 +149,66 @@ int test_3d_mass(int i, t_pmpd3d *x, int argc, t_atom *argv) if ( x->mass[i].forceZ >= 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); |