00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageOpenClose3D.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00039 #ifndef __vtkImageOpenClose3D_h 00040 #define __vtkImageOpenClose3D_h 00041 00042 00043 #include "vtkImageToImageFilter.h" 00044 00045 class vtkImageDilateErode3D; 00046 00047 class VTK_IMAGING_EXPORT vtkImageOpenClose3D : public vtkImageToImageFilter 00048 { 00049 public: 00051 00052 static vtkImageOpenClose3D *New(); 00053 vtkTypeRevisionMacro(vtkImageOpenClose3D,vtkImageToImageFilter); 00054 void PrintSelf(ostream& os, vtkIndent indent); 00056 00059 unsigned long int GetMTime(); 00060 00062 00063 void DebugOn(); 00064 void DebugOff(); 00066 00068 void Modified(); 00069 00070 // Foward Source messages to filter1 00071 00073 00075 vtkImageData *GetOutput(); 00076 vtkImageData *GetOutput(int idx) 00077 {return (vtkImageData *) this->vtkImageSource::GetOutput(idx); }; 00079 00080 00081 // Foward filter messages 00082 00084 void SetInput(vtkImageData *Input); 00085 00086 // Forward dilateErode messages to both filters. 00087 00089 void SetKernelSize(int size0, int size1, int size2); 00090 00092 00094 void SetOpenValue(float value); 00095 float GetOpenValue(); 00097 00099 00101 void SetCloseValue(float value); 00102 float GetCloseValue(); 00104 00106 00107 vtkGetObjectMacro(Filter0, vtkImageDilateErode3D); 00108 vtkGetObjectMacro(Filter1, vtkImageDilateErode3D); 00110 00111 protected: 00112 vtkImageOpenClose3D(); 00113 ~vtkImageOpenClose3D(); 00114 00115 vtkImageDilateErode3D *Filter0; 00116 vtkImageDilateErode3D *Filter1; 00117 private: 00118 vtkImageOpenClose3D(const vtkImageOpenClose3D&); // Not implemented. 00119 void operator=(const vtkImageOpenClose3D&); // Not implemented. 00120 }; 00121 00122 #endif 00123 00124 00125