00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00039 #ifndef __vtkRecursiveDividingCubes_h
00040 #define __vtkRecursiveDividingCubes_h
00041
00042 #include "vtkPolyDataAlgorithm.h"
00043
00044 class vtkVoxel;
00045
00046 class VTK_GRAPHICS_EXPORT vtkRecursiveDividingCubes : public vtkPolyDataAlgorithm
00047 {
00048 public:
00049 static vtkRecursiveDividingCubes *New();
00050 vtkTypeRevisionMacro(vtkRecursiveDividingCubes,vtkPolyDataAlgorithm);
00051 void PrintSelf(ostream& os, vtkIndent indent);
00052
00054
00055 vtkSetMacro(Value,double);
00056 vtkGetMacro(Value,double);
00058
00060
00061 vtkSetClampMacro(Distance,double,1.0e-06,VTK_DOUBLE_MAX);
00062 vtkGetMacro(Distance,double);
00064
00066
00069 vtkSetClampMacro(Increment,int,1,VTK_LARGE_INTEGER);
00070 vtkGetMacro(Increment,int);
00072
00073 protected:
00074 vtkRecursiveDividingCubes();
00075 ~vtkRecursiveDividingCubes();
00076
00077 virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00078 virtual int FillInputPortInformation(int port, vtkInformation *info);
00079 void SubDivide(double origin[3], double h[3], double values[8]);
00080
00081 double Value;
00082 double Distance;
00083 int Increment;
00084
00085
00086 int Count;
00087
00088
00089 vtkVoxel *Voxel;
00090 private:
00091 vtkRecursiveDividingCubes(const vtkRecursiveDividingCubes&);
00092 void operator=(const vtkRecursiveDividingCubes&);
00093 };
00094
00095 #endif