aboutsummaryrefslogtreecommitdiff
path: root/pmpd3d_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'pmpd3d_test.c')
-rw-r--r--pmpd3d_test.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/pmpd3d_test.c b/pmpd3d_test.c
index 7d2c116..d5ddf4c 100644
--- a/pmpd3d_test.c
+++ b/pmpd3d_test.c
@@ -15,6 +15,11 @@ int test_3d_mass(int i, t_pmpd3d *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); }
@@ -237,6 +242,11 @@ int test_3d_link(int i, t_pmpd3d *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("forceXSup") )
{
@@ -553,3 +563,51 @@ void pmpd3d_testMassN(t_pmpd3d *x, t_symbol *s, int argc, t_atom *argv)
outlet_anything(x->main_outlet, gensym("testMassN"),3,std_out);
}
+
+void pmpd3d_testLinkNumber(t_pmpd3d *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_3d_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 pmpd3d_testMassNumber(t_pmpd3d *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_3d_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);
+}