isoline_trace


Synopsis

create a local line of constant value at a picked probe location

Input Ports

in_field

Mesh_Struct + Node_Data

in_probe

Grid

ui_parent

user interface parent object

 

Parameters

iso component

UIradioBoxLabel

sets component to isoline

iso level

UIslider

report isoline level

 

Output Ports

out_fld

Mesh + Node_Data

out_obj

output renderable object

 

Description

isoline_trace is similar to isoline. It creates a line of a given level value in a 2-space field at a probe position. This probe position is picked interactively with the left mouse button or specified through a Transformation Editor. This line is, in effect, a 2D contour.

isoline_trace differs from isoline in that it does not isoline the entire volume of the field. Rather, beginning from the picked position, it builds an isoline by checking the values of adjacent cells until either no more adjacent cells have the same value, it hits the limits of the field, or the line is closed. Thus, isoline_trace creates local isolines.

The isoline is colored by the value of the selected iso component. That component is also written to the output Node_Data.

Input Ports

in_field

The input is any Mesh_Struct (Mesh_Struct, Mesh_Rect, or Mesh_Unif) with Node_Data. The mesh must be a surface (nspace = 2). The surface can exist in 2D or 3D. No checking is done to ensure that the mesh is 2D. 3D meshes do not generate output. At least one of the components must be scalar.

in_probe

Grid. This input is a Grid representing any kind of probe object. Such objects are found in Geometries, such as Arrow, or Cross3D. In turn, the probe macro icon's red input port must connect to the renderer's picked_obj red output port.

ui_parent

A port to connect 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 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.

iso level

UIslider. This widget is output only. A float slider that reports the value for which the isoline is being drawn.

Output Ports

out_fld

The output field is an unstructured Mesh of cell type Line that represents the 2D contour lines. Its Node_Data is the interpolated values of the iso component along the isolines.

out_obj

This is a renderable version of the output field.

Algorithm

isoline_trace 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

Not available.

File

v/modules.v

See also