VTK
dox/Imaging/Statistics/vtkImageAccumulate.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkImageAccumulate.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00042 #ifndef __vtkImageAccumulate_h
00043 #define __vtkImageAccumulate_h
00044 
00045 #include "vtkImagingStatisticsModule.h" // For export macro
00046 #include "vtkImageAlgorithm.h"
00047 
00048 class vtkImageStencilData;
00049 
00050 class VTKIMAGINGSTATISTICS_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 SetStencilData(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&);  // Not implemented.
00156   void operator=(const vtkImageAccumulate&);  // Not implemented.
00157 };
00158 
00159 #endif
00160 
00161 
00162