00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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&);
00106
void operator=(
const vtkVoxelContoursToSurfaceFilter&);
00107 };
00108
00109
#endif
00110
00111