<!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/VolumeRendering/vtkUnstructuredGridVolumeZSweepMapper.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/VolumeRendering/vtkUnstructuredGridVolumeZSweepMapper.h</h1><a href="a03636.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: vtkUnstructuredGridVolumeZSweepMapper.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="l00037"></a>00037 <span class="preprocessor">#ifndef __vtkUnstructuredGridVolumeZSweepMapper_h</span> <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define __vtkUnstructuredGridVolumeZSweepMapper_h</span> <a name="l00039"></a>00039 <span class="preprocessor"></span> <a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="a03631.html">vtkUnstructuredGridVolumeMapper.h</a>"</span> <a name="l00041"></a>00041 <a name="l00042"></a>00042 <span class="keyword">class </span><a class="code" href="a01480.html" title="abstract specification for renderers">vtkRenderer</a>; <a name="l00043"></a>00043 <span class="keyword">class </span><a class="code" href="a01839.html" title="represents a volume (data &amp; properties) in a rendered scene">vtkVolume</a>; <a name="l00044"></a>00044 <span class="keyword">class </span><a class="code" href="a01454.html" title="helper class that draws the image to the screen">vtkRayCastImageDisplayHelper</a>; <a name="l00045"></a>00045 <span class="keyword">class </span><a class="code" href="a00240.html" title="abstract class to specify cell behavior">vtkCell</a>; <a name="l00046"></a>00046 <span class="keyword">class </span><a class="code" href="a00582.html" title="provides thread-safe access to cells">vtkGenericCell</a>; <a name="l00047"></a>00047 <span class="keyword">class </span><a class="code" href="a00720.html" title="list of point or cell ids">vtkIdList</a>; <a name="l00048"></a>00048 <span class="keyword">class </span><a class="code" href="a01300.html" title="an list of ids arranged in priority order">vtkPriorityQueue</a>; <a name="l00049"></a>00049 <span class="keyword">class </span><a class="code" href="a01723.html" title="describes linear transformations via a 4x4 matrix">vtkTransform</a>; <a name="l00050"></a>00050 <span class="keyword">class </span><a class="code" href="a00998.html" title="represent and manipulate 4x4 transformation matrices">vtkMatrix4x4</a>; <a name="l00051"></a>00051 <span class="keyword">class </span><a class="code" href="a01844.html" title="represents the common properties for rendering a volume.">vtkVolumeProperty</a>; <a name="l00052"></a>00052 <span class="keyword">class </span><a class="code" href="a00436.html" title="dynamic, self-adjusting array of double">vtkDoubleArray</a>; <a name="l00053"></a>00053 <span class="keyword">class </span><a class="code" href="a01807.html" title="a superclass for volume ray integration functions">vtkUnstructuredGridVolumeRayIntegrator</a>; <a name="l00054"></a>00054 <span class="keyword">class </span><a class="code" href="a01489.html" title="create a window for renderers to draw into">vtkRenderWindow</a>; <a name="l00055"></a>00055 <a name="l00056"></a>00056 <span class="comment">//BTX</span> <a name="l00057"></a>00057 <span class="comment">// Internal classes</span> <a name="l00058"></a><a class="code" href="a03760.html">00058</a> <span class="keyword">namespace </span>vtkUnstructuredGridVolumeZSweepMapperNamespace <a name="l00059"></a>00059 { <a name="l00060"></a>00060 <span class="keyword">class </span>vtkScreenEdge; <a name="l00061"></a>00061 <span class="keyword">class </span>vtkSpan; <a name="l00062"></a>00062 <span class="keyword">class </span>vtkPixelListFrame; <a name="l00063"></a>00063 <span class="keyword">class </span>vtkUseSet; <a name="l00064"></a>00064 <span class="keyword">class </span>vtkVertices; <a name="l00065"></a>00065 <span class="keyword">class </span>vtkSimpleScreenEdge; <a name="l00066"></a>00066 <span class="keyword">class </span>vtkDoubleScreenEdge; <a name="l00067"></a>00067 <span class="keyword">class </span>vtkVertexEntry; <a name="l00068"></a>00068 <span class="keyword">class </span>vtkPixelListEntryMemory; <a name="l00069"></a>00069 }; <a name="l00070"></a>00070 <span class="comment">//ETX</span> <a name="l00071"></a>00071 <a name="l00072"></a><a class="code" href="a01808.html">00072</a> <span class="keyword">class </span><a class="code" href="a02170.html#4c512a1c00e5052ca1bbef09929dba95">VTK_VOLUMERENDERING_EXPORT</a> <a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a> : <span class="keyword">public</span> <a class="code" href="a01803.html" title="Abstract class for a unstructured grid volume mapper.">vtkUnstructuredGridVolumeMapper</a> <a name="l00073"></a>00073 { <a name="l00074"></a>00074 <span class="keyword">public</span>: <a name="l00075"></a><a class="code" href="a01808.html#151505458f8793cd6bc193448d339138">00075</a> vtkTypeRevisionMacro(<a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a>,<a class="code" href="a01803.html" title="Abstract class for a unstructured grid volume mapper.">vtkUnstructuredGridVolumeMapper</a>); <a name="l00076"></a>00076 <span class="keywordtype">void</span> <a class="code" href="a01803.html#9dd2392a57203b4922dd1a83c07e71cc">PrintSelf</a>( ostream& os, <a class="code" href="a00869.html" title="a simple class to control print indentation">vtkIndent</a> indent ); <a name="l00077"></a>00077 <a name="l00079"></a>00079 <span class="keyword">static</span> <a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a> *<a class="code" href="a00101.html#06d80d8d4aa1a4856135fa003845be82">New</a>(); <a name="l00080"></a>00080 <a name="l00082"></a>00082 <a name="l00085"></a>00085 vtkSetClampMacro( ImageSampleDistance, <span class="keywordtype">float</span>, 0.1f, 100.0f ); <a name="l00086"></a>00086 vtkGetMacro( ImageSampleDistance, <span class="keywordtype">float</span> ); <a name="l00088"></a>00088 <a name="l00090"></a>00090 <a name="l00092"></a>00092 vtkSetClampMacro( MinimumImageSampleDistance, <span class="keywordtype">float</span>, 0.1f, 100.0f ); <a name="l00093"></a>00093 vtkGetMacro( MinimumImageSampleDistance, <span class="keywordtype">float</span> ); <a name="l00095"></a>00095 <a name="l00097"></a>00097 <a name="l00099"></a>00099 vtkSetClampMacro( MaximumImageSampleDistance, <span class="keywordtype">float</span>, 0.1f, 100.0f ); <a name="l00100"></a>00100 vtkGetMacro( MaximumImageSampleDistance, <span class="keywordtype">float</span> ); <a name="l00102"></a>00102 <a name="l00104"></a>00104 <a name="l00107"></a>00107 vtkSetClampMacro( AutoAdjustSampleDistances, <span class="keywordtype">int</span>, 0, 1 ); <a name="l00108"></a>00108 vtkGetMacro( AutoAdjustSampleDistances, <span class="keywordtype">int</span> ); <a name="l00109"></a>00109 vtkBooleanMacro( AutoAdjustSampleDistances, <span class="keywordtype">int</span> ); <a name="l00111"></a>00111 <a name="l00113"></a>00113 <a name="l00115"></a>00115 vtkSetClampMacro( IntermixIntersectingGeometry, <span class="keywordtype">int</span>, 0, 1 ); <a name="l00116"></a>00116 vtkGetMacro( IntermixIntersectingGeometry, <span class="keywordtype">int</span> ); <a name="l00117"></a>00117 vtkBooleanMacro( IntermixIntersectingGeometry, <span class="keywordtype">int</span> ); <a name="l00119"></a>00119 <a name="l00124"></a>00124 <span class="keywordtype">int</span> GetMaxPixelListSize(); <a name="l00125"></a>00125 <a name="l00128"></a>00128 <span class="keywordtype">void</span> SetMaxPixelListSize(<span class="keywordtype">int</span> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d210e3d5e7c015dff08d8daf72a0102e1444">size</a>); <a name="l00129"></a>00129 <a name="l00131"></a>00131 <a name="l00133"></a>00133 <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetRayIntegrator(<a class="code" href="a01807.html" title="a superclass for volume ray integration functions">vtkUnstructuredGridVolumeRayIntegrator</a> *ri); <a name="l00134"></a>00134 vtkGetObjectMacro(RayIntegrator, <a class="code" href="a01807.html" title="a superclass for volume ray integration functions">vtkUnstructuredGridVolumeRayIntegrator</a>); <a name="l00136"></a>00136 <a name="l00137"></a>00137 <span class="comment">//BTX</span> <a name="l00139"></a>00139 <span class="comment"></span> <a name="l00141"></a>00141 <span class="keywordtype">void</span> <a class="code" href="a01803.html#9046c63e2b21cc2875ea2cd459e3e957">Render</a>(<a class="code" href="a01480.html" title="abstract specification for renderers">vtkRenderer</a> *ren, <a name="l00142"></a>00142 <a class="code" href="a01839.html" title="represents a volume (data &amp; properties) in a rendered scene">vtkVolume</a> *vol); <a name="l00144"></a>00144 <a name="l00145"></a>00145 vtkGetVectorMacro( ImageInUseSize, <span class="keywordtype">int</span>, 2 ); <a name="l00146"></a>00146 vtkGetVectorMacro( ImageOrigin, <span class="keywordtype">int</span>, 2 ); <a name="l00147"></a>00147 vtkGetVectorMacro( ImageViewportSize, <span class="keywordtype">int</span> , 2 ); <a name="l00148"></a>00148 <span class="comment">//ETX</span> <a name="l00149"></a>00149 <a name="l00150"></a>00150 <span class="keyword">protected</span>: <a name="l00151"></a>00151 <a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a>(); <a name="l00152"></a>00152 ~<a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a>(); <a name="l00153"></a>00153 <a name="l00155"></a>00155 <span class="keywordtype">void</span> BuildUseSets(); <a name="l00156"></a>00156 <a name="l00158"></a>00158 <a name="l00160"></a>00160 <span class="keywordtype">int</span> ReorderTriangle(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> v[3], <a name="l00161"></a>00161 <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> w[3]); <a name="l00163"></a>00163 <a name="l00165"></a>00165 <a name="l00168"></a>00168 <span class="keywordtype">void</span> ProjectAndSortVertices(<a class="code" href="a01480.html" title="abstract specification for renderers">vtkRenderer</a> *ren, <a name="l00169"></a>00169 <a class="code" href="a01839.html" title="represents a volume (data &amp; properties) in a rendered scene">vtkVolume</a> *vol); <a name="l00171"></a>00171 <a name="l00173"></a>00173 <span class="keywordtype">void</span> CreateAndCleanPixelList(); <a name="l00174"></a>00174 <a name="l00177"></a>00177 <span class="keywordtype">void</span> MainLoop(<a class="code" href="a01489.html" title="create a window for renderers to draw into">vtkRenderWindow</a> *renWin); <a name="l00178"></a>00178 <a name="l00181"></a>00181 <span class="keywordtype">void</span> CompositeFunction(<span class="keywordtype">double</span> zTarget); <a name="l00182"></a>00182 <a name="l00184"></a>00184 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ColorComponentRealToByte(<span class="keywordtype">float</span> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d210ab06a058f9ffb559855ff8495aa7e53e">color</a>); <a name="l00185"></a>00185 <a name="l00187"></a>00187 <span class="keywordtype">void</span> RasterizeFace(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> faceIds[3], <span class="keywordtype">int</span> externalSide); <a name="l00188"></a>00188 <a name="l00189"></a>00189 <span class="comment">//BTX</span> <a name="l00191"></a>00191 <span class="comment"></span> <a name="l00193"></a>00193 <span class="keywordtype">void</span> RasterizeTriangle( <a name="l00194"></a>00194 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve0, <a name="l00195"></a>00195 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve1, <a name="l00196"></a>00196 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *ve2, <a name="l00197"></a>00197 <span class="keywordtype">bool</span> exitFace); <a name="l00199"></a>00199 <a name="l00201"></a>00201 <a name="l00203"></a>00203 <span class="keywordtype">void</span> RasterizeSpan(<span class="keywordtype">int</span> y, <a name="l00204"></a>00204 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *left, <a name="l00205"></a>00205 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkScreenEdge *right, <a name="l00206"></a>00206 <span class="keywordtype">bool</span> exitFace); <a name="l00208"></a>00208 <a name="l00210"></a>00210 <a name="l00213"></a>00213 <span class="keywordtype">void</span> RasterizeLine( <a name="l00214"></a>00214 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v0, <a name="l00215"></a>00215 vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertexEntry *v1, <a name="l00216"></a>00216 <span class="keywordtype">bool</span> exitFace); <a name="l00218"></a>00218 <span class="comment">//ETX</span> <a name="l00219"></a>00219 <a name="l00220"></a>00220 <span class="keywordtype">void</span> StoreRenderTime(<a class="code" href="a01480.html" title="abstract specification for renderers">vtkRenderer</a> *ren, <a name="l00221"></a>00221 <a class="code" href="a01839.html" title="represents a volume (data &amp; properties) in a rendered scene">vtkVolume</a> *vol, <a name="l00222"></a>00222 <span class="keywordtype">float</span> t); <a name="l00223"></a>00223 <a name="l00224"></a>00224 <span class="keywordtype">float</span> RetrieveRenderTime(<a class="code" href="a01480.html" title="abstract specification for renderers">vtkRenderer</a> *ren, <a name="l00225"></a>00225 <a class="code" href="a01839.html" title="represents a volume (data &amp; properties) in a rendered scene">vtkVolume</a> *vol); <a name="l00226"></a>00226 <a name="l00228"></a>00228 <a name="l00229"></a>00229 <span class="keywordtype">double</span> GetZBufferValue(<span class="keywordtype">int</span> x, <a name="l00230"></a>00230 <span class="keywordtype">int</span> y); <a name="l00232"></a>00232 <a name="l00233"></a>00233 <span class="keywordtype">double</span> GetMinimumBoundsDepth(<a class="code" href="a01480.html" title="abstract specification for renderers">vtkRenderer</a> *ren, <a name="l00234"></a>00234 <a class="code" href="a01839.html" title="represents a volume (data &amp; properties) in a rendered scene">vtkVolume</a> *vol); <a name="l00235"></a>00235 <a name="l00238"></a>00238 <span class="keywordtype">void</span> AllocateUseSet(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d210e3d5e7c015dff08d8daf72a0102e1444">size</a>); <a name="l00239"></a>00239 <a name="l00242"></a>00242 <span class="keywordtype">void</span> AllocateVertices(<a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> <a class="code" href="a03761.html#c6551f7bf833e8254b2b3ecdaea0d210e3d5e7c015dff08d8daf72a0102e1444">size</a>); <a name="l00243"></a>00243 <a name="l00245"></a>00245 <span class="keywordtype">void</span> SavePixelListFrame(); <a name="l00246"></a>00246 <a name="l00247"></a><a class="code" href="a01808.html#96d56e01d65f9aa3c28a9f1a7a83e904">00247</a> <span class="keywordtype">int</span> MaxPixelListSize; <a name="l00248"></a>00248 <a name="l00249"></a><a class="code" href="a01808.html#ecd89f3a288dced7857be07c753d88d1">00249</a> <span class="keywordtype">float</span> ImageSampleDistance; <a name="l00250"></a><a class="code" href="a01808.html#a10fa07c3dc29b2e363b163421a25c9b">00250</a> <span class="keywordtype">float</span> MinimumImageSampleDistance; <a name="l00251"></a><a class="code" href="a01808.html#5a5c5b086a67f000639b09d7a0a7e4b2">00251</a> <span class="keywordtype">float</span> MaximumImageSampleDistance; <a name="l00252"></a><a class="code" href="a01808.html#27fbd4eec24af638682e60166700e752">00252</a> <span class="keywordtype">int</span> AutoAdjustSampleDistances; <a name="l00253"></a>00253 <a name="l00254"></a><a class="code" href="a01808.html#3d60e7448fa58b701a7ddd7d5933fbef">00254</a> <a class="code" href="a01454.html" title="helper class that draws the image to the screen">vtkRayCastImageDisplayHelper</a> *ImageDisplayHelper; <a name="l00255"></a>00255 <a name="l00256"></a>00256 <span class="comment">// This is how big the image would be if it covered the entire viewport</span> <a name="l00257"></a><a class="code" href="a01808.html#993a6b2d44ac68b2999bd3a52f7ce9e0">00257</a> <span class="keywordtype">int</span> ImageViewportSize[2]; <a name="l00258"></a>00258 <a name="l00259"></a>00259 <span class="comment">// This is how big the allocated memory for image is. This may be bigger</span> <a name="l00260"></a>00260 <span class="comment">// or smaller than ImageFullSize - it will be bigger if necessary to </span> <a name="l00261"></a>00261 <span class="comment">// ensure a power of 2, it will be smaller if the volume only covers a</span> <a name="l00262"></a>00262 <span class="comment">// small region of the viewport</span> <a name="l00263"></a><a class="code" href="a01808.html#4aaca48e96a0a7d51588a672f32db34b">00263</a> <span class="keywordtype">int</span> ImageMemorySize[2]; <a name="l00264"></a>00264 <a name="l00265"></a>00265 <span class="comment">// This is the size of subregion in ImageSize image that we are using for</span> <a name="l00266"></a>00266 <span class="comment">// the current image. Since ImageSize is a power of 2, there is likely</span> <a name="l00267"></a>00267 <span class="comment">// wasted space in it. This number will be used for things such as clearing</span> <a name="l00268"></a>00268 <span class="comment">// the image if necessary.</span> <a name="l00269"></a><a class="code" href="a01808.html#a23fc618c750a4476111f9441ca6fbbf">00269</a> <span class="keywordtype">int</span> ImageInUseSize[2]; <a name="l00270"></a>00270 <a name="l00271"></a>00271 <span class="comment">// This is the location in ImageFullSize image where our ImageSize image</span> <a name="l00272"></a>00272 <span class="comment">// is located.</span> <a name="l00273"></a><a class="code" href="a01808.html#92331c8b41737a521905d5cbfa9d1e01">00273</a> <span class="keywordtype">int</span> ImageOrigin[2]; <a name="l00274"></a>00274 <a name="l00275"></a>00275 <span class="comment">// This is the allocated image</span> <a name="l00276"></a><a class="code" href="a01808.html#952c160da9105f76fc263efb1f169b11">00276</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *Image; <a name="l00277"></a>00277 <a name="l00278"></a>00278 <span class="comment">// This is the accumulating double RGBA image</span> <a name="l00279"></a><a class="code" href="a01808.html#cb7cb74eb7e392a88ab6ad12bb4095fa">00279</a> <span class="keywordtype">float</span> *RealRGBAImage; <a name="l00280"></a>00280 <a name="l00281"></a><a class="code" href="a01808.html#ae7badeb3f71340a38f794d102fd939a">00281</a> <span class="keywordtype">float</span> *RenderTimeTable; <a name="l00282"></a><a class="code" href="a01808.html#02fcacbf64728c6b9faed8d395ea08c0">00282</a> <a class="code" href="a01839.html" title="represents a volume (data &amp; properties) in a rendered scene">vtkVolume</a> **RenderVolumeTable; <a name="l00283"></a><a class="code" href="a01808.html#0e2a5fea2f2a1e52ac81527b34a65572">00283</a> <a class="code" href="a01480.html" title="abstract specification for renderers">vtkRenderer</a> **RenderRendererTable; <a name="l00284"></a><a class="code" href="a01808.html#3c09413dbb59b71bcadd742f842e9376">00284</a> <span class="keywordtype">int</span> RenderTableSize; <a name="l00285"></a><a class="code" href="a01808.html#2b3683ddc2752844c21122a095866cb5">00285</a> <span class="keywordtype">int</span> RenderTableEntries; <a name="l00286"></a>00286 <a name="l00287"></a><a class="code" href="a01808.html#c69ee6a27fcc2cf5853976e6c94d4d65">00287</a> <span class="keywordtype">int</span> IntermixIntersectingGeometry; <a name="l00288"></a>00288 <a name="l00289"></a><a class="code" href="a01808.html#c693114ac408a0e1081dc45cd3712748">00289</a> <span class="keywordtype">float</span> *ZBuffer; <a name="l00290"></a><a class="code" href="a01808.html#9d387e05c63343e0f9fbff71742284ea">00290</a> <span class="keywordtype">int</span> ZBufferSize[2]; <a name="l00291"></a><a class="code" href="a01808.html#81cdc937569c0ae7f71e6ad35fbf2362">00291</a> <span class="keywordtype">int</span> ZBufferOrigin[2]; <a name="l00292"></a>00292 <a name="l00293"></a><a class="code" href="a01808.html#647d0429812cae8a9d7199d05367f41d">00293</a> <a class="code" href="a00356.html" title="abstract superclass for arrays of numeric data">vtkDataArray</a> *Scalars; <a name="l00294"></a><a class="code" href="a01808.html#c6edbdae315b3f2cba468bf34caf60f2">00294</a> <span class="keywordtype">int</span> CellScalars; <a name="l00295"></a>00295 <a name="l00296"></a>00296 <span class="comment">// if use CellScalars, we need to keep track of the</span> <a name="l00297"></a>00297 <span class="comment">// values on each side of the face and figure out</span> <a name="l00298"></a>00298 <span class="comment">// if the face is used by two cells (twosided) or one cell.</span> <a name="l00299"></a><a class="code" href="a01808.html#3d1dd584225c203cddd13c5a136828fb">00299</a> <span class="keywordtype">double</span> FaceScalars[2]; <a name="l00300"></a><a class="code" href="a01808.html#18a39297aab416b4259478628889a297">00300</a> <span class="keywordtype">int</span> FaceSide; <a name="l00301"></a>00301 <a name="l00302"></a>00302 <span class="comment">//BTX</span> <a name="l00303"></a><a class="code" href="a01808.html#2da6cec427fde20c44dfe768b8fd1e98">00303</a> vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSpan *Span; <a name="l00304"></a><a class="code" href="a01808.html#1c43f22f76e751b609f154acb476f25f">00304</a> vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListFrame *PixelListFrame; <a name="l00305"></a>00305 <a name="l00306"></a>00306 <span class="comment">// Used by BuildUseSets().</span> <a name="l00307"></a><a class="code" href="a01808.html#6739fa2fd5b6d033e918c43251dd6562">00307</a> <a class="code" href="a00582.html" title="provides thread-safe access to cells">vtkGenericCell</a> *Cell; <a name="l00308"></a>00308 <a name="l00309"></a><a class="code" href="a01808.html#73813f8ae12e179b842b77078486d0f2">00309</a> vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkUseSet *UseSet; <a name="l00310"></a>00310 <a name="l00311"></a><a class="code" href="a01808.html#a72fe0f213d4ac28708b3af7ee652d64">00311</a> <a class="code" href="a01300.html" title="an list of ids arranged in priority order">vtkPriorityQueue</a> *EventList; <a name="l00312"></a><a class="code" href="a01808.html#c199f155c7ed92bcd7a9a9f2b28dd619">00312</a> vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkVertices *Vertices; <a name="l00313"></a>00313 <a name="l00314"></a><a class="code" href="a01808.html#13b83e11c94f4e8ff6db128e2ebc13de">00314</a> <a class="code" href="a01723.html" title="describes linear transformations via a 4x4 matrix">vtkTransform</a> *PerspectiveTransform; <a name="l00315"></a><a class="code" href="a01808.html#e52584cb328e6ec60826a88438ccfdef">00315</a> <a class="code" href="a00998.html" title="represent and manipulate 4x4 transformation matrices">vtkMatrix4x4</a> *PerspectiveMatrix; <a name="l00316"></a>00316 <a name="l00317"></a>00317 <span class="comment">// Used by the main loop</span> <a name="l00318"></a><a class="code" href="a01808.html#ad6e93a91584fe84ca303c15746b31a3">00318</a> <span class="keywordtype">int</span> MaxPixelListSizeReached; <a name="l00319"></a><a class="code" href="a01808.html#a4ee086d2913680454c978335d2f8ae1">00319</a> <span class="keywordtype">int</span> XBounds[2]; <a name="l00320"></a><a class="code" href="a01808.html#f1f365e55e43173897ec620987ca3910">00320</a> <span class="keywordtype">int</span> YBounds[2]; <a name="l00321"></a>00321 <a name="l00322"></a><a class="code" href="a01808.html#0ea9e8ac5c3f190d4b86b16ce208ca1e">00322</a> vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkSimpleScreenEdge *SimpleEdge; <a name="l00323"></a><a class="code" href="a01808.html#f95ba07078c39d31a472cb51ccf4aa83">00323</a> vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkDoubleScreenEdge *DoubleEdge; <a name="l00324"></a>00324 <a name="l00325"></a><a class="code" href="a01808.html#c0d364856f79d66a9d0526da25045cd1">00325</a> <a class="code" href="a01807.html" title="a superclass for volume ray integration functions">vtkUnstructuredGridVolumeRayIntegrator</a> *RayIntegrator; <a name="l00326"></a><a class="code" href="a01808.html#1ac23a8b3db8f2dda98f47cd4b448ddc">00326</a> <a class="code" href="a01807.html" title="a superclass for volume ray integration functions">vtkUnstructuredGridVolumeRayIntegrator</a> *RealRayIntegrator; <a name="l00327"></a>00327 <a name="l00328"></a><a class="code" href="a01808.html#8f13d87bfb9c2f01dcb16bd00282908b">00328</a> <a class="code" href="a01719.html" title="record modification and/or execution time">vtkTimeStamp</a> SavedTriangleListMTime; <a name="l00329"></a>00329 <a name="l00330"></a>00330 <span class="comment">// Used during compositing</span> <a name="l00331"></a><a class="code" href="a01808.html#969652840a6b2545512beaee7768a4d5">00331</a> <a class="code" href="a00436.html" title="dynamic, self-adjusting array of double">vtkDoubleArray</a> *IntersectionLengths; <a name="l00332"></a><a class="code" href="a01808.html#9130f5f1a755e72a41724a62f297f846">00332</a> <a class="code" href="a00436.html" title="dynamic, self-adjusting array of double">vtkDoubleArray</a> *NearIntersections; <a name="l00333"></a><a class="code" href="a01808.html#1b8a9fce74e5fdae9f5d94db64cb70c4">00333</a> <a class="code" href="a00436.html" title="dynamic, self-adjusting array of double">vtkDoubleArray</a> *FarIntersections; <a name="l00334"></a>00334 <a name="l00335"></a>00335 <span class="comment">// Benchmark</span> <a name="l00336"></a><a class="code" href="a01808.html#108d7eef3836aea69aa8aaa872c34b94">00336</a> <a class="code" href="a02149.html#20bd6b6dedfe1bbb096c50354d52cc7e">vtkIdType</a> MaxRecordedPixelListSize; <a name="l00337"></a>00337 <a name="l00338"></a>00338 <a name="l00339"></a><a class="code" href="a01808.html#6a6096fe102de21ac75f5e12c46333d4">00339</a> vtkUnstructuredGridVolumeZSweepMapperNamespace::vtkPixelListEntryMemory *MemoryManager; <a name="l00340"></a>00340 <span class="comment">//ETX</span> <a name="l00341"></a>00341 <span class="keyword">private</span>: <a name="l00342"></a>00342 <a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a>(<span class="keyword">const</span> <a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a>&); <span class="comment">// Not implemented.</span> <a name="l00343"></a>00343 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="a01808.html" title="Unstructured grid volume mapper based the ZSweep Algorithm.">vtkUnstructuredGridVolumeZSweepMapper</a>&); <span class="comment">// Not implemented.</span> <a name="l00344"></a>00344 }; <a name="l00345"></a>00345 <a name="l00346"></a>00346 <span class="preprocessor">#endif</span> </pre></div></div> <hr size="1"><address style="text-align: right;"><small>Generated on Wed Jun 3 18:35:51 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>