KB_ISOSURFACE

The KB_ISOSURFACE procedure computes an isosurface from a volume, using a tracking algorithm. Given a seedpoint, the algorithm computes the connected isosurface passing through that point. This is much faster than "marching" through the entire volume. If desired, decimation of isosurface triangles is performed, yielding a simplified surface that contains fewer triangles.
 

SYNTAX

KB_ISOSURFACE, volume, seedpoint, outverts
       [, /ISOVALUE, /DECIMATE, MAX_MERGE = value, PERCENT_VERTICES = value]
 

ARGUMENTS

Volume
Input three-dimensional array of scalars which are to be contoured.

Seedpoint
Input [x, y, z] array of floating point coordinates of the seedpoint through which the isosurface must pass.

Outverts
Output [3, n] array of floating point vertices making up the triangle surfaces.

KEYWORDS

ISOVALUE
Set this keyword to a scalar value. This value specifies the constant-density surface (isosurface) to be extracted. If this keyword is not specified, the data value at the seed-point is used as the isovalue.

DECIMATE
Set this keyword to output a decimated isosurface. Based on the merge-factor specified by the MAX_MERGE keyword, cells in the volume grid are grouped together to yield fewer large triangles (wherever possible).

MAX_MERGE
Set this keyword to an integral power of 2 (i.e. 1, 2, 4, 8 etc.). This value represents the degree of "grouping" allowed while merging triangles of the isosurface during decimation. The larger this value, the greater is the decimation, and more simplified is the isosurface. A value of 1 is equivalent to setting DECIMATE=0. The value is clamped to the power of 2 that is greater than or equal to the largest dimension of the volume. The default value is 2.

PERCENT_VERTICES
Set this keyword to a named variable that will contain the percentage of retained vertices after decimation (if any).

Download DLM, sample IDL application for Windows (56 Kb)
Download sample data (courtesy CAS Technologies)(822 Kb)


In case of problems downloading, or any other queries/feedback, send mail to: clunis_immensus@hotmail.com