### Isosurface

Category

Realization

Function

Computes isosurfaces and contours.

Syntax

    surface = Isosurface(data, value, number, gradient, flag, direction);

Inputs

Name | Type | Default | Description
--- | --- | --- | ---
`data` | scalar field | none | field from which one or more surfaces are to be derived.
`value` | scalar or scalar list | data mean | isosurface value or values
`number` | integer | no default | number of isosurfaces or contours to be computed
`gradient` | vector field | no default | gradient field
`flag` | flag | 1 | 0: normals not computed 1: normals computed
`direction` | integer | -1 | orientation of normals

Outputs

Name | Type | Description
--- | --- | ---
`surface` | field or group | isosurface

Functional Details

This module computes any of the following:

- points (for an input field consisting of lines)
- lines (for a surface input field)
- surfaces (for a volumetric input field).

All positions in the output field are isovalues (i.e., they match a specified value or values).

The module also adds a default color to the output (gray-blue for isosurfaces and yellow for contour lines and points) if the input object is uncolored. If the object is colored, its colors are interpolated in the output object.

A "data" component with the same value as the input `value` is added to the output field.

`data` | is the data object for which an isosurface or contour is to be created.
`value` | is the isovalue or isovalues to be used for computing the isosurface(s) or contour(s). If this parameter is not specified, the module bases it calculations on the value specified by `number` (see below). If neither parameter is specified, the module uses the arithmetic mean of the data input as a default.

`number`

is ignored if `value` has been specified. If that parameter is not specified, the module uses the value of `number` to compute a set of isosurfaces or contours with the following isovalues:

    min + delta, min + (2*delta),..., min - delta

where delta = (max - min)/(`number` + 1), and "max" and "min" are the maximum and minimum data values of the input field.

`gradient`

is the gradient field used to compute normals for shading (see Gradient).

If this parameter is not specified, the module adds normals by computing the gradient internally (`flag` can nullify this behavior; see below).

Note: If only one isosurface is to be computed, it is probably more efficient to have module compute the gradient internally. If many are to be generated, it is probably more efficient to compute the gradient of the entire field once, so that the system can use it for every isosurface.

`flag` | specifies whether normals are to be computed for shading. A setting of 0 (zero) prevents the computation of normals. The default is 1 (one)
`direction` | specifies whether the normals should point against (0, the default) or with (1) the gradient.

Notes:

1. This module adds an attribute called "Isosurface value," which has as its value the isovalue(s) used. To extract this attribute (e.g., for use in a caption for an image), use the Attribute module.
2. For contour lines, this module adds a "fuzz" attribute so that the line will be rendered slightly in front of a coincident surface (see Display).
3. A surface or contour is considered to be undefined if every point in the input volume or surface, respectively, is equal to `value`. In such cases, the module output is an empty field.
4. Isosurface does not accept connection-dependent data.
5. With disjoint data fields, there may be no data crossings (i.e., points along a connection element where the interpolated data value equals the isovalue), even though the isovalue itself falls in the range of the actual data.

Components

Creates new "positions" and "connections" components. For surfaces output, the default is to create a "normals" component. Any component dependent on "positions" is interpolated and placed in the output object.

Example Visual Programs

Many example visual programs use the Isosurface module, including:

    AlternateVisualizations.net
    ContoursAndCaption.net
    InvalidData.net
    MappedIso.net
    Sealevel.net
    UsingIsosurface.net
    SIMPLE/Isosurface.net

See Also

Band, Color, Gradient, Map, SimplifySurface

[ OpenDX Home at IBM | OpenDX.org ]