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 =========================================================================*/ 00051 #ifndef __vtkImageOpenClose3D_h 00052 #define __vtkImageOpenClose3D_h 00053 00054 00055 #include "vtkImageToImageFilter.h" 00056 00057 class vtkImageDilateErode3D; 00058 00059 class VTK_IMAGING_EXPORT vtkImageOpenClose3D : public vtkImageToImageFilter 00060 { 00061 public: 00063 00064 static vtkImageOpenClose3D *New(); 00065 vtkTypeRevisionMacro(vtkImageOpenClose3D,vtkImageToImageFilter); 00066 void PrintSelf(ostream& os, vtkIndent indent); 00068 00071 unsigned long int GetMTime(); 00072 00074 00075 void DebugOn(); 00076 void DebugOff(); 00078 00080 void Modified(); 00081 00082 // Foward Source messages to filter1 00083 00085 00087 vtkImageData *GetOutput(); 00088 vtkImageData *GetOutput(int idx) 00089 {return (vtkImageData *) this->vtkImageSource::GetOutput(idx); }; 00091 00092 00093 // Foward filter messages 00094 00096 void SetInput(vtkImageData *Input); 00097 00098 // Forward dilateErode messages to both filters. 00099 00101 void SetKernelSize(int size0, int size1, int size2); 00102 00104 00106 void SetOpenValue(float value); 00107 float GetOpenValue(); 00109 00111 00113 void SetCloseValue(float value); 00114 float GetCloseValue(); 00116 00118 00119 vtkGetObjectMacro(Filter0, vtkImageDilateErode3D); 00120 vtkGetObjectMacro(Filter1, vtkImageDilateErode3D); 00122 00123 protected: 00124 vtkImageOpenClose3D(); 00125 ~vtkImageOpenClose3D(); 00126 00127 vtkImageDilateErode3D *Filter0; 00128 vtkImageDilateErode3D *Filter1; 00129 private: 00130 vtkImageOpenClose3D(const vtkImageOpenClose3D&); // Not implemented. 00131 void operator=(const vtkImageOpenClose3D&); // Not implemented. 00132 }; 00133 00134 #endif 00135 00136 00137