RMenum rmvK3MarchingCubes (RMvertex3D (*appgridfunc)(int i, int j, int k, int isize, int jsize, int ksize, float *baseX, float *baseY, float *baseZ),
		            float (*appdatafunc)(int i, int j, int k, float *data),
			    float (*appdata2func)(int i, int j, int k, float *data),
			    const RMvisMap *vmap,
			    int iusize,
			    int ivsize,
			    int iwsize,
			    float isolevel,
			    RMnode *n,
			    float *baseX,
			    float *baseY,
			    float *baseZ,
			    float *baseData)
 RMvertex3D (*appgridfunc)(int i, int j, int k) - a handle to a
    caller-supplied function that returns an RMvertex3D (x, y, z)
    corresponding to the grid point (i, j, k) (input). float (*appdatafunc)(int i, int j, int k) - a handle to a
    caller-supplied function that returns a float which is the scalar
    value at the grid point (i, j, k) (input). float (*appdata2func)(int i, int j, int k) - a handle to a
    caller-supplied function that returns a float which is the scalar
    value at the grid point (i).  This value is used in conjunction
    with the RMvismap to compute vertex color (input). const RMvisMap *vmap - a handle to an RMvisMap object (input). int iusize, ivsize, iwsize - int specifying the (u, v, w) dimensions
    of the data grid (input). float isolevel - a float specifying the isosurface scalar value
    (input). RMnode *n - a handle to an RMnode (modified). float *baseX, *baseY, *baseZ, *baseData (input) - these are caller-supplied
     pointers to arrays corresponding to the x, y, and z coordinates, and
     the scalar field being isocontoured. These arrays are not modified
     by rmv3KMarchingCubes, but instead are passed to the application-
     supplied callback routines. The objective of these pointers is to
     help alleviate the burden of requiring the application to maintain
     static pointers to data and coordinates.
librmv library source file: rmviso.c