aboutsummaryrefslogtreecommitdiff
path: root/pmpd_deprecated.c
diff options
context:
space:
mode:
authorCyrille Henry <nusmuk@users.sourceforge.net>2013-05-01 16:51:34 +0000
committerCyrille Henry <nusmuk@users.sourceforge.net>2013-05-01 16:51:34 +0000
commit6232f4f5cb2302ee569f73ebe7528a51ac4277c1 (patch)
tree7937854e0346a6cb33008867af7c6b74340428c4 /pmpd_deprecated.c
parentcbbf1113a6f90d0ab804bae416a2f61550f8b421 (diff)
code refactorisation, and functionality addition
svn path=/trunk/externals/pmpd/; revision=17110
Diffstat (limited to 'pmpd_deprecated.c')
-rw-r--r--pmpd_deprecated.c350
1 files changed, 350 insertions, 0 deletions
diff --git a/pmpd_deprecated.c b/pmpd_deprecated.c
new file mode 100644
index 0000000..15a969a
--- /dev/null
+++ b/pmpd_deprecated.c
@@ -0,0 +1,350 @@
+void pmpd_massesPosL(t_pmpd *x)
+{
+ int i;
+ t_atom pos_list[x->nb_mass];
+
+ for (i=0; i < x->nb_mass; i++)
+ {
+ SETFLOAT(&(pos_list[i]),x->mass[i].posX);
+ }
+ outlet_anything(x->main_outlet, gensym("massesPosL"),x->nb_mass , pos_list);
+}
+
+void pmpd_massesForcesL(t_pmpd *x)
+{
+ int i;
+ t_atom pos_list[x->nb_mass];
+
+ for (i=0; i< x->nb_mass; i++)
+ {
+ SETFLOAT(&(pos_list[i]),x->mass[i].forceX);
+ }
+ outlet_anything(x->main_outlet, gensym("massesForcesL"),x->nb_mass , pos_list);
+}
+
+void pmpd_massesSpeedsL(t_pmpd *x)
+{
+ int i;
+ t_atom pos_list[x->nb_mass];
+
+ for (i=0; i< x->nb_mass; i++)
+ {
+ SETFLOAT(&(pos_list[i]),x->mass[i].speedX);
+ }
+ outlet_anything(x->main_outlet, gensym("massesSpeedsL"),x->nb_mass , pos_list);
+}
+
+// --------------------------------------------
+
+void pmpd_linksPosL(t_pmpd *x)
+{
+ int i;
+ t_atom pos_list[x->nb_link];
+
+ for (i=0; i < x->nb_link; i++)
+ {
+ SETFLOAT(&(pos_list[i]),(x->link[i].mass1->posX + x->link[i].mass2->posX)/2);
+ }
+ outlet_anything(x->main_outlet, gensym("linksPosXL"),x->nb_link , pos_list);
+}
+
+void pmpd_linksLengthL(t_pmpd *x)
+{
+ int i;
+ t_atom pos_list[x->nb_link];
+
+ for (i=0; i < x->nb_link; i++)
+ {
+ SETFLOAT(&(pos_list[i]),x->link[i].mass2->posX - x->link[i].mass1->posX);
+ }
+ outlet_anything(x->main_outlet, gensym("linksLengthXL"),x->nb_link , pos_list);
+}
+
+void pmpd_linksPosSpeedL(t_pmpd *x)
+{
+ int i;
+ t_atom pos_list[x->nb_link];
+
+ for (i=0; i < x->nb_link; i++)
+ {
+ SETFLOAT(&(pos_list[i]),(x->link[i].mass1->speedX + x->link[i].mass2->speedX)/2);
+ }
+ outlet_anything(x->main_outlet, gensym("linksPosSpeedXL"),x->nb_link , pos_list);
+}
+
+void pmpd_linksLengthSpeedL(t_pmpd *x)
+{
+ int i;
+ t_atom pos_list[x->nb_link];
+
+ for (i=0; i < x->nb_link; i++)
+ {
+ SETFLOAT(&(pos_list[i]),x->link[i].mass2->speedX - x->link[i].mass1->speedX);
+ }
+ outlet_anything(x->main_outlet, gensym("linksLengthSpeedXL"),x->nb_link , pos_list);
+}
+
+// --------------------------------------------
+
+void pmpd_massesPosMean(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
+{
+ t_float sommeX;
+ t_int i,j;
+ t_atom mean[1];
+
+ sommeX = 0;
+ j = 0;
+
+ if ( (argc >= 1) && (argv[0].a_type == A_SYMBOL) )
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ sommeX += x->mass[i].posX;
+ j++;
+ }
+ }
+ }
+ else
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ sommeX += x->mass[i].posX;
+ j++;
+ }
+ }
+
+ sommeX /= j;
+
+ SETFLOAT(&(mean[0]),sommeX);
+
+ outlet_anything(x->main_outlet, gensym("massesPosMean"),1 , mean);
+}
+
+void pmpd_massesPosStd(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
+{
+ t_float sommeX;
+ t_int i,j;
+ t_float stdX;
+ t_atom std_out[1];
+
+ sommeX = 0;
+ stdX = 0;
+ j = 0;
+
+ if ( (argc >= 1) && (argv[0].a_type == A_SYMBOL) )
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ sommeX += x->mass[i].posX;
+ j++;
+ }
+ }
+ sommeX /= j;
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ stdX += sqr(x->mass[i].posX-sommeX);
+ }
+ }
+ }
+ else
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ sommeX += x->mass[i].posX;
+ j++;
+ }
+ sommeX /= j;
+ for (i=0; i< x->nb_mass; i++)
+ {
+ stdX += sqr(x->mass[i].posX-sommeX);
+ }
+ }
+
+ stdX = sqrt(stdX/j);
+
+ SETFLOAT(&(std_out[0]),stdX);
+
+ outlet_anything(x->main_outlet, gensym("massesPosStd"),1 , std_out);
+}
+
+void pmpd_massesForcesMean(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
+{
+ t_float sommeX;
+ t_int i,j;
+ t_atom mean[1];
+
+ sommeX = 0;
+ j = 0;
+
+ if ( (argc >= 1) && (argv[0].a_type == A_SYMBOL) )
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ sommeX += x->mass[i].forceX;
+ j++;
+ }
+ }
+ }
+ else
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ sommeX += x->mass[i].forceX;
+ j++;
+ }
+ }
+
+ sommeX /= j;
+
+ SETFLOAT(&(mean[0]),sommeX);
+
+ outlet_anything(x->main_outlet, gensym("massesForcesMean"),1 , mean);
+}
+
+void pmpd_massesForcesStd(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
+{
+ t_float sommeX;
+ t_int i,j;
+ t_float stdX;
+ t_atom std_out[1];
+
+ sommeX = 0;
+ stdX = 0;
+ j = 0;
+
+ if ( (argc >= 1) && (argv[0].a_type == A_SYMBOL) )
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ sommeX += x->mass[i].forceX;
+ j++;
+ }
+ }
+ sommeX /= j;
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ stdX += sqr(x->mass[i].forceX-sommeX);
+ }
+ }
+ }
+ else
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ sommeX += x->mass[i].forceX;
+ j++;
+ }
+ sommeX /= j;
+ for (i=0; i< x->nb_mass; i++)
+ {
+ stdX += sqr(x->mass[i].forceX-sommeX);
+ }
+ }
+
+ stdX = sqrt(stdX/j);
+
+ SETFLOAT(&(std_out[0]),stdX);
+
+ outlet_anything(x->main_outlet, gensym("massesForcesStd"),1 , std_out);
+}
+
+void pmpd_massesSpeedsMean(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
+{
+ t_float sommeX;
+ t_int i,j;
+ t_atom mean[1];
+
+ sommeX = 0;
+ j = 0;
+
+ if ( (argc >= 1) && (argv[0].a_type == A_SYMBOL) )
+ {
+ for (i=0; i< x->nb_mass; i++)
+
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ sommeX += x->mass[i].speedX;
+ j++;
+ }
+ }
+ }
+ else
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ sommeX += x->mass[i].speedX;
+ j++;
+ }
+ }
+
+ sommeX /= j;
+
+ SETFLOAT(&(mean[0]),sommeX);
+
+ outlet_anything(x->main_outlet, gensym("massesSpeedsMean"),1 , mean);
+}
+
+void pmpd_massesSpeedsStd(t_pmpd *x, t_symbol *s, int argc, t_atom *argv)
+{
+ t_float sommeX;
+ t_int i,j;
+ t_float stdX;
+ t_atom std_out[1];
+
+ sommeX = 0;
+ stdX = 0;
+ j = 0;
+
+ if ( (argc >= 1) && (argv[0].a_type == A_SYMBOL) )
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ sommeX += x->mass[i].speedX;
+ j++;
+ }
+ }
+ sommeX /= j;
+ for (i=0; i< x->nb_mass; i++)
+ {
+ if (atom_getsymbolarg(0,argc,argv) == x->mass[i].Id)
+ {
+ stdX += sqr(x->mass[i].speedX-sommeX);
+ }
+ }
+ }
+ else
+ {
+ for (i=0; i< x->nb_mass; i++)
+ {
+ sommeX += x->mass[i].speedX;
+ j++;
+ }
+ sommeX /= j;
+ for (i=0; i< x->nb_mass; i++)
+ {
+ stdX += sqr(x->mass[i].speedX-sommeX);
+ }
+ }
+
+ stdX = sqrt(stdX/j);
+
+ SETFLOAT(&(std_out[0]),stdX);
+
+ outlet_anything(x->main_outlet, gensym("massesSpeedsStd"),1 , std_out);
+}
+