[PD-cvs] externals/nusmuk msd.h,1.7,1.8

Nicolas Montgermont nimon at users.sourceforge.net
Mon May 9 16:12:24 CEST 2005


Update of /cvsroot/pure-data/externals/nusmuk
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18370

Modified Files:
	msd.h 
Log Message:
bugs fixed and lists methods ordered



Index: msd.h
===================================================================
RCS file: /cvsroot/pure-data/externals/nusmuk/msd.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** msd.h	4 May 2005 16:12:09 -0000	1.7
--- msd.h	9 May 2005 14:12:19 -0000	1.8
***************
*** 336,340 ****
  	
  	t_float limit[N][2];			// Limit values
! 	unsigned int id_mass, id_link, mouse_grab, nearest_mass;
  
  // ---------------------------------------------------------------  RESET 
--- 336,340 ----
  	
  	t_float limit[N][2];			// Limit values
! 	unsigned int id_mass, id_link, mouse_grab, nearest_mass, link_deleted, mass_deleted;
  
  // ---------------------------------------------------------------  RESET 
***************
*** 473,480 ****
  		}
  		
! 		t_mass *m = mass.remove(GetAInt(argv[0]));
  		if(m) {
  			// Delete all associated links 
! 			for(typename std::vector<t_link *>::iterator it = m->links.begin(); it != m->links.end(); ++it)
  				deletelink(*it);
  			outmass(S_Mass_deleted,m);
--- 473,480 ----
  		}
  		
! 		t_mass *m = mass.find(GetAInt(argv[0]));
  		if(m) {
  			// Delete all associated links 
! 			for(typename std::vector<t_link *>::iterator it = m->links.begin(); it < m->links.end(); ++it)
  				deletelink(*it);
  			outmass(S_Mass_deleted,m);
***************
*** 482,485 ****
--- 482,486 ----
  			mass.remove(m->nbr);
  			delete m;
+ 			mass_deleted = 1;
  		}
  		else
***************
*** 678,683 ****
  		
  		t_link *l = link.find(GetAInt(argv[0]));
