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

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 =========================================================================*/
00059 #ifndef __vtkVoxelContoursToSurfaceFilter_h
00060 #define __vtkVoxelContoursToSurfaceFilter_h
00061 
00062 #include "vtkPolyDataToPolyDataFilter.h"
00063 
00064 class VTK_GRAPHICS_EXPORT vtkVoxelContoursToSurfaceFilter : public vtkPolyDataToPolyDataFilter
00065 {
00066 public:
00067   static vtkVoxelContoursToSurfaceFilter *New();
00068   vtkTypeRevisionMacro(vtkVoxelContoursToSurfaceFilter,vtkPolyDataToPolyDataFilter);
00069   void PrintSelf(ostream& os, vtkIndent indent);
00070 
00072 
00076   vtkSetMacro( MemoryLimitInBytes, int );
00077   vtkGetMacro( MemoryLimitInBytes, int );
00079 
00080   vtkSetVector3Macro( Spacing, float );
00081   vtkGetVectorMacro( Spacing, float, 3 );
00082 
00083 protected:
00084   vtkVoxelContoursToSurfaceFilter();
00085   ~vtkVoxelContoursToSurfaceFilter();
00086 
00087   void    Execute();
00088 
00089   int     MemoryLimitInBytes;
00090 
00091   float   Spacing[3];
00092 
00093   float   *LineList;
00094   int     LineListLength;
00095   int     LineListSize;
00096 
00097   float   *SortedXList;
00098   float   *SortedYList;
00099   int     SortedListSize;
00100 
00101   int     *WorkingList;
00102   int     WorkingListLength;
00103 
00104   float   *IntersectionList;
00105   int     IntersectionListLength;
00106 
00107   void    AddLineToLineList( float x1, float y1, float x2, float y2 );
00108   void    SortLineList();
00109   
00110   void    CastLines( float *slice, float gridOrigin[3], 
00111                      int gridSize[3], int type );
00112 
00113   void    PushDistances( float *ptr, int gridSize[3], int chunkSize );
00114 private:
00115   vtkVoxelContoursToSurfaceFilter(const vtkVoxelContoursToSurfaceFilter&);  // Not implemented.
00116   void operator=(const vtkVoxelContoursToSurfaceFilter&);  // Not implemented.
00117 };
00118 
00119 #endif
00120 
00121