#declare F1= function(u,v){cos(u)} 
#declare F2= function(u,v){sin(u)} 
#declare F3= function(u,v){v}
//---------------------------------------------------------------------------------------------------
#include "meshmaker.inc"
//---------------------------------------------------------------------------------------------------
object{ //-------------------------------------------------------------------------------------------
   Parametric( //(Fx,Fy, Fz, <UVmin>, <UVmax>, Iter_U, Iter_V, FileName)
               // Builds a parametric surface out of three given functions. 
               // The uv_coordinates for texturing the surface come from the square <0,0> - <1,1>. 
      F1, F2, F3, //three functions from which the object will be generated. 
        // Following 2 vectors are the range within which the surface is calculated: 
      <   0, -1>, // 2-D vector that gives the lower boundaries of the uv-rectangle, <u min, v min>. 
      <2*pi,  1>, // 2-D vector that gives the upper boundaries of the uv-rectangle. 
      250, // 
      250, //
       ""  // FileName: ""= non, "NAME.obj'= Wavefront objectfile, "NAME.pcm" compressed mesh file 
           // "NAME.arr" = include file with arrays to build a mesh2 from, 
           //  others: includefile with a mesh2 object 
   ) //----------------------------------------------------------------------------------------------
   interior_texture {  //  outside texture
     uv_mapping
     pigment {checker color rgb <0.0,0.2,0.5> rgb <1,1,1> scale <0.02,0.05,1>}
     finish{specular 0.5}
   } // 
   texture{            // inside texture
     uv_mapping
     pigment {checker color rgb <0.0,0,0.0> rgb <1,0.7,0.7> scale <0.02,0.05,1>}
     finish{specular 0.5}
   } // 
   //rotate <90,0,0>
   //scale<2,1,2>
   //translate< 0,1,0>
} // end of object 
//---------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------
