\hypertarget{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices}{\section{Get\-Slice\-From\-Structured\-Field\-By\-Indices Class Reference}
\label{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices}\index{Get\-Slice\-From\-Structured\-Field\-By\-Indices@{Get\-Slice\-From\-Structured\-Field\-By\-Indices}}
}


This module reduces the dimension of a topologically regular field by 1 dimension.  


Inheritance diagram for Get\-Slice\-From\-Structured\-Field\-By\-Indices\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a6d63b685176f66f9eed9106b7378e190}{Get\-Slice\-From\-Structured\-Field\-By\-Indices} (Gui\-Context $\ast$context)
\item 
virtual \hyperlink{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a8289cc4fe7778be5f302b5e4e68b2a1b}{$\sim$\-Get\-Slice\-From\-Structured\-Field\-By\-Indices} ()
\item 
virtual void \hyperlink{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a61af3e60b94ae3e748f6fbac1e794af7}{execute} ()
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This module reduces the dimension of a topologically regular field by 1 dimension. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a6d63b685176f66f9eed9106b7378e190}{\index{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices@{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}!Get\-Slice\-From\-Structured\-Field\-By\-Indices@{Get\-Slice\-From\-Structured\-Field\-By\-Indices}}
\index{Get\-Slice\-From\-Structured\-Field\-By\-Indices@{Get\-Slice\-From\-Structured\-Field\-By\-Indices}!SCIRun::GetSliceFromStructuredFieldByIndices@{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}}
\subsubsection[{Get\-Slice\-From\-Structured\-Field\-By\-Indices}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Get\-Slice\-From\-Structured\-Field\-By\-Indices} (
\begin{DoxyParamCaption}
\item[{Gui\-Context $\ast$}]{context}
\end{DoxyParamCaption}
)}}\label{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a6d63b685176f66f9eed9106b7378e190}
\hypertarget{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a8289cc4fe7778be5f302b5e4e68b2a1b}{\index{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices@{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}!$\sim$\-Get\-Slice\-From\-Structured\-Field\-By\-Indices@{$\sim$\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}}
\index{$\sim$\-Get\-Slice\-From\-Structured\-Field\-By\-Indices@{$\sim$\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}!SCIRun::GetSliceFromStructuredFieldByIndices@{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}}
\subsubsection[{$\sim$\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}]{\setlength{\rightskip}{0pt plus 5cm}virtual $\sim${\bf Get\-Slice\-From\-Structured\-Field\-By\-Indices} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a8289cc4fe7778be5f302b5e4e68b2a1b}


\subsection{Member Function Documentation}
\hypertarget{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a61af3e60b94ae3e748f6fbac1e794af7}{\index{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices@{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}!execute@{execute}}
\index{execute@{execute}!SCIRun::GetSliceFromStructuredFieldByIndices@{S\-C\-I\-Run\-::\-Get\-Slice\-From\-Structured\-Field\-By\-Indices}}
\subsubsection[{execute}]{\setlength{\rightskip}{0pt plus 5cm}void execute (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{class_s_c_i_run_1_1_get_slice_from_structured_field_by_indices_a61af3e60b94ae3e748f6fbac1e794af7}
Get the input field handle from the port.

Get the optional matrix handle from the port. Note if a matrix is present it is sent down stream. Otherwise it will be created.

Check to see if the gui dimensions are different than the field.

Check to see if the gui dimensions are different than the field.

Check to see if the gui dimensions are different than the field.

Check to see if the gui dimensions are different than the field. This is last because the G\-U\-I var has a callback on it.

If the gui dimensions are different than the field then update the gui.

Dims has callback on it, so it must be set it after i, j, and k.

An input matrix is present so use the values in it to override the variables set in the gui. Column 0 selected axis to slice. Column 1 index of the axis to slice. Column 2 dimensions of the data.

Check to see what index has been selected.

The matrix is optional. If present make sure it is a 3x3 matrix. The row indices is the axis index. The column is the data.

Sanity check. Make sure the gui dimensions match the matrix dimensions.

Check to see what axis has been selected. Only one should be selected.

Check to see what index has been selected and if it matches the gui index.

If no data or an input change recreate the field. I.\-e Only execute when neeed.

Get the index for the axis selected.

This happens when wrapping.

Add one because we want the last node.

Account for the modulo of stride so that the last node will be included even if it \char`\"{}partial\char`\"{} elem when compared to the others.

For structured uniform geometry we need to set the correct location.

Set the orginal transform.

Get the orgin of mesh. $\ast$/

Set the iterator to the first point.

Get the point.

Put the new field into the correct location.

Index based on the old mesh so that we are assured of getting the last node even if it forms a \char`\"{}partial\char`\"{} elem.

Check for going past the stop.

Check for overlap.

A hack here so that an iterator can be used. Set this iterator to be at the correct kth index.

Check for going past the stop.

Check for overlap.

A hack here so that an iterator can be used. Set this iterator to be at the correct jth index.

Check for going past the stop.

Check for overlap.

A hack here so that an iterator can be used. Set this iterator to be at the correct ith index.

Get the dimensions of the old field.

Get the dimensions of the new field.

3\-D Lat\-Vol to 2\-D \hyperlink{class_s_c_i_run_1_1_image}{Image}

3\-D Struct\-Hex\-Vol to 2\-D Struct\-Quad\-Surf

2\-D \hyperlink{class_s_c_i_run_1_1_image}{Image} to 1\-D Scanline or 1\-D Scanline to 0\-D Scanline (perhaps it should be pointcloud).

2\-D Struct\-Quad\-Surf to 1\-D Struct\-Curve

Get the index for the axis selected.

This makes it is possible to slice from 1\-D to 0\-D easily.

This makes it is possible to slice from 1\-D to 0\-D easily.

Slicing along the i axis. In order to get the slice in this direction only one location can be obtained at a time. So the iterator must increment to the correct column (i) index, the location samples, and then incremented to the end of the row.

Slicing along the j axis. In order to get the slice in this direction a complete row can be obtained at a time. So the iterator must increment to the correct row (j) index, the location samples, and then incremented to the end of the slice.

Set the iterator to the correct row (j).

Get all of the points and values along this row.

Get the point and value at this location

Move to the end of all the rows.

Slicing along the k axis.

Get all of the points and values along this slice.

Get the point and value at this location

Create the output matrix with the axis selected, index, and dimensions. 

The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
Modules/\-Legacy/\-Fields/\hyperlink{_get_slice_from_structured_field_by_indices_8cc}{Get\-Slice\-From\-Structured\-Field\-By\-Indices.\-cc}\end{DoxyCompactItemize}
