function []=print_path(nx,ny,rect,G,s_start,s_end,path,color)
%
% Affichage de la grille et de(s) chemin(s) 2D/3D
% 
% rect : dimension de la grille
%
% path : liste des chemins à afficher 
%        path{1} : vecteur des sommets du 1er chemin
%        path{2} : vecteur des sommets du 2eme chemin
%          ...
% color: liste des couleurs (chaine de caractères) associées aux chemins 
%        à afficher
%--------------------------------------------------------------------------
    clf();
    dim=size(G.xy,2);
    %-------
    % cas 2D
    %-------
    if dim==2
    
        plot(G.xy(:,1),G.xy(:,2),'x','MarkerSize',10); 
        hold on
        plot(G.xy(s_start,1),G.xy(s_start,2),'oblack','MarkerSize',10,'LineWidth',2);
        plot(G.xy(s_end,1),G.xy(s_end,2),'or','MarkerSize',10,'LineWidth',2);
        axis(rect);
        axis equal

        % Affichage des chemins 
        for n=1:numel(path);

          for i=1:numel(path{n})-1
              k=[path{n}(i) path{n}(i+1)];
              plot(G.xy(k,1), G.xy(k,2),'Color',color{n},'LineWidth',2);
              pause(0.5/numel(path{n}));
          end

        end

    else
        %-------
        % Cas 3D
        %-------
        X=reshape(G.xy(:,1),nx,ny);
        Y=reshape(G.xy(:,2),nx,ny);
        Z=reshape(G.xy(:,3),nx,ny);
        h=surf(X,Y,Z);
        %shading interp
        colormap hot
        
        hold on

        plot3(G.xy(s_start,1),G.xy(s_start,2),G.xy(s_start,3),'oblack',...
              'MarkerFaceColor','black','MarkerSize',10,'LineWidth',2);
        plot3(G.xy(s_end,1),G.xy(s_end,2),G.xy(s_end,3),'oblue',...
              'MarkerFaceColor','blue','MarkerSize',10,'LineWidth',2);

        for n=1:numel(path);

          for i=1:numel(path{n})-1
              k=[path{n}(i) path{n}(i+1)];
              plot3(G.xy(k,1), G.xy(k,2),G.xy(k,3),'Color',color{n},'LineWidth',2);
              pause(0.5/numel(path{n}));
          end

        end

    end
    
    hold off
end
