From 6232f4f5cb2302ee569f73ebe7528a51ac4277c1 Mon Sep 17 00:00:00 2001 From: Cyrille Henry Date: Wed, 1 May 2013 16:51:34 +0000 Subject: code refactorisation, and functionality addition svn path=/trunk/externals/pmpd/; revision=17110 --- pmpd_deprecated.c | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100644 pmpd_deprecated.c (limited to 'pmpd_deprecated.c') 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); +} + -- cgit v1.2.1