! 		if(l)
  			deletelink(l);
  		else {
  			error("%s - %s : Index not found",thisName(),GetString(thisTag()));
--- 679,686 ----
  		
  		t_link *l = link.find(GetAInt(argv[0]));
! 		if(l)	{
  			deletelink(l);
+ 			link_deleted = 1;
+ 		}
  		else {
  			error("%s - %s : Index not found",thisName(),GetString(thisTag()));
***************
*** 838,860 ****
  	// List of masses positions on first outlet
  	void m_mass_dumpl()
! 	{	
! 		int sz = mass.size();
! 		NEWARR(t_atom,sortie,sz*N);
! 		t_atom *s = sortie;
! 		for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 			for(int i = 0; i < N; ++i) SetFloat(*(s++),mit.data()->pos[i]);
! 		ToOutAnything(0, S_massesPosL, sz*N, sortie);
! 		DELARR(sortie);
  	}
  	// List of masses x positions on first outlet
  	void m_mass_dump_xl()
  	{	
! 		int sz = mass.size();
! 		NEWARR(t_atom,sortie,sz);
! 		t_atom *s = sortie;
! 		for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 			SetFloat(*(s++),mit.data()->pos[0]);
! 		ToOutAnything(0, S_massesPosXL, sz, sortie);
! 		DELARR(sortie);
  	}
  
--- 841,872 ----
  	// List of masses positions on first outlet
  	void m_mass_dumpl()
! 	{
! 		if (mass_deleted ==0)	{
! 			int sz = mass.size();
! 			NEWARR(t_atom,sortie,sz*N);
! 			t_atom *s = sortie;
! 			for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 				for(int i = 0; i < N; ++i) SetFloat(s[mit.data()->nbr*N+i],mit.data()->pos[i]);
! 			ToOutAnything(0, S_massesPosL, sz*N, sortie);
! 			DELARR(sortie);
! 		}
! 		else
! 			error("%s - %s : Message Forbidden when deletion is used",thisName(),GetString(thisTag()));
  	}
+ 
  	// List of masses x positions on first outlet
  	void m_mass_dump_xl()
  	{	
! 		if (mass_deleted ==0)	{
! 			int sz = mass.size();
! 			NEWARR(t_atom,sortie,sz);
! 			t_atom *s = sortie;
! 			for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 				SetFloat(s[mit.data()->nbr],mit.data()->pos[0]);
! 			ToOutAnything(0, S_massesPosXL, sz, sortie);
! 			DELARR(sortie);
! 		}
! 		else
! 			error("%s - %s : Message Forbidden when deletion is used",thisName(),GetString(thisTag()));
  	}
  
***************
*** 862,872 ****
  	void m_mass_dump_yl()
  	{	
! 		int sz = mass.size();
! 		NEWARR(t_atom,sortie,sz);
! 		t_atom *s = sortie;
! 		for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 			SetFloat(*(s++),mit.data()->pos[1]);
! 		ToOutAnything(0, S_massesPosYL, sz, sortie);
! 		DELARR(sortie);
  	}
  
--- 874,888 ----
  	void m_mass_dump_yl()
  	{	
! 		if (mass_deleted ==0)	{
! 			int sz = mass.size();
! 			NEWARR(t_atom,sortie,sz);
! 			t_atom *s = sortie;
! 			for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 				SetFloat(s[mit.data()->nbr],mit.data()->pos[1]);
! 			ToOutAnything(0, S_massesPosYL, sz, sortie);
! 			DELARR(sortie);
! 		}
! 		else
! 			error("%s - %s : Message Forbidden when deletion is used",thisName(),GetString(thisTag()));
  	}
  
***************
*** 874,884 ****
  	void m_mass_dump_zl()
  	{	
! 		int sz = mass.size();
! 		NEWARR(t_atom,sortie,sz);
! 		t_atom *s = sortie;
! 		for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 			SetFloat(*(s++),mit.data()->pos[2]);
! 		ToOutAnything(0, S_massesPosZL, sz, sortie);
! 		DELARR(sortie);
  	}
  
--- 890,904 ----
  	void m_mass_dump_zl()
  	{	
! 		if (mass_deleted ==0)	{
! 			int sz = mass.size();
! 			NEWARR(t_atom,sortie,sz);
! 			t_atom *s = sortie;
! 			for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 				SetFloat(s[mit.data()->nbr],mit.data()->pos[2]);
! 			ToOutAnything(0, S_massesPosZL, sz, sortie);
! 			DELARR(sortie);
! 		}
! 		else
! 			error("%s - %s : Message Forbidden when deletion is used",thisName(),GetString(thisTag()));
  	}
  
***************
*** 886,896 ****
  	void m_force_dumpl()
  	{	
! 		int sz = mass.size();
! 		NEWARR(t_atom,sortie,sz*N);
! 		t_atom *s = sortie;
! 		for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 			for(int i = 0; i < N; ++i) SetFloat(*(s++),mit.data()->out_force[i]);
! 		ToOutAnything(0, S_massesForcesL, sz*N, sortie);
! 		DELARR(sortie);
  	}
  
--- 906,920 ----
  	void m_force_dumpl()
  	{	
! 		if (mass_deleted ==0)	{
! 			int sz = mass.size();
! 			NEWARR(t_atom,sortie,sz*N);
! 			t_atom *s = sortie;
! 			for(typename IndexMap<t_mass *>::iterator mit(mass); mit; ++mit)
! 				for(int i = 0; i < N; ++i) SetFloat(s[mit.data()->nbr*N+i],mit.data()->out_force[i]);
! 			ToOutAnything(0, S_massesForcesL, sz*N, sortie);
! 			DELARR(sortie);
! 		}
! 		else
! 			error("%s - %s : Message Forbidden when deletion is used",thisName(),GetString(thisTag()));
  	}
  
***************
*** 919,923 ****
  		mass.reset();
  		
! 		id_mass = id_link = mouse_grab = 0;
  	}
  	
--- 943,947 ----
  		mass.reset();
  		
! 		id_mass = id_link = mouse_grab = mass_deleted = link_deleted = 0;
  	}
  	





More information about the Pd-cvs mailing list