 SURFL   3-D surface with lighting

    surfl(x,y,Z) plots the colored parametric or non parametric
    surface defined by three arguments.  The view point is specified by the
    'view' property (see below), the light by the 'light' property.
    
    The default location of the light source is the point [1 1 1].
    
    The axis labels are determined by the range of X, Y and Z,
    or by a 'axis' property setting. The color of the surface is
    determined by the matrix C (same size as Z). The entries of
    C are scaled to correspond to the current colormap entries
    
    - When x,y and Z are matrices of the same size, surfl(x,y,Z)
    plots the parametric surface defined by vertices 
    (x(i,j), y(i,j), Z(i,j)).
        
    - When x,y are vector arguments you must have length(x) = n and
    length(y) = m where [m,n] = size(Z).In this case, the vertices
    of the surface lines are the triples (x(j), y(i), Z(i,j)).
    Note that x corresponds to the columns of Z and y corresponds to
    the rows. Examples :
    
    x=linspace(-1,1,20); y=linspace(-2,2,40);
    Z=cos(y'*x);
    
    surfl(x,y,Z);
    
    surfl(x,y,Z,'axis','off','shading','flat');
 
    Note that surfl(Z,C) uses x = 1:n and y = 1:m. 
 
    - When f is a function/macro and x,y are vectors, surf(x,y,f) plots
    the parametric or non parametric surface defined by f. To compute
    the lighting, normals are computed by finite differences of the
    function f. 
    
    	-> if f has the syntax z=f(x,y) then surfl(x,y,f) plots a non
	parametric surface.
	
	-> if f has the syntax [x,y,z]=f(u,v), then surfl(u,v,f) plots
	a parametric surface.
	
	-> surfl(x,y,f),
	
    Examples :
    
    x=linspace(-1,1,20); y=linspace(-2,2,40);
    deff('z=f(x,y)','z=x.^2-y.^2');
        
    surfl(x,y,f,'shading','flat')
    
    u=linspace(0,2*%pi,50);
    v=linspace(0,%pi,25);
    
    deff('[x,y,z]=sphere(u,v)',['x=sin(v).*cos(u)';...
                                'y=sin(v).*sin(u)';...
			        'z=cos(v)']);
 
    surfl(u,v,sphere,'shading','flat','light',[1 0 0]);
 
    See also plot, plot3, surf, colormap, shading, caxis
