[PD-cvs] externals/nusmuk msd.h,1.13,1.14

Nicolas Montgermont nimon at users.sourceforge.net
Wed Jul 26 17:03:50 CEST 2006


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





More information about the Pd-cvs mailing list