00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00040 #ifndef __vtkImageAccumulate_h
00041 #define __vtkImageAccumulate_h
00042
00043 #include "vtkImageAlgorithm.h"
00044
00045 class vtkImageStencilData;
00046
00047 class VTK_IMAGING_EXPORT vtkImageAccumulate : public vtkImageAlgorithm
00048 {
00049 public:
00050 static vtkImageAccumulate *New();
00051 vtkTypeRevisionMacro(vtkImageAccumulate,vtkImageAlgorithm);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00053
00055
00060 vtkSetVector3Macro(ComponentSpacing, double);
00061 vtkGetVector3Macro(ComponentSpacing, double);
00063
00065
00071 vtkSetVector3Macro(ComponentOrigin, double);
00072 vtkGetVector3Macro(ComponentOrigin, double);
00074
00076
00081 void SetComponentExtent(int extent[6]);
00082 void SetComponentExtent(int minX, int maxX, int minY, int maxY,
00083 int minZ, int maxZ);
00084 void GetComponentExtent(int extent[6]);
00085 int *GetComponentExtent() {return this->ComponentExtent;}
00087
00088
00090
00091 void SetStencil(vtkImageStencilData *stencil);
00092 vtkImageStencilData *GetStencil();
00094
00096
00097 vtkSetClampMacro(ReverseStencil, int, 0, 1);
00098 vtkBooleanMacro(ReverseStencil, int);
00099 vtkGetMacro(ReverseStencil, int);
00101
00103
00104 vtkGetVector3Macro(Min, double);
00105 vtkGetVector3Macro(Max, double);
00106 vtkGetVector3Macro(Mean, double);
00107 vtkGetVector3Macro(StandardDeviation, double);
00108 vtkGetMacro(VoxelCount, long int);
00110
00112
00113 vtkSetClampMacro(IgnoreZero, int, 0, 1);
00114 vtkGetMacro(IgnoreZero, int);
00115 vtkBooleanMacro(IgnoreZero, int);
00117
00118 protected:
00119 vtkImageAccumulate();
00120 ~vtkImageAccumulate();
00121
00122 double ComponentSpacing[3];
00123 double ComponentOrigin[3];
00124 int ComponentExtent[6];
00125
00126 virtual int RequestUpdateExtent(vtkInformation*,
00127 vtkInformationVector**,
00128 vtkInformationVector*);
00129 virtual int RequestInformation (vtkInformation*,
00130 vtkInformationVector**,
00131 vtkInformationVector*);
00132 virtual int RequestData(vtkInformation* request,
00133 vtkInformationVector** inputVector,
00134 vtkInformationVector* outputVector);
00135
00136 int IgnoreZero;
00137 double Min[3];
00138 double Max[3];
00139 double Mean[3];
00140 double StandardDeviation[3];
00141 long int VoxelCount;
00142
00143 int ReverseStencil;
00144
00145 virtual int FillInputPortInformation(int port, vtkInformation* info);
00146
00147 private:
00148 vtkImageAccumulate(const vtkImageAccumulate&);
00149 void operator=(const vtkImageAccumulate&);
00150 };
00151
00152 #endif
00153
00154
00155