TOC PREV NEXT INDEX

DVslice_unif

Synopsis

extract a 2D slice from a uniform field using an arbitrarily oriented slice plane

module DVslice_unif { /* slice a uniform data set */
Mesh_Unif+Dim3+Node_Data+Iparam &in {
/* uniform input field */
nnodes+req;
nnode_data+opt;
node_data+opt;
};
Plane_Grid+Xform+Iparam &plane { /* slice plane */
points+req;
};
float+notify+IPort2 dist; /* plane distance */
int+read+notify+opt+IPort2 map_comp[];
Mesh_Unif+Dim2+Node_Data+Oparam out; /* output field */
method+notify_val+notify_inst slice_update<status=1>
= "DVslice_update";
};

Description

DVslice_unif extracts an arbitrarily-oriented 2D slice of data from a 3D uniform mesh field. Any number of components can be extracted. Output is generated every time the slice plane moves.

Input

&in

The input is a reference to a field that must be a 3D field (Dims3) with a uniform mesh (mesh type Mesh_Unif) and any type of Node_Data.

&plane

A reference to a Plane_Grid object that will be the slicing plane. This could be generated by the Plane object found in Geometries.Plane, or it could be any 2D Mesh_Unif. The plane object generated by Geometries.Plane's advantage is that its plane object has its own Plane Transformation panel that controls plane rotation, translation, and scale, as well as controls to specify its size when it is connected to the Module Stack object..._htmlconversion_dvgeoms__47626

dist

A float. This value will move the plane through the field perpendicular to the plane. Though the Plane Transformation panel has X, Y, and Z transformation controls, it is usually easier to use plane's controls to orient and size the plane, but use this plane distance control to move the plane. DVslice_unif generates output whenever the slice plane moves.

map_comp[].

An integer array. Each array value is the number (from 0 up) of a component to extract. For example:(a, b, c, [e, f, g]) --> set map_comp = {0, 3} --> (a, [e, f, g]) in the output fieldNote that this array is not explicitly dimensioned. It is a variable-length array that will have as many values as you assign to it with the = { n, n, n,...n} notation. The supplied AVS/Express modules that use DVslice_unif implicitly set the dimension to 1 by specifying map_comp = {0}, i.e., the user can specify any one component to send to the output field, and the default is the first (0th) component

Output

out

The output is a new object. It contains a new, subsetted 2D Mesh_Unif and the new Node_Data of the selected components' slices. Where the slice plane does not land exactly on a node, the data value is interpolated from the values of the adjacent nodes.

Algorithm

DVslice_unif uses trilinear interpolation to interpolate data values between mesh nodes.

Example

Libraries.Main.Mappers.slice

File

v/dv.v

modules/slice.c

See also

DVslice_gen
DVslice_rect
DVslice

TOC PREV NEXT INDEX