isosurface


Synopsis

The isosurface module creates a surface of constant value.

Input Ports

in_field

Mesh + Node_Data

ui_parent

user interface parent object

 

Parameters

iso component

UIradioBoxLabel

selects component to isosurface

map components

UIoptionBoxLabel

selects node data to output

map cell data

UIoptionBoxLabel

selects cell data to output

iso level

UIslider

set level of isosurface

 

Output Ports

out_fld

Mesh + Node_Data

out_obj

output renderable object

 

Description

isosurface creates a surface of a given constant value level in a field. This surface is, in effect, a 3D contour. This isosurface of one node data component can be colored by the value of another node data or cell data component (for example, the isosurface of density colored by temperature). The selected iso component must be scalar. You use isosurface when you want to see a graphic depiction of the locations of a particular data value in a 3D field.

Input Ports

in_field

The input is any mesh with Node_Data. The mesh can be of any defined type (Mesh, Mesh_Struct, Mesh_Unif, Mesh_Rect). At least one node data component must be scalar.

ui_parent

A port for connecting to a user interface object that contains the macro's widgets. By default, it is connected to the default user interface object in the application in which the macro is instanced. (This default connection is not drawn.)

Parameters

iso component

UIradioBoxLabel. Radio buttons to pick which component to isosurface. The selected component must be scalar or the message "iso: first component is not scalar" is written to stderr . The default is the first (0th) component. If node data labels are present, they are displayed.

map components

UIoptionBoxLabels. Option buttons to pick which components of node data or cell data to map onto output surface or volume (for example, map pressure value onto a density isovolume or onto a density isosurface).

Multiple components or none can be selected. The selected component(s) can be scalars or vectors. The default is the first (0th) component.

If node data labels are present, they are displayed. The data values are linearly interpolated based on the surface's distance from the adjacent nodes.

If cell data labels are present, they are displayed. The data values for each cell of the output mesh are copied from original cells.

iso level

UIslider. Float slider to set the isosurface level. The default is the selected component's (min+max)/2. The range is from min to max. The data type of the slider is converted to the data type of the node data before use.

Output Ports

out_fld

The output field is an unstructured triangular mesh that represents the contour surface. It may optionally have node and/or cell data.

out_obj

This is a renderable version of the output field.

Algorithm

isosurface uses the Marching Cubes algorithm to construct the isosurface. See W. Lorensen and H. Cline, "Marching Cubes: A High Resolution Surface Reconstruction Algorithm." Computer Graphics 21(4) (SIGGRAPH Proceedings, 1987), July, 1987, pp. 163-169.

This algorithm has a known limitation. There are cases where there are two possible paths that the isosurface could take through a cell, and only one is the correct path. If isosurface picks the wrong path, a discontinuity appears as a hole in the surface.

Example

Libraries.Examples.Visualization.Isosurface: examples/isos.v
Libraries.Examples.Visualization.Crop: examples/crop.v
Libraries.Examples.Visualization.Downsize: examples/down.v
Libraries.Examples.Visualization.Probe: examples/probe.v
Libraries.Examples.Applications.IsoApp: examples/iso.v

File

v/modules.v

See also