VTK
|
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