
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                 Zoom avant                                  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function zoom_avant(handles)

global Qr va zones x_max y_max r_min dx tailles ng_min ng_max NG choix_mapping

   zoom out
   zoom off
   choix_mapping=0;
   afficher(Qr);
   % cadre du zoom
   axes(handles.axes1);
   cadre=floor(getrectangle);
   cadre(1)=cadre(1)-1;
   cadre(2)=cadre(2)-1;
   cadre=cadre*dx;

   % calcul de dx et de r_min
   dxp=dx;
   dx=dxp*sqrt(cadre(3)*cadre(4)/(x_max*y_max));
   r_minp=r_min;
   r_min=r_minp*(dx/dxp);

   % empilement des donnees
   tailles=pile(tailles,Qr,va,x_max,y_max,r_minp,dxp,ng_min,ng_max,zones);
   x_max=cadre(3);
   y_max=cadre(4);

   % calcul du zoom
   messagebox('********************************************************************',...
              'Zoom dans la texture');
   tic;
   [Qr,va,zones]=zcid2d(cadre,dx,r_min,r_minp,va,zones);
   messagebox('La ligne de commande : ',...
              sprintf('zcid2d(%0.2g,%0.2g,%0.2g,%0.2g,%0.2g,%0.2g,%0.2g,va,zones)',cadre,dx,r_min,r_minp));    
   temps=toc;
   messagebox(sprintf('temps de calcul : %f s',temps),'','');

   % affichage de la texture
   [ng_min,ng_max]=niveaux_gris(Qr,NG,cadre/dxp);
   afficher(Qr);
