static void restore_blends( buffer_vector<sblend_save>& buffer )
{
	buffer_vector<sblend_save>::iterator i = buffer.begin(), e = buffer.end();
	for(; i != e; ++i )
		(*i).restore();
	buffer.clear();
}
static void save_blends( buffer_vector<sblend_save>& buffer, IKinematicsAnimated& KA )
{
	buffer.clear();
	struct scbl: public IterateBlendsCallback, private boost::noncopyable
	{
		buffer_vector<sblend_save>& _buffer;
		scbl( buffer_vector<sblend_save>& bf ): _buffer( bf ){}
		virtual	void	operator () ( CBlend &B ) 
		{
			sblend_save s;
			s.save( &B );
			_buffer.push_back( s );
		}
	} cbl( buffer );
	KA.LL_IterateBlends( cbl );
}