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