# Slice

## DESCRIPTION

This module slices a uniform 3D lattice by taking regular samples on a cutting plane. The plane can have any orientation, passed in as a transform. The output lattice will be of the same datatype and number of channels as the input lattice.The sampling rate onto the output lattice will be 2^{Resolution} samples over the diagonal of the 3D input lattice. However, the output lattice will be clipped to minimize the number of samples outside the volume. For a given resolution, the sampling rate will remain the same, but the size of the output lattice will vary.

The output lattice is created with uniform coordinates. A transform is also output from this module that will convert the output lattice coordinates back into the coordinate space of the input volume. This avoids using more expensive curvilinear coordinates.

## INPUTS

**Port:** Input

**Type:** Lattice

**Constraints:** 3-D

**Constraints:** uniform

This is the volume to be sliced.

**Port:** Transform In

**Type:** Lattice

**Constraints:** 2-D

**Constraints:** 1-vector

**Constraints:** float

This is a 4x4 transformation matrix. This matrix transforms the slice plane, which is initially located parallel to the XY plane, passing through the center of the input volume. This matrix should be a pure rotation matrix, with no scaling, translation, or skew. The TransformGen module is commonly used to produce this input.

## WIDGETS

**Port:** Offset

**Type:** Dial

This is the offset of the slice from the center of the volume. The direction is always taken normal to the slice plane. The range is normalized to the length of the volume diagonal.

**Port:** Resolution

**Type:** Slider

The resolution (log base 2) of the slice along the volume diagonal. This indirectly controls the size of the output lattice.

**Port:** Interp Type

**Type:** Radio Box

**Menu Item:** Point

**Menu Item:** TriLinear

This controls the type of subvoxel interpolation.

- 0
- Nearest neighbor interpolation
- 1
- Trilinear interpolation

**Port:** Coordinates

**Type:** Radio Box

**Menu Item:** Uniform coords

**Menu Item:** Curvilinear coords

This controls whether the curvilinear coordinates of the slice are generated.

## OUTPUTS

**Port:** Output

**Type:** Lattice

**Constraints:** 2-D

This is the output slice plane. It will have the same data type and number of data variables as the input volume.

**Port:** Transform Out

**Type:** Lattice

**Constraints:** 2-D

**Constraints:** 1-vector

**Constraints:** float

This 4x4 transform takes the output slice plane back into the coordinate space of the original input volume.

## KNOWN PROBLEMS

If the slice does not intersect the volume, no new lattice is output. Once this happens, the firing algorithm can become confused so that modules that read the output lattice and transform will not receive these data in sync.

If this module happens to receive a volume that does not have uniform coordinates (which can happen if the upstream module can put out both uniform and nonuniform coordinates), the volume is sliced as if it did have uniform coordinates.

The value of Offset is not directly related to the coordinate space of the data. Offset is normalized so that the range [-1..1], will span the entire input volume. That is, if the slice is oriented perpendicular to a diagonal of the volume, offsets of -1 and 1 will slice through opposite corners of the volume.

## SEE ALSO

ProbeLat, OrthoSlice, LatToGeom, TransformGen.[Documentation Home]

© The Numerical Algorithms Group Ltd, Oxford UK. 2000