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(a)la-kitchen.fr
Cyrille Henry, Cyrille.Henry(a)la-kitchen.fr
--- 13,17 ----
Based on pmpd by Cyrille Henry
! Contact : Nicolas Montgermont, nicolas(a)basseslumieres.org
Cyrille Henry, Cyrille.Henry(a)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