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 =========================================================================*/ 00035 #ifndef __vtkImageOpenClose3D_h 00036 #define __vtkImageOpenClose3D_h 00037 00038 00039 #include "vtkImageToImageFilter.h" 00040 00041 class vtkImageDilateErode3D; 00042 00043 class VTK_IMAGING_EXPORT vtkImageOpenClose3D : public vtkImageToImageFilter 00044 { 00045 public: 00047 00048 static vtkImageOpenClose3D *New(); 00049 vtkTypeRevisionMacro(vtkImageOpenClose3D,vtkImageToImageFilter); 00050 void PrintSelf(ostream& os, vtkIndent indent); 00052 00055 unsigned long int GetMTime(); 00056 00058 00059 void DebugOn(); 00060 void DebugOff(); 00062 00064 void Modified(); 00065 00066 // Foward Source messages to filter1 00067 00069 00071 vtkImageData *GetOutput(); 00072 vtkImageData *GetOutput(int idx) 00073 {return (vtkImageData *) this->vtkImageSource::GetOutput(idx); }; 00075 00076 00077 // Foward filter messages 00078 00080 void SetInput(vtkImageData *Input); 00081 00082 // Forward dilateErode messages to both filters. 00083 00085 void SetKernelSize(int size0, int size1, int size2); 00086 00088 00090 void SetOpenValue(double value); 00091 double GetOpenValue(); 00093 00095 00097 void SetCloseValue(double value); 00098 double GetCloseValue(); 00100 00102 00103 vtkGetObjectMacro(Filter0, vtkImageDilateErode3D); 00104 vtkGetObjectMacro(Filter1, vtkImageDilateErode3D); 00106 00107 protected: 00108 vtkImageOpenClose3D(); 00109 ~vtkImageOpenClose3D(); 00110 00111 vtkImageDilateErode3D *Filter0; 00112 vtkImageDilateErode3D *Filter1; 00113 private: 00114 vtkImageOpenClose3D(const vtkImageOpenClose3D&); // Not implemented. 00115 void operator=(const vtkImageOpenClose3D&); // Not implemented. 00116 }; 00117 00118 #endif 00119 00120 00121