Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/Graphics/vtkVoxelContoursToSurfaceFilter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkVoxelContoursToSurfaceFilter.h,v $
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even 
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00049 #ifndef __vtkVoxelContoursToSurfaceFilter_h
00050 #define __vtkVoxelContoursToSurfaceFilter_h
00051 
00052 #include "vtkPolyDataToPolyDataFilter.h"
00053 
00054 class VTK_GRAPHICS_EXPORT vtkVoxelContoursToSurfaceFilter : public vtkPolyDataToPolyDataFilter
00055 {
00056 public:
00057   static vtkVoxelContoursToSurfaceFilter *New();
00058   vtkTypeRevisionMacro(vtkVoxelContoursToSurfaceFilter,vtkPolyDataToPolyDataFilter);
00059   void PrintSelf(ostream& os, vtkIndent indent);
00060 
00062 
00066   vtkSetMacro( MemoryLimitInBytes, int );
00067   vtkGetMacro( MemoryLimitInBytes, int );
00069 
00070   vtkSetVector3Macro( Spacing, float );
00071   vtkGetVectorMacro( Spacing, float, 3 );
00072 
00073 protected:
00074   vtkVoxelContoursToSurfaceFilter();
00075   ~vtkVoxelContoursToSurfaceFilter();
00076 
00077   void    Execute();
00078 
00079   int     MemoryLimitInBytes;
00080 
00081   float   Spacing[3];
00082 
00083   float   *LineList;
00084   int     LineListLength;
00085   int     LineListSize;
00086 
00087   float   *SortedXList;
00088   float   *SortedYList;
00089   int     SortedListSize;
00090 
00091   int     *WorkingList;
00092   int     WorkingListLength;
00093 
00094   float   *IntersectionList;
00095   int     IntersectionListLength;
00096 
00097   void    AddLineToLineList( float x1, float y1, float x2, float y2 );
00098   void    SortLineList();
00099   
00100   void    CastLines( float *slice, float gridOrigin[3], 
00101                      int gridSize[3], int type );
00102 
00103   void    PushDistances( float *ptr, int gridSize[3], int chunkSize );
00104 private:
00105   vtkVoxelContoursToSurfaceFilter(const vtkVoxelContoursToSurfaceFilter&);  // Not implemented.
00106   void operator=(const vtkVoxelContoursToSurfaceFilter&);  // Not implemented.
00107 };
00108 
00109 #endif
00110 
00111