00001 /*========================================================================= 00002 00003 Program: vtkCNMRRLibrary 00004 Module: $RCSfile: vtkImageThicknessThresholdFilter3D.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 =========================================================================*/ 00054 #ifndef __vtkImageThicknessThresholdFilter3D_h 00055 #define __vtkImageThicknessThresholdFilter3D_h 00056 00057 #include "vtkSimpleImageToImageFilter.h" 00058 #include "vtkCNMRRImagingWin32Header.h" 00059 00060 #define VTK_THICKNESS_THREED_LAZY 0 00061 #define VTK_THICKNESS_THREED_SPHERICAL_BASED 1 00062 #define VTK_THICKNESS_THREED_SPHERICAL_BASED_COMPLETE 2 00063 00064 class VTK_CNMRR_IMAGING_EXPORT vtkImageThicknessThresholdFilter3D : public vtkSimpleImageToImageFilter 00065 { 00066 public: 00067 static vtkImageThicknessThresholdFilter3D *New(); 00068 vtkTypeRevisionMacro(vtkImageThicknessThresholdFilter3D,vtkSimpleImageToImageFilter); 00069 00071 00072 vtkSetMacro(Thickness, double); 00073 vtkGetMacro(Thickness, double); 00075 00077 00079 vtkSetMacro(ThicknessMax, int); 00080 vtkGetMacro(ThicknessMax, int); 00082 00084 00086 vtkSetMacro(Algorithm, int); 00087 vtkGetMacro(Algorithm, int); 00088 void SetAlgorithmToLazy () 00089 { this->SetAlgorithm(VTK_THICKNESS_THREED_LAZY); } 00090 void SetAlgorithmToSphericalBased () 00091 { this->SetAlgorithm(VTK_THICKNESS_THREED_SPHERICAL_BASED); } 00092 void SetAlgorithmToSphericalBasedComplete () 00093 { this->SetAlgorithm(VTK_THICKNESS_THREED_SPHERICAL_BASED_COMPLETE); } 00095 00096 protected: 00097 vtkImageThicknessThresholdFilter3D(); 00098 ~vtkImageThicknessThresholdFilter3D(){}; 00099 00100 void InitOutput(int outExt[6], vtkImageData *outData); 00101 00102 double Thickness; 00103 00104 int ThicknessMax; 00105 00106 int Algorithm; 00107 00108 virtual void SimpleExecute(vtkImageData* input, vtkImageData* output); 00109 private: 00110 vtkImageThicknessThresholdFilter3D(const vtkImageThicknessThresholdFilter3D&); // Not implemented. 00111 void operator=(const vtkImageThicknessThresholdFilter3D&); // Not implemented. 00112 }; 00113 00114 #endif
1.4.7