aboutsummaryrefslogtreecommitdiff
path: root/pmpd_stat.c
diff options
context:
space:
mode:
Diffstat (limited to 'pmpd_stat.c')
-rw-r--r--pmpd_stat.c70
1 files changed, 54 insertions, 16 deletions
diff --git a/pmpd_stat.c b/pmpd_stat.c
index f41a956..222ccb6 100644
--- a/pmpd_stat.c
+++ b/pmpd_stat.c
@@ -683,7 +683,7 @@ void pmpd_linkLengthSpeedStd(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
void pmpd_massInfo(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
{
t_atom info[8];
- int i, j;
+ int i;
if (argc==0)
{
@@ -699,15 +699,12 @@ void pmpd_massInfo(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
SETFLOAT(&(info[7]), x->mass[i].forceX);
outlet_anything(x->main_outlet, gensym("massInfo"), 8, 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);
@@ -718,11 +715,8 @@ void pmpd_massInfo(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
SETFLOAT(&(info[6]), x->mass[i].speedX);
SETFLOAT(&(info[7]), x->mass[i].forceX);
outlet_anything(x->main_outlet, gensym("massInfo"), 8, 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))
{
@@ -745,7 +739,7 @@ void pmpd_massInfo(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
void pmpd_linkInfo(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
{
t_atom info[14];
- int i, j, k;
+ int i, k;
if (argc==0)
{
@@ -778,15 +772,12 @@ void pmpd_linkInfo(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
outlet_anything(x->main_outlet, gensym("linkInfo"), 12, info);
}
}
- 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)
+ if (atom_getsymbolarg(0,argc,argv) == x->link[i].Id)
{
SETFLOAT(&(info[1]), i);
SETSYMBOL(&(info[2]), x->link[i].Id);
@@ -815,10 +806,7 @@ void pmpd_linkInfo(t_pmpd *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))
{
@@ -854,3 +842,53 @@ void pmpd_linkInfo(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
}
}
}
+
+void pmpd_massNumber(t_pmpd *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 pmpd_linkNumber(t_pmpd *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);
+ }
+}