<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>VTK: dox/Filtering/vtkImageData.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.6 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="classes.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <h1>dox/Filtering/vtkImageData.h</h1><a href="a02277.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span> <a name="l00002"></a>00002 <span class="comment"></span> <a name="l00003"></a>00003 <span class="comment"> Program: Visualization Toolkit</span> <a name="l00004"></a>00004 <span class="comment"> Module: $RCSfile: vtkImageData.h,v $</span> <a name="l00005"></a>00005 <span class="comment"></span> <a name="l00006"></a>00006 <span class="comment"> Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen</span> <a name="l00007"></a>00007 <span class="comment"> All rights reserved.</span> <a name="l00008"></a>00008 <span class="comment"> See Copyright.txt or http://www.kitware.com/Copyright.htm for details.</span> <a name="l00009"></a>00009 <span class="comment"></span> <a name="l00010"></a>00010 <span class="comment"> This software is distributed WITHOUT ANY WARRANTY; without even</span> <a name="l00011"></a>00011 <span class="comment"> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR</span> <a name="l00012"></a>00012 <span class="comment"> PURPOSE. See the above copyright notice for more information.</span> <a name="l00013"></a>00013 <span class="comment"></span> <a name="l00014"></a>00014 <span class="comment">=========================================================================*/</span> <a name="l00027"></a>00027 <span class="preprocessor">#ifndef __vtkImageData_h</span> <a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#define __vtkImageData_h</span> <a name="l00029"></a>00029 <span class="preprocessor"></span> <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="a02226.html">vtkDataSet.h</a>"</span> <a name="l00031"></a>00031 <a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="a02137.html">vtkStructuredData.h</a>"</span> <span class="comment">// Needed for inline methods</span> <a name="l00033"></a>00033 <a name="l00034"></a>00034 <span class="keyword">class </span><a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a>; <a name="l00035"></a>00035 <span class="keyword">class </span><a class="code" href="a00960.html" title="cell represents a 1D line">vtkLine</a>; <a name="l00036"></a>00036 <span class="keyword">class </span><a class="code" href="a01221.html" title="a cell that represents an orthogonal quadrilateral">vtkPixel</a>; <a name="l00037"></a>00037 <span class="keyword">class </span><a class="code" href="a01821.html" title="a cell that represents a 3D point">vtkVertex</a>; <a name="l00038"></a>00038 <span class="keyword">class </span><a class="code" href="a01859.html" title="a cell that represents a 3D orthogonal parallelepiped">vtkVoxel</a>; <a name="l00039"></a>00039 <a name="l00040"></a><a class="code" href="a00751.html">00040</a> <span class="keyword">class </span><a class="code" href="a02170.html#95ced7977a6b6b1bf9f38bf04e3835b6">VTK_FILTERING_EXPORT</a> <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a> : <span class="keyword">public</span> <a class="code" href="a00374.html" title="abstract class to specify dataset behavior">vtkDataSet</a> <a name="l00041"></a>00041 { <a name="l00042"></a>00042 <span class="keyword">public</span>: <a name="l00043"></a>00043 <span class="keyword">static</span> <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a> *<a class="code" href="a00362.html#13d4f201619a19a9b39978e92239cd98">New</a>(); <a name="l00044"></a>00044 <a name="l00045"></a><a class="code" href="a00751.html#e57aae557402a4a47f1360b8a7baf70f">00045</a> vtkTypeRevisionMacro(<a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>,<a class="code" href="a00374.html" title="abstract class to specify dataset behavior">vtkDataSet</a>); <a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="a00374.html#8888a27602c40c1fecb773126bb4a30f">PrintSelf</a>(ostream& os, <a class="code" href="a00869.html" title="a simple class to control print indentation">vtkIndent</a> indent); <a name="l00047"></a>00047 <a name="l00050"></a>00050 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#a257bc67d26310ad0d6bef97c066c099">CopyStructure</a>(<a class="code" href="a00374.html" title="abstract class to specify dataset behavior">vtkDataSet</a> *ds); <a name="l00051"></a>00051 <a name="l00053"></a><a class="code" href="a00751.html#22678cd60065b7502e84b27aed179583">00053</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="a00374.html#40c6592489f97ca77ecd5c4abbbbe7b9">GetDataObjectType</a>() {<span class="keywordflow">return</span> <a class="code" href="a02149.html#50cd63f3c514648a9be040bd48d1de1e">VTK_IMAGE_DATA</a>;}; <a name="l00054"></a>00054 <a name="l00056"></a>00056 <a name="l00057"></a>00057 <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a00374.html#71c110da748f73e5c5f5c42a33805460">GetNumberOfCells</a>(); <a name="l00058"></a>00058 <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a00374.html#61b3ec9367dcb1be34a93026e92c2cab">GetNumberOfPoints</a>(); <a name="l00059"></a>00059 <span class="keyword">virtual</span> <span class="keywordtype">double</span> *<a class="code" href="a00374.html#e8406fa1dc144b392ef28111c71a47b0">GetPoint</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> ptId); <a name="l00060"></a>00060 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#e8406fa1dc144b392ef28111c71a47b0">GetPoint</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <span class="keywordtype">id</span>, <span class="keywordtype">double</span> x[3]); <a name="l00061"></a>00061 <span class="keyword">virtual</span> <a class="code" href="a00240.html" title="abstract class to specify cell behavior">vtkCell</a> *<a class="code" href="a00374.html#711ed1ebb7bdf4a4e2ed6896081cd1b2">GetCell</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId); <a name="l00062"></a>00062 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#711ed1ebb7bdf4a4e2ed6896081cd1b2">GetCell</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId, <a class="code" href="a00582.html" title="provides thread-safe access to cells">vtkGenericCell</a> *cell); <a name="l00063"></a>00063 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#5078085a8efba2d934e9a00d328b0b80">GetCellBounds</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId, <span class="keywordtype">double</span> bounds[6]); <a name="l00064"></a><a class="code" href="a00751.html#f5bb66af44074412b64b3058b09a2f87">00064</a> <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a00374.html#d01fb4f295210a2c707801cb7c3da5ce">FindPoint</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z) <a name="l00065"></a>00065 { <a name="l00066"></a>00066 <span class="keywordflow">return</span> this-><a class="code" href="a00374.html#d01fb4f295210a2c707801cb7c3da5ce">vtkDataSet::FindPoint</a>(x, y, z); <a name="l00067"></a>00067 } <a name="l00068"></a>00068 <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a00374.html#d01fb4f295210a2c707801cb7c3da5ce">FindPoint</a>(<span class="keywordtype">double</span> x[3]); <a name="l00069"></a>00069 <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a00374.html#2221c10d3c4cca44e82c5ef70e4e1cbd">FindCell</a>( <a name="l00070"></a>00070 <span class="keywordtype">double</span> x[3], <a class="code" href="a00240.html" title="abstract class to specify cell behavior">vtkCell</a> *cell, <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId, <span class="keywordtype">double</span> tol2, <a name="l00071"></a>00071 <span class="keywordtype">int</span>& subId, <span class="keywordtype">double</span> pcoords[3], <span class="keywordtype">double</span> *weights); <a name="l00072"></a>00072 <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a00374.html#2221c10d3c4cca44e82c5ef70e4e1cbd">FindCell</a>( <a name="l00073"></a>00073 <span class="keywordtype">double</span> x[3], <a class="code" href="a00240.html" title="abstract class to specify cell behavior">vtkCell</a> *cell, <a class="code" href="a00582.html" title="provides thread-safe access to cells">vtkGenericCell</a> *gencell, <a name="l00074"></a>00074 <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId, <span class="keywordtype">double</span> tol2, <span class="keywordtype">int</span>& subId, <a name="l00075"></a>00075 <span class="keywordtype">double</span> pcoords[3], <span class="keywordtype">double</span> *weights); <a name="l00076"></a>00076 <span class="keyword">virtual</span> <a class="code" href="a00240.html" title="abstract class to specify cell behavior">vtkCell</a> *<a class="code" href="a00374.html#2237e772166dbbfb6421ee2e8f4492d1">FindAndGetCell</a>(<span class="keywordtype">double</span> x[3], <a class="code" href="a00240.html" title="abstract class to specify cell behavior">vtkCell</a> *cell, <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId, <a name="l00077"></a>00077 <span class="keywordtype">double</span> tol2, <span class="keywordtype">int</span>& subId, <span class="keywordtype">double</span> pcoords[3], <a name="l00078"></a>00078 <span class="keywordtype">double</span> *weights); <a name="l00079"></a>00079 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="a00374.html#b28fa53d04647bf06d549b5b7c331462">GetCellType</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId); <a name="l00080"></a><a class="code" href="a00751.html#d8c7c208cf20fee20073efd42cde1e55">00080</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#b4d677c257a58e4eb4a80757f9b371ea">GetCellPoints</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> cellId, <a class="code" href="a00720.html" title="list of point or cell ids">vtkIdList</a> *ptIds) <a name="l00081"></a>00081 {<a class="code" href="a01624.html#4e76a1d37c32ac11b92bb0fb6ffcb862">vtkStructuredData::GetCellPoints</a>(cellId,ptIds,this->DataDescription, <a name="l00082"></a>00082 this->GetDimensions());} <a name="l00083"></a><a class="code" href="a00751.html#d88fd01fedd30cdde38650c60fb2224e">00083</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#36d1d8f67ad67adf4d1a9cfb30dade49">GetPointCells</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> ptId, <a class="code" href="a00720.html" title="list of point or cell ids">vtkIdList</a> *cellIds) <a name="l00084"></a>00084 {<a class="code" href="a01624.html#d2b062274df45ed1263b54257ee0f9c9">vtkStructuredData::GetPointCells</a>(ptId,cellIds,this->GetDimensions());} <a name="l00085"></a>00085 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#261a4f32cd2f8ff336c2d85cc33d21ae">ComputeBounds</a>(); <a name="l00086"></a><a class="code" href="a00751.html#c21780c483e6cfab11992e4fd705889a">00086</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="a00374.html#e0749b27b9429010617f21932a1313fd">GetMaxCellSize</a>() {<span class="keywordflow">return</span> 8;}; <span class="comment">//voxel is the largest</span> <a name="l00088"></a>00088 <span class="comment"></span> <a name="l00090"></a>00090 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#39cf7f4c5af1f2eb0bf92a44adc0b6b3">Initialize</a>(); <a name="l00091"></a>00091 <a name="l00093"></a>00093 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetDimensions(<span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j, <span class="keywordtype">int</span> k); <a name="l00094"></a>00094 <a name="l00096"></a>00096 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetDimensions(<span class="keyword">const</span> <span class="keywordtype">int</span> dims[3]); <a name="l00097"></a>00097 <a name="l00099"></a>00099 <a name="l00102"></a>00102 <span class="keyword">virtual</span> <span class="keywordtype">int</span> *GetDimensions(); <a name="l00103"></a>00103 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetDimensions(<span class="keywordtype">int</span> dims[3]); <a name="l00105"></a>00105 <a name="l00107"></a>00107 <a name="l00112"></a>00112 <span class="keyword">virtual</span> <span class="keywordtype">int</span> ComputeStructuredCoordinates( <a name="l00113"></a>00113 <span class="keywordtype">double</span> x[3], <span class="keywordtype">int</span> ijk[3], <span class="keywordtype">double</span> pcoords[3]); <a name="l00115"></a>00115 <a name="l00117"></a>00117 <a name="l00125"></a>00125 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetVoxelGradient( <a name="l00126"></a>00126 <span class="keywordtype">int</span> i,<span class="keywordtype">int</span> j,<span class="keywordtype">int</span> k, <a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a> *s, <a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a> *g); <a name="l00128"></a>00128 <a name="l00130"></a>00130 <a name="l00135"></a>00135 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetPointGradient( <a name="l00136"></a>00136 <span class="keywordtype">int</span> i, <span class="keywordtype">int</span> j, <span class="keywordtype">int</span> k, <a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a> *s, <span class="keywordtype">double</span> g[3]); <a name="l00138"></a>00138 <a name="l00140"></a>00140 <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetDataDimension(); <a name="l00141"></a>00141 <a name="l00143"></a>00143 <a name="l00145"></a><a class="code" href="a00751.html#2f7b0242024e1b83e9622d849eb48e2e">00145</a> <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> ComputePointId(<span class="keywordtype">int</span> ijk[3]) { <a name="l00146"></a>00146 <span class="keywordflow">return</span> <a class="code" href="a01624.html#8e256019c315c3f1ba3de7c34ce7e016">vtkStructuredData::ComputePointId</a>(this->GetDimensions(),ijk);}; <a name="l00148"></a>00148 <a name="l00150"></a>00150 <a name="l00152"></a><a class="code" href="a00751.html#fa232a16f1e4df188485538c9d89de2c">00152</a> <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> ComputeCellId(<span class="keywordtype">int</span> ijk[3]) { <a name="l00153"></a>00153 <span class="keywordflow">return</span> <a class="code" href="a01624.html#9bb9486010fa7aa394148bdc8b330cc8">vtkStructuredData::ComputeCellId</a>(this->GetDimensions(),ijk);}; <a name="l00155"></a>00155 <a name="l00157"></a>00157 <a name="l00158"></a>00158 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetAxisUpdateExtent(<span class="keywordtype">int</span> axis, <span class="keywordtype">int</span> min, <span class="keywordtype">int</span> <a class="code" href="a02864.html#ffe776513b24d84b39af8ab0930fef7f">max</a>); <a name="l00159"></a>00159 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetAxisUpdateExtent(<span class="keywordtype">int</span> axis, <span class="keywordtype">int</span> &min, <span class="keywordtype">int</span> &<a class="code" href="a02864.html#ffe776513b24d84b39af8ab0930fef7f">max</a>); <a name="l00161"></a>00161 <a name="l00165"></a>00165 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00362.html#779f4915e3ebf23436e0dba719b92b90">UpdateInformation</a>(); <a name="l00166"></a>00166 <a name="l00168"></a>00168 <a name="l00176"></a>00176 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetExtent(<span class="keywordtype">int</span> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d21083c65ff97d39562e6981dc3e2041b09f">extent</a>[6]); <a name="l00177"></a>00177 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetExtent(<span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> x2, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> y2, <span class="keywordtype">int</span> z1, <span class="keywordtype">int</span> z2); <a name="l00178"></a>00178 vtkGetVector6Macro(Extent, <span class="keywordtype">int</span>); <a name="l00180"></a>00180 <a name="l00185"></a>00185 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00362.html#34683bbb8767780d8568a585218ce877">GetEstimatedMemorySize</a>(); <a name="l00186"></a>00186 <a name="l00188"></a>00188 <a name="l00190"></a>00190 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetScalarTypeMin(); <a name="l00191"></a>00191 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetScalarTypeMax(); <a name="l00193"></a>00193 <a name="l00195"></a>00195 <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetScalarSize(); <a name="l00196"></a>00196 <a name="l00198"></a>00198 <a name="l00201"></a>00201 <span class="keyword">virtual</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> *GetIncrements(); <a name="l00202"></a>00202 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetIncrements(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> &incX, <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> &incY, <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> &incZ); <a name="l00203"></a>00203 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetIncrements(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> inc[3]); <a name="l00205"></a>00205 <a name="l00207"></a>00207 <a name="l00216"></a>00216 <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetContinuousIncrements( <a name="l00217"></a>00217 <span class="keywordtype">int</span> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d21083c65ff97d39562e6981dc3e2041b09f">extent</a>[6], <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> &incX, <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> &incY, <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> &incZ); <a name="l00219"></a>00219 <a name="l00221"></a>00221 <a name="l00222"></a>00222 <span class="keyword">virtual</span> <span class="keywordtype">void</span> *GetScalarPointerForExtent(<span class="keywordtype">int</span> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d21083c65ff97d39562e6981dc3e2041b09f">extent</a>[6]); <a name="l00223"></a>00223 <span class="keyword">virtual</span> <span class="keywordtype">void</span> *GetScalarPointer(<span class="keywordtype">int</span> coordinates[3]); <a name="l00224"></a>00224 <span class="keyword">virtual</span> <span class="keywordtype">void</span> *GetScalarPointer(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z); <a name="l00225"></a>00225 <span class="keyword">virtual</span> <span class="keywordtype">void</span> *GetScalarPointer(); <a name="l00227"></a>00227 <a name="l00229"></a>00229 <a name="l00230"></a>00230 <span class="keyword">virtual</span> <span class="keywordtype">float</span> GetScalarComponentAsFloat(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z, <span class="keywordtype">int</span> <a class="code" href="a03761.html#88ade42854f67d6297898362e17a515f78fb09245c9bd345bf96d579664f9736">component</a>); <a name="l00231"></a>00231 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetScalarComponentFromFloat( <a name="l00232"></a>00232 <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z, <span class="keywordtype">int</span> <a class="code" href="a03761.html#88ade42854f67d6297898362e17a515f78fb09245c9bd345bf96d579664f9736">component</a>, <span class="keywordtype">float</span> v); <a name="l00233"></a>00233 <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetScalarComponentAsDouble(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z, <span class="keywordtype">int</span> <a class="code" href="a03761.html#88ade42854f67d6297898362e17a515f78fb09245c9bd345bf96d579664f9736">component</a>); <a name="l00234"></a>00234 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetScalarComponentFromDouble( <a name="l00235"></a>00235 <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z, <span class="keywordtype">int</span> <a class="code" href="a03761.html#88ade42854f67d6297898362e17a515f78fb09245c9bd345bf96d579664f9736">component</a>, <span class="keywordtype">double</span> v); <a name="l00237"></a>00237 <a name="l00239"></a>00239 <span class="keyword">virtual</span> <span class="keywordtype">void</span> AllocateScalars(); <a name="l00240"></a>00240 <a name="l00242"></a>00242 <a name="l00246"></a>00246 <span class="keyword">virtual</span> <span class="keywordtype">void</span> CopyAndCastFrom(<a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a> *inData, <span class="keywordtype">int</span> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d21083c65ff97d39562e6981dc3e2041b09f">extent</a>[6]); <a name="l00247"></a><a class="code" href="a00751.html#1b87de5320688126986b13d152a72887">00247</a> <span class="keyword">virtual</span> <span class="keywordtype">void</span> CopyAndCastFrom(<a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a> *inData, <span class="keywordtype">int</span> x0, <span class="keywordtype">int</span> x1, <a name="l00248"></a>00248 <span class="keywordtype">int</span> y0, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> z0, <span class="keywordtype">int</span> z1) <a name="l00249"></a>00249 {<span class="keywordtype">int</span> e[6]; e[0]=x0; e[1]=x1; e[2]=y0; e[3]=y1; e[4]=z0; e[5]=z1; <a name="l00250"></a>00250 this->CopyAndCastFrom(inData, e);} <a name="l00252"></a>00252 <a name="l00256"></a>00256 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00362.html#46a86e4758cbba177a827e4abd93cae9">Crop</a>(); <a name="l00257"></a>00257 <a name="l00263"></a>00263 <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="a00374.html#ee582232dad64e0c3abb88ddc1b1a3c8">GetActualMemorySize</a>(); <a name="l00264"></a>00264 <a name="l00266"></a>00266 <a name="l00268"></a>00268 vtkSetVector3Macro(Spacing,<span class="keywordtype">double</span>); <a name="l00269"></a>00269 vtkGetVector3Macro(Spacing,<span class="keywordtype">double</span>); <a name="l00271"></a>00271 <a name="l00273"></a>00273 <a name="l00279"></a>00279 vtkSetVector3Macro(Origin,<span class="keywordtype">double</span>); <a name="l00280"></a>00280 vtkGetVector3Macro(Origin,<span class="keywordtype">double</span>); <a name="l00282"></a>00282 <a name="l00284"></a>00284 <a name="l00289"></a><a class="code" href="a00751.html#c09f4642580a60fbb3649a869f9580bc">00289</a> <span class="keywordtype">void</span> SetScalarTypeToFloat(){this->SetScalarType(<a class="code" href="a02149.html#aa048913d336249efc600e3c5a144c42">VTK_FLOAT</a>);}; <a name="l00290"></a><a class="code" href="a00751.html#fc9e7673973711955d0049585b716414">00290</a> <span class="keywordtype">void</span> SetScalarTypeToDouble(){this->SetScalarType(<a class="code" href="a02149.html#65081589ba940a5cf4aeb95b6be1f613">VTK_DOUBLE</a>);}; <a name="l00291"></a><a class="code" href="a00751.html#ca5872eca06218eedc4b59dca5ab0333">00291</a> <span class="keywordtype">void</span> SetScalarTypeToInt(){this->SetScalarType(<a class="code" href="a02149.html#95206d824b282a36f88c301c58d91964">VTK_INT</a>);}; <a name="l00292"></a><a class="code" href="a00751.html#9a6811d0b3e6da8b65f966bca2a7dfbe">00292</a> <span class="keywordtype">void</span> SetScalarTypeToUnsignedInt() <a name="l00293"></a>00293 {this->SetScalarType(<a class="code" href="a02149.html#3383756325aeef3742d42d933a0c9d1d">VTK_UNSIGNED_INT</a>);}; <a name="l00294"></a><a class="code" href="a00751.html#ba16f4fac367a51b2ce147277fab4464">00294</a> <span class="keywordtype">void</span> SetScalarTypeToLong(){this->SetScalarType(<a class="code" href="a02149.html#f33bc6447a030837b20f8096b23bfc71">VTK_LONG</a>);}; <a name="l00295"></a><a class="code" href="a00751.html#f6cf83f92e0e04f884c750be2bc6a6eb">00295</a> <span class="keywordtype">void</span> SetScalarTypeToUnsignedLong() <a name="l00296"></a>00296 {this->SetScalarType(<a class="code" href="a02149.html#afde7770485a91b9dd308163b5a6b95d">VTK_UNSIGNED_LONG</a>);}; <a name="l00297"></a><a class="code" href="a00751.html#ce7e48ac3d58c0b56c0afea527e1cc0f">00297</a> <span class="keywordtype">void</span> SetScalarTypeToShort(){this->SetScalarType(<a class="code" href="a02149.html#16468f12840502cb95648b1299f7f26e">VTK_SHORT</a>);}; <a name="l00298"></a><a class="code" href="a00751.html#2c7819a41ce3884d3fc5e9f65876ab75">00298</a> <span class="keywordtype">void</span> SetScalarTypeToUnsignedShort() <a name="l00299"></a>00299 {this->SetScalarType(<a class="code" href="a02149.html#725b04f63c9f8fbf28fc8fd56b9d9392">VTK_UNSIGNED_SHORT</a>);}; <a name="l00300"></a><a class="code" href="a00751.html#5c30f26faab2485314d20369791558e1">00300</a> <span class="keywordtype">void</span> SetScalarTypeToUnsignedChar() <a name="l00301"></a>00301 {this->SetScalarType(<a class="code" href="a02149.html#69e20baa3fd444e25ba1a5fc30bd29d5">VTK_UNSIGNED_CHAR</a>);}; <a name="l00302"></a><a class="code" href="a00751.html#367f6185a4913119609a74746933ee3d">00302</a> <span class="keywordtype">void</span> SetScalarTypeToSignedChar() <a name="l00303"></a>00303 {this->SetScalarType(<a class="code" href="a02149.html#9a66bac461a59d3704ccc14838fe1a44">VTK_SIGNED_CHAR</a>);}; <a name="l00304"></a><a class="code" href="a00751.html#be2ace2bcf28213e724d793ecd5ae695">00304</a> <span class="keywordtype">void</span> SetScalarTypeToChar() <a name="l00305"></a>00305 {this->SetScalarType(<a class="code" href="a02149.html#acfbd1a27646a206528eda8aecd570d9">VTK_CHAR</a>);}; <a name="l00306"></a>00306 <span class="keywordtype">void</span> SetScalarType(<span class="keywordtype">int</span>); <a name="l00307"></a>00307 <span class="keywordtype">int</span> GetScalarType(); <a name="l00308"></a><a class="code" href="a00751.html#7cde659789c027c2d32251ecdc547cb4">00308</a> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetScalarTypeAsString() <a name="l00309"></a>00309 { <span class="keywordflow">return</span> vtkImageScalarTypeNameMacro ( this->GetScalarType() ); }; <a name="l00311"></a>00311 <a name="l00313"></a>00313 <a name="l00315"></a>00315 <span class="keywordtype">void</span> SetNumberOfScalarComponents( <span class="keywordtype">int</span> n ); <a name="l00316"></a>00316 <span class="keywordtype">int</span> GetNumberOfScalarComponents(); <a name="l00318"></a>00318 <a name="l00319"></a>00319 <span class="comment">// Must only be called with vtkImageData (or subclass) as input</span> <a name="l00320"></a>00320 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00362.html#3edb5e3210abe508208769485cf499e5">CopyTypeSpecificInformation</a>( <a class="code" href="a00362.html" title="general representation of visualization data">vtkDataObject</a> *<a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d210cf2918d8c9015394a60a23572e257359">image</a> ); <a name="l00321"></a>00321 <a name="l00323"></a>00323 <a name="l00325"></a>00325 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00362.html#7c7b9185fe3f8bceed16a090a7f21058">CopyInformationToPipeline</a>(<a class="code" href="a00872.html" title="Store vtkAlgorithm input/output information.">vtkInformation</a>* request, <a name="l00326"></a>00326 <a class="code" href="a00872.html" title="Store vtkAlgorithm input/output information.">vtkInformation</a>* input, <a name="l00327"></a>00327 <a class="code" href="a00872.html" title="Store vtkAlgorithm input/output information.">vtkInformation</a>* output, <a name="l00328"></a>00328 <span class="keywordtype">int</span> forceCopy); <a name="l00329"></a>00329 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00362.html#704506723e143fd29ed4ecce817ef160">CopyInformationFromPipeline</a>(<a class="code" href="a00872.html" title="Store vtkAlgorithm input/output information.">vtkInformation</a>* request); <a name="l00331"></a>00331 <a name="l00335"></a>00335 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00362.html#6e25f36eeedbe870b3ce16a1a180db89">PrepareForNewData</a>(); <a name="l00336"></a>00336 <a name="l00338"></a>00338 <a name="l00339"></a>00339 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#e4a9b08662d920f454501a36f71ad1a5">ShallowCopy</a>(<a class="code" href="a00362.html" title="general representation of visualization data">vtkDataObject</a> *src); <a name="l00340"></a>00340 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="a00374.html#ded3bdeaa9acf491b4c2fb0be9be298d">DeepCopy</a>(<a class="code" href="a00362.html" title="general representation of visualization data">vtkDataObject</a> *src); <a name="l00342"></a>00342 <a name="l00343"></a>00343 <span class="comment">//--------------------------------------------------------------------------</span> <a name="l00344"></a>00344 <span class="comment">// Methods that apply to any array (not just scalars).</span> <a name="l00345"></a>00345 <span class="comment">// I am starting to experiment with generalizing imaging fitlers</span> <a name="l00346"></a>00346 <span class="comment">// to operate on more than just scalars.</span> <a name="l00347"></a>00347 <a name="l00349"></a>00349 <a name="l00352"></a>00352 <span class="keywordtype">void</span> *GetArrayPointerForExtent(<a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a>* array, <span class="keywordtype">int</span> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d21083c65ff97d39562e6981dc3e2041b09f">extent</a>[6]); <a name="l00353"></a>00353 <span class="keywordtype">void</span> *GetArrayPointer(<a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a>* array, <span class="keywordtype">int</span> coordinates[3]); <a name="l00355"></a>00355 <a name="l00358"></a>00358 <span class="keywordtype">void</span> GetArrayIncrements(<a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a> *array, <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> increments[3]); <a name="l00359"></a>00359 <a name="l00364"></a>00364 <span class="keywordtype">void</span> ComputeInternalExtent(<span class="keywordtype">int</span> *intExt, <span class="keywordtype">int</span> *tgtExt, <span class="keywordtype">int</span> *bnds); <a name="l00365"></a>00365 <a name="l00367"></a><a class="code" href="a00751.html#3898c5c31d437320c40609a667a9503f">00367</a> <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="a00362.html#e9d129f8fc75eb04d67d6d805dde6763">GetExtentType</a>() { <span class="keywordflow">return</span> <a class="code" href="a02221.html#509b2bf75060bd01efde76343165347d">VTK_3D_EXTENT</a>; }; <a name="l00368"></a>00368 <a name="l00369"></a>00369 <span class="comment">//BTX</span> <a name="l00371"></a>00371 <span class="comment"></span> <a name="l00372"></a>00372 <span class="keyword">static</span> <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>* <a class="code" href="a00374.html#1f2fa3ed6b77868bf5a814b0dafd3706">GetData</a>(<a class="code" href="a00872.html" title="Store vtkAlgorithm input/output information.">vtkInformation</a>* <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d21023da246d4a744e861548382bb79fad81">info</a>); <a name="l00373"></a>00373 <span class="keyword">static</span> <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>* <a class="code" href="a00374.html#1f2fa3ed6b77868bf5a814b0dafd3706">GetData</a>(<a class="code" href="a00895.html" title="Store zero or more vtkInformation instances.">vtkInformationVector</a>* v, <span class="keywordtype">int</span> i=0); <a name="l00374"></a>00374 <span class="comment">//ETX</span> <a name="l00376"></a>00376 <span class="comment"></span> <a name="l00377"></a>00377 <span class="keyword">protected</span>: <a name="l00378"></a>00378 <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>(); <a name="l00379"></a>00379 ~<a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>(); <a name="l00380"></a>00380 <a name="l00381"></a>00381 <span class="comment">// for the GetCell method</span> <a name="l00382"></a><a class="code" href="a00751.html#4438447cecf6bb324c35e9ec3f286e26">00382</a> <a class="code" href="a01821.html" title="a cell that represents a 3D point">vtkVertex</a> *Vertex; <a name="l00383"></a><a class="code" href="a00751.html#32930872b81363707cf8a334f40c0f4d">00383</a> <a class="code" href="a00960.html" title="cell represents a 1D line">vtkLine</a> *Line; <a name="l00384"></a><a class="code" href="a00751.html#d6603e9f9d28e84deebf10f1b76881dd">00384</a> <a class="code" href="a01221.html" title="a cell that represents an orthogonal quadrilateral">vtkPixel</a> *Pixel; <a name="l00385"></a><a class="code" href="a00751.html#9f44a7b7aacf248937129fcd76845b0d">00385</a> <a class="code" href="a01859.html" title="a cell that represents a 3D orthogonal parallelepiped">vtkVoxel</a> *Voxel; <a name="l00386"></a>00386 <a name="l00387"></a>00387 <span class="comment">// The extent of what is currently in the structured grid.</span> <a name="l00388"></a>00388 <span class="comment">// Dimensions is just an array to return a value.</span> <a name="l00389"></a>00389 <span class="comment">// Its contents are out of data until GetDimensions is called.</span> <a name="l00390"></a><a class="code" href="a00751.html#559ae91092b0ed848d71fb6733e2cc94">00390</a> <span class="keywordtype">int</span> Dimensions[3]; <a name="l00391"></a><a class="code" href="a00751.html#40593c3f62e0df7904627f844455764b">00391</a> <span class="keywordtype">int</span> DataDescription; <a name="l00392"></a><a class="code" href="a00751.html#954ee8dd5f6c4a4b65684500e531e2bf">00392</a> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> Increments[3]; <a name="l00393"></a>00393 <a name="l00394"></a><a class="code" href="a00751.html#b8f8b83800a0a2330f13600093bf832f">00394</a> <span class="keywordtype">double</span> Origin[3]; <a name="l00395"></a><a class="code" href="a00751.html#ad7ef8e0c62746fbae3a5bf5c5454730">00395</a> <span class="keywordtype">double</span> Spacing[3]; <a name="l00396"></a>00396 <a name="l00397"></a><a class="code" href="a00751.html#48607cd146f56091a716814073d02527">00397</a> <span class="keywordtype">int</span> Extent[6]; <a name="l00398"></a>00398 <a name="l00399"></a>00399 <span class="keywordtype">void</span> ComputeIncrements(); <a name="l00400"></a>00400 <span class="keywordtype">void</span> CopyOriginAndSpacingFromPipeline(); <a name="l00401"></a>00401 <a name="l00402"></a><a class="code" href="a00751.html#683d1596188d7744802da9387218bb96">00402</a> <a class="code" href="a01719.html" title="record modification and/or execution time">vtkTimeStamp</a> ExtentComputeTime; <a name="l00403"></a>00403 <a name="l00404"></a>00404 <span class="keyword">private</span>: <a name="l00405"></a>00405 <span class="keywordtype">void</span> InternalImageDataCopy(<a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a> *src); <a name="l00406"></a>00406 <span class="keyword">private</span>: <a name="l00407"></a>00407 <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>(<span class="keyword">const</span> <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>&); <span class="comment">// Not implemented.</span> <a name="l00408"></a>00408 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="a00751.html" title="topologically and geometrically regular array of data">vtkImageData</a>&); <span class="comment">// Not implemented.</span> <a name="l00409"></a>00409 }; <a name="l00410"></a>00410 <a name="l00411"></a>00411 <a name="l00412"></a>00412 <span class="comment">//----------------------------------------------------------------------------</span> <a name="l00413"></a><a class="code" href="a00751.html#c9d1493f7208ff78378d99e5d721427d">00413</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="a00751.html#06fd13e621ce663cfb4aa5e743723d4a">vtkImageData::GetPoint</a>(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <span class="keywordtype">id</span>, <span class="keywordtype">double</span> x[3]) <a name="l00414"></a>00414 { <a name="l00415"></a>00415 <span class="keyword">const</span> <span class="keywordtype">double</span> *p = this-><a class="code" href="a00751.html#06fd13e621ce663cfb4aa5e743723d4a">GetPoint</a>(<span class="keywordtype">id</span>); <a name="l00416"></a>00416 x[0] = p[0]; x[1] = p[1]; x[2] = p[2]; <a name="l00417"></a>00417 } <a name="l00418"></a>00418 <a name="l00419"></a>00419 <span class="comment">//----------------------------------------------------------------------------</span> <a name="l00420"></a><a class="code" href="a00751.html#83576ba8c600b5c4cde9a55d58d04e96">00420</a> <span class="keyword">inline</span> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a00751.html#83576ba8c600b5c4cde9a55d58d04e96">vtkImageData::GetNumberOfPoints</a>() <a name="l00421"></a>00421 { <a name="l00422"></a>00422 <span class="keyword">const</span> <span class="keywordtype">int</span> *<a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d21083c65ff97d39562e6981dc3e2041b09f">extent</a> = this-><a class="code" href="a00751.html#48607cd146f56091a716814073d02527">Extent</a>; <a name="l00423"></a>00423 <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> dims[3]; <a name="l00424"></a>00424 dims[0] = extent[1] - extent[0] + 1; <a name="l00425"></a>00425 dims[1] = extent[3] - extent[2] + 1; <a name="l00426"></a>00426 dims[2] = extent[5] - extent[4] + 1; <a name="l00427"></a>00427 <a name="l00428"></a>00428 <span class="keywordflow">return</span> dims[0]*dims[1]*dims[2]; <a name="l00429"></a>00429 } <a name="l00430"></a>00430 <a name="l00431"></a>00431 <span class="comment">//----------------------------------------------------------------------------</span> <a name="l00432"></a><a class="code" href="a00751.html#0785bfa263ea9bab1be906a4bbcbf294">00432</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="a00751.html#0785bfa263ea9bab1be906a4bbcbf294">vtkImageData::GetDataDimension</a>() <a name="l00433"></a>00433 { <a name="l00434"></a>00434 <span class="keywordflow">return</span> <a class="code" href="a01624.html#8092295265c02b00ab80a1ec707b0731">vtkStructuredData::GetDataDimension</a>(this-><a class="code" href="a00751.html#40593c3f62e0df7904627f844455764b">DataDescription</a>); <a name="l00435"></a>00435 } <a name="l00436"></a>00436 <a name="l00437"></a>00437 <span class="preprocessor">#endif</span> <a name="l00438"></a>00438 <span class="preprocessor"></span> <a name="l00439"></a>00439 <a name="l00440"></a>00440 </pre></div></div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Jun 3 18:35:16 2009 for VTK by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address> </body> </html>