VTK
dox/Imaging/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 "vtkImageAlgorithm.h"
00046 
00047 class vtkImageStencilData;
00048 
00049 class VTK_IMAGING_EXPORT vtkImageAccumulate : public vtkImageAlgorithm
00050 {
00051 public:
00052   static vtkImageAccumulate *New();
00053   vtkTypeMacro(vtkImageAccumulate,vtkImageAlgorithm);
00054   void PrintSelf(ostream& os, vtkIndent indent);
00055 
00057 
00063   vtkSetVector3Macro(ComponentSpacing, double);
00064   vtkGetVector3Macro(ComponentSpacing, double);
00066 
00068 
00074   vtkSetVector3Macro(ComponentOrigin, double);
00075   vtkGetVector3Macro(ComponentOrigin, double);
00077 
00079 
00084   void SetComponentExtent(int extent[6]);
00085   void SetComponentExtent(int minX, int maxX, int minY, int maxY,
00086         int minZ, int maxZ);
00087   void GetComponentExtent(int extent[6]);
00088   int *GetComponentExtent() {return this->ComponentExtent;}
00090 
00091 
00093 
00096   void SetStencil(vtkImageStencilData *stencil);
00097   vtkImageStencilData *GetStencil();
00099 
00101 
00102   vtkSetClampMacro(ReverseStencil, int, 0, 1);
00103   vtkBooleanMacro(ReverseStencil, int);
00104   vtkGetMacro(ReverseStencil, int);
00106 
00108 
00110   vtkGetVector3Macro(Min, double);
00111   vtkGetVector3Macro(Max, double);
00112   vtkGetVector3Macro(Mean, double);
00113   vtkGetVector3Macro(StandardDeviation, double);
00114   vtkGetMacro(VoxelCount, vtkIdType);
00116 
00118 
00119   vtkSetClampMacro(IgnoreZero, int, 0, 1);
00120   vtkGetMacro(IgnoreZero, int);
00121   vtkBooleanMacro(IgnoreZero, int);
00123 
00124 protected:
00125   vtkImageAccumulate();
00126   ~vtkImageAccumulate();
00127 
00128   double ComponentSpacing[3];
00129   double ComponentOrigin[3];
00130   int ComponentExtent[6];
00131 
00132   virtual int RequestUpdateExtent(vtkInformation*,
00133                                    vtkInformationVector**,
00134                                    vtkInformationVector*);
00135   virtual int RequestInformation (vtkInformation*,
00136                                   vtkInformationVector**,
00137                                   vtkInformationVector*);
00138   virtual int RequestData(vtkInformation* request,
00139                           vtkInformationVector** inputVector,
00140                           vtkInformationVector* outputVector);
00141 
00142   int    IgnoreZero;
00143   double Min[3];
00144   double Max[3];
00145   double Mean[3];
00146   double StandardDeviation[3];
00147   vtkIdType VoxelCount;
00148 
00149   int ReverseStencil;
00150 
00151   virtual int FillInputPortInformation(int port, vtkInformation* info);
00152 
00153 private:
00154   vtkImageAccumulate(const vtkImageAccumulate&);  // Not implemented.
00155   void operator=(const vtkImageAccumulate&);  // Not implemented.
00156 };
00157 
00158 #endif
00159 
00160 
00161