00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageOpenClose3D.h,v $ 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 =========================================================================*/ 00047 #ifndef __vtkImageOpenClose3D_h 00048 #define __vtkImageOpenClose3D_h 00049 00050 00051 #include "vtkImageToImageFilter.h" 00052 00053 class vtkImageDilateErode3D; 00054 00055 class VTK_IMAGING_EXPORT vtkImageOpenClose3D : public vtkImageToImageFilter 00056 { 00057 public: 00059 00060 static vtkImageOpenClose3D *New(); 00061 vtkTypeRevisionMacro(vtkImageOpenClose3D,vtkImageToImageFilter); 00062 void PrintSelf(ostream& os, vtkIndent indent); 00064 00067 unsigned long int GetMTime(); 00068 00070 00071 void DebugOn(); 00072 void DebugOff(); 00074 00076 void Modified(); 00077 00078 // Foward Source messages to filter1 00079 00081 00083 vtkImageData *GetOutput(); 00084 vtkImageData *GetOutput(int idx) 00085 {return (vtkImageData *) this->vtkImageSource::GetOutput(idx); }; 00087 00088 00089 // Foward filter messages 00090 00092 void SetInput(vtkImageData *Input); 00093 00094 // Forward dilateErode messages to both filters. 00095 00097 void SetKernelSize(int size0, int size1, int size2); 00098 00100 00102 void SetOpenValue(double value); 00103 double GetOpenValue(); 00105 00107 00109 void SetCloseValue(double value); 00110 double GetCloseValue(); 00112 00114 00115 vtkGetObjectMacro(Filter0, vtkImageDilateErode3D); 00116 vtkGetObjectMacro(Filter1, vtkImageDilateErode3D); 00118 00119 protected: 00120 vtkImageOpenClose3D(); 00121 ~vtkImageOpenClose3D(); 00122 00123 vtkImageDilateErode3D *Filter0; 00124 vtkImageDilateErode3D *Filter1; 00125 00126 virtual void ReportReferences(vtkGarbageCollector*); 00127 virtual void RemoveReferences(); 00128 private: 00129 vtkImageOpenClose3D(const vtkImageOpenClose3D&); // Not implemented. 00130 void operator=(const vtkImageOpenClose3D&); // Not implemented. 00131 }; 00132 00133 #endif 00134 00135 00136