VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageOpenClose3D.h 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 "vtkImagingMorphologicalModule.h" // For export macro 00040 #include "vtkImageAlgorithm.h" 00041 00042 class vtkImageDilateErode3D; 00043 00044 class VTKIMAGINGMORPHOLOGICAL_EXPORT vtkImageOpenClose3D : public vtkImageAlgorithm 00045 { 00046 public: 00048 00049 static vtkImageOpenClose3D *New(); 00050 vtkTypeMacro(vtkImageOpenClose3D,vtkImageAlgorithm); 00051 void PrintSelf(ostream& os, vtkIndent indent); 00053 00056 unsigned long int GetMTime(); 00057 00059 00060 void DebugOn(); 00061 void DebugOff(); 00063 00065 void Modified(); 00066 00067 // Forward Source messages to filter1 00068 00070 void SetKernelSize(int size0, int size1, int size2); 00071 00073 00075 void SetOpenValue(double value); 00076 double GetOpenValue(); 00078 00080 00082 void SetCloseValue(double value); 00083 double GetCloseValue(); 00085 00087 00088 vtkGetObjectMacro(Filter0, vtkImageDilateErode3D); 00089 vtkGetObjectMacro(Filter1, vtkImageDilateErode3D); 00091 00093 00094 virtual int ProcessRequest(vtkInformation*, 00095 vtkInformationVector**, 00096 vtkInformationVector*); 00098 00100 00101 virtual int 00102 ComputePipelineMTime(vtkInformation* request, 00103 vtkInformationVector** inInfoVec, 00104 vtkInformationVector* outInfoVec, 00105 int requestFromOutputPort, 00106 unsigned long* mtime); 00108 00109 protected: 00110 vtkImageOpenClose3D(); 00111 ~vtkImageOpenClose3D(); 00112 00113 vtkImageDilateErode3D *Filter0; 00114 vtkImageDilateErode3D *Filter1; 00115 00116 virtual void ReportReferences(vtkGarbageCollector*); 00117 private: 00118 vtkImageOpenClose3D(const vtkImageOpenClose3D&); // Not implemented. 00119 void operator=(const vtkImageOpenClose3D&); // Not implemented. 00120 }; 00121 00122 #endif 00123 00124 00125