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 =========================================================================*/ 00050 #ifndef __vtkImageOpenClose3D_h 00051 #define __vtkImageOpenClose3D_h 00052 00053 00054 #include "vtkImageToImageFilter.h" 00055 00056 class vtkImageDilateErode3D; 00057 00058 class VTK_IMAGING_EXPORT vtkImageOpenClose3D : public vtkImageToImageFilter 00059 { 00060 public: 00062 00063 static vtkImageOpenClose3D *New(); 00064 vtkTypeRevisionMacro(vtkImageOpenClose3D,vtkImageToImageFilter); 00065 void PrintSelf(ostream& os, vtkIndent indent); 00067 00070 unsigned long int GetMTime(); 00071 00073 00074 void DebugOn(); 00075 void DebugOff(); 00077 00079 void Modified(); 00080 00081 // Foward Source messages to filter1 00082 00084 00086 vtkImageData *GetOutput(); 00087 vtkImageData *GetOutput(int idx) 00088 {return (vtkImageData *) this->vtkImageSource::GetOutput(idx); }; 00090 00091 00092 // Foward filter messages 00093 00095 void SetInput(vtkImageData *Input); 00096 00097 // Forward dilateErode messages to both filters. 00098 00100 void SetKernelSize(int size0, int size1, int size2); 00101 00103 00105 void SetOpenValue(float value); 00106 float GetOpenValue(); 00108 00110 00112 void SetCloseValue(float value); 00113 float GetCloseValue(); 00115 00117 00118 vtkGetObjectMacro(Filter0, vtkImageDilateErode3D); 00119 vtkGetObjectMacro(Filter1, vtkImageDilateErode3D); 00121 00122 protected: 00123 vtkImageOpenClose3D(); 00124 ~vtkImageOpenClose3D(); 00125 00126 vtkImageDilateErode3D *Filter0; 00127 vtkImageDilateErode3D *Filter1; 00128 private: 00129 vtkImageOpenClose3D(const vtkImageOpenClose3D&); // Not implemented. 00130 void operator=(const vtkImageOpenClose3D&); // Not implemented. 00131 }; 00132 00133 #endif 00134 00135 00136