00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00043 #ifndef __vtkImageAccumulate_h
00044 #define __vtkImageAccumulate_h
00045
00046 #include "vtkImageAlgorithm.h"
00047
00048 class vtkImageStencilData;
00049
00050 class VTK_IMAGING_EXPORT vtkImageAccumulate : public vtkImageAlgorithm
00051 {
00052 public:
00053 static vtkImageAccumulate *New();
00054 vtkTypeMacro(vtkImageAccumulate,vtkImageAlgorithm);
00055 void PrintSelf(ostream& os, vtkIndent indent);
00056
00058
00064 vtkSetVector3Macro(ComponentSpacing, double);
00065 vtkGetVector3Macro(ComponentSpacing, double);
00067
00069
00075 vtkSetVector3Macro(ComponentOrigin, double);
00076 vtkGetVector3Macro(ComponentOrigin, double);
00078
00080
00085 void SetComponentExtent(int extent[6]);
00086 void SetComponentExtent(int minX, int maxX, int minY, int maxY,
00087 int minZ, int maxZ);
00088 void GetComponentExtent(int extent[6]);
00089 int *GetComponentExtent() {return this->ComponentExtent;}
00091
00092
00094
00097 void SetStencil(vtkImageStencilData *stencil);
00098 vtkImageStencilData *GetStencil();
00100
00102
00103 vtkSetClampMacro(ReverseStencil, int, 0, 1);
00104 vtkBooleanMacro(ReverseStencil, int);
00105 vtkGetMacro(ReverseStencil, int);
00107
00109
00111 vtkGetVector3Macro(Min, double);
00112 vtkGetVector3Macro(Max, double);
00113 vtkGetVector3Macro(Mean, double);
00114 vtkGetVector3Macro(StandardDeviation, double);
00115 vtkGetMacro(VoxelCount, vtkIdType);
00117
00119
00120 vtkSetClampMacro(IgnoreZero, int, 0, 1);
00121 vtkGetMacro(IgnoreZero, int);
00122 vtkBooleanMacro(IgnoreZero, int);
00124
00125 protected:
00126 vtkImageAccumulate();
00127 ~vtkImageAccumulate();
00128
00129 double ComponentSpacing[3];
00130 double ComponentOrigin[3];
00131 int ComponentExtent[6];
00132
00133 virtual int RequestUpdateExtent(vtkInformation*,
00134 vtkInformationVector**,
00135 vtkInformationVector*);
00136 virtual int RequestInformation (vtkInformation*,
00137 vtkInformationVector**,
00138 vtkInformationVector*);
00139 virtual int RequestData(vtkInformation* request,
00140 vtkInformationVector** inputVector,
00141 vtkInformationVector* outputVector);
00142
00143 int IgnoreZero;
00144 double Min[3];
00145 double Max[3];
00146 double Mean[3];
00147 double StandardDeviation[3];
00148 vtkIdType VoxelCount;
00149
00150 int ReverseStencil;
00151
00152 virtual int FillInputPortInformation(int port, vtkInformation* info);
00153
00154 private:
00155 vtkImageAccumulate(const vtkImageAccumulate&);
00156 void operator=(const vtkImageAccumulate&);
00157 };
00158
00159 #endif
00160
00161
00162