jit.gl.isosurf
Description
Creates a geometric surface from a volumetric density field. The polygonization occurs at locations where the density values intersect the edges of cells inside a subdivided cartesian grid.
Examples

Discussion
The subdivided grid can be made of either cubes or tetrahedrons, each of which will produce different types of geometric artifacts which may result in a surface which is comparatively better or worse depending on the volume dataset being used.
The jit.gl.isosurf object requires one argument: the name of a drawing context. A named drawing context is a named instance of a jit.window, jit.pwindow, or jit.matrix object that has an instance of the jit.gl.render object associated with it. Additionally it can reference the name of a jit.gl.node sub-context. This value may also be set via the OB3D drawto attribute. If no argument is present, the object is implicitly added to the first valid drawing context or sub-context found in the current patch or by searching up the patcher hierarchy.
Attributes
autocolor [symbol]
The autocolor mode for calculating vertex colors (default = normal) Supported modes are:
none
normal (normal direction)
sample (density values)
Possible values:
'none'
'normal'
'sample'
autonormals [int]
Enables or disables the calculation of normal directions used for calculating lighting (default = 1).
dim [3 ints]
The dimensions of the subdivided grid (default = 20 20 20)
displaylist [int]
Cache in displaylist flag (default = 0) This feature may be used to speed up rendering time by creating and storing a list of gl drawing commands on the graphics card. This will have no effect if matrixoutput turned on.
epsilon [float]
The epsilon value used for determining the delta for sampling normal directions. (default = 0.12)
isolevel [float]
The density threshold for constructing the surface. (default = 1.0)
mode [symbol]
The mode of subdivision (default = cubes) Supported modes are:
cubes
tetra
Possible values:
'cubes'
'tetra'
trianglecount [int]
The number of triangles in the surface mesh. This attribute is useful when drawing with matrixoutput enabled. See the jit.gl.isosurf-matrixoutput example patch for a demonstration.