function  ob = ftore2(az1,az2,el1,el2,daX,daY,daL,daH,x0,y0,z0,or,pr,tp)
% function  ob = ftore2(az1,az2,el1,el2,daX,daY,daL,daH,x0,y0,z0,or,pr,tp)
% az1 = azimut 1
% az2 = azimut 2
% el1 = elévation 1 (bas)
% el2 = elévation 2 (haut)
% daX = demi-axe en x
% daY = demi-axe en y
% daL = demi-axe du tube en largeur
% daH = demi-axe du tube en hauteur
% x0 = position en x
% y0 = position en y
% z0 = position en z
% or = orientation (1=axe X;2=axe Y;3=axe Z) 
% pr = precision (standard=50)
% tp = type (1=surf;2=surfl)

[th,ua]=meshgrid(az1:(az2-az1)/pr:az2,el1:(el2-el1)/pr:el2);
x=(daX+daL*cos(ua)).*cos(th);
y=(daY+daL*cos(ua)).*sin(th);
z=daH*sin(ua);

switch tp
case 1
   switch or
   case 1
      ob=surf(z+x0,x+y0,y+z0);
   case 2
      ob=surf(x+x0,z+y0,y+z0);
   case 3
      ob=surf(x+x0,y+y0,z+z0);
   end   
case 2
   switch or
   case 1
      ob=surfl(z+x0,x+y0,y+z0);
   case 2
      ob=surfl(x+x0,z+y0,y+z0);
   case 3
      ob=surfl(x+x0,y+y0,z+z0);
   end   
end

%© by Cédric Blaser / 27.11.2001