00001 /*========================================================================= 00002 00003 Program: vtkCNMRRLibrary 00004 Module: $RCSfile: vtkImageThicknessThresholdFilter2D.h,v $ 00005 00006 Copyright 2005 The Pennsylvania State University 00007 00008 Notice 00009 00010 The contents of this file are subject to The Pennsylvania State University 00011 Open Source License (the "License"); you may not use this file except in 00012 compliance with the License. You may obtain a copy of the License at H066 00013 Radiology, NMR Building, 500 University Drive, Hershey, PA, 00014 tel. (717) 531-6069 or via email at dcb210@psu.edu. 00015 00016 Software distributed under the License is distributed on an "AS IS" basis, 00017 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 00018 for the specific language governing rights and limitations under the 00019 License. 00020 00021 The Original Code is listed under Exhibit A of the license. 00022 00023 The Initial Developer of the Original Code is Don Bigler. 00024 00025 Contributor(s): 00026 00027 =========================================================================*/ 00056 #ifndef __vtkImageThicknessThresholdFilter2D_h 00057 #define __vtkImageThicknessThresholdFilter2D_h 00058 00059 00060 #include "vtkSimpleImageToImageFilter.h" 00061 #include "vtkCNMRRImagingWin32Header.h" 00062 00063 #define VTK_THICKNESS_TWOD_LAZY 0 00064 #define VTK_THICKNESS_TWOD_CIRCULAR_BASED 1 00065 #define VTK_THICKNESS_TWOD_CIRCULAR_BASED_COMPLETE 2 00066 #define VTK_THICKNESS_TWOD_BOX_BASED 3 00067 #define VTK_THICKNESS_TWOD_BOX_BASED_COMPLETE 4 00068 00069 class VTK_CNMRR_IMAGING_EXPORT vtkImageThicknessThresholdFilter2D : public vtkSimpleImageToImageFilter 00070 { 00071 public: 00072 static vtkImageThicknessThresholdFilter2D *New(); 00073 vtkTypeRevisionMacro(vtkImageThicknessThresholdFilter2D,vtkSimpleImageToImageFilter); 00074 00076 00077 vtkSetMacro(Thickness, double); 00078 vtkGetMacro(Thickness, double); 00080 00082 00084 vtkSetMacro(ThicknessMax, int); 00085 vtkGetMacro(ThicknessMax, int); 00087 00089 00092 vtkSetMacro(Algorithm, int); 00093 vtkGetMacro(Algorithm, int); 00094 void SetAlgorithmToLazy () 00095 { this->SetAlgorithm(VTK_THICKNESS_TWOD_LAZY); } 00096 void SetAlgorithmToCircularBased () 00097 { this->SetAlgorithm(VTK_THICKNESS_TWOD_CIRCULAR_BASED); } 00098 void SetAlgorithmToCircularBasedComplete () 00099 { this->SetAlgorithm(VTK_THICKNESS_TWOD_CIRCULAR_BASED_COMPLETE); } 00100 void SetAlgorithmToBoxBased () 00101 { this->SetAlgorithm(VTK_THICKNESS_TWOD_BOX_BASED); } 00102 void SetAlgorithmToBoxBasedComplete () 00103 { this->SetAlgorithm(VTK_THICKNESS_TWOD_BOX_BASED_COMPLETE); } 00105 00106 protected: 00107 vtkImageThicknessThresholdFilter2D(); 00108 ~vtkImageThicknessThresholdFilter2D(){}; 00109 00110 void InitOutput(int outExt[6], vtkImageData *outData); 00111 00112 double Thickness; 00113 00114 int ThicknessMax; 00115 00116 int Algorithm; 00117 00118 virtual void SimpleExecute(vtkImageData* input, vtkImageData* output); 00119 private: 00120 vtkImageThicknessThresholdFilter2D(const vtkImageThicknessThresholdFilter2D&); // Not implemented. 00121 void operator=(const vtkImageThicknessThresholdFilter2D&); // Not implemented. 00122 }; 00123 00124 #endif
1.4.7