Update of /cvsroot/pure-data/externals/nusmuk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30132
Modified Files: msd.h Log Message:
Index: msd.h =================================================================== RCS file: /cvsroot/pure-data/externals/nusmuk/msd.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** msd.h 21 Apr 2006 07:54:41 -0000 1.13 --- msd.h 26 Jul 2006 15:03:48 -0000 1.14 *************** *** 13,17 **** Based on pmpd by Cyrille Henry
! Contact : Nicolas Montgermont, montgermont@la-kitchen.fr Cyrille Henry, Cyrille.Henry@la-kitchen.fr
--- 13,17 ---- Based on pmpd by Cyrille Henry
! Contact : Nicolas Montgermont, nicolas@basseslumieres.org Cyrille Henry, Cyrille.Henry@la-kitchen.fr
*************** *** 30,34 **** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! Version 0.07 -- 17.05.2005 */
--- 30,34 ---- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
! Version 0.08 -- 26.07.2006 */
*************** *** 168,174 **** t_float puissance; t_int oriented; //0 : no, 1 : tangential, 2 : normal ! t_float tdirection1[3], tdirection2[3]; ! Link(t_int n,const t_symbol *id,Mass<N> *m1,Mass<N> *m2,t_float k1,t_float d1, t_int o=0, t_float xa=0, t_float ya=0, t_float za=0,t_float pow=1, t_float lmin = 0,t_float lmax = 1e10) : nbr(n),Id(id) , mass1(m1),mass2(m2) --- 168,174 ---- t_float puissance; t_int oriented; //0 : no, 1 : tangential, 2 : normal ! t_float tdirection1[N], tdirection2[N]; ! Link(t_int n,const t_symbol *id,Mass<N> *m1,Mass<N> *m2,t_float k1,t_float d1, t_int o=0, t_float tangent[N]=NULL,t_float pow=1, t_float lmin = 0,t_float lmax = 1e10) : nbr(n),Id(id) , mass1(m1),mass2(m2) *************** *** 176,180 **** , long_min(lmin),long_max(lmax) { ! for (int i=0; i<3; i++) { tdirection1[i] = 0; tdirection2[i] = 0; --- 176,180 ---- , long_min(lmin),long_max(lmax) { ! for (int i=0; i<N; i++) { tdirection1[i] = 0; tdirection2[i] = 0; *************** *** 183,190 **** distance_old = longueur = Mass<N>::dist(*mass1,*mass2); // L[n-1] else if (oriented == 1) { // TANGENTIAL LINK ! const t_float norme = sqrt(sqr(xa)+sqr(ya)+sqr(za)); ! tdirection1[0] = xa/norme; ! tdirection1[1] = ya/norme; ! tdirection1[2] = za/norme; distance_old = 0; for(int i = 0; i < N; ++i) --- 183,193 ---- distance_old = longueur = Mass<N>::dist(*mass1,*mass2); // L[n-1] else if (oriented == 1) { // TANGENTIAL LINK ! t_float norme = 0; ! for(int i = 0; i < N; ++i) norme += sqr(tangent[i]); ! norme = sqrt(norme); ! //t_float norme = sqrt(sqr(xa)+sqr(ya)+sqr(za)); ! for(int i = 0; i < N; ++i)tdirection1[i] = tangent[i]/norme; ! //tdirection1[1] = ya/norme; ! //tdirection1[2] = za/norme; distance_old = 0; for(int i = 0; i < N; ++i) *************** *** 193,197 **** longueur = distance_old; } ! else if (oriented == 2) { // NORMAL LINK 2D if (N >= 2) { const t_float norme = sqrt(sqr(xa)+sqr(ya)); --- 196,200 ---- longueur = distance_old; } ! /*else if (oriented == 2) { // NORMAL LINK 2D if (N >= 2) { const t_float norme = sqrt(sqr(xa)+sqr(ya)); *************** *** 223,227 **** longueur = distance_old; } ! } mass1->links.insert(this); mass2->links.insert(this); --- 226,230 ---- longueur = distance_old; } ! }*/ mass1->links.insert(this); mass2->links.insert(this); *************** *** 747,751 **** GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,0,0,0, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, --- 750,754 ---- GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,NULL, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, *************** *** 769,773 **** GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,0,0,0, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, --- 772,776 ---- GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,NULL, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, *************** *** 790,794 **** GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,0,0,0, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, --- 793,797 ---- GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,NULL, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, *************** *** 815,819 **** GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,0,0,0, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, // Lmin --- 818,822 ---- GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,NULL, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, // Lmin *************** *** 847,851 **** GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,0,0,0, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, --- 850,854 ---- GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 0,NULL, argc >= 6?GetFloat(argv[5]):1, // power argc >= 7?GetFloat(argv[6]):0, *************** *** 868,871 **** --- 871,876 ---- return; } + t_float tangent[N]; + for(int i = 0; i < N; ++i) tangent[i] = GetAFloat(argv[5+i]);
if (IsSymbol(argv[1]) && IsSymbol(argv[2])) { // ID & ID *************** *** 882,889 **** GetAFloat(argv[4]), // D1 1, // tangential ! GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! (N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! (N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! (N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax
); --- 887,899 ---- GetAFloat(argv[4]), // D1 1, // tangential ! tangent, ! argc >= 6+N?GetFloat(argv[5+N]):1, // power ! argc >= 7+N?GetFloat(argv[6+N]):0, // Lmin ! argc >= 8+N?GetFloat(argv[7+N]):1e10 // Lmax ! ! //GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! //(N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! //(N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! //(N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax
); *************** *** 906,917 **** GetAFloat(argv[4]), // D1 1, // tangential ! GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! (N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! (N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! (N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax ); linkids.insert(l); link.insert(id_link++,l); ! outlink(S_iLink,l); } } --- 916,932 ---- GetAFloat(argv[4]), // D1 1, // tangential ! tangent, ! argc >= 6+N?GetFloat(argv[5+N]):1, // power ! argc >= 7+N?GetFloat(argv[6+N]):0, // Lmin ! argc >= 8+N?GetFloat(argv[7+N]):1e10 // Lmax ! ! //GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! //(N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! //(N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! //(N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax ); linkids.insert(l); link.insert(id_link++,l); ! outlink(S_tLink,l); } } *************** *** 927,939 **** GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 1, // tangential ! GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! (N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! (N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! (N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax ); linkids.insert(l); link.insert(id_link++,l); ! outlink(S_iLink,l); } } --- 942,959 ---- GetAFloat(argv[3]), // K1 GetAFloat(argv[4]), // D1 ! 1, ! tangent, // tangential ! argc >= 6+N?GetFloat(argv[5+N]):1, // power ! argc >= 7+N?GetFloat(argv[6+N]):0, // Lmin ! argc >= 8+N?GetFloat(argv[7+N]):1e10 // Lmax ! ! //GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! //(N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! //(N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! //(N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax ); linkids.insert(l); link.insert(id_link++,l); ! outlink(S_tLink,l); } } *************** *** 953,961 **** GetAFloat(argv[4]), // D1 1, // tangential ! GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! (N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! (N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! (N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax ! ); linkids.insert(l); link.insert(id_link++,l); --- 973,986 ---- GetAFloat(argv[4]), // D1 1, // tangential ! tangent, // tangential ! argc >= 6+N?GetFloat(argv[5+N]):1, // power ! argc >= 7+N?GetFloat(argv[6+N]):0, // Lmin ! argc >= 8+N?GetFloat(argv[7+N]):1e10 // Lmax ! ! //GetAFloat(argv[5]),N >= 2?GetAFloat(argv[6]):0,N >= 3?GetAFloat(argv[7]):0, // vector ! //(N==1 && argc >= 7)?GetFloat(argv[6]):((N==2 && argc >= 8)?GetFloat(argv[7]):((N==3 && argc >= 9)?GetFloat(argv[8]):1)), // power ! //(N==1 && argc >= 8)?GetFloat(argv[7]):((N==2 && argc >= 9)?GetFloat(argv[8]):((N==3 && argc >= 10)?GetFloat(argv[9]):0)), // Lmin ! //(N==1 && argc >= 9)?GetFloat(argv[8]):((N==2 && argc >= 10)?GetFloat(argv[9]):((N==3 && argc >= 11)?GetFloat(argv[10]):1e10))// Lmax ! ); linkids.insert(l); link.insert(id_link++,l); *************** *** 967,971 **** // Id, *mass1, *mass2, K1, D1, D2, (Lmin,Lmax) void m_nlink(int argc,t_atom *argv) ! { if (argc < 5+N || argc > 8+N) { error("%s - %s Syntax : Id No/Idmass1 No/Idmass2 K D1 xa%s%s (pow Lmin Lmax)",thisName(),GetString(thisTag()),N >= 2?" ya":"",N >= 3?" za":""); --- 992,996 ---- // Id, *mass1, *mass2, K1, D1, D2, (Lmin,Lmax) void m_nlink(int argc,t_atom *argv) ! {/* if (argc < 5+N || argc > 8+N) { error("%s - %s Syntax : Id No/Idmass1 No/Idmass2 K D1 xa%s%s (pow Lmin Lmax)",thisName(),GetString(thisTag()),N >= 2?" ya":"",N >= 3?" za":""); *************** *** 1070,1074 **** outlink(S_nLink,l); } ! }
// set Id of link(s) named Id or number No --- 1095,1099 ---- outlink(S_nLink,l); } ! */}
// set Id of link(s) named Id or number No