asymptote: smoothcontour3

 
 8.38 'smoothcontour3'
 =====================
 
 This module, written by Charles Staats, draws implicitly defined
 surfaces with smooth appearance.  The purpose of this module is similar
 to that of 'contour3': given a real-valued function f(x,y,z), construct
 the surface described by the equation f(x,y,z) = 0.  The
 'smoothcontour3' module generally produces nicer results than
 'contour3', but takes longer to compile.  Additionally, the algorithm
 assumes that the function and the surface are both smooth; if they are
 not, then 'contour3' may be a better choice.
 
    To construct the null surface of a function 'f(triple)' or
 'ff(real,real,real)' over 'box(a,b)', use the routine
 surface implicitsurface(real f(triple)=null,
                         real ff(real,real,real)=null,
                         triple a,
                         triple b,
                         int n=nmesh,
                         bool keyword overlapedges=false,
                         int keyword nx=n,
                         int keyword ny=n,
                         int keyword nz=n,
                         int keyword maxdepth=8,
                         bool usetriangles=true);
 The optional parameter 'overlapedges' attempts to compensate for an
 artifact that can cause the renderer to "see through" the boundary
 between patches.  Although it defaults to 'false', it should usually be
 set to 'true'.  The example 'genustwo.asy' illustrates the use of this
 function.  Additional examples, together with a more in-depth
 explanation of the module's usage and pitfalls, are available at
 <https://github.com/charlesstaats/smoothcontour3>.