isovolume


Synopsis

The isovolume module creates a volume of the data inside or outside an isosurface.

Input Ports

in_field

3D Mesh + Node_Data

ui_parent

user interface parent object

 

Parameters

iso component

UIradioBoxLabel

component to isovolume

map components

UIoptionBoxLabel

node data to output

map cell data

UIoptionBoxLabel

cell data to output

Above

UItoggle

select side of the isosurface to cut off

iso level

UIslider

level of isovolume

 

Output Ports

out_fld

Mesh

out_obj

output renderable object

 

Description

isovolume cuts the input mesh using an isosurface of the selected component with a specified iso level value. It outputs the portion of the mesh that is on one side of the cutting isosurface, along with the data for one or more components. The dimensionality of the resulting mesh (1D, 2D or 2D) is the same as dimensionality of original mesh. For example, if you had an MRI scan of a cranium, represented as 3D volume field, you could set iso level to the value for bone, toggle Above, and produce a 3D field that was all the tissue inside the skull.

Note: The isovolume module does not generate vertex normals by default.

Input Ports

in_field

The input is any mesh with Node_Data. At least one of the components 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 use to construct the 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.

Above

UItoggle that selects whether the extracted volume is inside or outside the isosurface. Above turned on means that output values are greater than the cut level. The default is on.

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 a new mesh of the same dimensionality as the input that represents the new volume. Its new node and/or cell data are the values of the selected map components. It does contain a reference to the input field's xform.

out_obj

This is a renderable version of the output field.

Algorithm

isovolume 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.

Example

Libraries.Examples.Visualization.Isovolume: examples/isov.v
Libraries.Examples.Visualization.IsoVolume_2D: examples/isov2uni.v
Libraries.Examples.Visualization.Volume_Integral: examples/vintgr.v

File

v/modules.v

See also